В начале 2016 года делал несколько лаб и пару курсовых на C#, в которых нужно было написать достаточно простую программу, работающую с базой данных. Программа хранит в базе информацию по заданной предметной области, выполняет запросы, строит отчеты, диаграммы.
На неделе нужно было сделать два других варианта курсовых. Поэтому решил описать процесс создания программы, чтобы и следующие работы выполнить быстрее, и описать алгоритм и нюансы работы с базой MS Access на C#. Может быть этот материал будет полезен и Вам. Работы делал в MS Visual Studio 2010, т.к. в наших ВУЗах свежий актуальный софт редкость (да и у студентов тоже). Возможно некоторых проблем не возникнет в более новых версиях студии.
Так выглядит общее задание на разработку программы:
Задание
Функции программы:
— вывод меню функций, выполняемых программой,
— ввод, просмотр, редактирование данных в базе данных (БД), содержащей не менее двух взаимосвязанных таблиц,
— вычисление значений полей в запросах,
Word для начинающих. Работа с таблицей
— дополнение БД, удаление данных из БД,
— отбор (фильтрация) данных по условию, задаваемому пользователем,
— сортировка данных не менее чем по двум полям,
— формирование не менее двух отчётов по данным из БД (с группировкой, вычисляемыми полями и вычислением итоговых данных), которые могут быть выведены на принтер,
— построение на основе информации из БД не менее двух графиков (гистограммы, полигона или круговой диаграммы), характеризующих заданную предметную область,
— вывод формы со сведениями о программе (назначение, разработчик).
И конкретное задание первого варианта:
Структура данных 1.
Абитуриенты по факультетам и специальностям
Фамилия | Экзаменационные оценки (Математика | Физика | Сочинение) | Сумма баллов
Специальности
Код специальности | Наименование | Факультет
Примечание: выполнить сортировку по убыванию суммы баллов с группировкой по факультетам и специальностям, вычислить количество абитуриентов по факультетам, специальностям, по вузу.
Варианты выбора пользовательских функций: Кнопки
Вариант диаграммы: Столбиковая
Полное задание на курсовой со всеми вариантами заданий: PPP_KP_2013.
Выполнение
По началу я делал все последовательно — создавал проект в студии, накидывал интерфейс, делал таблицы в Access, реализовывал работу с ними в приложении, затем переходил к созданию запросов в Access и работе с ними в приложении, продумывал какие отчеты, какие диаграммы строить на основе имеющихся данных. Так было проще втянуться в процесс и вспомнить некоторые подзабытые моменты работы со средой и курсовым. Но конечно правильнее сначала проанализировать вариант задания, после чего создать и связать таблицы, продумать какие запросы, отчеты и диаграммы построить, заполнить таблицы данными. И только после этого приступать к написанию программы.
По ТЗ нужно не менее двух таблиц, так что у меня для сделанных вариантов получалось по три-четрые таблицы — в зависимости от того, какие сущности можно выделить на основе таблиц задания.
Консолидация (сборка) данных из нескольких таблиц в Excel
Не смотря на то, что в MS Access можно давать имена объектам с пробелом. Делать этого не стоит, т.к. когда я дошел до создания отчетов с помощью компонента ReportViewer, возникли проблемы с полями в названии которых был пробел — имя поля обрезалось до первого слова, и поэтому не смог их использовать в отчетах. Возможно, что проблема есть только в Visual Studio 2010, и в более свежих версиях исправлена — не проверял. Когда с ней столкнулся, решения не нашел, и переделывал все под имена с символом подчеркивания вместо пробела.
Таблицы и формы
Итак проанализировал задание, создал таблицы и связи, заполнил их данными, создал запросы в MS Access. Для первого варианта у меня вышла следующая схема:
Создал интерфейс главной формы в соответствии с вариантом задания (могут быть кнопки, метки, меню, переключатели, вкладки), и остальные 7 форм. Подробно описывать все шаги нет смысла, т.к. код отображения форм, можно взять из любого готового проекта. А вот некоторые действия в визуальном редакторе Visual Studio стоит запомнить.
После добавления первого компонента DataGridView на форму, можно добавить источник данных проекта. В окне ниже обычно отвечал «Да», хотя это не принципиально.
Просто в этом случае нужно помнить, что файл базы с актуальными данными постоянно копируется в каталог с exe-файлом из каталога проекта.
Для выполнения задания по сортировке и фильтрации данных интерфейс сделал со вкладками, где на одной вкладке полноценно реализована сортировка и фильтрация данных, на другой связанные таблицы.
Для расположения элемента TabControl во всю ширину/высоту родительского окна необходимо задать свойство Dock.
Согласно моей схеме базы данных между Факультетами и Специальностями связь один-ко-многим (не наоборот!) поэтому сначала выбрал отображение информации о факультетах:
Затем сделал связь факультета со специальностями:
Связь один-ко-многим между Специальностями и Абитуриентами реализовал в приложении:
С помощью пункта «Правка столбцов» прячем ненужные столбцы, задаем ширину и меняем заголовки видимых столбцов, добавляем нужные столбцы, указываем формат вывода данных с помощью свойства DefaultCellStyle (денежный, числовой, даты).
В данном варианте на второй вкладке решил отображать данные об абитуриентах, поскольку они наиболее интересны. Но видимо из-за связи на первой вкладке Абитуриентов со Специальностями , поле Код таблицы Абитуриенты не получилось скрыть — оно просто не реагировало на задание свойства Visible в false. Поматерился на эту фичу и задал минимально возможную ширину в 2px для этого поля.
Далее мне понадобилось вычисляемое поле «Сумма баллов». Его добавил непосредственно в наборе данных DataSet. Для таблицы Абитуриенты добавил новый столбец и определил его свойство Expression: Математика + Физика + Сочинение
Чтобы отобразить в Абитуриентах вместо id значение поля из связанной таблицы Специальности нужно добавить «Непривязанный столбец» в интерфейсе правки столбцов элемента DataGridView, заодно выбрав его тип ComboBox:
Чтобы поле выглядело как обычное текстовое нужно поменять DisplayStyle на Nothing. В списке выбора для этого поля нужно отобразить все данные из таблицы Специальности, поэтому в DataSourse выбираем её непосредственно из набора данных DataSet. Далее настраиваем связь данных: в DisplayMember выбираем поле с названиями для отображения (Специальности.Наименование), в ValueMember — поле с id (Специальности.Код), в DataPropertyName значение id соответствующее ValueMember (Абитуриенты.Специальность).
Сортировка и фильтрация полностью делаются с помощью кода и копируются из моих готовых проектов.
Чтобы связанные таблицы корректно работали на событие CellEndEdit для всех DataGridView нужно повесить код аналогичный этому:
Источник: dioved.ru
Индивидуальные задания. Составить программу для вычисления значения функции в зависимости от поставленного условия, согласно вашему варианту (таблица 2.1).
Составить программу для вычисления значения функции в зависимости от поставленного условия, согласно вашему варианту (таблица 2.1).
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. При выполнении задания предусмотреть выбор вида функции f(x): cos (x), x 3 или e x .
Таблица 2.1 — Варианты индивидуальных заданий
№ варианта | Вид функции |
1. | rez = ![]() |
2. | rez= ![]() |
3. | rez = ![]() |
4. | rez = ![]() |
5. | rez= ![]() |
6. | rez = ![]() |
7. | rez = ![]() |
8. | rez = ![]() |
9. | rez = ![]() |
10. | rez = ![]() |
11. | rez = ![]() ![]() |
12. | rez = ![]() |
13. | rez = ![]() |
Контрольные вопросы
1. Перечислить действия, реализуемые при выполнении условного оператора if.
2. Какие действия выполняются оператором break?
3. Как организовать разветвление вычислений:
4. Составить последовательность операторов для вычисления величины z =-10, если х ; z = 0, если — 10; z= 10, если х>=10.
5. Зачем необходимо при отладке программы тестировать все ветви алгоритма?
6. Придумайте свой пример использования оператора switch и объясните его работу.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Цель работы
Целью лабораторной работы является получение практических навыков применения в графическом интерфейсе пользователя шаблона проектирования Model-View-Controller.
Темы для предварительного изучения
• Использование ООП в Си++ • Создание графического интерфейса пользователя • Шаблон проектирования Model-View-Controller
Задание к выполнению
Составить программу, в которой будет реализована работа с таблицей по варианту. Для работы пользователя с таблицей будет использоваться графический интерфейс. При реализации интерфейса должен быть реализован подход Model-View-Controller. Рекомендуется использовать среду Qt.
Варианты индивидуальных заданий
Допускается вариант студента при условии его уникальности и достаточной сложности.
Вариант 1
Некоторые виды антилоп | |||
Название | Группа | Место обитания | Численность популяции |
Джейран | A | Азия | 30000 |
Гну | B | Африка | 560000 |
Бейза | H | Африка | 2500 |
Групи: А — настоящие антилопы, B — коровьи антилопы, H — лошадиные антилопи
Вариант 2
Фирмы — производители СКБД | |||
Фирма | Количество. продуктов | Годовой объем продажи ($) | Часть рынка (%) |
Oracle | 1 | 2488000000 | 31.1 |
IBM | 3 | 2392000000 | 29.9 |
Microsoft | 2 | 1048000000 | 13.1 |
Примечание: по данным Gartner Group за 1999г
Вариант 3
Отдел кадров | |||
Фамилия | Инициалы | Год рожд | Оклад |
Иванов | И.И. | 1975 | 517.50 |
Петренко | П.П. | 1956 | 219.10 |
Паниковский | М.С. | 1967 | 300.00 |
Примечание: оклад установлен по состоянию на 1 января 2000 года
Вариант 4
Ведомость деталей | |||
Наименование | Тип | Количество | Вес 1 детали (г) |
Фланец | З | 3 | 450 |
Переходник | П | 8 | 74 |
Станина | О | 1 | 117050 |
Примечание: принято такое кодирование типов: О — оригиналь- | |||
ная, П — покупная, З — заимствованная |
Вариант 5
Характеристики ПЭВМ | ||
Процессор | Частота (Mgz) RAM (Mb) | Тип |
Pentium-III | 233 | C |
AMD-К6 | 166 | C |
PowerPC-620 | 2000 | R |
Тип: C — CISC-процессор, R — RISC-процессор |
Вариант 6
Каталог библиотеки | |||
Автор книги | Название | Год выпуска | Группа |
Сенкевич | Потоп | 1978 | Х |
Ландау | Механика | 1989 | У |
Дойль | Сумчатые | 1990 | C |
Примечание: Х — художественная литература; У — учебная ли- | |||
тература; С — справочная литература |
Вариант 7
Ведомость комплектующих | |||
Обозначение | Тип | Номинал | Количество |
RT-11-24 | R | 100000 | 12 |
RT-11-24 | R | 50000 | 10 |
CGU-12K | C | 17.5 | 3 |
Примечание: R — резистор; C — конденсатор |
Вариант 8
Проекты поиска внеземных сигналов | |||
Год | Научный руководитель | Диаметр антенны (м) | Рабочая частота (МГц) |
1960 | Дрейк | 26 | 1420 |
1970 | Троицкий | 14 | 1875 |
1978 | Хоровиц | 300 | 1665 |
Примечание: наблюдались объекты от 2 звезд до нескольких галактик |
Вариант 9
Офисные пакеты | |||
Наименование | Производитель | Количество сост.частей | Цена ($) |
Office | Microsoft | 4 | 870 |
SmartSute | Lotus | 5 | 1020 |
StarOffice | Sun | 4 | 9 |
Примечание: возможно бесплатно получить продукт StarOffice через Internet
Вариант 10
Сельскохозяйственные культуры | |||
Наименование | Тип | Посевная площадь (га) | Урожайность (ц/га) |
Соя | Б | 13000 | 45 |
Чумиза | З | 8000 | 17 |
Рис | З | 25650 | 24 |
Примечание: З — зерновые, Б — бобовые |
Вариант 11
Ведомость спортивних состязаний | |||
Фамилия участника | Код команды | Количество балов | Место в итоге |
Баландин | С | 123.7 | 2 |
Шишков | Ш | 79.98 | 3 |
Кравченко | Д | 134.8 | 1 |
Примечание: Д — «Динамо», С — «Спартак», Ш — «Шахтер» |
Вариант 12
Ведомость общественного транспорта | |||
Вид транспорта | № маршрута | Протяженность маршрута (км) | Время в дороге (мин) |
Тр | 12 | 27.55 | 75 |
Т-с | 17 | 13.6 | 57 |
А | 12а | 57.3 | 117 |
Примечание: Тр — трамвай, Тс — троллейбус, А — автобус |
Вариант 13
Приблизительное количество звезд разных спектральных классов в Галактике | |||
Спектральный класс | Приблизительная масса (отн.Солнца) | Часть % | Численность |
O | 32 | 0.00002 | 55000 |
F | 1.25 | 2.9 | 12000000000 |
M | 0.2 | 73.2 | 293000000000 |
Примечание: не показаны данные для классов: B, A, G, K
Вариант 14
Время выполнения некоторых программ, которые применяют параллельные алгоритмы
Название прграм- | Количество строк | Время исп. на SGI Callenge | Время исп. на SGI Indy (cек) |
мы | кода | (cек) | |
OCEAN | 1917 | 8.70 | 18.2 |
DYFESM | 3386 | 6.95 | 22 |
TRFD | 417 | 1.05 | 2.98 |
Примечание: SGI Callenge — ЦП R1000 196 MHz, 1.024 MB RAM SGI Indy — ЦП MIPS R4600 134 MHz, 64 MB RAM
Вариант 15
Конфигурация програмных средств информационных систем | ||||
Операционная си- | СУБД | Мин.объем внеш- | Мин.объем опера- | Приблизительная цена |
стема | ней памяти (MB) | тивной памяти (MB | ($) | |
OS/2 | DB2 | 130 | 22 | 3343 |
Windows/NT | SQLServer | 230 | 24 | 2685 |
SCO/Unix | Oracle | 110 | 48 | 3745 |
Примечание: принималась цена лицензии на 8 пользователей
Вариант 16
Сельскохозяйственные предприятия | |||
Название | Вид собственности | Площадь земли (га) | Кол. работников |
Заря | Д | 300 | 120 |
Росинка | К | 174 | 27 |
Петренко | Ч | 56 | 6 |
Вид собственности: Д — государственная, Ч — частная, К — кооперативнfz |
Вариант 17
Прайс-лист | |||
Наименование товара | Тип товара | Цена за 1 шт (грн) | Минимальное количество в пар- |
тии | |||
Папка | К | 4.75 | 4 |
Бумага | К | 13.90 | 10 |
Калькулятор | О | 411.00 | 1 |
Примечание: К — канцтовары, О — оргтехника
Вариант 18
Вязкость металлов в жидком состоянии | |||
Вещество | Атомный номер | Температура (град.С) | Вязкость (кг/м*сек) |
Алюминий | 13 | 700 | 2.90 |
Висмут | 83 | 304 | 1.65 |
Свинец | 82 | 441 | 2.11 |
Примечание: данные даны для температуры плавления
Вариант 19
Коэффициенты теплопроводимости материаллов
Вещество | Тип | Влажность (%) | Коэффициент |
Алюминий | М | 0-100 | 209.3 |
Стекловата | Т | 0-100 | 0.035 |
Глина | Д | 15-20 | 0.73 |
Примечание: М — металлы, Т — термоизоляционные материалы, Д — другие материалы
Вариант 20
Скорость звука в жидкостях | |||
Вещество | Тип | Температура (град.С) | Скорость (м/сек) |
Анилин | Ч | 20 | 1656 |
Ртуть | Ч | 20 | 1451 |
Кедровое | М | 29 | 1406 |
Тип жидкости: Ч — чистое вещество, М — масло
Вариант 21
Температура перехода веществ в сверхпроводниковое состояние
Вещество | Тип | Температура |
Zn | М | 0.8-0.8 |
Pb-Au | П | 2.0-7.3 |
NbC | С | 10.1-10.5 |
Тип вещества: М — металл, П — сплав, С — соединение
Источник: studfile.net