Задание
Разработка базы данных приемной комиссии высшего учебного заведения на языке C# + Oracle.
Пусть требуется создать программную систему, предназначенную для работников приемной комиссии высшего учебного заведения. Она должна обеспечивать хранение, просмотр и изменение сведений об абитуриентах, а также о расписании экзаменов и консультаций. Результатом работы приемной комиссии должен быть список абитуриентов, зачисленных в институт.
Секретарь приемной комиссии регистрирует абитуриентов:
- Для каждого абитуриента в базу данных заносятся следующие сведения: фамилия, имя, отчество, паспортные данные, какое учебное заведение, где и когда окончил, наличие золотой или серебряной медали, название кафедры и факультета, на которые поступает абитуриент.
-
При регистрации абитуриенту выдают экзаменационный лист, имеющий уникальный номер, и сообщают номер группы и потока;
-
Для каждой группы по каждому предмету в базу данных заносится экзаменационная ведомость;
-
Абитуриент может перейти на другую кафедру;
-
Для каждого потока формируется расписание консультаций и экзаменов по предметам;
-
Приемная комиссия по результатам экзаменов должна сформировать списки абитуриентов, зачисленных в институт.
Секретарю приемной комиссии могут потребоваться следующие сведения:
-
Список абитуриентов на заданный факультет?
-
Оценки, полученные указанным абитуриентом?
-
Когда и в какой аудитории будет консультация и экзамен у заданного абитуриента по указанному предмету?
-
Где, когда и по каким предметам будут проходить экзамены у заданной группы?
-
Конкурс на каждый факультет?
-
Средний балл по каждому предмету на каждом факультете?
Функционал программы
Рассмотрим окно регистрации абитуриентов, рисунок 1.
Рисунок 1 - регистрация абитуриента
На рисунке 2 представлен функционал работа с зарегистрированными абитуриентами.
Рисунок 2 - зарегистрированные абитуриенты
Во вкладке экзаменационные листы мы можем просмотреть все листы абитуриентов, рисунок 3.
Рисунок 3 - экзаменационные листы
Во вкладке экзаменационная ведомаость мы можем проставить оценки абитуриентам за экзамены, рисунок 4.
Рисунок 4 - экзаменационная ведомость
На рисунке 5 представлена вкладка отчетов, где мы можем сформировать два отчета с выводом в excel и word.
Рисунок 5 - отчеты с выводом в excel и word
На последней вкладке мы можем заполнить расписание и выполнять поиск по различным категориям, рисунок 6.
Рисунок 6 - расписание
Фрагмент программного кода
private OracleCommand GetEnrolleeNotToUniver { get { if (this.getEnrolleeNotToUniver == null) { this.getEnrolleeNotToUniver = new OracleCommand(); this.getEnrolleeNotToUniver.CommandText = "select enrollee.FIO_E, sum(EXAM_SHEET.MARK_E_SH) as countMark, groups.NAME_GR, groups.NUM_STREAM " + "from EXAM_SHEET, exam_paper, enrollee, groups " + "where EXAM_SHEET.ID_EX_PAPER = exam_paper.ID_EXAM_PAPER and exam_paper.NUM_PASS = enrollee.NUM_PASS and enrollee.ID_FACULTY = :ID_FACULTY " + "and exam_paper.NAME_GR = :NAME_GROUP and groups.NAME_GR = exam_paper.NAME_GR " + "group by enrollee.FIO_E, groups.NAME_GR, groups.NUM_STREAM having sum(EXAM_SHEET.MARK_E_SH) <= :COUNT_BALLS"; this.getEnrolleeNotToUniver.CommandType = CommandType.Text; this.getEnrolleeNotToUniver.Connection = this.OracleConnection; OracleParameter oracleParametr = new OracleParameter("@ID_FACULTY", OracleDbType.Int32, 0); oracleParametr.Direction = ParameterDirection.Input; this.getEnrolleeNotToUniver.Parameters.Add(oracleParametr); oracleParametr = new OracleParameter("@NAME_GROUP", OracleDbType.Varchar2, 70); oracleParametr.Direction = ParameterDirection.Input; this.getEnrolleeNotToUniver.Parameters.Add(oracleParametr); oracleParametr = new OracleParameter("@COUNT_BALLS", OracleDbType.Int32, 0); oracleParametr.Direction = ParameterDirection.Input; this.getEnrolleeNotToUniver.Parameters.Add(oracleParametr); } return this.getEnrolleeNotToUniver; } }
Скриншот архива с проектом
Содержание архива с проектом
- Папка с программой
- Файл DB_SELECTION_COMMITTEE.sql для создания таблиц и начальных данных
Пояснения по запуску программы
- Microsoft Visual Studio
- База данных Oracle
Alekseev