Разработка информационной системы "Абитуриент+"


Скачать публикацию
Язык издания: русский
Периодичность: ежедневно
Вид издания: сборник
Версия издания: электронное сетевое
Публикация: Разработка информационной системы "Абитуриент+"
Автор: Теляков Егор Николаевич

СОДЕРЖАНИЕВВЕДЕНИЕАбитуриент — это выпускник школы, который подал заявление в учебное заведение. Актуальность информационной системы «Абитуриент+» заключается в необходимости ведения учета абитуриентов в учебном заведении. Именно этот аспект важен в деятельности учебного заведения, ведь этот процесс отвечает за набор новых студентов в учебное заведение.Объектом автоматизации является рабочее место сотрудника приемной комиссии, который вводит информацию о абитуриентах поступающих в учебное заведение.Начальным этапом создания системы является изучение, анализ и моделирование деятельности организации для возможного улучшения методов работы.Целью данного курсового проекта является моделирование информационной системы учета абитуриентов, которая позволяет улучшить эффективность процессов в работе, а также разработка информационной системы.Основными задачами является:
  • провести анализ предметной области;
  • разработать техническое задание;
  • построить диаграмму IDF0;
  • спроектировать базу данных;
  • реализовать базу данных;
  • создать пользовательский интерфейс;
  • создать рабочую информационную систему.
  • 1.АНАЛИТИЧЕСКАЯ ЧАСТЬ1.1Анализ предметной области (с построением функциональной модели IDEFO)Абитуриент — это выпускник школы, который подал заявление в учебное заведение.Для приемной комиссии учебного заведения бизнес-процессами является:
  • Прием документов на поступление;
  • Зачисление;
  • Прием документов на поступление в учебном заведенииявляется основным начальным процессом для зачисления в УЗ.Процесс приём документов на поступление включает: предоставление информации о специальностях, а также внесение информации об абитуриентах в базу данных на основании поданных документов.Процесс зачисления в учебное заведение включает: подписание договора на оказание образовательных услуг, составление приказа на зачисление.Вспомогательными бизнес-процессами в учебном заведении:
  • Поддержка сайта данного учебного заведения;
  • Распространение рекламной информации об учебном заведении;
  • Поддержка сайта включает в себя: Обеспечение бесперебойной работы сайта, улучшение пользовательского интерфейса, разработка функционалаРаспространение рекламы состоит из: привлечение потенциальных абитуриентов различными способами.Информационная система «Абитуриент+» предназначена для сотрудников приемной комиссии для взаимодействия с базой данных абитуриентов. В учебном заведении есть различные специальности для поступления. Для сортировки и учета поданных заявлений в систему заносятся следующие сведения:
  • Номер поданного заявления;
  • ФИО абитуриента;
  • Специальность;
  • Наличие документов;
  • В случае подачи заявления, абитуриенту выдается расписка, в которой указывается её номер, дата подачи заявления, наличие документов, выбранная специальность.Объект исследования- учебное заведениеСубъекты приемной комиссии — это персонал, включающий в себя административных работников (председателя, секретарей и др.). Процесс исследований -процессы, происходящие в учебном заведении, такие как:
  • Процесс вноса сведений о новых специальностях;
  • Процесс поиска нужной специальности;
  • Процесс вноса сведений о новых абитуриентах, на основании заявления;
  • Процесс поиска заявления;
  • Процесс учета поданных заявлений;
  • Процесс составления ранжированных списков по каждой из специальности;
  • Для более детального ознакомления с процессом учета товара и заказов автомагазина используется диаграмма IDEF0, создания в программе Microsoft Visio.Microsoft Visio векторный графический редактор, редактор диаграмм и блок-схем для Windows.Основные назначения VIsio является визуализация данных или, иначе говоря, изготовления практически любых схем, иллюстрация и диаграмм, необходимых для оформления деловой документации. IDEF0-методология функционального моделирования и графическая нотация, предназначенная для формализации и описания бизнес-процессов.Отличной особенностью IDEF0 является её акцент на соподчиненность объектов. В IDEF0 рассматривается логическое отношение между работами, а не их временная последовательность.Рисунок 1 Функциональная модель IDEF0Входными данными является данные об абитуриенте:
  • ФИО
  • Дата рождения
  • Специальность
  • Уровень образования
  • Средний балл аттестата
  • Данные документа, удостоверяющие личность
  • В специальности:
  • Код специальности
  • Наименование специальности
  • Выходными данными является заявление о внесении в списки поступающих.IDEF0 расшифровывается как определение интеграции для моделирования процессов, методология общественного достояния, используемая для моделирования предприятий и их процессов, чтобы их можно было понять и улучшить.Диаграммы IDEF0 обычно включают в себя следующие компоненты:
  • контекстная диаграмма - самая верхняя диаграмма в модели IDEF0
  • диаграмма «родитель / потомок» - иерархия разложения IDEF0 с использованием отношений «родитель / потомок»
  • деревья узлов - древовидные структуры узлов, внедренные в выбранный узел и используемые для представления полного разложения IDEF0 на одной диаграмме.
  • 1.2 Постановка задачиВ результате анализа деятельности приёмной комиссии предлагаются следующие принципы организации ее работы с учётом использования разрабатываемой автоматизированной системы «Абитуриент+», которая должна хранить следующую информацию:
  • Паспортные данные абитуриента
  • Аттестат об окончании школы
  • Страховой медицинский полис.
  • Медицинская справка (форма 086У).
  • Отчёт о количестве поступивших документов на поступление;
  • Отчёт об абитуриентах, подавших документы на определённую специальность.
  • Отчёт об оценках абитуриентов.
  • Ответственное лицо на каждом отделении самостоятельно вносит личные данные при зачислении в колледж.Информация, собранная приёмной комиссией, в последствии будет доступна для импортирования и дальнейшей работы дневных и заочный отделений. Такая предварительная работа позволит разгрузить работников дневных и заочных отделений во время заполнения базы данных информацией о зачисленных студентах.Регистрацию всех абитуриентов в информационной базе и ввод данных в базу данных должны выполнять подготовленные операторы.Работа отборочных комиссий может быть акцентирована, в основном, на консультации абитуриентов с целью правильной ориентации их в выборе той или иной специальности.Работники приёмной комиссии, зарегистрированные в системе, имеют возможность анализировать сводную информацию по всем отделениям.Подробные требования описаны в Техническом задании.2.ПРОЕКТНАЯ ЧАСТЬ2.1.Проектирование и реализация базы данных системыMySQL представляет систему управления реляционными базами данных (СУБД). На сегодняшний день это одна из самых популярных систем управления базами данных. Изначальным разработчиком данной СУБД была шведская компания MySQL AB. В 1995 году она выпустила первый релиз MySQL. В 2008 году компания MySQL AB была куплена компанией Sun Microsystems, а в 2010 году уже компания Oracle поглотила Sun и тем самым приобрела права на торговую марку MySQL. Поэтому MySQL на сегодняшней день развивается под эгидой Oracle. Текущей актуальной версией СУБД является версия 8.0, которая вышла в январе 2018 года. MySQL обладает кроссплатформенностью, имеются дистрибутивы под самые различные ОС, в том числе наиболее популярные версии Linux, Windows, MacOS.Разработку базы данных было принято начать с построения ER-модели. ER-модель – это модель данных, позволяющих описывать концептуальные схемы предметной области, которая при высокоуровневом (концептуальном) проектировании баз данных.В разрабатываемой информационной системе «Абитуриент» были спроектированы следующие сущности (рис. 3) в соответствии с определенными входными данными:Сущность «Абитуриент»имеет следующие атрибуты:
  • ID абитуриента- int
  • Код личного дела - первичный ключ.int
  • Фамилия абитуриента, nvarchar(255)
  • Имя абитуриента, nvarchar(255)
  • Отчество абитуриента, nvarchar(255)
  • Пол абитуриента, nvarchar(255)
  • Дата рождения, date
  • Телефон, nvarchar(255)
  • Данные СНИЛС, nvarchar(255)
  • Выбранная специальность, nvarchar(255)
  • Сущность «Адрес абитуриента» имеет следующие атрибуты:
  • ID адреса абитуриента- int
  • Код личного дела - первичный ключ.int
  • Страна, nvarchar(255)
  • Регион, nvarchar(255)
  • Район, nvarchar(255)
  • Город, nvarchar(255)
  • Улица, nvarchar(255)
  • Дом, nvarchar(255)
  • Квартира , nvarchar(255)
  • Сущность «Документы, удостоверяющие личность абитуриента», имеет следующие атрибуты:
  • ID записи- int
  • Код личного дела - первичный ключ.int
  • Гражданство, nvarchar(255)
  • Тип документа, nvarchar(255)
  • Серия и номер документа, nvarchar(255)
  • Дата выдачи, date
  • Код подразделения, nvarchar(255)
  • Кем выдан, nvarchar(255)
  • Место рождения, nvarchar(255)
  • Сущность «Образование абитуриента», имеет следующие атрибуты:
  • ID записи- int
  • Код личного дела - первичный ключ.int
  • Тип учебного заведения, nvarchar(255)
  • Наименование УЗ, nvarchar(255)
  • Регион, где находится УЗ, nvarchar(255)
  • Изучаемый иностранный язык, nvarchar(255)
  • Вид документа об образовании, nvarchar(255)
  • Серия и номер документа, nvarchar(255)
  • Дата выдачи, date
  • Сущность «Оценки абитуриента», имеет следующие атрибуты:
  • ID записи- int
  • Код личного дела - первичный ключ.int
  • Количество троек, int
  • Количество четверок, int
  • Количество пятерок, int
  • Средний балл, float
  • Сущность «Специальности» состоит из следующих атрибутов:
  • ID специальности - первичный ключ,int
  • Код специальности, nvarchar(225)
  • Название специальности, nvarchar(225)
  • Аббревиатура специальности, nvarchar(225)
  • Количество заявлений, int
  • Сущность «Пользователь» состоит из следующих атрибутов:
  • ID пользователя - первичный ключ, int
  • Логин, int
  • Пароль, int
  • Таблица, содержащая информацию обо всех абитуриентах, уже подавших заявления в приёмную комиссию:Таблица 1- «Информация об абитуриенте»Таблица 2- «Адрес абитуриента»Таблица 3 «Документы абитуриента»Таблица 4 «Образование абитуриента»Таблица 5 «Оценки абитуриента»Данный проект был физически реализован на сервере Microsoft SQL Server. В результате чего были получены следующие таблицы:Таблица, содержащая информацию обо всех пользователях использующих программу:Таблица 6 «Пользователи»Таблица 7 «Специальности»Рисунок 2- Связь таблиц в базе данных.Таким образом, была создана база данных «Абитуриент».2.2Проектирование и реализация пользовательского интерфейса системы2.2.1. Структура приложения.В ходе выполнения курсового проекта с помощью программного продукта Microsoft Visual Studio было создано приложение. Так же с помощью MS SQL-сервер Managment была создана база данных, которая была подключена к этому приложению. В структуру приложения входит:
  • Модуль меню
  • База данных
  • Окно
  • Модуль авторизация
  • Меню – это элемент интерфейса пользователя, позволяющий выбрать одну из нескольких перечисленных опций программы.Окно – это объект, который можно использовать для создания пользовательского интерфейса для приложения.Авторизация – предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий.Благодаря огромному количеству настроек, поддерживаемых технологий, быстродействию и удобству Visual Studio считается одной из лучших сред разработки. Из минусов можно выделить огромный вес пакетов технологий.Также для реализации приложения использовалась технология Windows Presentation Foundation (WPF), которая позволяет создавать клиентские приложения для настольных систем Windows с привлекательным пользовательским интерфейсом.Из явных достоинств WPF можно выделить следующее:
  • WPF поддерживает гибкий поток, размещающий элементы управления на основе их содержимого вместо того, чтобы фиксировать элементы управления на одном постоянном месте с какими-то постоянными определёнными координатами;
  • Платформа не нуждается ни в каких таймерах что бы форма перерисовала себя. Вместо этого всего WPF поддерживает анимацию, которая запускается автоматически;
  • Разрешено редактировать интерфейс напрямую из кода XAML;
  • Использование стилей и шаблонов;
  • Рисунок 3 Схема взаимодействия окон системы.Пользователи взаимодействуют с автономными приложениями Windows Presentation Foundation (WPF) через Windows. Основная цель окна - разместить содержимое, которое визуализирует данные и позволяет пользователям взаимодействовать с ними.2.2.2 Реализация пользовательских формВ результате разработки были реализованы следующие модули:Первые два окна «Авторизация» и «Регистрация»:На первом окне располагается авторизация пользователей, т.е. нужно ввести логин и пароль. В окне регистрация проходит путем заполнения всех ячеек, таким образом, добавляя нового пользователя. Для авторизации пользователей системы используется следующий код программы:dcUserDataContextdb = newdcUserDataContext();varuserLogin = (from user indb.userswhereuser.login == txtLogin.Textselect user).ToArray();varuserPassword = (from user indb.userswhereuser.password == txtPassword.Passwordselect user).ToArray();try {if (txtLogin.Text == userLogin[0].login) {try {if (txtPassword.Password == userPassword[0].password) {glavngl = newglavn();gl.Show();this.Close(); } }catch (Exception) {MessageBox.Show("Неверныйпароль!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } }catch (Exception) {MessageBox.Show("Такогопользователянет!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);}Для регистрации пользователей системы используется следующий код программы:try {//проверкапароляstring s = txtPassword.Text;char[] array = s.ToCharArray(); // раскладываем строку парля на знакиint d = s.Length;int k = 0;int u = 0;int b = 0;char p = '$';char j = '!';char f = '@';char h = '%';char z = '^';char x = '#';// проверка на Верхний регистрfor (inti = 0; i< d; i++) {if (char.IsUpper(array[i]))//вычисляемрегистр k++; }// проверканачислоfor (inti = 0; i< d; i++) {if (char.IsNumber(array[i]))//вычисляемчисла u++; }// проверканазнакfor (inti = 0; i< d; i++) {//вычисляемзнакif (Convert.ToChar(p) == (array[i]) || Convert.ToChar(j) == (array[i]) || Convert.ToChar(h) == (array[i]) || Convert.ToChar(z) == (array[i]) ||Convert.ToChar(f) == (array[i]) || Convert.ToChar(x) == (array[i])) b++; }if ((k >= 1) && (txtPassword.Text.Length>= 6) && (u >= 1) && (b >= 1)) {using (DataContext context = newDataContext(Properties.Settings.Default.db)) {string log = txtLogin.Text;string pass = txtPassword.Text;stringfio = txtFIO.Text;users us = newusers();us.login = log;us.password = pass;us.FIO = fio;context.GetTable().InsertOnSubmit(us);context.SubmitChanges();MessageBox.Show("Пользовательдобавлен!", "Успешно", MessageBoxButton.OK); }MainWindowvhod = newMainWindow();vhod.Show();this.Close(); }else {MessageBox.Show("Пароль должен содержать $ ! @ # ^ %, как минимум 1 цифру, как минимум одну заглавную букву", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } }catch {MessageBox.Show("Введите корректные данные", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); }Третье окно «Абитуриент»:На третьем окне располагается меню таблиц. Меню таблиц состоит из кнопок: Новое заявление, Список абитуриентов, список специальностей, Составить рейтинговые списки.Рисунок 6 – 3 окно «Абитуриент»Для перехода на четвертое окно «Новое заявление», используется код:privatevoidbtnNewZayav_Click(object sender, RoutedEventArgs e) {Zayavlenie z1 = newZayavlenie(); z1.Show();this.Close(); }Для перехода к последующим окнам используется аналогичный код.На четвертом окне располагается поля обязательные для заполнения что бы нести информацию об абитуриенте в систему:Рисунок 74 окно «Новое заявление» Вкладка «Основное»Рисунок 84 окно «Новое заявление» Вкладка «Адрес»Рисунок 94 окно «Новое заявление» Вкладка «Учебное заведение»Рисунок 10 – 4 окно «Новое заявление» Вкладка «Специальность»Код подключения базы:using(DataContextdb = newDataContext(Properties.Settings.Default.db)) {dcSpecialDataContextdcSpecial = newdcSpecialDataContext();var spec = (from a indcSpecial.Specialnoctiselecta.Name_special);cmbVibrSpec.ItemsSource = spec; Tablespeci = db.GetTable();var query = from a inspeciselectnew{ a.Kod_specialnosti, a.Name_special, a.kolvo_zauav };dgSpec.ItemsSource = query; }Код для кнопки «Назад»privatevoidbtnNaz_Click(object sender, RoutedEventArgs e) {if (tcInfo.SelectedIndex == 0) {btnNaz.IsEnabled = true; }else {tcInfo.SelectedIndex = (tcInfo.SelectedIndex - 1);} }Код для кнопки «Далее»privatevoidbtnDalee_Click(object sender, RoutedEventArgs e) {tcInfo.SelectedIndex = (tcInfo.SelectedIndex + 1); }Коддлякнопки «Сохранить»public bool redaktir = false; private void btnSave_Click(object sender, RoutedEventArgs e){ //Проверка на действие: редактирование или создание нового абитуриентаif(redaktir) { try {dcAbiturDataContextdbAbit = new dcAbiturDataContext();Abityrientsabit = dbAbit.Abityrients.FirstOrDefault(abiter =>abiter.kod_LD.Equals( txtNumLd.Text));abit.Familiy = txtFamiliy.Text;abit.Name = txtName.Text;abit.Otchestvo = txtOtschestv.Text;abit.Pol = cmbGender.Text;abit.Data_rozdeniy = btpBirth.Text;abit.Phone = txtNumTel.Text;abit.Snils = txtSNILS.Text;abit.Vibor_special = cmbVibrSpec.Text; var SelectQuery = from a in dbAbit.GetTable() select a;dbAbit.SubmitChanges();dcDocumLicnostDataContextdbdocLich = new dcDocumLicnostDataContext();Documents_abitdocAbLic = dbdocLich.Documents_abit.FirstOrDefault(abiter =>abiter.Kod_LD.Equals( txtNumLd.Text));docAbLic.Grazdanstvo= cmbGrazhdanstvo.Text;docAbLic.Tip_docum= cmbVidDocumLucnost.Text;docAbLic.Seriy_num= txtSeriaNomDocumL.Text;docAbLic.Data_vidach= btpDataVidDocum.SelectedDate;docAbLic.Kod_podraz= txtKodPodr.Text;docAbLic.Kem_vidan= txtKemVidanLic.Text;docAbLic.Mesto_rozden= txtMestoRozhden.Text; var SelectQuery1 = from a in dbdocLich.GetTable() select a;dbdocLich.SubmitChanges();dcAdresAbitDataContextdbAdresAbit = new dcAdresAbitDataContext();Adres_AbityrientsadrAbit = dbAdresAbit.Adres_Abityrients.FirstOrDefault(abiter =>abiter.kod_LD.Equals( txtNumLd.Text));adrAbit.StranaP= txtStrana.Text;adrAbit.RegionP= txtRegion.Text;adrAbit.RaionP= txtRaionProp.Text;adrAbit.GorodP= txtGorodP.Text;adrAbit.YlitsaP= txtYlitca.Text;adrAbit.DomP= txtDom.Text;adrAbit.KvP= txtKvartira.Text;adrAbit.IndexP= txtIdex.Text;adrAbit.StranaF= cmbStranaF.Text;adrAbit.RegionF= cmbRegionF.Text;adrAbit.RaionF= txtRaionF.Text;adrAbit.GorodF= txtGorodF.Text;adrAbit.YlitsaF= txtYlitcaF.Text;adrAbit.DomF= txtDomF.Text;txtKvartiraF.Text= txtKvartira.Text;adrAbit.KvF= txtKvartiraF.Text;adrAbit.IndexF= txtIdexF.Text; var SelectQuery2 = from a in dbAdresAbit.GetTable() select a;dbAdresAbit.SubmitChanges();dcObrazvAbitDataContextdcObrazvAbit = new dcObrazvAbitDataContext();Obrazovanie_AbityrobrazAbit = dcObrazvAbit.Obrazovanie_Abityr.FirstOrDefault(abiter =>abiter.Kod_LD.Equals( txtNumLd.Text));obrazAbit.Tip_YZ= txtTipYz.Text;obrazAbit.Name_YZ= txtNameYZ.Text;obrazAbit.Region= txtRegYz.Text;obrazAbit.Izych_yazik= txtLang.Text;obrazAbit.Vid_docum_obr= txtVidDocObr.Text;obrazAbit.Seriy_num_doc_obr= txtSeriaNomDocumObr.Text;obrazAbit.Data_vidachi_obr= btpDataVidDocumObr.Text; var SelectQuery4 = from a in dcObrazvAbit.GetTable() select a;dcObrazvAbit.SubmitChanges();dcOtsenkAbitDataContextdcOtsenkAbit = new dcOtsenkAbitDataContext();Otsenki_abityrotsAbit = dcOtsenkAbit.Otsenki_abityr.FirstOrDefault(abiter =>abiter.Kod_LD.Equals( txtNumLd.Text)); otsAbit.kol_vo_3 = Convert.ToInt32( txtYdovl.Text); otsAbit.kol_vo_4 = Convert.ToInt32( txtXor.Text); otsAbit.kol_vo_5 = Convert.ToInt32( txtOtl.Text);otsAbit.Sred_ball = Convert.ToDouble( txtSrBall.Text);abit.kod_LD= txtNumLd.Text;docAbLic.Kod_LD= txtNumLd.Text;adrAbit.kod_LD= txtNumLd.Text;obrazAbit.Kod_LD= txtNumLd.Text;otsAbit.Kod_LD= txtNumLd.Text; var SelectQuery5 = from a in dcOtsenkAbit.GetTable() select a;dcOtsenkAbit.SubmitChanges();MessageBox.Show("Данныеизменены!", "Готово");Close();wSpisocAbityrientov w1 = new wSpisocAbityrientov(); w1.Show(); } catch (Exception) {MessageBox.Show("Провертеданные!");} }elseКод для сохранения отредактированных данных:{ try {dcAbiturDataContext ab = new dcAbiturDataContext();Abityrientsabityrients = new Abityrients();abityrients.kod_LD = txtNumLd.Text;abityrients.Familiy = txtFamiliy.Text;abityrients.Name = txtName.Text;abityrients.Otchestvo = txtOtschestv.Text;abityrients.Pol = cmbGender.Text;abityrients.Data_rozdeniy = btpBirth.Text;abityrients.Phone = txtNumTel.Text;abityrients.Snils = txtSNILS.Text;abityrients.Vibor_special = cmbVibrSpec.Text;dcDocumLicnostDataContextdocL = new dcDocumLicnostDataContext();Documents_abitdocAbLi = new Documents_abit();docAbLi.Grazdanstvo = cmbGrazhdanstvo.Text;docAbLi.Tip_docum = cmbVidDocumLucnost.Text;docAbLi.Seriy_num = txtSeriaNomDocumL.Text;docAbLi.Data_vidach = btpDataVidDocum.SelectedDate;docAbLi.Kod_podraz = txtKodPodr.Text;docAbLi.Kem_vidan = txtKemVidanLic.Text;docAbLi.Mesto_rozden = txtMestoRozhden.Text;dcAdresAbitDataContextdbAdrAbit = new dcAdresAbitDataContext();Adres_AbityrientsadAbit = new Adres_Abityrients();adAbit.StranaP = txtStrana.Text;adAbit.RegionP = txtRegion.Text;adAbit.RaionP = txtRaionProp.Text;adAbit.GorodP = txtGorodP.Text;adAbit.YlitsaP = txtYlitca.Text;adAbit.DomP = txtDom.Text;adAbit.KvP = txtKvartira.Text;adAbit.IndexP = txtIdex.Text;adress.IsEnabled = false;adAbit.StranaF = cmbStranaF.Text;adAbit.RegionF = cmbRegionF.Text;adAbit.RaionF = txtRaionF.Text;adAbit.GorodF = txtGorodF.Text;adAbit.YlitsaF = txtYlitcaF.Text;adAbit.DomF = txtDomF.Text;txtKvartiraF.Text = txtKvartira.Text;adAbit.KvF = txtKvartiraF.Text;adAbit.IndexF = txtIdexF.Text;dcObrazvAbitDataContextdcObrAbit = new dcObrazvAbitDataContext();Obrazovanie_AbityrobrAbit = new Obrazovanie_Abityr();obrAbit.Tip_YZ = txtTipYz.Text;obrAbit.Name_YZ = txtNameYZ.Text;obrAbit.Region = txtRegYz.Text;obrAbit.Izych_yazik = txtLang.Text;obrAbit.Vid_docum_obr = txtVidDocObr.Text;obrAbit.Seriy_num_doc_obr = txtSeriaNomDocumObr.Text;obrAbit.Data_vidachi_obr = btpDataVidDocumObr.Text;dcOtsenkAbitDataContextdcOtsenAbit = new dcOtsenkAbitDataContext();Otsenki_abityrotAbit = new Otsenki_abityr(); otAbit.kol_vo_3 = Convert.ToInt32(txtYdovl.Text); otAbit.kol_vo_4 = Convert.ToInt32(txtXor.Text); otAbit.kol_vo_5 = Convert.ToInt32(txtOtl.Text);otAbit.Sred_ball = Convert.ToDouble(txtSrBall.Text);docAbLi.Kod_LD = txtNumLd.Text;adAbit.kod_LD = txtNumLd.Text;obrAbit.Kod_LD = txtNumLd.Text;otAbit.Kod_LD = txtNumLd.Text;ab.GetTable().InsertOnSubmit(abityrients);ab.SubmitChanges();docL.GetTable().InsertOnSubmit(docAbLi);docL.SubmitChanges();dbAdrAbit.GetTable().InsertOnSubmit(adAbit);dbAdrAbit.SubmitChanges(); dcObrAbit.GetTable().InsertOnSubmit(obrAbit);dcObrAbit.SubmitChanges();dcOtsenAbit.GetTable().InsertOnSubmit(otAbit);dcOtsenAbit.SubmitChanges(); string spec = cmbVibrSpec.Text;dcSpecialDataContextdcSpec = new dcSpecialDataContext();Specialnocti special = dcSpec.Specialnocti.FirstOrDefault(speci =>speci.Name_special.Equals(cmbVibrSpec.Text));special.kolvo_zauav++;dcSpec.SubmitChanges();glavngl = new glavn();gl.Show();Close(); } catch (Exception) {MessageBox.Show("Провертеданные!");} Пятое окно «Список абитуриентов»Рисунок 11- 5 окно «Список абитуриентов»Код для строки поискаusing (DataContextdb = newDataContext(Properties.Settings.Default.db)) {stringpoisk = txtPoisk.Text;dcAbiturDataContext dc1 = newdcAbiturDataContext();if (poisk.Length> 0) {var kl = (from a in dc1.Abityrientswherea.Familiy == poiskselect a).ToArray();var kl1 = (from a in dc1.Abityrientswherea.Name == poiskselect a).ToArray();var kl2 = (from a in dc1.Abityrientswherea.Otchestvo == poiskselect a).ToArray();var kl3 = (from a in dc1.Abityrientswherea.kod_LD == poiskselect a).ToArray(); Tableuslugis = db.GetTable();if (kl.Length> 0) {dtgAbityrients.ItemsSource = kl; }elseif (kl1.Length > 0) {dtgAbityrients.ItemsSource = kl1; }elseif (kl2.Length > 0) {dtgAbityrients.ItemsSource = kl2; }elseif (kl3.Length > 0) {dtgAbityrients.ItemsSource = kl3;} }else Update(); } }Код для кнопки «Удалить»privatevoidBtnDelit_Click(object sender, RoutedEventArgs e) {try {vardb = newdcAbiturDataContext();object item = dtgAbityrients.SelectedItem;varvb = (dtgAbityrients.SelectedCells[0].Column.GetCellContent(item) asTextBlock).Text;var vb1 = (dtgAbityrients.SelectedCells[7].Column.GetCellContent(item) asTextBlock).Text;dcSpecialDataContextdcS = newdcSpecialDataContext();Specialnoctispe = dcS.Specialnocti.FirstOrDefault(sp =>sp.Name_special.Equals(vb1));spe.kolvo_zauav--;dcS.SubmitChanges();varabit = (from a indb.Abityrientswherea.kod_LD == vbselect a).Single();dcDocumLicnostDataContextdocL = newdcDocumLicnostDataContext();vardokL = (from a indocL.Documents_abitwherea.Kod_LD == vbselect a).Single();dcAdresAbitDataContextdbAdrAbit = newdcAdresAbitDataContext();varadrAb = (from a indbAdrAbit.Adres_Abityrientswherea.kod_LD == vbselect a).Single();dcObrazvAbitDataContextdcObrAbit = newdcObrazvAbitDataContext();varobr = (from a indcObrAbit.Obrazovanie_Abityrwherea.Kod_LD == vbselect a).Single();dcOtsenkAbitDataContextdcOtsenAbit = newdcOtsenkAbitDataContext();varots = (from a indcOtsenAbit.Otsenki_abityrwherea.Kod_LD == vbselect a).Single();db.Abityrients.DeleteOnSubmit(abit); db.SubmitChanges();docL.Documents_abit.DeleteOnSubmit(dokL); docL.SubmitChanges();dbAdrAbit.Adres_Abityrients.DeleteOnSubmit(adrAb); dbAdrAbit.SubmitChanges();dcObrAbit.Obrazovanie_Abityr.DeleteOnSubmit(obr); dcObrAbit.SubmitChanges();dcOtsenAbit.Otsenki_abityr.DeleteOnSubmit(ots); dcOtsenAbit.SubmitChanges();Update();MessageBox.Show("Данныеудалены!", "Готово", MessageBoxButton.OK); }catch (Exception) {MessageBox.Show("Нужновыбратьабитуриента", "Ошибка");} }Код для кнопки «Редактировать»try {Redact red = newRedact();object item = dtgAbityrients.SelectedItem;red.vb = (dtgAbityrients.SelectedCells[0].Column.GetCellContent(item) asTextBlock).Text;red.Zapoln(); }catch (Exception) {MessageBox.Show("Нужновыбратьабитуриента", "Ошибка"); }Кодкласса RedactclassRedact {publicstringvb{ get; set; }publicvoidZapoln() {Zayavlenie z = newZayavlenie();z.Show();z.redaktir = true;dcAbiturDataContextdb = newdcAbiturDataContext();z.txtFamiliy.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Familiy).FirstOrDefault();z.txtName.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Name).FirstOrDefault();z.btpBirth.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Data_rozdeniy).FirstOrDefault();z.txtNumLd.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.kod_LD).FirstOrDefault();z.txtOtschestv.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Otchestvo).FirstOrDefault();z.cmbGender.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Pol).FirstOrDefault();z.cmbVibrSpec.Text = (from u indb.Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.Vibor_special).FirstOrDefault();vardb_doc = newdcDocumLicnostDataContext();z.cmbGrazhdanstvo.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Grazdanstvo).FirstOrDefault();z.cmbVidDocumLucnost.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Tip_docum).FirstOrDefault();z.txtSeriaNomDocumL.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Seriy_num).FirstOrDefault();z.btpDataVidDocum.Text = Convert.ToString((from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Data_vidach).FirstOrDefault());z.txtKodPodr.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Kod_podraz).FirstOrDefault();z.txtKemVidanLic.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Kem_vidan).FirstOrDefault();z.txtMestoRozhden.Text = (from u indb_doc.Documents_abitwhereu.Kod_LD == z.txtNumLd.Textselectu.Mesto_rozden).FirstOrDefault();z.txtNumTel.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Phone).FirstOrDefault();z.txtSNILS.Text = (from u indb.Abityrientswhereu.kod_LD == vbselectu.Snils).FirstOrDefault();vardb_adr = newdcAdresAbitDataContext();z.txtStrana.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.StranaP).FirstOrDefault();z.txtRegion.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.RegionP).FirstOrDefault();z.txtRaionProp.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.RaionP).FirstOrDefault();z.txtGorodP.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.GorodP).FirstOrDefault();z.txtYlitca.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.YlitsaP).FirstOrDefault();z.txtDom.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.DomP).FirstOrDefault();z.txtKvartira.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.KvP).FirstOrDefault();z.txtIdex.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.IndexP).FirstOrDefault();z.cmbStranaF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.StranaF).FirstOrDefault();z.cmbRegionF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.RegionF).FirstOrDefault();z.txtRaionF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.RegionF).FirstOrDefault();z.txtGorodF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.GorodF).FirstOrDefault();z.txtYlitcaF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.YlitsaF).FirstOrDefault();z.txtDomF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.DomP).FirstOrDefault();z.txtKvartiraF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.KvF).FirstOrDefault();z.txtIdexF.Text = (from u indb_adr.Adres_Abityrientswhereu.kod_LD == z.txtNumLd.Textselectu.IndexF).FirstOrDefault();vardb_ych = newdcObrazvAbitDataContext();z.txtTipYz.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Tip_YZ).FirstOrDefault();z.txtNameYZ.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Name_YZ).FirstOrDefault();z.txtRegYz.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Region).FirstOrDefault();z.txtLang.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Izych_yazik).FirstOrDefault();z.txtVidDocObr.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Vid_docum_obr).FirstOrDefault();z.txtSeriaNomDocumObr.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Seriy_num_doc_obr).FirstOrDefault();z.btpDataVidDocumObr.Text = (from u indb_ych.Obrazovanie_Abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Data_vidachi_obr).FirstOrDefault();vardb_ots = newdcOtsenkAbitDataContext();z.txtYdovl.Text = Convert.ToString((from u indb_ots.Otsenki_abityrwhereu.Kod_LD == z.txtNumLd.Textselect u.kol_vo_3).FirstOrDefault());z.txtOtl.Text = Convert.ToString((from u indb_ots.Otsenki_abityrwhereu.Kod_LD == z.txtNumLd.Textselect u.kol_vo_5).FirstOrDefault());z.txtXor.Text = Convert.ToString((from u indb_ots.Otsenki_abityrwhereu.Kod_LD == z.txtNumLd.Textselect u.kol_vo_4).FirstOrDefault());z.txtSrBall.Text = Convert.ToString((from u indb_ots.Otsenki_abityrwhereu.Kod_LD == z.txtNumLd.Textselectu.Sred_ball).FirstOrDefault()); } }Коддлякнопки «Отчёт»privatevoidbtnOtschet_Click(object sender, RoutedEventArgs e) {Microsoft.Office.Interop.Excel.Application app = newMicrosoft.Office.Interop.Excel.Application();app.Visible = true;app.WindowState = XlWindowState.xlMaximized; Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = wb.Worksheets[1];DateTimecurrentDate = DateTime.Now;ws.Columns.AutoFit(); Range _excelCells2 = (Range)ws.get_Range("A1", "Z111").Cells; _excelCells2.HorizontalAlignment = Constants.xlCenter; Range _excelCells1 = (Range)ws.get_Range("B1", "H1").Cells; _excelCells1.Merge(Type.Missing);ws.Cells[1, 2] = $"Отчетобабитуриентах";ws.Range["A3"].Value = $"Код личного дела";ws.Range["B3"].Value = $"Фамилия";ws.Range["C3"].Value = $"Имя";ws.Range["D3"].Value = $"Отчество";ws.Range["E3"].Value = $"Пол";ws.Range["F3"].Value = $"Дата рождения"; ws.Range["G3"].Value = $"Номер телефона"; ws.Range["H3"].Value = $"Специальность";for (inti = 0; i {for (int j = 0; j {TextBlock text = dtgAbityrients.Columns[i].GetCellContent(dtgAbityrients.Items[j]) asTextBlock; Range range = (Range)ws.Cells[j + 4, i + 1];range.Value2 = text.Text; } }ws.Columns.EntireColumn.AutoFit(); } }Коддляподключениябазы:publicvoidUpdate() {using (DataContextdb = newDataContext(Properties.Settings.Default.db)) { Tableabit = db.GetTable();var query = from a inabitselectnew{ a.kod_LD, a.Familiy, a.Name, a.Otchestvo,a.Pol,a.Data_rozdeniy, a.Phone, a.Vibor_special };dtgAbityrients.ItemsSource = query; } }Шестое окно «Список специальностей».Код для подключения базы аналогичный.Рисунок 12- 6 окно «Список специальностей»\Код для кнопки «Создать отчёт»privatevoidBtnOtset_Click(object sender, RoutedEventArgs e) {Microsoft.Office.Interop.Excel.Application app = newMicrosoft.Office.Interop.Excel.Application();app.Visible = true;app.WindowState = XlWindowState.xlMaximized; Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = wb.Worksheets[1];DateTimecurrentDate = DateTime.Now;ws.Columns.AutoFit(); Range _excelCells2 = (Range)ws.get_Range("A1", "Z111").Cells; _excelCells2.HorizontalAlignment = Constants.xlCenter; Range _excelCells3 = (Range)ws.get_Range("B4", "B111").Cells; _excelCells3.HorizontalAlignment = Constants.xlLeftToRight; Range _excelCells1 = (Range)ws.get_Range("A1", "C1").Cells; _excelCells1.Merge(Type.Missing);ws.Cells[1, 1] = $"Количествоподанныхзаявлений";ws.Range["A3"].Value = $"Код специальности"; ws.Range["B3"].Value = $"Наименование специальности"; ws.Range["C3"].Value = $"Кол-во заявлений";for (inti = 0; i {for (int j = 0; j {TextBlock text = dgSpec.Columns[i].GetCellContent(dgSpec.Items[j]) asTextBlock; Range range = (Range)ws.Cells[j + 4, i + 1];range.Value2 = text.Text; } }ws.Columns.EntireColumn.AutoFit();}Рисунок 13- Пример сформированного отчётаСледующее окно «Отчёты» содержит в себе кнопки для формирования отчётов.Рисунок 14- 6 окно «Отчёты»Кнопка «Составить отчёт обо всех абитуриентах» открывает окно «Информация об абитуриентах».Следующее 7 окно «Рейтинговые списки»Рисунок 15 - 7 окно «Рейтинговые списки»Код для кнопки «Создать отчёт» аналогичный.ЗАКЛЮЧЕНИЕЦели поставленные в начале разработки были выполнены была создана информационная система и приложение «Абитуриент», приложение имеет удобный графический интерфейс, а также выполняет все необходимые действия.Разработанное приложение может быть использовано в учете поступивших абитуриентов, и может быть использовано в различных учебных заведениях.Целью информационной системы является повышение эффективности работы сотрудника учебной комиссии за счёт внедрения информационной системы «Абитуриент» и снижение рутинной работы с бумагами.Во время выполнения курсового проекта были использованы следующие программные продукты:
  • Microsoft SQL Server:
  • Microsoft SQL Server Management Studio 18;
  • Visual Studio 2019;
  • Microsoft Visio;
  • Выполняя данный проект, более глубоко были изучены тонкости работы приемной комиссии, реализуемая через информационную систему «Абитуриент», а также функции, оказываемые им, было проведено исследование учебной деятельности и спроектирована модель деятельности реализации работы приемной комиссии, что позволяет говорить о полном решении поставленных задач. В итоге поставленные задачи были выполнены, цель достигнута.СПИСОК ЛИТЕРАТУРЫ
  • Гагарина Л.Г. Разработка и эксплуатация АИС. – М., Форум, 2007
  • Голицына, О.Л. и др. Базы данных; Форум; Инфра-М, 2013
  • Емельянова Н.З. Основы построения автоматизированных информационных систем. – М., Форум, 2007
  • Олифер В.Г. Компьютерные сети. Принципы, технологии. - СПб., Питер, 2009
  • Сеннов А. Access 2007/ Учебный курс. – СПб., Питер, 2007
  • Баженова И. Ю. SQL и процедурно-ориентированные языки. Национальный Открытый Университет «ИНТУИТ», 2016 г.
  • Гвоздева В.А. Основы построения автоматизированных информационных систем. – М., Форум, 2009
  • Дунаев В..В. Базы данных Язык SQL. – СПб., БХВ - Петербург, 2006
  • КушнирА.Н. Microsoft Office. Access 2007
  • Максимов Н.В., Попов И.И. Компьютерные сети.- М, ФОРУМ: ИНФРА-М, 2010
  • Малыхина М.П. Базы данных: основы, проектирования, использование. – СПб., БХВ-Петербург, 2006
  • Мельников В.П. Информационная безопасность. – М., Академия, 2009 8. Лазицкас Е. А., Загумённикова И. Н., Гилевский П. Г. Базы данных и системы управления базами данных: учебное пособие. – РИПО, 2016 г.
  • Рудикова Л.В. Базы данных. Разработка приложений. – СПб., БХВ - Петербург, 2006
  • Троелсен Э. Язык программирования C# 5.0 и платформа .NET 4.5 - 6-е издание, 2012 11. Шумаков П. В. ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio.NET: руководство разработчика с примерами на C#. - Диалог-МИФИ 2003 г.