Разработка приложения для самоконтроля успеваемости студентов

Требования к пользовательским интерфейсам, к аппаратным, программным и коммуникационным интерфейсам, к пользователям продукта. Проектирование структуры приложения для самоконтроля успеваемости студентов. Программные средства эксплуатации приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.08.2019
Размер файла 561,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

АННОТАЦИЯ

Отчет о курсовой работе: 58 с., 11 рис., 2 табл., 2 приложения, 7 источников.

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

Предмет исследования - анализ возможностей приложения, разработанного в среде Visual Studio, на языке программирования C#.

Цель работы - разработка приложения, которое позволяет осуществлять самоконтроль успеваемости студента.

Метод исследования - анализ возможностей языка С# для создания и обработки программы по самоконтролю успеваемости студента.

В результате решения задачи было разработано приложение для самоконтроля успеваемости студента. Приложение позволяет контролировать успеваемость студента.

Приложение ProgressDiary может использоваться студентами для самоконтроля успеваемости.

VISUAL STUDIO, C#, ПРОГРАММНЫЙ ПРОДУКТ, ДИСЦИПЛИНА, СЕМЕСТР, БАЛЛ

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Состояние вопроса

1.2 Актуальность и цели работы

2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

2.1 Описание области применения и исходных данных приложения

2.2 Требования к пользовательским интерфейсам

2.3 Требования к аппаратным, программным и коммуникационным интерфейсам

2.4 Требования к пользователям продукта

2.5 Функции продукта

2.6 Ограничения

3. ОБОСНОВАНИЕ ВЫБОРА ИНСТРУМАНТАРЛЬНЫХ СРЕДСТВ

4. Разработка приложения для самоконтроля успеваемости студентов

4.1 Входные и выходные данные приложения

4.2 Проектирование структуры приложения

4.3 Описание объектов и их взаимодействия

5 ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА

5.1 Аппаратные и программные средства создания и эксплуатации приложения

5.2 Руководство пользователя

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ А Экранные формы

ПРИЛОЖЕНИЕ Б Фрагмент листинга

ВВЕДЕНИЕ

Одной из важных задач высшей школы является развитие у студентов умений самостоятельно управлять учебной деятельностью, контролировать и оценивать ее результаты, что, в свою очередь, позволит студенту эффективно управлять процессом овладения знаниями в процессе обучения.

В педагогике проблему самоконтроля анализировали в основном в рамках понятия самостоятельности и сознания учеников в процессе обучения [4,6]

В последние годы все более значимой становится проблема оптимизации обучения, возрастает роль управления учебно-воспитательным процессом. Проблема качества обучения и самоконтроль студента приобретает международное значение.

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

В данной курсовой работе будет реализовано приложение, которое позволит осуществлять самоконтроль студента ведя собственный электронный журнал успеваемости. Такое приложение призвано дисциплинировать студента в процессе обучения, способствует контролю собственной успеваемости.

1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

1.1 Состояние вопроса

В современных условиях рыночных экономики выдвигается задача подготовки конкурентоспособного творческого специалиста, обладающего широкой профессиональной ориентацией, способного к постоянному профессиональному саморазвитию, самообразованию, умеющему принимать ответственные решения. Одним из условий, обеспечивающим ее решение, является формирование самостоятельной познавательной деятельности студентов. Самостоятельную познавательную деятельность студентов можно определить как мотивационный, систематический, индивидуальный процесс познания, направленный на развитие способностей личности, состоящий из постановки цели, осмысления проблемы, задачи, выбора путей и средств ее достижения, выполнения собственными силами при осуществлении самоконтроля.

1.2 Актуальность и цели работы

Текущий контроль успеваемости и промежуточная аттестация обучающихся являются элементами внутренней системы оценки качества образования.

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

Проведение текущего контроля успеваемости направлено на обеспечение выстраивания образовательной деятельности максимально эффективным образом для достижения результатов освоения основных образовательных программ.

Промежуточная аттестация - это установление уровня достижения планируемых результатов освоения учебных предметов, курсов, дисциплин, предусмотренных образовательной программой.

Целью данной работы будет создание приложения, которое позволит осуществлять самоконтроль успеваемости студента путём ведения электронного журнала.

2. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

2.1 Описание области применения и исходных данных приложения

Данной приложение предназначено для самоконтроля успеваемости студента.

Исходными данными для приложения являются:

1) список дисциплин, который хранится в файле и редактируется из программы;

2) список групп, который хранится в файле и редактируется из программы;

3) список студентов, который хранится в файле и редактируется из программы;

4) список успеваемости, который хранится в файл.

2.2 Требования к пользовательским интерфейсам

приложение интерфейс программный пользователь

Интерфейс разработан с разрешением экрана не менее 1280х720. На главном окне должно быть кнопки «Дисциплины», «Группы», «Студенты», «Успеваемость» и «Выход».

Для вывода данных необходимо использовать таблицу с изменяющимся размером столбцов. Так же необходимо реализовать возможность сортировки данных по различным столбцам таблицы как в порядке убывания, так и возрастания.

На рисунке 2.1 представлен макет формы с главным меню.

В основной макет входит:

1) кнопка для просмотра и добавления дисциплин;

2) кнопка для просмотра и добавления групп;

3) кнопка для просмотра и добавления студентов;

4) кнопка для просмотра и добавления успеваемости;

5) кнопка выхода из приложения.

Рисунок 2.1 - Макет формы с главным меню

На рисунке 2.2 представлен макет формы просмотра списка дисциплин.

Рисунок 2.2 - Макет формы просмотра списка дисциплин

В макет формы просмотра списка дисциплин входит:

1) кнопка в верхнем меню «Добавить»;

2) кнопка в верхнем меню «Удалить»;

3) кнопка в верхнем меню «Обновить»;

4) таблица с полями «Название», «Семестр», «Вид контроля».

На рисунке 2.3 представлен макет формы добавления дисциплины.

Рисунок 2.3 - Макет формы добавления дисциплины

В макет формы добавления дисциплины входит:

1) надпись «Название»;

2) поле для ввода названия дисциплины;

3) надпись «Семестр»;

4) выпадающий список с выбором семестра (от 1 до 12);

5) надпись «Вид контроля»;

6) выпадающие список с выбором вида контроля («Экзамен», «Зачёт», «Дифф. зачёт»);

7) кнопка «Добавить дисциплину».

На рисунке 2.4 представлен макет формы просмотра и добавления группы.

В макет формы просмотра и добавления группы входит:

1) кнопка в верхнем меню «Удалить»;

2) кнопка в верхнем меню «Обновить»;

3) таблица с полями «№ п/п», «Название»;

4) надпись «Название группы»;

5) поле для ввода названия группы;

6) кнопка «Добавить группу».

Рисунок 2.4 - Макет формы просмотра и добавления группы

На рисунке 2.5 представлен макет формы просмотра списка студентов.

Рисунок 2.5 - Макет формы просмотра списка студентов

В макет формы просмотра списка студентов входит:

1) кнопка в верхнем меню «Добавить»;

2) кнопка в верхнем меню «Удалить»;

3) кнопка в верхнем меню «Обновить»;

4) таблица с полями «ФИО студента», «Группа», «Курс».

На рисунке 2.6 представлен макет формы добавления студента.

Рисунок 2.6 - Макет формы добавления студента

В макет формы добавления студента входит:

1) надпись «ФИО студента»;

2) поле для ввода ФИО студента;

3) надпись «Группа»;

4) выпадающий список с группами;

5) надпись «Курс»;

6) выпадающий список с курсом (от 1 до 6);

7) кнопка «Добавить студента».

На рисунке 2.7 представлен макет формы просмотра успеваемости студентов.

В макет формы просмотра успеваемости студентов входит:

1) кнопка в верхнем меню «Добавить»;

2) кнопка в верхнем меню «Удалить»;

3) кнопка в верхнем меню «Обновить»;

4) надпись «Выбор группы»;

5) выпадающий список с выбором группы;

6) таблица с полями «Дисциплина», «ФИО студента», «Группа», «Оценка», «Дата».

Рисунок 2.7 - Макет формы просмотра успеваемости студентов

На рисунке 2.8 представлен макет формы добавления данных об успеваемости студента.

Рисунок 2.8 - Макет формы добавления данных об успеваемости студента

В макет формы добавления данных об успеваемости студента входит:

1) надпись «Дисциплина»;

2) выпадающие список с выбором дисциплины;

3) надпись «Группа»;

4) выпадающие список с выбором группы;

5) надпись «ФИО студента»;

6) выпадающие список с выбором студента;

7) переключатель для выбора 5 бальной системы;

8) переключатель для выбора 100 бальной системы;

9) поле ввода оценки;

10) переключатель для выбора экзамена;

11) переключатель для выбора зачёта;

12) переключатель для выбора дифф. зачёта;

13) кнопка «Добавить данные».

2.3 Требования к аппаратным, программным и коммуникационным интерфейсам

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

- оперативная память: 512 Мб;

- процессор: 1.2 ГГц;

- место на жёстком диске: 15 Мб;

- наличие средств, ввода-вывода (мышь, клавиатура, монитор);

- видеоадаптер: 64 Мб;

- необходимо обеспечить программное взаимодействие системы с: операционными системами Windows 7 /8 /10.

2.4 Требования к пользователям продукта

Системой должны иметь возможность пользоваться следующие категории пользователей: обычный пользователь.

Обычный пользователь:

- понимание принципов функционирования приложения и работа с оконными приложениями Windows;

- принцип заполнения данных в форму.

2.5 Функции продукта

Приложение должно иметь возможность добавления дисциплин с различным видом контроля, групп, студентов с указанием в какой группе он учится, данных об успеваемости с просмотром их по заданным группам и добавления данных с учётом типа дисциплины и различным форматом оценивания (5 бальная или 100 бальная шкала).

Все функции системы выполняет один класс пользователей: обычный пользователь.

На рисунке 2.9 показана схема функциональной структуры приложения ProgressDiary.

Рисунок 2.9 - Схема функциональной структуры приложения

2.6 Ограничения

Программный продукт будет работать если в одной папке с ним лежат необходимые xml-файлы.

3. ОБОСНОВАНИЕ ВЫБОРА ИНСТРУМАНТАРЛЬНЫХ СРЕДСТВ

.NET представляет собой совершенно новый способ создания распределенных, настольных и встроенных приложений. Очень важно сразу осознать, что .NET не имеет ничего общего с СОМ (кроме мощных средств интеграции двух платформ). Для типов .NET не нужны ни фабрики классов, ни регистрация в системном реестре. Эти основные элементы СОМ не скрыты - их просто больше нет.

Специально для новой платформы Microsoft разработала новый язык программирования - С# (Си Шарп). Этот язык, как и Java, очень многое позаимствовал из C++ (особенно с точки зрения синтаксиса). Однако на С# сильно повлиял и Visual Basic 6.0 [3,5,7].

В целом можно сказать, что С# впитал в себя многое из того лучшего, что есть в самых разных языках программирования, и если у вас есть опыт работы с C++, Java или Visual Basic, то вы найдете в С# много знакомого.

Очень важно отметить, что платформа .NET является полностью независимой от используемых языков программирования. Можно использовать несколько .NET-совместимых языков программирования даже в рамках одного проекта. Разобраться с самим языком С# достаточно просто. Наибольшие усилия потребуются, чтобы познакомиться с многочисленными пространствами имен и типами библиотеки базовых классов .NET. С этими типами (как и со своими собственными, созданными, например, на С#) можно работать из любого .NET-совместимого языка.

4. РАЗРАБОТКА ПРИЛОЖЕНИЯ САМОКОНТРОЛЯ УСПЕВАЕМОСТИ СТУДЕНТОВ

4.1 Входные и выходные данные приложения

Входные данные хранятся в файлах. Входными данными приложения являются 4 файла:

- список дисциплин disciplines.xml;

- список групп groups.xml;

- список студентов students.xml;

- список успеваемости студентов academic performance.xml.

Выходными данные являются: таблица с список всех дисциплин, таблица с список всех групп, таблица с список всех студентов, таблица с список успеваемости студентов.

4.2 Проектирование структуры приложения

Логина приложения (классы и советующие файлы) приведена в таблице 4.1.

Таблица 4.1 - Классы и файлы

Название файла

Описание класса

DB.cs

Класс для работы с данными

AcademicPerformance.cs

Класс, описывающий успеваемость студентов

Discipline.cs

Класс, описывающий дисциплину

Group.cs

Класс, описывающий группу

Human.cs

Класс описываем челвоека

Student.cs

Класс описывает студента, потомок от класса Human

Так как в языке программирования С# [1,2] все окна и графические элементы форм являются отдельными классами, в таблице 4.2 представлен класс окон и пользовательских элементов управления.

Таблица 4.2 - Классы отвечающие за графический интерфейс

MainForm.cs

Главное окно программы, содержит кнопки для перехода к основным функциям программы

AcademicPerformanceForm.cs

Форма для просмотра данных об успеваемости студентов

AddAcademicPerformanceForm.cs

Форма для добавления данных об успеваемости студентов

AddDisciplineForm.cs

Форма для добавления новой дисциплины

AddStudentForm.cs

Формы для добавления нового студента

DisciplineForm.cs

Форма для просмотра дисциплин

GroupForm.cs

Форма для просмотра групп

StudentsForm.cs

Форма для просмотра студентов

На рисунке 4.1 представлена структура классов программы.

Рисунок 4.1 - Структура классов программы

На рисунке 4.2 представлена общая схема связности классов.

Рисунок 4.2 - Общая схема связности классов

4.3 Описание объектов и их взаимодействия

Класс Human является родительским классом для студента.

Класс Human содержит такие члены класса:

1) string type - ФИО человека.

Класс Human содержит такие методы:

1) конструктор по умолчанию;

2) геттеры и сеттеры для каждого члена класса.

Класс Student содержит такие члены класса:

1) Group group - группа студента;

2) int course - курс обучения.

Класс Student содержит такие методы:

1) конструктор по умолчанию;

2) геттеры и сеттеры для каждого члена класса.

Класс AcademicPerformance служит для хранения информации об успеваемости студентов.

Класс AcademicPerformance содержит такие члены класса:

1) Discipline discipline - дисциплина;

2) Student student - студешт;

3) int mark - оценка;

4) int typeMark - тип оценки ;

5) DateTime dateTime - дата выставления оценки.

Класс AcademicPerformance содержит такие методы:

1) конструктор по умолчанию;

2) геттеры и сеттеры для каждого члена класса.

Класс DB служит для сохранения и загрузки данных из файлов.

Класс DB содержит такие методы класса:

1) List<Discipline> getDisciplines() - метод возвращает список дисциплин;

2) saveDisciplines(List<Discipline> disciplines) - метод сохраняет заданный список дисциплин в файл;

3) void removeDescepline(int row) -метод удаляет дисциплину по переданному индексу;

4) List<Group> getGroup() - метод возвращает список групп;

5) void saveGroups(List<Group> groups) - метод сохраняет переданный список групп в файл;

6) void removeGroup(int row) - метод удаляет группу по переданному индексу;

7) List<Student> getStudents() - метод возвращает список студентов;

8) void saveStudents(List<Student> students) - метод сохраняет переданный список студентов в файл;

9) void removeStudent(int row) - метод удаляет студента по переданному индексу;

10) List<AcademicPerformance> getAcademicPerformances() - метод возвращает список успеваемости студентов;

11) void saveAcademicPerformances(List<AcademicPerformance> academicPerformances) - метод сохраняет переданный список успеваемости в файл.

Класс Discipline служит для хранения информации об дисциплине.

Класс Discipline содержит такие члены класса:

1) string name - название дисциплины;

2) int semester - семестр;

3) string typeOfControl - тип контроля.

Класс Discipline содержит такие методы:

1) конструктор по умолчанию;

2) геттеры и сеттеры для каждого члена класса.

Класс Group служит для хранения информации об группе.

Класс Group содержит такие члены класса:

1) string nameGroup - название группы.

Класс Group содержит такие методы:

1) конструктор по умолчанию;

2) геттеры и сеттеры для каждого члена класса.

5. ТЕСТИРОВАНИЕ ПРОГРАММНОГО ПРОДУКТА

5.1 Аппаратные и программные средства создания и эксплуатации приложения

Аппаратные требования для работы приложения:

1) процессор с тактовой частотой: 1 ГГц и выше;

2) оперативная память: 1 ГБ и более;

3) тип системы: 64-разрядная система;

4) монитор: 1280х720.

Программные требования к приложению.

1) операционная система - Windows 10/8/7;

2) наличие установленного фреймворка .NET Framework версии 3.5 или выше;

3) среда разработки Microsoft Visual Studio 17, язык программирования C#.

5.2 Руководство пользователя

Для работы приложения необходимо запустить исполняемый файл и следовать указанием в приложении.(см.рисунок А.1). Пользователь может выбрать ввод дисциплины, группы, информацию о студенте, ввести оценки успеваемости. Пункт меню «Дисциплины» открывает окно для ввода информации (см.рисунок А.2). Есть возможность использования любого языка. При выборе «Добавить» в меню формы вводится информация о дисциплине (название, семестр, вид контроля). В поля для ввода можно вводить любые символы.

Для удаления данных из таблицы необходимо выделить ячейки удаляемой записи нажать на кнопку «Удалить», которая имеется в верхнем меню. Для добавления новых записей необходимо выбрать и заполнить все поля, иначе при попытки добавления программа выдаст сообщение об ошибке. (См. рисунок А.3) Дисциплина появляется в таблице при нажатии «Обновить»

Для добаления группы выбираем пункт главного меню «Группы». Форма (см. рисунок А. 4) служит для ввода названия группы и просмотра существующих групп. При нажатии на кнопку «Добавить группу» введённая информация отображается в таблице выше.

Пункт главного меню «Студенты», позволяет ознакомится со списком студентов всех групп (см. рисунок А.5). Для того, чтобы вести информацию о студенте (ФИО, группа, курс) необходимо выбрать пункт меню «Добавить» (см. Рисунок А. 6). Пункт меню «Удалить» отвечает за удаление студента из списка. При нажатии «Обновить» появляется/исчезает информация о студенте.

При выборе пункта меню «Успеваемость» на главной форме отображается информация об успеваемости студентов всех групп. При выборе группы из выпадающего списка (см. рисунок А. 7) в таблице будут находится студенты лишь выбранной группы. При выборе пункта меню «Добавить» мы можем ввести информацию (дисциплина, ФИО студента, группа, оценка(баллы) в 5 или 100 бальной системе, вид контроля) (см. рисунок А.7) об успеваемости определённого студента. После нажатия кнопки «Добавить» информация попадает на вышеуказанную форму.

ЗАКЛЮЧЕНИЕ

В результате выполнения данной работы было разработано приложение для самоконтроля успеваемости студента «Успехи».

Приложение разработано с использованием среды Micrisoft Visual Studio 17, на языке программирования C#.

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

Дальнейшее развитие программы связано с расширением ее возможностей и улучшением интерфейса.

В ходе работы были решены следующие задачи:

1. Разработано приложение для самоконтроля за успеваемостью студента;

2. В приложение данные хранятся в файлах.

3. Реализована защита «от дурака» при добавлении данных.

Приложение ProgressDiary может использоваться студентами для самоконтроля успеваемости.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Абрамян М. Visual C# на примерах (+ CD-ROM) / М. Абрамян. - М.: БХВ-Петербург, 2012. - 496 c.

2. Агуров П. C#. Сборник рецептов (+CD-ROM) / П. Агуров. - М.: БХВ-Петербург, 2007. - 432 c.

3. Бишоп Дж. С# в кратком изложении / Дж. Бишоп, Н. Хорспул. - М.: Бином. Лаборатория знаний, 2011. - 472 c.

4. Блонский П.П. Педология / П.П.Блонский. - М., 1934; 2-е изд.; М., 1936.

5. Васильев А. C#. Объектно-ориентированное программирование / А.Васильев. - М.: Питер, 2012. - 320

6. Голубева Э.А. Индивидуальные особенности памяти человека / Э.А.Голубева. - М., 1980.

7. Зиборов В.В. Visual C# 2012 на примерах / В.В. Зиборов. - М.: БХВ-Петербург, 2013. - 480 c.

ПРИЛОЖЕНИЕ А

Экранные формы

Рисунок А.1 - Главная форма

Рисунок А.2 - Форма просмотра дисциплин

Рисунок А.3 - Форма добавления новой дисциплины

Рисунок А.4 - Форма просмотра групп

Рисунок А.5 - Форма просмотра студентов

Рисунок А.6 - Форма добавления новых студентов

Рисунок А.7 - Форма просмотра успеваемости

Рисунок А.7 - Форма добавления данных об успеваемости

ПРИЛОЖЕНИЕ Б

Фрагменты листинга

Б.1 Форма AcademicPerformanceForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class AcademicPerformanceForm : Form

{

public AcademicPerformanceForm()

{

InitializeComponent();

comboBoxGroup.Items.Clear();

List<Group> groups = DB.getInstance().getGroup();

for (int i = 0; i < groups.Count; i++)

{

comboBoxGroup.Items.Add(groups[i].getNameGroup());

}

if(comboBoxGroup.Items.Count>0)

comboBoxGroup.SelectedItem = comboBoxGroup.Items[0];

}

private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)

{

AddAcademicPerformanceForm addAcademicPerformanceForm = new AddAcademicPerformanceForm();

addAcademicPerformanceForm.Show();

}

private void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (dataGridView.CurrentRow != null)

{

DB.getInstance().removeAcademicPerformances(dataGridView.CurrentRow.Index);

}

loadData(comboBoxGroup.SelectedItem.ToString());

}

private void обновитьToolStripMenuItem_Click(object sender, EventArgs e)

{

loadData(comboBoxGroup.SelectedItem.ToString());

}

private void loadData(string group)

{

dataGridView.Rows.Clear();

List<AcademicPerformance> list = DB.getInstance().getAcademicPerformances();

string[] row = new string[5];

for (int i = 0; i < list.Count; i++)

{

if (list[i].getStudent().getGroup().getNameGroup() == group)

{

row[0] = list[i].getDiscipline().getName();

row[1] = list[i].getStudent().getName();

row[2] = list[i].getStudent().getGroup().getNameGroup();

row[3] = list[i].getMark().ToString() + " (" + list[i].getTypeMark() + ")";

row[4] = list[i].getDateTime().ToString("dd.MM.yyyy");

dataGridView.Rows.Add(row);

}

}

}

private void comboBoxGroup_SelectedIndexChanged(object sender, EventArgs e)

{

if (comboBoxGroup.SelectedItem != null)

{

loadData(comboBoxGroup.SelectedItem.ToString());

}

}

}

}

Б.2 Форма AddAcademicPerformanceForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class AddAcademicPerformanceForm : Form

{

public AddAcademicPerformanceForm()

{

InitializeComponent();

List<Discipline> disciplines = DB.getInstance().getDisciplines();

for (int i = 0; i < disciplines.Count-1; i++)

{

for (int j = i+1; j < disciplines.Count; j++)

{

if (disciplines[i].getName() == disciplines[j].getName())

{

disciplines.RemoveAt(j);

}

}

}

for (int i = 0; i < disciplines.Count; i++)

{

comboBoxDisceplines.Items.Add(disciplines[i].getName());

}

if (comboBoxDisceplines.Items.Count > 0)

comboBoxDisceplines.SelectedItem = comboBoxDisceplines.Items[0];

List<Group> groups = DB.getInstance().getGroup();

for (int i = 0; i < groups.Count; i++)

{

comboBoxGroups.Items.Add(groups[i].getNameGroup());

}

if (comboBoxGroups.Items.Count > 0)

comboBoxGroups.SelectedItem = comboBoxGroups.Items[0];

}

private void buttonAddData_Click(object sender, EventArgs e)

{

if (comboBoxDisceplines.SelectedItem == null || comboBoxGroups.SelectedItem == null ||

comboBoxStudents.SelectedItem == null)

{

MessageBox.Show("Ошибка при добавлении записи, проверьте правильноть выбора всех полей!", "Добавление данных об успеваемости", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

else

{

List<AcademicPerformance> academicPerformances = DB.getInstance().getAcademicPerformances();

AcademicPerformance academicPerformance = new AcademicPerformance();

academicPerformance.setDiscipline(new Discipline(comboBoxDisceplines.SelectedItem.ToString()));

academicPerformance.setStudent(new Student(comboBoxStudents.SelectedItem.ToString(), comboBoxGroups.SelectedItem.ToString()));

academicPerformance.setMark(Convert.ToInt32(numericUpDownMark.Value));

if (radioButton1.Checked)

{

academicPerformance.setTypeMark(5);

}

else

{

academicPerformance.setTypeMark(100);

}

academicPerformance.setDateTime(DateTime.Today);

academicPerformances.Add(academicPerformance);

DB.getInstance().saveAcademicPerformances(academicPerformances);

MessageBox.Show("Запись успешно добавлена", "Добавление данных об успеваемости", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

}

private void comboBoxGroups_SelectedIndexChanged(object sender, EventArgs e)

{

List<Student> students = DB.getInstance().getStudents();

comboBoxStudents.Items.Clear();

for (int i = 0; i < students.Count; i++)

{

if (students[i].getGroup().getNameGroup() == comboBoxGroups.SelectedItem.ToString())

{

comboBoxStudents.Items.Add(students[i].getName());

}

}

if (comboBoxStudents.Items.Count > 0)

comboBoxStudents.SelectedItem = comboBoxStudents.Items[0];

}

private void radioButton2_CheckedChanged(object sender, EventArgs e)

{

if (radioButton1.Checked)

{

numericUpDownMark.Maximum = 5;

}

if (radioButton2.Checked)

{

numericUpDownMark.Maximum = 100;

}

}

private void comboBoxDisceplines_SelectedIndexChanged(object sender, EventArgs e)

{

if (comboBoxDisceplines.SelectedItem != null)

{

radioButton3.Visible = false;

radioButton4.Visible = false;

radioButton5.Visible = false;

List<Discipline> disciplines = DB.getInstance().getDisciplines();

for (int i = 0; i < disciplines.Count; i++)

{

if (disciplines[i].getName() == comboBoxDisceplines.SelectedItem.ToString())

{

switch (disciplines[i].getTypeOfControl())

{

case "Экзамен":

radioButton3.Visible = true;

radioButton3.Checked = true;

break;

case "Зачёт":

radioButton4.Visible = true;

radioButton4.Checked = true;

break;

case "Дифф. зачёт":

radioButton5.Visible = true;

radioButton5.Checked = true;

break;

}

}

}

}

}

}

}

Б.3 Форма AddDisciplineForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class AddDisciplineForm : Form

{

public AddDisciplineForm()

{

InitializeComponent();

comboBoxSemestr.SelectedItem = comboBoxSemestr.Items[0];

comboBoxTypeOfControl.SelectedItem = comboBoxTypeOfControl.Items[0];

}

private void buttonAdd_Click(object sender, EventArgs e)

{

if (textBoxName.Text == "")

{

MessageBox.Show("Ошибка при добавление дисциплины, проверьте правильность заполнения всех полей!", "Добавление дисциплины", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

else

{

Discipline discipline = new Discipline();

discipline.setName(textBoxName.Text);

discipline.setSemestr(Convert.ToInt32(comboBoxSemestr.SelectedItem.ToString()));

discipline.setTypeOfControl(comboBoxTypeOfControl.SelectedItem.ToString());

List<Discipline> disciplines = DB.getInstance().getDisciplines();

disciplines.Add(discipline);

DB.getInstance().saveDisciplines(disciplines);

MessageBox.Show("Дисциплины успешно добавлена", "Добавление дисциплины", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

}

}

}

Б.4 Форма AddStudentForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class AddStudentForm : Form

{

public AddStudentForm()

{

InitializeComponent();

List<Group> groups = DB.getInstance().getGroup();

for (int i = 0; i < groups.Count; i++)

{

comboBox1.Items.Add(groups[i].getNameGroup());

}

if(comboBox1.Items.Count>0)

comboBox1.SelectedItem = comboBox1.Items[0];

comboBox2.SelectedItem = comboBox2.Items[0];

}

private void buttonAdd_Click(object sender, EventArgs e)

{

if (textBoxName.Text != "")

{

List<Student> students = DB.getInstance().getStudents();

Student student = new Student(textBoxName.Text, comboBox1.SelectedItem.ToString());

students.Add(student);

DB.getInstance().saveStudents(students);

MessageBox.Show("Студент успешно добавлен", "Добавление студента", MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

else

{

MessageBox.Show("Поле ввода ФИО студента пустое!", "Добавление студента", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

}

}

Б.5 Форма DisciplineForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class DisciplineForm : Form

{

public DisciplineForm()

{

InitializeComponent();

loadData();

}

/// <summary>

/// Добавить дисциплину

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void addToolStripMenuItem_Click(object sender, EventArgs e)

{

AddDisciplineForm addDisciplineForm = new AddDisciplineForm();

addDisciplineForm.Show();

}

/// <summary>

/// Удалить дисциплину

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void deleteToolStripMenuItem_Click(object sender, EventArgs e)

{

if (dataGridView.CurrentRow != null)

{

DB.getInstance().removeDescepline(dataGridView.CurrentRow.Index);

}

loadData();

}

void loadData()

{

dataGridView.Rows.Clear();

List<Discipline> list = new List<Discipline>(DB.getInstance().getDisciplines());

string[] row = new string[3];

for (int i = 0; i < list.Count; i++)

{

row[0] = list[i].getName();

row[1] = list[i].getSemester().ToString();

row[2] = list[i].getTypeOfControl();

dataGridView.Rows.Add(row);

}

}

private void обновитьToolStripMenuItem_Click(object sender, EventArgs e)

{

loadData();

}

}

}

Б.6 Форма GroupForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class GroupForm : Form

{

public GroupForm()

{

InitializeComponent();

loadData();

}

private void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (dataGridView.CurrentRow != null)

{

DB.getInstance().removeGroup(dataGridView.CurrentRow.Index);

}

loadData();

}

private void обновитьToolStripMenuItem_Click(object sender, EventArgs e)

{

loadData();

}

private void buttonAddGroup_Click(object sender, EventArgs e)

{

if (textBoxGroupName.Text != "")

{

List<Group> groups = DB.getInstance().getGroup();

groups.Add(new Group(textBoxGroupName.Text));

DB.getInstance().saveGroups(groups);

MessageBox.Show("Группа успешно добавлена", "Добавление группы", MessageBoxButtons.OK,

MessageBoxIcon.Information);

loadData();

}

else

{

MessageBox.Show("Поле ввода пустое", "Добавление группы", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

private void loadData()

{

dataGridView.Rows.Clear();

List<Group> list = new List<Group>(DB.getInstance().getGroup());

string[] row = new string[2];

for (int i = 0; i < list.Count; i++)

{

row[0] = (i + 1).ToString();

row[1] = list[i].getNameGroup();

dataGridView.Rows.Add(row);

}

}

}

}

Б.7 Форма MainForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class MainForm : Form

{

public MainForm()

{

InitializeComponent();

}

/// <summary>

/// Выход

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void buttonExit_Click(object sender, EventArgs e)

{

Close();

}

/// <summary>

/// Дисциплины

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void buttonDisciplines_Click(object sender, EventArgs e)

{

DisciplineForm disciplineForm = new DisciplineForm();

disciplineForm.Show();

}

/// <summary>

/// Группы

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void buttonGroups_Click(object sender, EventArgs e)

{

GroupForm groupForm = new GroupForm();

groupForm.Show();

}

/// <summary>

/// Студенты

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void buttonStudents_Click(object sender, EventArgs e)

{

StudentsForm studentsForm = new StudentsForm();

studentsForm.Show();

}

/// <summary>

/// Успеваемость

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void buttonProgress_Click(object sender, EventArgs e)

{

AcademicPerformanceForm academicPerformanceForm = new AcademicPerformanceForm();

academicPerformanceForm.Show();

}

}

}

Б.8 Форма StudentsForm

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace Электронный_дневник_успеваемости_студентов

{

public partial class StudentsForm : Form

{

public StudentsForm()

{

InitializeComponent();

loadData();

}

private void добавитьToolStripMenuItem_Click(object sender, EventArgs e)

{

AddStudentForm addStudentForm = new AddStudentForm();

addStudentForm.Show();

}

private void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

{

if (dataGridView.CurrentRow != null)

{

DB.getInstance().removeStudent(dataGridView.CurrentRow.Index);

}

loadData();

}

private void обновитьToolStripMenuItem_Click(object sender, EventArgs e)

{

loadData();

}

private void loadData()

{

dataGridView.Rows.Clear();

List<Student> list = new List<Student>(DB.getInstance().getStudents());

string[] row = new string[3];

for (int i = 0; i < list.Count; i++)

{

row[0] = list[i].getName();

row[1] = list[i].getGroup().getNameGroup();

row[2] = list[i].getCourse().ToString();

dataGridView.Rows.Add(row);

}

}

}

}

Б.9 Класс AcademicPerformance

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Электронный_дневник_успеваемости_студентов

{

class AcademicPerformance

{

private Discipline discipline;

private Student student;

private int mark;

private int typeMark;

private DateTime dateTime;

public AcademicPerformance()

{

}

public Discipline getDiscipline()

{

return discipline;

}

public void setDiscipline(Discipline discipline)

{

this.discipline = discipline;

}

public Student getStudent()

{

return student;

}

public void setStudent(Student student)

{

this.student = student;

}

public int getMark()

{

return mark;

}

public void setMark(int mark)

{

this.mark = mark;

}

public int getTypeMark()

{

return typeMark;

}

public void setTypeMark(int typeMark)

{

this.typeMark = typeMark;

}

public DateTime getDateTime()

{

return dateTime;

}

public void setDateTime(DateTime dateTime)

{

this.dateTime = dateTime;

}

}

}

Б.10 Класс DB

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Xml;

namespace Электронный_дневник_успеваемости_студентов

{

class DB

{

private static DB instance;

private DB()

{

}

public static DB getInstance()

{

if (instance == null)

instance = new DB();

return instance;

}

public List<Discipline> getDisciplines()

{

List<Discipline> disciplines = new List<Discipline>();

Discipline discipline = null;

XmlDocument xDoc = new XmlDocument();

xDoc.Load("disciplines.xml");

XmlElement xRoot = xDoc.DocumentElement;

foreach (XmlNode xnode in xRoot)

{

discipline = new Discipline();

foreach (XmlNode childnode in xnode.ChildNodes)

{

if (childnode.Name == "name")

{

discipline.setName(childnode.InnerText);

}

// если узел - company

if (childnode.Name == "semestr")

{

discipline.setSemestr(Convert.ToInt32(childnode.InnerText));

}

// если узел age

if (childnode.Name == "typeOfControl")

{

discipline.setTypeOfControl(childnode.InnerText);

}

}

disciplines.Add(discipline);

}

return disciplines;

}

public void saveDisciplines(List<Discipline> disciplines)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load("disciplines.xml");

XmlElement xRoot = xDoc.DocumentElement;

xRoot.RemoveAll();

XmlElement disciplinesElem = xDoc.CreateElement("discipline");

XmlElement nameElem = xDoc.CreateElement("name");

XmlElement semestrElem = xDoc.CreateElement("semestr");

XmlElement typeOfControlElem = xDoc.CreateElement("typeOfControl");

for (int i = 0; i < disciplines.Count; i++)

{

disciplinesElem = xDoc.CreateElement("discipline");

nameElem = xDoc.CreateElement("name");

semestrElem = xDoc.CreateElement("semestr");

typeOfControlElem = xDoc.CreateElement("typeOfControl");

nameElem.AppendChild(xDoc.CreateTextNode(disciplines[i].getName()));

semestrElem.AppendChild(xDoc.CreateTextNode(disciplines[i].getSemester().ToString()));

typeOfControlElem.AppendChild(xDoc.CreateTextNode(disciplines[i].getTypeOfControl()));

disciplinesElem.AppendChild(nameElem);

disciplinesElem.AppendChild(semestrElem);

disciplinesElem.AppendChild(typeOfControlElem);

xRoot.AppendChild(disciplinesElem);

}

xDoc.Save("disciplines.xml");

}

public void removeDescepline(int row)

{

List<Discipline> disciplines = getDisciplines();

disciplines.RemoveAt(row);

saveDisciplines(disciplines);

}

public List<Group> getGroup()

{

List<Group> groups = new List<Group>();

Group group = null;

XmlDocument xDoc = new XmlDocument();

xDoc.Load("groups.xml");

XmlElement xRoot = xDoc.DocumentElement;

foreach (XmlNode xnode in xRoot)

{

group = new Group();

foreach (XmlNode childnode in xnode.ChildNodes)

{

if (childnode.Name == "name")

{

group.setNameGroup(childnode.InnerText);

}

}

groups.Add(group);

}

return groups;

}

public void saveGroups(List<Group> groups)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load("groups.xml");

XmlElement xRoot = xDoc.DocumentElement;

xRoot.RemoveAll();

XmlElement groupElem = xDoc.CreateElement("discipline");

XmlElement nameElem = xDoc.CreateElement("name");

for (int i = 0; i < groups.Count; i++)

{

groupElem = xDoc.CreateElement("group");

nameElem = xDoc.CreateElement("name");

nameElem.AppendChild(xDoc.CreateTextNode(groups[i].getNameGroup()));

groupElem.AppendChild(nameElem);

xRoot.AppendChild(groupElem);

}

xDoc.Save("groups.xml");

}

public void removeGroup(int row)

{

List<Group> groups = getGroup();

groups.RemoveAt(row);

saveGroups(groups);

}

public List<Student> getStudents()

{

List<Student> students = new List<Student>();

Student student = null;

XmlDocument xDoc = new XmlDocument();

xDoc.Load("students.xml");

XmlElement xRoot = xDoc.DocumentElement;

foreach (XmlNode xnode in xRoot)

{

student = new Student();

foreach (XmlNode childnode in xnode.ChildNodes)

{

if (childnode.Name == "name")

{

student.setName(childnode.InnerText);

}

if (childnode.Name == "group")

{

student.setGroup(new Group(childnode.InnerText));

}

if (childnode.Name == "course")

{

student.setCourse(Convert.ToInt32(childnode.InnerText));

}

}

students.Add(student);

}

return students;

}

public void saveStudents(List<Student> students)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load("students.xml");

XmlElement xRoot = xDoc.DocumentElement;

xRoot.RemoveAll();

XmlElement studentElem = xDoc.CreateElement("student");

XmlElement nameElem = xDoc.CreateElement("name");

XmlElement groupElem = xDoc.CreateElement("group");

XmlElement courseElem = xDoc.CreateElement("course");

for (int i = 0; i < students.Count; i++)

{

studentElem = xDoc.CreateElement("student");

nameElem = xDoc.CreateElement("name");

groupElem = xDoc.CreateElement("group");

courseElem = xDoc.CreateElement("course");

nameElem.AppendChild(xDoc.CreateTextNode(students[i].getName()));

groupElem.AppendChild(xDoc.CreateTextNode(students[i].getGroup().getNameGroup()));

courseElem.AppendChild(xDoc.CreateTextNode(students[i].getCourse().ToString()));

studentElem.AppendChild(nameElem);

studentElem.AppendChild(groupElem);

studentElem.AppendChild(courseElem);

xRoot.AppendChild(studentElem);

}

xDoc.Save("students.xml");

}

public void removeStudent(int row)

{

List<Student> students = getStudents();

students.RemoveAt(row);

saveStudents(students);

}

public List<AcademicPerformance> getAcademicPerformances()

{

List<AcademicPerformance> academicPerformances = new List<AcademicPerformance>();

AcademicPerformance academicPerformance = null;

XmlDocument xDoc = new XmlDocument();

xDoc.Load("academic performance.xml");

XmlElement xRoot = xDoc.DocumentElement;

foreach (XmlNode xnode in xRoot)

{

academicPerformance = new AcademicPerformance();

foreach (XmlNode childnode in xnode.ChildNodes)

{

if (childnode.Name == "discepline")

{

academicPerformance.setDiscipline(new Discipline(childnode.InnerText));

}

if (childnode.Name == "student")

{

academicPerformance.setStudent(new Student(childnode.InnerText));

}

if (childnode.Name == "group")

{

academicPerformance.getStudent().setGroup(new Group(childnode.InnerText));

}

if (childnode.Name == "mark")

{

academicPerformance.setMark(Convert.ToInt32(childnode.InnerText));

}

if (childnode.Name == "typeMark")

{

academicPerformance.setTypeMark(Convert.ToInt32(childnode.InnerText));

}

if (childnode.Name == "date")

{

academicPerformance.setDateTime(Convert.ToDateTime(childnode.InnerText));

}

}

academicPerformances.Add(academicPerformance);

}

return academicPerformances;

}

public void saveAcademicPerformances(List<AcademicPerformance> academicPerformances)

{

XmlDocument xDoc = new XmlDocument();

xDoc.Load("academic performance.xml");

XmlElement xRoot = xDoc.DocumentElement;

xRoot.RemoveAll();

XmlElement entryElem = xDoc.CreateElement("entry");

XmlElement disceplineElem = xDoc.CreateElement("discepline");

XmlElement studentElem = xDoc.CreateElement("student");

XmlElement groupElem = xDoc.CreateElement("group");

XmlElement markElem = xDoc.CreateElement("mark");

XmlElement typeMarkElem = xDoc.CreateElement("typeMark");

XmlElement dateElem = xDoc.CreateElement("date");

for (int i = 0; i < academicPerformances.Count; i++)

{

entryElem = xDoc.CreateElement("entry");

disceplineElem = xDoc.CreateElement("discepline");

studentElem = xDoc.CreateElement("student");

groupElem = xDoc.CreateElement("group");

markElem = xDoc.CreateElement("mark");

typeMarkElem = xDoc.CreateElement("typeMark");

dateElem = xDoc.CreateElement("date");

disceplineElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getDiscipline().getName()));

studentElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getStudent().getName()));

groupElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getStudent().getGroup().getNameGroup()));

markElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getMark().ToString()));

typeMarkElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getTypeMark().ToString()));

dateElem.AppendChild(xDoc.CreateTextNode(academicPerformances[i].getDateTime().ToString("dd.MM.yyyy")));

entryElem.AppendChild(disceplineElem);

entryElem.AppendChild(studentElem);

entryElem.AppendChild(groupElem);

entryElem.AppendChild(markElem);

entryElem.AppendChild(typeMarkElem);

entryElem.AppendChild(dateElem);

xRoot.AppendChild(entryElem);

}

xDoc.Save("academic performance.xml");

}

public void removeAcademicPerformances(int row)

{

List<AcademicPerformance> academicPerformances = getAcademicPerformances();

academicPerformances.RemoveAt(row);

saveAcademicPerformances(academicPerformances);

}

}

}

Б.11 Класс Discipline

using System;

using System.Collections.Generic;

using System.Linq;

using System.Security.Authentication.ExtendedProtection.Configuration;

using System.Text;

using System.Threading.Tasks;

using System.Xml;

namespace Электронный_дневник_успеваемости_студентов

{

class Discipline

{

private string name;

private int semester;

private string typeOfControl;

public Discipline()

{

}

public Discipline(string name)

{

this.name = name;

}

public Discipline(string name, int semester, string typeOfControl)

{

this.name = name;

this.semester = semester;

this.typeOfControl = typeOfControl;

}

public string getName()

{

return name;

}

public void setName(string name)

{

this.name = name;

}

public int getSemester()

{

return semester;

}

public void setSemestr(int semester)

{

this.semester = semester;

}

public string getTypeOfControl()

{

return typeOfControl;

}

public void setTypeOfControl(string typeOfControl)

{

this.typeOfControl = typeOfControl;

}

}

}

Б.12 Класс Group

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Электронный_дневник_успеваемости_студентов

{

class Group

{

private string nameGroup;

public Group()

{

}

public Group(string nameGroup)

{

this.nameGroup = nameGroup;

}

public string getNameGroup()

{

return nameGroup;

}

public void setNameGroup(string nameGroup)

{

this.nameGroup = nameGroup;

}

}

}

Б.13 Класс Human

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Электронный_дневник_успеваемости_студентов

{

class Human

{

private string name;

public Human()

{

}

public Human(string name)

{

this.name = name;

}

public string getName()

{

return name;

}

public void setName(string name)

{

this.name = name;

}

}

}

Б.14 Класс Student

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Электронный_дневник_успеваемости_студентов

{

class Student:Human

{

private Group group;

private int course;

public Student()

{

}

public Student(string name) : base(name)

{

}

public Student(string name, string group) : base(name)

{

this.group = new Group(group);

}

public Group getGroup()

{

return group;

}

public void setGroup(Group group)

{

this.group = group;

}

public void setCourse(int course)

{

this.course = course;

}

public int getCourse()

{

return course;

}

}

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.