Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Этап 1. Пример решения задачи




Пример решения задачи

В задаче необходимо описать класс с СТУДЕНТ (поля: ФАМИЛИЯ, СПЕЦИАЛЬНОСТЬ, ПОЛ (задается из фиксированного списка), ГОД ОБУЧЕНИЯ).

. В классе должен быть описаны как минимум:

· соответствующие поля,

· конструкторы (не менее трех),

· свойства для получения и изменения значений

· метод ввода объекта с клавиатуры

· метод вывода объекта на экран

· операция преобразования типа.

Кроме того в классе должны быть описаны:

- операция класса: перевод студента на следующий курс (+)

- статический метод класса: поиск студента с заданной фамилией в массиве студентов.

методы и операции, соответствующие варианту задания.

Методы класса должны генерировать исключения.

Разработать демонстрационную программу, которая должна обеспечивать выбор с помощью меню и выполнение следующих функций:

· начальное формирование массива из N£20 объектов класса (ввод с клавиатуры или из заданного массива);

· добавления объекта в массив;

· вывод массива объектов на экран;

· функции, демонстрирующие работу методов и операций, описанных в варианте задания.

· дополнительная функция: вывод всех студентов с заданной специальностью.

 

Опишем поэтапное решение данной задачи.

Для решения данной задачи опишем класс CStudent c указанными полями и тремя конструкторами. Для проверки работы конструкторов сразу определим метод, выводящий на экран все поля.

namespace ConsoleApplication1

{

enum gender_type { male, female, unknown };

class CStudent

{

//**************Поля класса CStudent*******************

static public int n = 0;

 

string name;

string speciality;

gender_type gender;

int year_tr;

 

//******Конструктор по умолчанию************************

public CStudent()

{

name = "Unknown";

speciality = "Unknown";

gender = gender_type.unknown;

year_tr = 0;

n++;

}

//*****Конструктор, задающий фамилию студента***********

public CStudent(string n): this()

{

if (name!= "") name = n;

else name = "Unknown";

}

//***Конструктор, заполняющий все поля класса заданными параметрами**

public CStudent(string name, string speciality, gender_type gender, int year_tr)

{

if (name!="") this.name = name;

else this.name="Unknown";

if (speciality!= "") this.speciality = speciality;

else this.speciality = "Unknown";

if (Enum.IsDefined(typeof(gender_type), gender)) this.gender = gender;

/*Используется метод IsDefined класса Enum, который возращает истину, если второй парамерт принадлежит перечислению, указанному в качестве первого параметра*/

else throw new Exception("При создании студента пол указан неверно");

if (year_tr >=1 && year_tr <=5) this.year_tr = year_tr;

else throw new Exception("При создании студента курс обучения указан неверно. Значение должно быть интевале [1,5]");

n++;

}

//**Метод класса 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);

}

}//class CStudent

Обратите внимание, что конструктор с четырьмя параметра генерирует исключения, если неправильно указан пол или год обучения.




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.034 сек.