ВВЕДЕНИЕ
Цель выполнения курсового проектирования – закрепление навыков по разработке программ в среде Microsoft Visual Studio с использованием языка Visual C# и проработка комплекса вопросов, решаемых в технологической цепочке создания прикладного программного обеспечения информационных систем.
Общее задание состоит в том, чтобы выполнить работы по созданию диалогового приложения Windows Forms в среде Microsoft Visual Studio, текстовой документации.
Тематика курсового проекта включает в себя разработку программы для учета абитуриентов в вузе.
ПОСТАНОВКА ЗАДАЧИ И ИСХОДНЫЕ ДАННЫЕ
Общая задача заключается в разработке прикладной программы для сопровождения базы данных (БД), содержащей заданные сведения.
Частная задача – разработка прикладной программы для учета абитуриентов в вузе, а также закрепление практических навыков программирования в среде Visual Studio 2013 C#.
Задачи курсовой работы:
Изучить основные методы разработки работы с базой данных в среде Visual Studio 2013 C#;
Разработать алгоритм решения задачи;
Осуществить программную реализацию и протестировать разработанное приложение.
Функции программы:
вывод меню функций, выполняемых программой;
ввод, просмотр, редактирование данных в БД, содержащей две взаимосвязанные таблицы;
дополнение БД, удаление данных из БД;
отбор (фильтрация) данных по условию, задаваемому пользователем;
сортировка данных по двум полям (специальность и факультет);
формирование двух отчётов по данным из БД (с группировкой по специальности и по факультетам с вычислением итоговых сумм), которые могут быть выведены на принтер;
построение на основе информации из БД двух графиков (столбиковая диаграмма);
вывод формы со сведениями о программе.
Вывод меню функций программы реализованы с помощью элемента программы Radiobutton(переключатели) и элементаButton (кнопки).
Отбор (фильтрация) данных будет осуществляться по количеству баллов по предметам.
Сортировка данных будет осуществляться в порядке возрастания и убывания по факультету и специальности.
Отчеты будут формироваться с группировкой по факультетам и специальностям.
Графики будут строиться по факультетам и количеству абитуриентов, по специальностям и среднему общему баллу. Вид графиков – столбиковая диаграмма.
Также будет реализован вывод формы с информацией о программе.
СОСТАВ И СТРУКТУРА ДАННЫХ
Для реализации работы с данными в проекте была выбрана система управления базами данных (СУБД) MS Access 2003. Access является настольной СУБД реляционного типа. В проекте используются две взаимосвязанные таблицы.
Структура БД представлена на рисунке 2.1.
Рисунок 2.1 – Структура таблиц БД
Описание структуры таблиц и ограничений целостности представлены в таблицах 2.1 – 2.2.
Таблица 2.1 – Описание структуры таблицы Вуз
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля |
|
Ключ |
Обязательное |
||||
Код_специальности |
Счетчик |
4 |
* |
+ |
|
Наименование |
Наименование специальности |
Текстовый |
80 |
+ |
|
Факультет |
Наименование факультета |
Текстовый |
50 |
+ |
Таблица 2.2 – Описание структуры таблицы Студенты
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля |
||
Ключ |
Обязательное |
Примечание |
||||
Специальность_код |
Код специальсноти |
Числовой |
4 |
+ |
Подстановка из таблицы «Вуз» |
|
ФИО |
ФИО абитуриента |
Текстовый |
80 |
+ |
||
Математика |
Балл по математике |
Числовой |
4 |
+ |
||
Физика |
Балл по физике |
Числовой |
4 |
+ |
>0 |
|
Сочинение |
Балл за сочинение |
Числовой |
4 |
+ |
>0 |
МЕТОДЫ И АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ
При выполнении функции программы вычисление суммы баллов была использована следующая формула:
, (1)
где – сумма баллов;
- балл по математике;
- балл по физике;
- балл за сочинение.
Описание разработанных запросов с указанием параметров, источников данных и текста на SQL представлены в таблице 3.1.
Таблица 3.1 – Описание разработанных запросов
Назначение запроса |
Наименование запроса |
Параметры |
Источники данных: таблица БД или запрос |
Вычисление суммы баллов |
Баллы |
Вуз Студенты |
|
Текст запроса |
|||
SELECT Вуз.Факультет, Вуз.Наименование, Студенты.ФИО, Студенты.Математика, Студенты.Физика, Студенты.Сочинение, [Математика]+[Физика]+[Сочинение] AS Сумма_баллов FROM Вуз INNER JOIN Студенты ON Вуз.Код_специальности = Студенты.Специальность_код; |
|||
Подготовка данных для графика «Количество студентов по факультету» |
Диаграмма |
Вуз Студенты |
|
Текст запроса |
|||
SELECT Вуз.Факультет, Count(Студенты.ФИО) AS [Count-ФИО] FROM Вуз INNER JOIN Студенты ON Вуз.Код_специальности = Студенты.Специальность_код GROUP BY Вуз.Факультет; |
|||
Подготовка данных для отчета «Количество студентов по факультетам» |
Колвостудентов |
Вуз Студенты |
|
Текст запроса |
|||
SELECT Вуз.Факультет, Вуз.Наименование, Count(Студенты.ФИО) AS [Count-ФИО] FROM Вуз INNER JOIN Студенты ON Вуз.Код_специальности = Студенты.Специальность_код GROUP BY Вуз.Факультет, Вуз.Наименование; |
|||
Подготовка данных для графика «Средний балл абитуриента» |
Србалл |
Вуз Студенты |
|
Текст запроса |
|||
SELECT Вуз.Наименование, Avg([Математика]+[Физика]+[Сочинение]) AS Ср_балл FROM Вуз INNER JOIN Студенты ON Вуз.Код_специальности = Студенты.Специальность_код GROUP BY Вуз.Наименование; |
Отбор (фильтрация) данных будет осуществляться по количеству баллов по предметам. Сортировка данных будет осуществляться в порядке возрастания и убывания по факультету и специальности. Отчеты будут формироваться с группировкой по факультетам и специальностям. Отчеты построены с помощью объекта Report. Графики будут строиться по факультетам и количеству абитуриентов, по специальностям и среднему общему баллу. Вид графиков – столбиковая диаграмма. Графики построены с помощью объекта Chart.
СТРУКТУРА ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА
Был разработан пользовательский интерфейс программы для учета абитуриентов в вузе.
В качестве элементов управления для выбора функций использованы переключатели и кнопки. Структура пользовательского интерфейса представлена на рисунке 4.1.
Рисунок 4.1 – Структура пользовательского интерфейса
В таблице 4.1 представлено описание форм для работы с БД.
Таблица 4.1 – Структура проекта
Объект |
Назначение |
Form1.cs |
Форма для начала работы |
Form2.cs |
Форма для работы с меню программы |
Form3.cs |
Форма для работы с таблицами БД |
Form4.cs |
Форма для работы с вычисленными суммами баллов |
Form5.cs |
Форма для работы с меню для графиков и отчетов |
Form6.cs |
Форма для отображения отчета о количестве студентов |
Form7.cs |
Форма для отображения отчета о сумме баллов студентов |
Form8.cs |
Форма для отображения графика о количестве студентов |
Form9.cs |
Форма для отображения графика о среднем балле |
AboutBox1.cs |
Для отображения информации о назначении и разработчике |
Назначение элементов управления представлены в таблицах 4.2,4.5.
Таблица 4.2 – Назначение элементов управления формы Form1
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Кнопка |
button1 |
Приступить к работе |
Открыть форму Form2 для работы с меню программы |
Таблица 4.3 – Назначение элементов управления формы Form2
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Переключатель |
radioButton4 |
О программе |
Выбор пункта меню для открытия формы AboutBox1 для отображения данных о программе и разработчике |
Переключатель |
radioButton1 |
Работа с БД |
Выбор пункта меню для открытия формы Form3 для отображения данных для работы с таблицами БД |
Переключатель |
radioButton2 |
Вычисление суммы баллов |
Выбор пункта меню для открытия формы Form4 для отображения данных для работы с суммами баллов |
Переключатель |
radioButton3 |
Графики и отчеты |
Выбор пункта меню для открытия формы Form5 для отображения меню графиков и отчетов |
Кнопка |
button1 |
Открыть |
Дляоткрытияформ Form3, Form4, Form5, AboutBox1 |
Таблица 4.4 – Назначение элементов управления формы Form3
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Кнопка |
button1 |
Сохранить изменения |
Сохранить и обновить данные в таблицах БД |
Кнопка |
button2 |
Применить |
Применить фильтрацию данных |
Кнопка |
button3 |
Отмена |
Отменить фильтрацию данных |
Переключатель |
radioButton1 |
Специальность |
Выбрать условия сортировки |
Переключатель |
radioButton2 |
Факультет |
Выбрать условия сортировки |
Переключатель |
radioButton3 |
По возрастанию |
Выбрать условия сортировки |
Переключатель |
radioButton4 |
По убыванию |
Выбрать условия сортировки |
Кнопка |
button4 |
Применить |
Применить сортировку данных |
Кнопка |
button5 |
Отмена |
Применить сортировку данных |
Таблица 4.5 – Назначение элементов управления формы Form4
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Кнопка |
button1 |
Обновить |
Обновить данные в таблицах БД |
Кнопка |
button2 |
Применить |
Применить фильтрацию данных |
Кнопка |
button3 |
Отмена |
Отменить фильтрацию данных |
Таблица 4.5 – Назначение элементов управления формы Form4
Элемент управления |
Имя (идентификатор) |
Надпись |
Назначение |
Переключатель |
radioButton1 |
Отчет о количестве студентов |
Выбрать отчет |
Переключатель |
radioButton2 |
Отчет о сумме баллов студентов |
Выбрать отчет |
Переключатель |
radioButton3 |
Количество студентов |
Выбрать график |
Переключатель |
radioButton4 |
Средняя сумма баллов |
Выбрать график |
Кнопка |
Button1 |
Сформировать |
Открыть форму с отчетом |
Кнопка |
Button2 |
Построить |
Открыть форму с графиком |
Визуализация данных производится с помощью компонентов DataGridView.
Для сопровождения БД, которая состоит из взаимосвязанных таблиц, создана программа с интерфейсом, который обеспечивает отображение тех записей в подчиненной таблице (Студенты), которые соответствуют текущей записи в главной таблице (Вуз).
СТРУКТУРА ПРОГРАММЫ
На рисунке 5.1 представлена иерархическая структура программы, в таблице 5.1 – сведения о функциях, выполняемых обработчиком событий.
Рисунок 5.1 – Иерархическая структура программы
Таблица 5.1 – Состав и назначение программных модулей
Имя программного модуля |
Назначение |
Входные параметры |
Выходные параметры |
Вызываемые модули |
|||
Form1 |
|||||||
Button1_Click |
Для открытия формы для работы с меню |
privatevoid button1_Click(object sender, EventArgs e) { Form2 f2 = newForm2(); f2.Show(); } |
|||||
Form2 |
|||||||
Button2_Click |
Для открытия форм для работы с БД, данных о программе, для работы с отчетами и графиками, для работы вычисления баллов |
{ if (radioButton1.Checked == true) { Form3 f3 = newForm3(); f3.Show(); } elseif (radioButton2.Checked == true) { Form4 f4 = newForm4(); f4.Show(); } elseif (radioButton3.Checked == true) { Form5 f5 = newForm5(); f5.Show(); } elseif (radioButton4.Checked == true) { AboutBox1 A1 = newAboutBox1(); A1.Show(); } |
|||||
Form3 |
|||||||
Button 1_Click |
Для внесения изменений в файл БД и обновления данных таблиц |
Таблицы «Вуз», «Студенты» |
Таблицы «Вуз», «Студенты» |
privatevoid button1_Click(object sender, EventArgs e) { вузTableAdapter.Update(студентыDataSet.Вуз); студентыTableAdapter.Update(студентыDataSet.Студенты); вузTableAdapter.Fill(студентыDataSet.Вуз); студентыTableAdapter.Fill(студентыDataSet.Студенты); } |
|||
Button 2_Click |
Для фильтрации данных |
Таблица «Студенты» |
Таблица «Студенты» |
privatevoid button2_Click(object sender, EventArgs e) { string Znak = ""; int caseSwitch1 = comboBox2.SelectedIndex; switch (caseSwitch1) { case 0: Znak = ">"; break; case 1: Znak = "<"; break; case 2: Znak = "="; break; } int caseSwitch = comboBox1.SelectedIndex; switch (caseSwitch) { case 0: referenceBindingSource.Filter = "Математика" + Znak + "'" + textBox1.Text + "'"; break; case 1: referenceBindingSource.Filter = "Физика" + Znak + "'" + textBox1.Text + "'"; break; case 2: referenceBindingSource.Filter = "Сочинение" + Znak + "'" + textBox1.Text + "'"; break; } } |
|||
Button 3_Click |
Для отмены фильтрации |
privatevoid button3_Click(object sender, EventArgs e) { referenceBindingSource.RemoveFilter(); } |
|||||
Button 4_Click |
Для сортировки данных |
Таблица «Вуз» |
Таблица «Вуз» |
privatevoid button4_Click(object sender, EventArgs e) { if (radioButton1.Checked == true && radioButton3.Checked == true) { вузBindingSource.Sort = "Наименование ASC"; } elseif (radioButton1.Checked == true && radioButton4.Checked == true) { вузBindingSource.Sort = "Наименование DESC"; } elseif (radioButton2.Checked == true && radioButton4.Checked == true) { вузBindingSource.Sort = "Факультет DESC"; } elseif (radioButton2.Checked == true && radioButton3.Checked == true) { вузBindingSource.Sort = "Факультет ASC"; } } |
|||
Button 5_Click |
Для отмены сортировки |
Таблица «Вуз» |
Таблица «Вуз» |
privatevoid button5_Click(object sender, EventArgs e) { ВузBindingSource.RemoveSort(); } |
|||
Form4 |
|||||||
Button 1_Click |
Для фильтрации данных |
Таблица «Баллы» |
Таблица «Баллы» |
privatevoid button1_Click(object sender, EventArgs e) { string Znak = ""; int caseSwitch1 = comboBox2.SelectedIndex; switch (caseSwitch1) { case 0: Znak = ">"; break; case 1: Znak = "<"; break; case 2: Znak = "="; break; } int caseSwitch = comboBox1.SelectedIndex; switch (caseSwitch) { case 0: баллыBindingSource.Filter = "Факультет" + Znak + "'" + textBox1.Text + "'"; break; case 1: баллыBindingSource.Filter = "Наименование" + Znak + "'" + textBox1.Text + "'"; break; case 2: баллыBindingSource.Filter = "Сумма_баллов" + Znak + "'" + textBox1.Text + "'"; break; } } |
|||
Button 2_Click |
Для отмены фильтрации |
privatevoid button2_Click(object sender, EventArgs e) { баллыBindingSource.RemoveFilter(); } |
|||||
Form5 |
|||||||
Button 1_Click |
Для построения отчетов |
Запрос «Баллы», «Колвостудентов» |
privatevoid button1_Click(object sender, EventArgs e) { if (radioButton3.Checked == true) { Form8 f8 = newForm8(); f8.Show(); } elseif (radioButton4.Checked == true) { Form9 f9 = newForm9(); f9.Show(); } } |
||||
Button 2_Click |
Для формирования графиков |
Запрос «Диаграмма», «Србалл» |
privatevoid button2_Click(object sender, EventArgs e) { if (radioButton1.Checked == true) { Form6 f6 = newForm6(); f6.Show(); } elseif (radioButton2.Checked == true) { Form7 f7 = newForm7(); f7.Show(); } } |
Фрагмент схемы работы программы представлен в приложении А. Он представляет технологический процесс обработки данных. Все данные хранятся в файле Студенты.mdb. Для отображения данных о сумме баллов с группировкой по определенному полю используются запросы, описанные в разделе 3 настоящей пояснительной записки.
ОПИСАНИЕ ПРОГРАММЫ
Текст программы представлен в приложении Б.
Перечень файлов представлен на рисунке 6.1.
Рисунок 6.1 – Перечень файлов
Сведения об использованных компонентах и значениях их свойств, которые потребовались при создании программы, представлены в таблицах 6.1,6.5.
Таблица 6.1 - Свойства компонентов формы Form1
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Приступить к работе |
Font – Name\Size |
Microsoft Sans Serif\10 |
Text |
Приступить к работе |
||
Метка label1 |
Учет абитуриентов в вузе |
Font – Name\Size |
Microsoft Sans Serif\14 |
Text |
Учет абитуриентов в вузе |
Таблица 6.2 - Свойства компонентов формы Form2
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Открыть |
Font – Name\Size |
Microsoft Sans Serif\10 |
Text |
Приступить к работе |
||
Переключатель radioButton1 |
Работа с БД |
Text |
Работа с БД |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton2 |
Вычисление суммы баллов |
Text |
Вычисление суммы баллов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton3 |
Графики и отчеты |
Text |
Графики и отчеты |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton4 |
О программе |
Text |
О программе |
Font – Name\Size |
Microsoft Sans Serif\11 |
Таблица 6.3 - Свойства компонентов формы Form3
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Сохранить изменения |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сохранить изменения |
||
Источник данных, ВузBildingSourse |
- |
DataSource |
ВузDataSetBindingSource |
DataMember |
Вуз |
||
Name |
ВузBindingSource |
||
Источник данных ВузСтудентыBildingSourse |
- |
DataSource |
ВузDataSetBindingSource |
DataMember |
ВузСтуденты |
||
Name |
ВузСтудентыBindingSource |
||
Блок объединения groupBox1 |
- |
Text |
Фильтр |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox1 |
- |
Items |
Математика Физика Сочинение |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox2 |
- |
Items |
> < = |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Окно редактирование textBox1 |
- |
Font – Name\Size |
Microsoft Sans Serif\11 |
Кнопка button2 |
Применить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button3 |
Отмена |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Отмена |
||
Блок объединения groupBox2 |
- |
Text |
Сортировка |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton1 |
Факультет |
Text |
Факультет |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton2 |
Специальность |
Text |
Специальность |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton3 |
По возрастанию |
Text |
По возрастанию |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton4 |
По убыванию |
Text |
По убыванию |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button4 |
Применить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button5 |
Очистить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Таблица 6.4 - Свойства компонентов формы Form4
Компонент и его имя |
Надпись |
Свойство |
Значение |
Кнопка button1 |
Обновить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Обновить |
||
Источник данных, БаллыBildingSourse |
- - |
DataSource |
баллыDataSetBindingSource |
DataMember |
Баллы |
||
DataSource |
баллыDataSetBindingSource |
||
Блок объединения groupBox1 |
- |
Text |
Фильтр |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox1 |
- |
Items |
Факультет Специальность Сумма баллов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Выпадающий список comboBox2 |
- |
Items |
> < = |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Окно редактирование textBox1 |
- |
Font – Name\Size |
Microsoft Sans Serif\11 |
Кнопка button2 |
Применить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Применить |
||
Кнопка button3 |
Отмена |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Отмена |
Таблица 6.5 - Свойства компонентов формы Form5
Компонент и его имя |
Надпись |
Свойство |
Значение |
Блок объединения groupBox1 |
- |
Text |
Отчеты |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton1 |
Отчет о количестве студентов |
Text |
Отчет околичестве студентов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton2 |
Отчет о сумме баллов студентов |
Text |
Отчет о сумме баллов студентов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button1 |
Сформировать |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сформировать |
||
Блок объединения groupBox2 |
- |
Text |
Графики |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton3 |
Количество студентов |
Text |
Количество студентов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Переключатель radioButton4 |
Средняя сумма баллов |
Text |
Средняя сумма баллов |
Font – Name\Size |
Microsoft Sans Serif\11 |
||
Кнопка button2 |
Построить |
Font – Name\Size |
Microsoft Sans Serif\11 |
Text |
Сформировать |
Взаимодействие компонентов прикладной программы между собой и с файлами БД представлено на рисунке 6.2.
Рисунок 6.2 – Схема взаимодействия компонентов с таблицами БД
ТЕСТИРОВАНИЕ ПРОГРАММЫ
Для тестирования программы необходимо проделать все действия, которые будет проделывать пользователь.
Необходимо проверить сохранение обновлений, для этого необходимо:
добавить в БД сведения о факультете и специальности вуза и об абитуриентах (рисунок 7.1);
нажать кнопку «Сохранить изменения»;
перезапустить программу и проверить изменения.
Рисунок 7.1 –Добавление данных
После перезапуска программы добавленные данные сохранились, значит, сбоя в сохранении изменений нет.
Необходимо проверить работу фильтрации данных, для этого необходимо:
выбрать поле для фильтрации и необходимый знак для построения выражения, ввести параметр сортировки;
нажать кнопку «Применить».
После необходимых манипуляций в таблице должен отобразиться результат. Если результат верный, значит, сбоя в фильтрации данных нет (рисунок 7.2).
Рисунок 7.2 – Фильтрация данных
Необходимо проверить работу сортировки данных, для этого необходимо:
выбрать поле сортировки и параметр;
нажать кнопку «Применить».
После необходимых манипуляций в таблице должен отобразиться результат. Если результат верный, значит, сбоя в сортировке данных нет (рисунок 7.3).
Рисунок 7.3 – Сортировка данных
Также необходимо проверить вычисление сумму для этого необходимо:
перейти на форму «Остатки на конец месяца»;
проверить изменения (рисунок 7.4).
Рисунок 7.4 – Вычисление суммы баллов
Необходимо проверить работу построения отчетов:
выбрать тип отчета;
нажать кнопку «Сформировать».
После необходимых манипуляций на экране должна отобразиться форма с отчетом (рисунок 7.5).
Рисунок 7.5 – Форма с отчетом
Необходимо проверить работу построения графиков:
выбрать тип графика;
нажать кнопку «Построить».
После необходимых манипуляций на экране должна отобразиться форма с графиком (рисунок 7.6).
Рисунок 7.6 – Форма отчета
РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
8.1 Назначение системы
Данная программа предназначена для учета абитуриентов в вузе.
Программа позволяет пользователю работать с базой данных созданной в СУБД Microsoft Access. Программа реализует возможности: добавления, изменения, удаления информации в базе данных, а также возможности выбирать данные по указанным критериям.
Настоящее руководство предназначено для пользователей данного программного продукта и содержит описание действий, необходимых для обеспечения эффективной работы пользователей.
8.2 Подготовка к работе
Данный программный продукт реализован в среде Microsoft Visual Studio 2013 и Microsoft Access 2003. Если данных продуктов нет в пользовании, то их следует приобрести. После приобретения их следует установить на ПК пользователей, следуя всем необходимым инструкциям.
8.3 Требования к программно-аппаратному обеспечению
Работа пользователя с программой возможна при выполнении следующих требований к программно-аппаратному обеспечению рабочей станции пользователя.
Для использования Microsoft Visual Studio 2013 следующее оборудование:
компьютер и процессор: частота не ниже 1,6 ГГц;
оперативная память не менее 1 Гб;
место на жестком диске не менее 4 Гб;
операционная система: Microsoft Windows 7 и выше;
.exe;
.accdb;
Microsoft .NET Framework 4.6;
Дополнительные требования. Требуется обновление из статьи базы знаний KB2883200 (доступно в Центре обновления Windows).
Фактические требования и функциональность продукта могут отличаться в зависимости от системной конфигурации и операционной системы.
8.4 Работа с программным продуктом
Начало работы
Первое что требуется от пользователя запустить программный продукт на выполнение. Для этого нужно выбрать каталог, в котором находится файл. В списке папок последовательно дважды щелкнуть левой клавишей мыши на папке, содержащей файл Вуз.exe; откроется форма (рисунок 8.4.1). Далее для начала работы нужно нажать .
Рисунок 8.4.1 – Начальная форма
После появится форма для работы с меню программы. Чтобы перейти к нужной форме – выбрать пункт меню и нажать на кнопку (рисунок 8.4.2).
Рисунок 8.4.1 – Форма меню
8.4.2 О программе
Необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку .
После нажатия появится форма с информацией о программе и разработчике (рисунок 8.4.2)
Рисунок 8.4.2 – Информация о программе
8.4.3 Работа с БД
Необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку .
8.4.3.1 Операция 1 – ввод и сохранение новых данных. Для ввода дынных о номенклатуре необходимо кликнуть левой клавишей мыши по пустому полю таблицы. В поля необходимо ввести наименование специальность и из выпадающего списка выбрать наименование факультета (рисунок 8.4.3).
Рисунок 8.4.3 – Заполнение данных о номенклатуре
Далее в поля второй таблицы нужно ввести ФИО абитуриента и количество баллов по каждому предметуу (рисунок 8.4.4).
Рисунок 8.4.4 – Заполнение данных о приходе/расходе
Далее нужно сохранить введенные данные нажатием левой клавишей мыши на кнопку «Сохранить изменения».
8.4.3.2 Операция 2 – фильтрация данных. Для фильтрации данных необходимо в блоке «Фильтр» из всплывающего списка выбрать название поля, по которому будет осуществляться фильтрация и знак. В текстовом поле ввести значение (рисунок 8.4.5) и нажать левой клавишей мыши на кнопку .
Рисунок 8.4.5 – Выбор условий для фильтрации
Для отмены фильтра нажать левой клавишей мыши на кнопку «Отмена».
8.4.3.3 Операция 3 – сортировка данных. Для сортировки данных необходимо в блоке «Сортировка» выбрать название поля, по которому будет осуществляться сортировка и параметр (возрастание или убывание) (рисунок 8.4.6) и нажать левой клавишей мыши .
Рисунок 8.4.6 – Выбор параметров сортировки
Для отмены сортировки нажать левой клавишей мыши «Отмена».
8.4.4 Вычисление суммы баллов
Необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку . После нажатия появится форма с вычисленными суммами. На данной вкладке можно применить фильтр (см. пункт 8.4.3.2 Операция 2 – фильтрация данных).
8.4.5 Операция 1 – отчеты. Для формирования отчетов необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку . На открывшейся форме выбрать в блоке «Отчеты» который необходим (рисунок 8.4.7) и нажать левой клавишей мыши на .
Рисунок 8.4.7 – Выбор отчета
8.4.6 Операция 2 – графики. Для формирования отчетов необходимо кликнуть левой клавишей мыши по необходимому пункту меню и нажать кнопку . На открывшейся форме выбрать в блоке «Отчеты» который необходим (рисунок 8.4.8) и нажать левой клавишей мыши на .
Рисунок 8.4.8 – Выбор графика
Другие экранные формы представлены в Приложении В.Экранные формы.
ЗАКЛЮЧЕНИЕ
В ходе выполнения курсового проекта были получены и закреплены навыки программирования в среде Visual Studio 2013 C#.
Было создано Windows-приложение, которое позволяет проводить учет абитуриентов в вузе, с возможностью добавления, удаления и редактирования информации. Был разработан пользовательский интерфейс приложения.
Было разработано руководство пользователя.
Проведенное тестирование работы программы не выявило ошибок.
ЛИТЕРАТУРА
ГОСТ 19.401 – 78. ЕСПД. Текст программы. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1978
ГОСТ 19.505 – 79. ЕСПД. Руководство оператора. Требования к содержанию и оформлению. - М.: Изд-во стандартов, 1977
ГОСТ 19.701 - 90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М.: Изд-во стандартов. – 1990
Руководство по программированию на C# [Электронный ресурс] – Заголовок с экрана. – Режим доступа: http://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx.
Требования к системе Visual Studio 2013 [Электронный ресурс] – Заголовок с экрана. – Режим доступа: https://www.visualstudio.com/ru-ru/productinfo/vs2013-sysrequirements-vs.
Приложение А. Схема программы
Рисунок А.1- Фрагмент схемы работы программы
Приложение Б. Текст программы
Form1
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 WindowsFormsApplication1
{
publicpartialclassForm1 : Form
{
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
Form2 f2 = newForm2();
f2.Show();
}
}
}
Form2
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 WindowsFormsApplication1
{
publicpartialclassForm2 : Form
{
public Form2()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
Form3 f3 = newForm3();
f3.Show();
}
elseif (radioButton2.Checked == true)
{
Form4 f4 = newForm4();
f4.Show();
}
elseif (radioButton3.Checked == true)
{
Form5 f5 = newForm5();
f5.Show();
}
elseif (radioButton4.Checked == true)
{
AboutBox1 A1 = newAboutBox1();
A1.Show();
}
}
}
}
Form3
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 WindowsFormsApplication1
{
publicpartialclassForm3 : Form
{
public Form3()
{
InitializeComponent();
}
privatevoid Form3_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "студентыDataSet.Студенты". При необходимости она может быть перемещена или удалена.
this.студентыTableAdapter.Fill(this.студентыDataSet.Студенты);
// TODO: данная строка кода позволяет загрузить данные в таблицу "студентыDataSet.Вуз". При необходимости она может быть перемещена или удалена.
this.вузTableAdapter.Fill(this.студентыDataSet.Вуз);
}
privatevoid button1_Click(object sender, EventArgs e)
{
вузTableAdapter.Update(студентыDataSet.Вуз);
студентыTableAdapter.Update(студентыDataSet.Студенты);
вузTableAdapter.Fill(студентыDataSet.Вуз);
студентыTableAdapter.Fill(студентыDataSet.Студенты);
}
privatevoid button4_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true && radioButton3.Checked == true)
{ вузBindingSource.Sort = "Наименование ASC"; }
elseif (radioButton1.Checked == true && radioButton4.Checked == true)
{
вузBindingSource.Sort = "Наименование DESC";
}
elseif (radioButton2.Checked == true && radioButton4.Checked == true)
{
вузBindingSource.Sort = "Факультет DESC";
}
elseif (radioButton2.Checked == true && radioButton3.Checked == true)
{
вузBindingSource.Sort = "Факультет ASC";
}
}
privatevoid button5_Click(object sender, EventArgs e)
{
вузBindingSource.RemoveSort();
}
privatevoid button2_Click(object sender, EventArgs e)
{
string Znak = "";
int caseSwitch1 = comboBox2.SelectedIndex;
switch (caseSwitch1)
{
case 0:
Znak = ">";
break;
case 1:
Znak = "<";
break;
case 2:
Znak = "=";
break;
}
int caseSwitch = comboBox1.SelectedIndex;
switch (caseSwitch)
{
case 0:
referenceBindingSource.Filter = "Математика" + Znak + "'" + textBox1.Text + "'";
break;
case 1:
referenceBindingSource.Filter = "Физика" + Znak + "'" + textBox1.Text + "'";
break;
case 2:
referenceBindingSource.Filter = "Сочинение" + Znak + "'" + textBox1.Text + "'";
break;
}
}
privatevoid button3_Click(object sender, EventArgs e)
{
referenceBindingSource.RemoveFilter();
}
}
}
Form4
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 WindowsFormsApplication1
{
publicpartialclassForm4 : Form
{
public Form4()
{
InitializeComponent();
}
privatevoid Form4_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "студентыDataSet.Баллы". При необходимости она может быть перемещена или удалена.
this.баллыTableAdapter.Fill(this.студентыDataSet.Баллы);
}
privatevoid button8_Click(object sender, EventArgs e)
{
баллыTableAdapter.Fill(студентыDataSet.Баллы);
}
privatevoid button1_Click(object sender, EventArgs e)
{
string Znak = "";
int caseSwitch1 = comboBox2.SelectedIndex;
switch (caseSwitch1)
{
case 0:
Znak = ">";
break;
case 1:
Znak = "<";
break;
case 2:
Znak = "=";
break;
}
int caseSwitch = comboBox1.SelectedIndex;
switch (caseSwitch)
{
case 0:
баллыBindingSource.Filter = "Факультет" + Znak + "'" + textBox1.Text + "'";
break;
case 1:
баллыBindingSource.Filter = "Наименование" + Znak + "'" + textBox1.Text + "'";
break;
case 2:
баллыBindingSource.Filter = "Сумма_баллов" + Znak + "'" + textBox1.Text + "'";
break;
}
}
privatevoid button2_Click(object sender, EventArgs e)
{
баллыBindingSource.RemoveFilter();
}
}
}
Form5
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 WindowsFormsApplication1
{
publicpartialclassForm5 : Form
{
public Form5()
{
InitializeComponent();
}
privatevoid button2_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
Form6 f6 = newForm6();
f6.Show();
}
elseif (radioButton2.Checked == true)
{
Form7 f7 = newForm7();
f7.Show();
}
}
privatevoid button1_Click(object sender, EventArgs e)
{
if (radioButton3.Checked == true)
{
Form8 f8 = newForm8();
f8.Show();
}
elseif (radioButton4.Checked == true)
{
Form9 f9 = newForm9();
f9.Show();
}
}
}
}
Form6
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 WindowsFormsApplication1
{
publicpartialclassForm6 : Form
{
public Form6()
{
InitializeComponent();
}
privatevoid Form6_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "СтудентыDataSet.Баллы". При необходимости она может быть перемещена или удалена.
this.БаллыTableAdapter.Fill(this.СтудентыDataSet.Баллы);
// TODO: данная строка кода позволяет загрузить данные в таблицу "СтудентыDataSet.Колвостудентов". При необходимости она может быть перемещена или удалена.
this.КолвостудентовTableAdapter.Fill(this.СтудентыDataSet.Колвостудентов);
this.reportViewer1.RefreshReport();
}
}
}
Form7
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 WindowsFormsApplication1
{
publicpartialclassForm7 : Form
{
public Form7()
{
InitializeComponent();
}
privatevoid Form7_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "СтудентыDataSet.Баллы". При необходимости она может быть перемещена или удалена.
this.БаллыTableAdapter.Fill(this.СтудентыDataSet.Баллы);
this.reportViewer1.RefreshReport();
}
}
}
Form8
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 WindowsFormsApplication1
{
publicpartialclassForm8 : Form
{
public Form8()
{
InitializeComponent();
}
privatevoid Form8_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "студентыDataSet.Колвостудентов". При необходимости она может быть перемещена или удалена.
this.колвостудентовTableAdapter.Fill(this.студентыDataSet.Колвостудентов);
}
}
}
Form9
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 WindowsFormsApplication1
{
publicpartialclassForm9 : Form
{
public Form9()
{
InitializeComponent();
}
privatevoid Form9_Load(object sender, EventArgs e)
{
// TODO: данная строка кода позволяет загрузить данные в таблицу "студентыDataSet.Србалл". При необходимости она может быть перемещена или удалена.
this.србаллTableAdapter.Fill(this.студентыDataSet.Србалл);
}
}
}
ПриложениеВ. Экранныеформы
Рисунок В.1 – Форма работы с БД (Form3)
Рисунок В.2 – Форма просмотра сумм баллов (Form4)
Рисунок В.3 – Форма меню (Form5)
Рисунок В.4 – Форма отчета (Form6)
Рисунок В.5 – Форма графика (Form8)
Рисунок В.6 – Форма графика (Form9)