Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Разработка программы учета абитуриентов

Тип Реферат
Предмет Информатика
Просмотров
821
Размер файла
0.92 Кб
Поделиться

Ознакомительный фрагмент работы:

Разработка программы учета абитуриентов

СОДЕРЖАНИЕ

ВВЕДЕНИЕ_ 4

1. Постановка задачи и исходные данные_ 6

2. Состав и структура данных_ 7

3. МЕТОДЫ РЕШЕНИЯ ЗАДАЧИ__________________________________10

4. Структура пользовательского интерфейса_ 13

5. Структура программы_ 15

6. Описание программы_ 17

7. Тестирование программы, примеры результатов работы программы_ 18

8. Руководство пользователя_ 21

заключение_ 22

Литература_ 23

ПРИЛОЖЕНИЕ А СХЕМА ДАННЫХ_____________________________________24

ПРИЛОЖЕНИЕ Б СХЕМА РАБОТЫ ПРОГРАММЫ________________________26

ПРИЛОЖЕНИЕ В ТЕКСТ ПРОГРАММЫ_________________________________ 30

ПРИЛОЖЕНИЕ Г ПРИМЕРЫ ЭКРАННЫХ ФОРМ ДИАГРАММ И ОТЧЕТОВ____37

ИзмЛист№ докум.Подп.Дата
РазработалСкрягина Ю.С.

Программа учета реализации товаров.

Пояснительная записка

ЛитерМассаМасштаб
ПроверилКузьмин А. С.
Лист 3Листов 38
Н. контр.Курсовой проект

ПГТА,

группа 05Э1в

Утв.

ВВЕДЕНИЕ

Эффективное управление предприятием в современных условиях невозможно без использования компьютерных технологий. Правильный выбор программного продукта и фирмы-разработчика - это первый и определяющий этап автоматизации бухгалтерского учета. В настоящее время проблема выбора информационной системы (ИС) из специфической задачи превращается в стандартную процедуру. В этом смысле российские предприятия сильно уступают зарубежным конкурентам. Иностранные предприятия, как правило, имеют опыт модернизации и внедрения не одного поколения ИС. В развитых западных странах происходит смена уже четвертого поколения ИС. На российских предприятиях зачастую используют системы первого или второго поколения.

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

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

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

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

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

1. Постановка задачи и исходные данные

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

Программа должна содержать не менее 2-х таблиц и содержать связи между таблицами.

Также, программа должна содержать минимум два отчета и два графика.

По заданию варианта функции управления реализованы с помощью меток.

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

Формы представляют собой как обычные формы ввода данных, так и формы вывода отчета и построения диаграммы.

Функциональность приложения обеспечивается наличием меток и кнопок управления.

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


2. Состав и структура данных

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

База данных состоит из 2 таблиц в формате Paradox 7:

· abiturients – содержит данные об абитуриентах и оценках ими полученных.

· specialities – содержит данные о специальностях в соответствии с вариантом задания.

Типы данных, используемые в программе данного курсового проекта, в Paradox 7 следующие:

· + - тип «автоинкремент». Целое число типа SmallInt, которое автоматически увеличивается на 1; * означает, что данное поле является первичным ключом таблицы;

· A – (ALPHA) строковый тип данных, за которым в поле SIZE указывается количество символов допустимых в строке;

· S – (SHORT) короткое целое.

Структура таблицы abiturients (см. рис. 1):

Рисунок 1 – Структура таблицы abiturients

· A_id – автоинкремент – ключевое поле – код абитуриента;

· A_surname – строка (до 25 символов в длину) – фамилия абитуриента.

· A_math – целое число – оценка по математике.

· A_physic – целое число – оценка по физике.

· A_composition – целое число – оценка по сочинению.

· A_s_id – целое число – поле связывает абитуриента со специальностью, куда он решил поступать и хранит код специальности.

Структура таблицы specialities (см. рис. 2):

Рисунок 2 – Структура таблицы specialities

· S_id – автоинкремент – ключевое поле.

· S_code – строка (до 10 символов) – код специальности.

· S_name – строка (до 30 символов) – наименование специальности.

· S_faculty – alpha (до 30 символов) – факультет.

Таблицы связаны между собой отношением типа «один-ко-многим». Связь таблиц устанавливается программно.

Программа реализует связь «один-ко-многим», поскольку рассматривает связь как “на одну специальность поступает много студентов”.

Также связь можно было реализовать и как «один студент поступает только на одну специальность», т.е. «один-к-одной».

В таблице abiturients создан вторичный индекс по полю A_s_id. По этому полю осуществляется связь с таблицей specialities (см. рис. 3).

В таблице specialities создан вторичный индекс по полям S_name, S_faculty. Он используется при сортировке данных.

Рисунок 3 – Схема структуры базы данных
3. Методы решения задачи

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

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

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

В программе нет никаких связей заданных по умолчанию. Вместо этого на форме находится DBLookupComboBox, который связал поля s_id и a_s_id и в то же время ссылается на поле s_id. Если эти поля связать между собой в конструкторе связей, база данных будет выдавать ошибку, поскольку BDE полагает, что поле s_id связано само с собой. А если не связать, то программа не будет отображать отдельно записи абитуриентов по разным специальностям, а будет отображать все подряд. Программой обрабатываются два события связанные с DBLookupComboBox. Это onEnter и onCloseUp.

Когда пользователь начинает выбор специальности из списка, то происходит событие onEnter, программа выполняет программный разрыв связи между таблицами, и поэтому во время раскрытия списка в таблицах сетки отображаются все записи абитуриентов. Зато, благодаря отсутствию связи можно выбрать любую специальность из списка, а не только ту, абитуриенты которой отображаются в данный момент на экране (см. рис. 4).

Рисунок 4. Начало выбора специальности из списка

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

Основной функционал приложения реализован с помощью sql запросов:

1) selects.s_code, count (a.a_id) totalfromabiturientsa, specialitiesswherea.a_s_id=s.s_idgroupbys.s_id,s_code – считает сколько абитуриентов поступает на каждую специальность.

2) Selecta.a_surname, sum(a_math+a_physic+a_composition) summa,s.s_code,s.s_facultyfromabiturientsa, specialitiesswherea.a_s_id=s.s_idgroupbys_code,s_faculty,a_surnameorderbysummades – этот запрос выполняет сортировку абитуриентов по убыванию суммы баллов с группировкой по факультетам и специальностям.

Рисунок 5. Выбрана специальность code2

4. Структура пользовательского интерфейса

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

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

Две формы выделены на отчеты.

Диаграммы строятся и выводятся в отчетах и располагаются на тех же формах.

Четвертая форма – AboutBox – предоставляет сведения о разработчике программы.


Рисунок 6. Структура пользовательского интерфейса.

Таблица 1. Назначение элементов управления главной формы (a_f)

Элемент управленияИмя (идентификатор)НадписьНазначение, имя процедуры
МеткаLabel3Выполнить SQL запрос

Считывает текст, введенный в поле редактирования, записывает его как sql выражение и выполняет.

Label3Click;

МеткаLabel4Фильтровать

Считывает текст, введенный в поле редактирования, записывает его как условие фильтрования. Меняет фильтр у таблицы.

Label4Click;

СеткаDBGrid2(Данные БД)

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

DBGrid2TitleClick

Селектор выбора из базы данныхDBLookupComboBox1(Данные БД)

Обрабатывает выбор данных из списка. Подробнее - смотреть раздел 3.

DBLookupComboBox1CloseUp;

DBLookupComboBox1Enter;

Группа радиокнопокRadioGroup1ОтчетОпределяет, как из кнопок связанных с выбором условия фильтрации выбрана и в зависимости от этого выбирается условие фильтрации. Сама процедура фильтрации выполняется при нажатии метки Label4.
Поле вводаEdit2(Текст SQL запроса)В это поле вводится текст sql запроса. После нажатия метки Label3 он выполнится, если не было ошибок.
СеткаDBGrid3(Данные запросов)В этой сетке выводятся результаты всех непредопределенных sql запросов.
СеткаDBGrid1(Данные запросов)Работает с таблицей специальностей.
МеткаLabel6Отчет

Выводит детализированный отчет.

Label6Click

МеткаLabel8Выход

Завершает работу программы, сохраняя измененные таблицы, если они действительно были изменены.

Label8Click

МеткаLabel9Отчет2

Выводит отчет с отсортированными данными.

Label9Click

МеткаLabel7О программе…

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

Label7Click

Навигатор базы данныхDBNavigator1(управление таблицей базы данных)Управление данными в таблице специальностей.
Навигатор базы данныхDBNavigator2(управление таблицей базы данных)Управление данными в таблице абитуриентов.
КнопкаButton1Количество по специальностям

Запускает процедуру вывода количества абитуриентов по каждой специальности. Реализуется с помощью выполнения sql запроса с выводом результата в сетке DBGrid3.

Button1Click

Таблица 2. Назначение элементов управления формы (AboutBox)

Элемент управленияИмя (идентификатор)НадписьНазначение, имя процедуры
КнопкаOKButtonOKЗакрывает форму «О программе»

5. Структура программы


Рисунок 6. Иерархическая модель программы.

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

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

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

6. Описание программы

Разработанная программа предназначена для ведения базы данных типа Paradox для учета движения товаров. Она содержит 2 связанных таблиц, 4 формы и один модуль данных. Все компоненты связанные с базой данных собраны в одном модуле данных DM. Текст модуля находится в файле dm_u.pas. Полный текст программы находится в приложении.

Перечень файлов проекта:

a.dcu

a.dfm

a.pas

a_about.dcu

a_about.dfm

a_about.pas

a_p.cfg

a_p.dof

a_p.dpr

a_p.res

a_r.dcu

a_r.dfm

a_r.pas

a_r2.dcu

a_r2.dfm

a_r2.pas

dm_u.dcu

dm_u.dfm

dm_u.dti

dm_u.pas


Рисунок 8 – схема взаимодействия компонентов с файлами БД

7. Тестирование программы

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

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

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

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

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

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

Отладчик, однако же, может иметь невероятное значение, и его обязательно надо включить в свой набор средств отладки.

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

· AddBreakpoints – эта опция позволяет просмотреть все контрольные точки и при необходимости удалить, переместить любую контрольную точку или задать условия ее работы;

· StepOver – выполнение программы по шагам без захода в процедуры и функции;

· TraceInto – выполнение программы по шагам с заходом в процедуры и функции;

· TracetoNextSourceLine – пошаговая отладка по строкам программы;

· RuntoCursor – выполнение программы до строки, на которой находится курсор.

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


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

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

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

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

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

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

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

Фильтрация записей выполняется по фамилиям и по оценке по физике. Для этого надо указать тип фильтрации, ввести условие фильтрации и нажать метку «Фильтрация». Строковые данные вводятся в апострофах. Результат фильтрации будет виден в сетке 2.

Если щелкнуть мышкой по названию поля в сетке абитуриентов, то в сетке 3 находящейся с правой стороны выведутся абитуриенты, отсортированные по данному полю.

Под элементами фильтрации находится длинное текстовое поле для ввода произвольных sql запросов. Чтобы выполнить введенный запрос надо щелкнуть по метке «Выполнить sql запрос».

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

Далее расположена кнопка «Количество по специальностям», нажатие на которую приводит к выводу в сетке3 двух столбцов s_code и total. В первом столбце выводится код специальности, а во втором – количество абитуриентов.

Нажав метку «О программе…» можно посмотреть информацию о разработчике.

Нажатие метки «Выход» завершает работу программу с сохранением измененных таблиц.

Если были пропущены обязательные данные (в данном случае за этим следит BDE автоматически), то программа остановит свою работу и запись не будет добавлена до тех пор, пока не будут введены правильные.

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

Данная программа разрабатывалась с использованием системы быстрой разработки программ (IDE) Delphi 5. Минимальные требования для работы: 256 Мб оперативной памяти, частота процессора 666 МГц, операционная система Windows 9x,Me,XP. Для работы программы требуется поддержка BDE, в связи с этим можно рекомендовать увеличение оперативной памяти.

Таблица 3. Сообщения программы

Сообщение программыТип сообщенияДействия оператора
Не указано условие фильтрации!ПредупреждениеВвести условие или оставить по умолчанию. Во втором случае выведутся все записи.
Неправильное использование фильтра!ОшибкаПравильно ввести условие фильтрации.
Не получилось выполнить SQL запрос!ОшибкаВвести правильный запрос.
Оценка допустима только от 2 до 5!Перехват ошибки.Ввести правильную оценку.

Заключение

В данном курсовом проекте были выполнены все поставленные задачи в соответствии с техническим заданием.

Определены состав и структура данных в виде 2-х связанных таблиц. Определены методы решения задач, разработаны SQL-запросы для выборки данных из БД, разработана программа в средстве разработки Borland Delphi. Описаны компоненты, использовавшиеся для разработки программы.

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

Литература

1. Вейскас Д. Эффективная работа с MicrosoftAccess 97. /Вейскас Д. – С-Пб.: Питер, 1999.

2. Калверт Ч.BorlandC++ Builder / Калверт Ч., Рейсдорф К. – М.: Нолидж, 1998.

3. Фаронов В.В. Система программирования Delphi / В.В. Фаронов – М.: Нолидж, 2002.

4. Фаронов В.В. Системное программирование / В.В. Фаронов – М.: Нолидж, 2003.

5. Inprise Corporation. Delphi Help. / Borland Press, 2000.


Приложение А

Схема данных



Приложение Б

Схема работы программы

Приложение В

Текст программы


a.pas

unit a;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, DBGrids, ExtCtrls, Db, DBTables, DBCtrls, StdCtrls;

type

Ta_f = class(TForm)

Panel2: TPanel;

Panel3: TPanel;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBNavigator1: TDBNavigator;

Label1: TLabel;

Panel1: TPanel;

DBNavigator2: TDBNavigator;

DBLookupComboBox1: TDBLookupComboBox;

RadioGroup1: TRadioGroup;

Label2: TLabel;

Edit1: TEdit;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

DBGrid3: TDBGrid;

Label5: TLabel;

Label6: TLabel;

Label8: TLabel;

Label9: TLabel;

Button1: TButton;

Label7: TLabel;

procedure DBLookupComboBox1Enter(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject);

procedure Label4Click(Sender: TObject);

procedure DBGrid2TitleClick(Column: TColumn);

procedure Label3Click(Sender: TObject);

procedure Label6Click(Sender: TObject);

procedure Label8Click(Sender: TObject);

procedure Label9Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Label7Click(Sender: TObject);

procedure FormPaint(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

a_f: Ta_f;

implementation

uses a_r, dm_u, a_r2, a_about;

{$R *.DFM}

procedure Ta_f.DBLookupComboBox1Enter(Sender: TObject);

begin

dm.Table2.MasterSource:=Nil;

dm.Table2.MasterFields:='';

dm.Table2.IndexName:='';

end;

procedure Ta_f.DBLookupComboBox1CloseUp(Sender: TObject);

begin

dm.Table2.MasterSource:=dm.DataSource1;

dm.Table2.MasterFields:='S_id';

dm.Table2.IndexName:='a_index';

end;

procedure Ta_f.Label4Click(Sender: TObject);

var

filter: string;

begin

if Edit1.Text=''

then

begin

ShowMessage('Не указано условие фильтрации!');

dm.Table2.Filtered:=False;

Edit1.SetFocus;

Exit;

end;

if RadioGroup1.ItemIndex=0

then

filter:='A_surname';

if RadioGroup1.ItemIndex=1

then

filter:='A_physic';

try

dm.Table2.Filter:=filter+Edit1.Text;

dm.Table2.Filtered:=True;

except

ShowMessage('Неправильноеиспользованиефильтра!');

Edit1.SetFocus;

Edit1.Text:='';

Exit;

end;

end;

procedure Ta_f.DBGrid2TitleClick(Column: TColumn);

begin

try

if column.FieldName='A_surname'

then

begin

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.add('select A_surname,A_math,A_physic,A_composition from "abiturients.db" order by A_surname asc');

dm.Query1.Open;

end;

if column.FieldName='A_math'

then

begin

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.add('select A_math,A_surname,A_physic,A_composition from "abiturients.db" order by A_math desc');

dm.Query1.Open;

end;

if column.FieldName='A_physic'

then

begin

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.add('select A_physic,A_surname,A_math,A_composition from "abiturients.db" order by A_physic desc');

dm.Query1.Open;

end;

if column.FieldName='A_composition'

then

begin

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.add('select A_composition,A_surname,A_math,A_physic from "abiturients.db" order by A_composition desc');

dm.Query1.Open;

end;

except

ShowMessage('НеполучилосьвыполнитьSQL запрос!');

end;

end;

procedure Ta_f.Label3Click(Sender: TObject);

begin

try

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.Add(Edit2.Text);

dm.Query1.Open;

except

ShowMessage('Не получилось выполнить SQL запрос!');

end;

end;

procedure Ta_f.Label6Click(Sender: TObject);

begin

a_r_f.Query1.Active:=False;

a_r_f.Query1.Active:=True;

a_r_f.report1.Preview;

end;

procedure Ta_f.Label8Click(Sender: TObject);

begin

if dm.Table1.Modified

then

dm.Table1.Post;

if dm.Table2.Modified

then

dm.Table2.Post;

Close;

end;

procedure Ta_f.Label9Click(Sender: TObject);

begin

a_r2_f.Query1.Active:=False;

a_r2_f.Query1.Active:=True;

a_r2_f.QuickRep1.Preview;

end;

procedure Ta_f.Button1Click(Sender: TObject);

begin

try

dm.Query1.Close;

dm.Query1.SQL.Clear;

dm.Query1.SQL.Add('select s.s_code, count (a.a_id) total from abiturients a, specialities s where a.a_s_id=s.s_id group by s.s_id,s_code');

dm.Query1.Open;

except

ShowMessage('Не получилось выполнить SQL запрос!');

end;

end;

procedure Ta_f.Label7Click(Sender: TObject);

begin

AboutBox.ShowModal;

end;

procedure Ta_f.FormPaint(Sender: TObject);

begin

dm.Table2.MasterSource:=dm.DataSource1;

dm.Table2.MasterFields:='S_id';

dm.Table2.IndexName:='a_index';

end;

end.

a_about.pas

unit a_about;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox = class(TForm)

Panel1: TPanel;

ProgramIcon: TImage;

ProductName: TLabel;

Version: TLabel;

Copyright: TLabel;

Comments: TLabel;

OKButton: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox: TAboutBox;

implementation

{$R *.DFM}

end.

a_r.pas

unit a_r;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ExtCtrls, QuickRpt, Qrctrls, Db, DBTables, TeEngine, Series, TeeProcs,

Chart, DBChart, QrTee;

type

Ta_r_f = class(TForm)

report1: TQuickRep;

Table1: TTable;

DataSource1: TDataSource;

DataSource2: TDataSource;

Table2: TTable;

DetailBand1: TQRBand;

QRSubDetail1: TQRSubDetail;

QRLabel5: TQRLabel;

TitleBand1: TQRBand;

QRLabel10: TQRLabel;

ColumnHeaderBand1: TQRBand;

QRGroup1: TQRGroup;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel11: TQRLabel;

QRLabel12: TQRLabel;

QRShape2: TQRShape;

QRDBText4: TQRDBText;

QRDBText5: TQRDBText;

QRDBText6: TQRDBText;

QRDBText7: TQRDBText;

QRExpr1: TQRExpr;

QRLabel4: TQRLabel;

QRDBText1: TQRDBText;

QRBand1: TQRBand;

QRExpr2: TQRExpr;

QRLabel6: TQRLabel;

Query1: TQuery;

DataSource3: TDataSource;

QRChart1: TQRChart;

QRDBChart1: TQRDBChart;

Series1: TPieSeries;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

a_r_f: Ta_r_f;

implementation

uses dm_u;

{$R *.DFM}

procedure Ta_r_f.FormCreate(Sender: TObject);

var

DBPath: String; {путь к базе данных}

begin

if Table1.Active=true

then

Table1.Active:=false;

if Table2.Active=true

then

Table2.Active:=false;

if Query1.Active=True

then

Query1.Active:=False;

DBPath:=ExtractFilePath(Application.ExeName)+'db'; //определение пути к БД

Query1.DatabaseName:=DBPath;

Table1.DatabaseName:=DBPath;

Table1.Open;

Table2.DatabaseName:=DBPath;

Table2.Open;

Query1.Active:=True;

end;

end.

a_r2.pas

unit a_r2;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Db, DBTables, ExtCtrls, QuickRpt, Qrctrls, TeEngine, Series, TeeProcs,

Chart, DBChart, QrTee;

type

Ta_r2_f = class(TForm)

QuickRep1: TQuickRep;

DataSource1: TDataSource;

Query1: TQuery;

QRBand1: TQRBand;

QRLabel1: TQRLabel;

QRBand2: TQRBand;

QRGroup1: TQRGroup;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRDBText1: TQRDBText;

QRBand3: TQRBand;

QRLabel5: TQRLabel;

QRDBText4: TQRDBText;

QRShape1: TQRShape;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRBand4: TQRBand;

QRExpr1: TQRExpr;

QRChart1: TQRChart;

QRDBChart1: TQRDBChart;

Series1: TPieSeries;

procedure QuickRep1StartPage(Sender: TCustomQuickRep);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

a_r2_f: Ta_r2_f;

implementation

{$R *.DFM}

procedure Ta_r2_f.QuickRep1StartPage(Sender: TCustomQuickRep);

begin

QRDBChart1.CheckDatasource(Series1);

end;

procedure Ta_r2_f.FormCreate(Sender: TObject);

var

DBPath: String; {путькбазеданных}

begin

if Query1.Active=True

then

Query1.Active:=False;

DBPath:=ExtractFilePath(Application.ExeName)+'db'; //определение пути к БД

Query1.DatabaseName:=DBPath;

end;

end.

dm_u.pas

unit dm_u;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Db, DBTables;

type

Tdm = class(TDataModule)

Query1: TQuery;

DataSource3: TDataSource;

Table2: TTable;

Table2A_id: TAutoIncField;

Table2A_surname: TStringField;

Table2A_math: TSmallintField;

Table2A_physic: TSmallintField;

Table2A_composition: TSmallintField;

Table2A_s_id: TSmallintField;

Table2sum: TIntegerField;

DataSource2: TDataSource;

Table1: TTable;

DataSource1: TDataSource;

db: TDatabase;

procedure Table2CalcFields(DataSet: TDataSet);

procedure Table2A_mathValidate(Sender: TField);

procedure Table2A_physicValidate(Sender: TField);

procedure Table2A_compositionValidate(Sender: TField);

procedure DataModuleCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

dm: Tdm;

implementation

{$R *.DFM}

procedure Tdm.Table2CalcFields(DataSet: TDataSet);

begin

dm.Table2sum.Value:=dm.Table2A_math.Value+dm.Table2A_physic.Value+dm.Table2A_composition.Value;

end;

procedure Tdm.Table2A_mathValidate(Sender: TField);

begin

if (dm.Table2A_math.Value<2) or (dm.Table2A_math.Value>5)

then

begin

ShowMessage('Оценка допустима только от 2 до 5!');

Abort;

end;

end;

procedure Tdm.Table2A_physicValidate(Sender: TField);

begin

if (dm.Table2A_physic.Value<2) or (dm.Table2A_physic.Value>5)

then

begin

ShowMessage('Оценка допустима только от 2 до 5!');

Abort;

end;

end;

procedure Tdm.Table2A_compositionValidate(Sender: TField);

begin

if (dm.Table2A_composition.Value<2) or (dm.Table2A_composition.Value>5)

then

begin

ShowMessage('Оценка допустима только от 2 до 5!');

Abort;

end;

end;

procedure Tdm.DataModuleCreate(Sender: TObject);

var

DBPath: String; {путькбазеданных}

begin

with dm do

begin

if table1.Active=True

then

table1.active:=false;

if table2.active=true

then

table2.active:=false;

end;

DBPath:=ExtractFilePath(Application.ExeName)+'db'; //определениепутикБД

DM.Table1.DatabaseName:=DBPath; {указатьбазу}

DM.Table1.Open; {открытьтаблицу}

DM.Table2.DatabaseName:=DBPath;

DM.Table2.Open;

Query1.DatabaseName:=DBPath;

end;

end.


Приложение Г

Примеры экранных форм диаграмм и отчетов


Рисунок Г.1 – Количество абитуриентов по специальностям – отчет и диаграмма

Рисунок Г.2 – Сортировка по сумме баллов – отчет и диаграмма


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

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

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно