
- •Глава 1. Структура программы на языке с# 6
- •Глава 1. Структура программы на языке с#
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •Глава 2. Переменные. Основные типы данных
- •Int.MinValue
- •Задание 2. Описание переменных и преобразование типов
- •Глава 3. Ввод – вывод значений переменных
- •Задание 3. Форматирование вывода
- •Глава 4. Обработка исключительных ситуаций
- •Задание 4. Обработка стандартных исключений
- •Задание 5. Генерация исключений
- •Глава 5. Массивы в c#
- •Initially,
- •Integer array: 1 2 3 4 5
- •Integer array: 1 2 3 4 5
- •Integerarray: 1 2 3 29 30
- •Задание 6. Одномерные массивы
- •Задание 7. Многомерные массивы и массивы массивов
- •Глава 6. Символы и строки
- •If (char.IsLetter(a)) Console.WriteLine("Буква");
- •Задание 8. Работа со строками
- •Глава 7. Описание классов
- •Int m, n;// числитель и знаменатель
- •Пример решения задачи
- •Intyear_tr;
- •If (Enum.IsDefined(typeof(gender_type),value))
- •Int year_tr;
- •If (Enum.IsDefined(typeof(gender_type),value))
- •Задание 9. Описание классов
- •Глава 8. Наследование
- •Задание 10. Наследование
- •Глава 9. Итерфейсы
- •Interface iOutput
- •Void outputName();
- •Interface iOutput
- •Void outputName();
- •If ( a is iOutput )
- •Interface iComparable
- •Int CompareTo( object obj )
- •Задание 11. Стандартные интерфейсы.
- •Глава 10. Файлы
- •Задание 12. Работа с файлами
- •Список использованных источников
If (Enum.IsDefined(typeof(gender_type),value))
{
gender = value;
}
else gender = gender_type.unknown;
}
}
//***************Метод класса CStudent вывода полей объекта на экран****************
public void output()
{
Console.Write("Name= {0} speciality={1}", name.PadRight(10, ' '), speciality.PadRight(20, ' '));
if (gender == gender_type.male) Console.Write("gender= {0}", "муж ".PadRight(10, ' '));
else if (gender == gender_type.female) Console.Write("gender= {0}", "жен ".PadRight(10, ' '));
else Console.Write("gender= {0}", "не указан ".PadRight(10, ' '));
Console.WriteLine("year= {0,2}", year_tr);
}
//****************Метод класса CStudent ввода полей объекта на экран****************
// Для заполнения полей используются свойства класса Name, Speciality, Gender, Year;
public void input()
{
Console.WriteLine("Введите ФИО студента");
Name = Console.ReadLine();
Console.WriteLine("Введите специальность");
Speciality = Console.ReadLine();
Console.WriteLine("Введите пол (1-муж, 2 - жен)");
int g = int.Parse(Console.ReadLine());
switch (g)
{
case 1: Gender = gender_type.male; break;
case 2: Gender = gender_type.female; break;
default: Gender = gender_type.unknown; break;
}
Console.WriteLine("Введите номер курса ");
Year = int.Parse(Console.ReadLine());
}
// ***********Статический метод класса, возвращающий студента с заданной фамилий n, найденного в массиве ar из k элементов********
public static CStudent find (CStudent [] ar, int k, string n)
{
if (k== 0) throw new Exception("\nВ списке нет студентов");
for (int i=0; i<k; i++)
if (ar[i].Name == n) return ar[i];
throw new Exception ("\nВ списке нет студентов со специальностью "+n);
}
// *********Переопределенная операция явного приведения типа CStudent к типу int*****
public static explicit operator int (CStudent s)
{
return s.year_tr;
}
// ******Переопределенная операция ++ - перевод студента на следующий курс**********
public static CStudent operator ++ (CStudent s)
{
s.Year++;
return s;
}
}//class CStudent
class Class1
{
const int N = 20; //максимально возможное количество студентов
static int k = 0; // количество студентов в массиве
static CStudent[] students = new CStudent[N];// массив из N студентов
//***********Метод добавления студента в массив на k-ое место********************
static void add()
{
if (k < N)
{
students[k] = new CStudent();
(students[k]).input();
k++;
}
else Console.WriteLine("\nНевозможно добавить студента. Массив заполнен");
}
//******************Функция вывода массива на экран***************************
static void output()
{
if (k == 0) Console.WriteLine("Нет студентов в списке");
else
for (int i=0; i<k; i++)
students[i].output();
}
//*****************Метод формирования массива студентов************************
static void new_array()
{
Console.WriteLine("Будуте вводить данные с клавиатуры(y/n)? ");
char s = (char)Console.Read(); Console.ReadLine();
if (s == 'y' || s == 'Y')
{
Console.WriteLine("Введите количество студентов <" + N);
int n = int.Parse(Console.ReadLine());
for (int i = 1; i <= n; i++) add();
Console.WriteLine("\nФормирование списка завершено");
}
else
{
CStudent[] ar = {
new CStudent ("Петров", "Информатика", gender_type.male, 1),
new CStudent ("Сидоров", "Экономика", gender_type.male, 2),
new CStudent ("Уткин", "Математика", gender_type.male, 1),
new CStudent("Иванова", "Информатика", gender_type.female, 3),
new CStudent ("Антонова", "Информатика", gender_type.female, 1),
new CStudent ("Макаров", "Информатика", gender_type.male, 1)
};
k = ar.Length; // количество элементов в массиве
for (int i = 0; i < k; i++) students[i] = ar[i];
Console.WriteLine("\nСписок студентов сфорирован из заданного массива");
}
}
//****************Метод поиска студентов с заданной специальностью*******************
static void find(string s)
{
if (k == 0) Console.WriteLine("Поиск невозможне, т.к. в списке нет студентов");
else
{
bool f=false;
for (int i=0; i<k; i++)
if (students[i].Speciality == s) { students[i].output(); f=true;}
if (f==false) Console.WriteLine("\nВ списке нет студентов со специальностью "+s);
}
}
static void Main()
{
bool q = true;
while (q) //меню программы
{
Console.WriteLine("\nВыберите действие:\n");
Console.WriteLine("1 - Тестовое создание объектов класса Студент");
Console.WriteLine("2 - Тестовое использование свойств класса Студент");
Console.WriteLine("3 - Формирование нового списка студентов");
Console.WriteLine("4 - Добавление данных о студенте");
Console.WriteLine("5 - Вывод списка студентов на экран");
Console.WriteLine("6 - Поиск студентов с заданной специальностью");
Console.WriteLine("7 - Поиск студента с заданной фамилией");
Console.WriteLine("8 - Операция ++ и операция преобразования типа (int)" );
Console.WriteLine("0 - Выход\n");
try
{
int d = int.Parse(Console.ReadLine());
switch (d)
{
case 0: { q = false; Console.WriteLine("Программа завершила работу."); break; }
case 1:
{
Console.WriteLine("Количество созданных объектов =" + CStudent.n);
Console.WriteLine("\nДемонстрируется работа трех конструкторв ");
CStudent s1 = new CStudent();
s1.output();
CStudent s2 = new CStudent("Иванова");
s2.output();
CStudent s3 = new CStudent("Петрова", "Информатика", gender_type.female, 1);
s3.output();
Console.WriteLine("\nКоличество созданных объектов =" + CStudent.n);
break;
}
case 2:
{
Console.WriteLine("Для демонстрации свойств класса и метода вывода создайте студента");
CStudent s = new CStudent();
s.input();
Console.WriteLine("Создан студент:");
Console.WriteLine("{0}, {1}, {2}, {3}", s.Name, s.Speciality, s.Gender, s.Year);
s.Name = "Иванов";
s.Speciality = "Математика";
s.Year++;
s.Gender = gender_type.male;
Console.WriteLine("\nДанные студента изменены: ");
Console.WriteLine("{0}, {1}, {2}, {3}", s.Name, s.Speciality, s.Gender, s.Year);
break;
}
case 3:
{
if (k == 0) new_array();
else Console.WriteLine("Список уже сформирован, Вы можете только добавить студента");
break;
}
case 4: { add(); break; }
case 5: { output(); break; }
case 6:
{
Console.WriteLine("\nВведите название специальности: ");
string s = Console.ReadLine();
find(s);
break;
}
case 7:
{
Console.WriteLine("\nВведите фамилию студента, данные о котом Вы хотите найти ");
string s = Console.ReadLine();
CStudent.find(students,k, s).output();
break;
}
case 8:
{
Console.WriteLine("Для демонстрации свойств класса и метода вывода создайте студента");
CStudent s = new CStudent();
s.input();
Console.WriteLine("\nСоздан студент:");
s.output();
Console.WriteLine("\nCтудент переведен на следующий курс:");
s++;
s.output();
Console.WriteLine("\nКурс студента:"+(int)s);
break;
}
default: Console.WriteLine("Ошибка ввода\n"); break;
}// switch(n)
}//try
catch (Exception e) { Console.WriteLine(e.Message); }
Console.WriteLine("Для продолжения нажмите Enter");
Console.ReadKey();
}//while
}//Main
}//class Class1
}//namespace ConsoleApplication1