Вы находитесь на странице: 1из 69

Диплом - Разработка

электронного журнала
успеваемости для Восточно-
Казахстанского
сельскохозяйственного
колледжа
Информационные системы
Казахско-Американский свободный университет (КАСУ)
68 pag.

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Министерство образования и науки Республики Казахстан

Казахстанско-Американский свободный университет

Клятченко Н.А.

Разработка электронного журнала успеваемости для Восточно-Казахстанского


сельскохозяйственного колледжа

ДИПЛОМНАЯ РАБОТА

специальность 5В070300 – «Информационные системы»

Усть-Каменогорск 2019

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Министерство образования и науки Республики Казахстан

Казахстанско-Американский свободный университет

«Допущена к защите»
«____»____________2018г.
Заведующий кафедрой «Бизнеса»
доктор PhD, профессор
______________И.В. Бордияну

ДИПЛОМНАЯ РАБОТА

На тему: Разработка электронного журнала успеваемости для Восточно-


Казахстанского сельскохозяйственного колледжа

по специальности 5В070300 – «Информационные системы»

Выполнила студентка
группы 15-ИС-4-Б-О-Р Н.А.Клятченко

Научный руководитель
к.т.н., доцент Б.К.Увалиев
«___» ________2019 г.

Нормоконтролер
«____»________2019 г. А.Б. Бердибеков

Усть-Каменогорск 2019

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Содержание

Содержание 2
Введение 3
1 Назначение и область применения 6
1.1 Постановка задачи 9
1.2 Анализ программных продуктов конкурентов 12
1.3 Алгоритм решения задачи и его описание 14
1.4 Организация и описание входных и выходных данных 16
2 Проектная часть 20
2.1 Инфологическое проектирование 20
3 Проектирование базы данных системы, разработка интерфейса 34
3.1 Создание таблиц в MS Access 34
3.2 Описание процедур 38
Заключение 66
Список используемой литературы 67

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Введение

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


компьютерных технологий в жизнь колледжа, возникла возможность ведения
электронного журнала, который автоматизирует процесс контроля над
успеваемостью, дублирует записи журнала оценок, защищая его от искажений,
даёт возможность контролировать накопляемость оценок по предметам. Так как
данные о студентах, предметах имеют большой объём и постоянно
используются в работе администрации и преподавателей колледжа, то
автоматизация их обработки и получения – актуальная задача.
Современные информационные технологии быстрыми темпами
внедряются во все сферы человеческой деятельности, в том числе и в сферу
образования. Уровень развития информационных ресурсов и характер их
использования в значительной мере влияет на благосостояние общества и
эффективность осуществления той или иной профессиональной деятельности.
Лидирующие позиции любой организации определяются в первую очередь ее
возможностями по грамотному использованию передовых достижений в сфере
информационных технологий. Особую роль при этом играет сфера образования,
где формируется интеллектуальный потенциал страны, потребляющий и
создающий ее информационные ресурсы.
Одной из систем, часто внедряющейся, в связи с её необходимостью
использования, является электронный журнал успеваемости, который
автоматизирует процесс контроля за успеваемостью, дублирует записи
традиционного, бумажного журнала, защищая его от искажений, даёт
возможность контролировать накопляемость оценок по предметам и т.д.
Целью данного дипломного проекта является разработка программы
“Электронный журнал успеваемости”.
Данный программный продукт создан для ведения баз данных учащихся,
предметов, групп. В результате пользователь получает заполненный журнал
успеваемости.
Цель данного программного продукта: облегчить и автоматизировать
труд преподавателей в колледже.
Реализация дипломного проекта проводится в системе
программирования Delphi 7, располагающей широкими возможностями по
созданию приложений баз данных.
Результатом будущего использования программы «Электронный журнал
успеваемости» является простота и удобство работы преподавателей.
Пользователь запускает со своего персонального компьютера приложение и
работает с ним. Заполняет базу данных учащихся и в итоге просматривает
сформировавшийся журнал успеваемости.
Задачи. Достижения цели дипломной работы было сведено к решению
следующих задач.
1. Создание базы данных, которая содержит:
1.1. данные о студентах и предметах Восточно-Казахстанского
сельскохозяйственного колледжа;
1.2. перечень групп;
4

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
1.3. перечень изучаемых студентами дисциплин;
1.4. данные о текущей успеваемости студентов;
2. Создание интерфейса к базе данных;
1.5. разработка внешнего вида интерфейса;
1.6. создание форм для ввода данных;
1.7. подключение созданного интерфейса к базе данных.
Объектом исследования данной дипломной работы является учебный
процесс Восточно-Казахстанского сельскохозяйственного колледжа. Ежегодно
объем информации, который приходится обрабатывать сотрудникам колледжа,
неуклонно растет. Это сказывается на ежедневной работе сотрудников
образовательного учреждения, и от того, как построен процесс обработки
информации, зависит скорость и качество выполнения повторяющихся изо дня
в день операций. Безусловно, можно работать так же, как и сейчас, храня всю
информацию в бумажных папках и складывать их на полки, но в этом случае
поиск нужной информации займет много времени. Использования средств
автоматизации учебного процесса поможет выполнять работу значительно
быстрее и без разного рода ошибок, которые неизбежны при «ручной»
обработке больших объемов информации.
Предмет исследования – программный продукт «Электронный журнал
успеваемости». Эта программа будет востребована во многих учебных
заведениях, так как представляет собой электронное отслеживание информации
успеваемости для каждого из студентов.
«Электронный журнал успеваемости» позволяет просматривать, а также
изменять оценки студентов той или иной группы по определенному предмету
по заданной дате.
Программа может использоваться в любом образовательном
учреждении, где необходим электронный учет оценок.
Теоретическую и методологическую основу исследования составляют
современные теоретические концепции, теории и практические разработки
отечественных и зарубежных авторов по проблемам разработки электронных
журналов, разные интернет источники, статьи, публикации, форумы
программистов, базы данных разных информационных ресурсов и
использования современных информационных технологий при создании
электронного журнала.
Степень новизны. Информационные системы «Электронный журнал»
реализованы во многих учебных заведениях. Реализации различаются в
соответствии с принятыми стилями работы в учебных заведениях. В Восточно-
Казахстанском сельскохозяйственном колледже работа в такой информационной
системе не автоматизирована.
Практическая значимость разработки приложения заключается в том,
что электронный журнал успеваемости для колледжа позволяет вести учет
успеваемости обучающихся. Используется в качестве инструмента эффективной
организации практической работы преподавателя в условиях информатизации
учебного процесса.

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
6

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
1 Назначение и область применения

Программный комплекс «Электронный журнал учета успеваемости


групп» (сокращенно “Electon”) предназначен для учета успеваемости в учебных
заведениях и организациях. Данный проект помогает автоматизировать одну из
самых трудоемких задач преподавателя и заведующего отделением – учет
успеваемости на протяжении учебного процесса.
Главная задача, которая ставилась при создании этой программы – это её
соответствие уровню развития компьютерной техники и программного
обеспечения на сегодняшний день и возможность более глубокого и детального
анализа полученных знаний студентами в ходе практических занятий.
Использование разработанного мной программного комплекса позволяет
осуществить 100% учет всех оценок студентов в процессе вводного контроля
знаний на практическом занятии, при отработке пропущенных занятий, приёме
зачётов.
Из учебного проекта данный комплекс вырос в полноценный
конкурентно способный продукт, который можно использовать для учета
успеваемости учащихся средних школ и студентов при изучении
общеобразовательных и фундаментальных дисциплин.
Область применения задачи: все организации, где проводятся занятия,
требующие вести контроль успеваемости студентов или учащихся.
Проведение занятий в учебные заведения составляет основную
концепцию обучения, а подведение итогов семестра у заведующих отделениями
занимает не малое время, так как в группах численность студентов около 15-30
человек, а количество предметов в группе 10-12 за семестр, а к концу обучения
- более 50.
Эффективность использования программы электронного журнала
определяется уменьшением времени, затрачиваемого на подведение итогов
семестра заведующим отделением. Одним из основных путей уменьшения
этого времени является автоматизация процесса составления сводной
ведомости.
Границы применения таких систем, область решаемых ими задач,
эффективность практического использования во многом определяются
возможностями их программного обеспечения. Эти возможности должны
обеспечивать простоту и оперативность доступа к собранной информации,
гибкость ее использования и наглядность представления, а также позволять
решать основные задачи преподавания.
Созданный проект облегчит работу преподавателей, заведующих
отделениями учебных заведений.
При разработке программы использованы следующие программные
средства:
• Borland Delphi 7 – среда разработки;
• Microsoft Office 2016 – офисные приложения;
• Lightshot – создание скриншотов;
• Microsoft Visio Professional 2016 – создание блок-схем.
Выбор языка программирования.
7

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
В Delphi можно создавать самые различные типы программ - начиная от
консольных приложений и заканчивая приложениями для работы с базами
данных и Internet.
В настоящее время в Delphi реализовано несколько механизмов доступа
к данным и каждому механизму соответствует свой собственный набор
компонент. Через ActiveX Data Object (ADO). Этот способ доступа к данным
является стандартом фирмы Microsoft и использует набор специальных ADO-
драйверов, охватывающих широкий набор типов серверов. Компоненты доступа
к данным относящиеся к механизму ADO находятся на страничке «ADO».
Преимущества Delphi по сравнению с аналогичными программными
продуктами.
• Быстрота разработки приложения.
• Высокая производительность разработанного приложения.
• Низкие требования разработанного приложения к ресурсам компьютера.
• Наращиваемость за счет встраивания новых компонент и инструментов в
среду Delphi.
• Возможность разработки новых компонент и инструментов собственными
средствами Delphi (существующие компоненты и инструменты доступны
в исходниках).
- удачная проработка иерархии объектов;
- легкое сопровождение продукта в дальнейшем.
Для того чтобы обосновать, почему мой выбор остановился на Delphi,
достаточно просто перечислить некоторые неудобства других языков:
- инициализация. Нужно регистрировать класс окна, цикл обработки
сообщений, создавать оконную функцию и прочее, а также быть системным
программистом (частично). На Delphi системное программирование уже
встроено и инициализация работает по умолчанию, поэтому программист
главный упор делает на своих алгоритмах, а не на организации
вспомогательных работ;
- сложность языка (несмотря на компактность кода). Возникают
сложности в его восприятии;
- чувствительность к регистру символов, т.е. переменная A и переменная
a это разные переменные;
- классы. Объекты могут располагаться в любой памяти (статическая,
стек, динамическая). В Delphi классы (объекты) могут располагаться только в
динамической памяти. Это добавляет безопасности программирования.
Система программирования Delphi рассчитана на программирование
различных приложений и предоставляет большое количество компонентов для
этого. К тому же работодателей интересует, прежде всего, скорость и качество
создания программ, а эти характеристики может обеспечить только среда
визуального проектирования, способная взять на себя значительные объемы
рутинной работы по подготовке приложений, а также согласовать деятельность
группы постановщиков, кодировщиков, тестеров и технических писателей.
Возможности Delphi полностью отвечают подобным требованиям и
подходят для создания систем любой сложности.

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Delphi - общепризнанный лидер среди инструментов для создания
приложений и систем, функционирующих на платформе Windows.
Delphi – это среда разработки программ, ориентированных на работу в
операционных системах семейства Windows. Программы в Delphi создаются на
основе современной технологии визуального проектирования, которая, в свою
очередь, базируется на идеях объектно-ориентированного программирования.
Программы в Delphi пишутся на языке Object Pascal. Turbo Pascal популярен
своей простотой, высококачественным компилятором и удобной средой
разработки [1].
Главный файл проекта – главный модуль также записывается на языке
Object Pascal и хранится в DPR-файле.
В минимальной конфигурации программно каждый проект должен
состоять из главного файла проекта, а также из одного или нескольких модулей.
Delphi автоматически при добавлении новой формы создаёт новый модуль и
добавляет его в проект.
Delphi - высокопроизводительный инструмент визуального построения
приложений, работающих с базами данных в архитектуре клиент-сервер, а
также для локальных машин.
Delphi включает в себя компилятор кода и предоставляет средства
визуального программирования. В Delphi входят локальный SQL-сервер,
библиотеки визуальных компонентов, и прочее возможности. Поскольку в
архитектуре клиент-сервер де-факто сложилось такое положение, что
клиентские станции работают, как правило, в Windows-среде, а SQL-сервер - в
операционной системе UNIX, Delphi Client-Server может служить удобным
инструментом для скоростной разработки приложений.
В процессе построения приложения разработчик выбирает из палитры
компонент готовые компоненты как художник, делающий крупные мазки
кистью. Еще до компиляции он видит результаты своей работы - после
подключения к источнику данных их можно видеть отображенными на форме,
можно перемещаться по данным, представлять их в том или ином виде. В этом
смысле проектирование в Delphi мало, чем отличается от проектирования в
интерпретирующей среде, однако после выполнения компиляции мы получаем
код, который исполняется в 10-20 раз быстрее, чем-то же самое, сделанное при
помощи интерпретатора [2].
Выбор СУБД.
Microsoft Access является настольной СУБД (система управления базами
данных) реляционного типа. Достоинством Access является то, что она имеет
очень простой графический интерфейс, который позволяет не только создавать
собственную базу данных, но и разрабатывать приложения, используя
встроенные средства.
В отличие от других настольных СУБД, Access хранит все данные в
одном файле, хотя и распределяет их по разным таблицам, как и положено
реляционной СУБД. К этим данным относится не только информация в
таблицах, но и другие объекты базы данных, которые будут описаны ниже.
Для выполнения почти всех основных операций Access предлагает
большое количество Мастеров (Wizards), которые делают основную работу за
9

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
пользователя при работе с данными и разработке приложений, помогают
избежать рутинных действий и облегчают работу неискушенному в
программировании пользователю.
Особенности MS Access, отличающиеся от представления об
«идеальной» реляционной СУБД.

1.1 Постановка задачи

Техническое задание: разработать программный комплекс «Электронный


журнал учета успеваемости групп» (сокращенно “Electon”). Эта программа
должна выполнять все основные операции, связанные с проведением учета
успеваемости групп.
Для разработки данного продукта использован объектно-
ориентированный язык программирования Borland Delphi 6.0 со встроенными
возможностями программирования баз данных Microsoft Access, входящий в
расширенный пакет программ Microsoft Office.

Рисунок 1 Интерфейс программы


Программный комплекс «Электронный журнал учета успеваемости
групп» сокращенно “Electon” отвечает перечисленным выше требованиям и
включает в себя следующие функции:
• Учет внесенных оценок.
• Возможность работы с оценками и темами занятий.
• Расчет выставления средних баллов.
• Возможность формирования отчетности по текущей успеваемости, а
также выставленных итогов.
• Автоматическое обновление и сохранение оценок.
10

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Программа проста в обращении и сочетает в себе интуитивно понятный
графический интерфейс и гибкий комплекс настроек, что особенно необходимо
в современных условиях.
Функциональные возможности и ограничения
• количество оценок, вводимых в одно поле составляет 1;
• нет возможности повторения в датах проведения занятий;
• дату в темах занятий необходимо указывать самостоятельно;
• возможность добавления предметов, студентов во время учебного
семестра;
• возможность отбора студентов по определенным критериям;
• возможность составления сводной ведомости из итоговых оценок.
Выбор СУБД.
Microsoft Office Access или просто Microsoft Access — реляционная
система управления базами данных (СУБД) корпорации Microsoft. Входит в
состав пакета Microsoft Office. Имеет широкий спектр функций, включая
связанные запросы, связь с внешними таблицами и базами данных. Благодаря
встроенному языку VBA, в самом Access можно писать приложения,
работающие с базами данных.
Microsoft Access является настольной СУБД (система управления базами
данных) реляционного типа. Достоинством Access является то, что она имеет
очень простой графический интерфейс, который позволяет не только создавать
собственную базу данных, но и разрабатывать приложения, используя
встроенные средства.
Создание многопользовательской БД Access и получение
одновременного доступа нескольких пользователей к общей базе данных
возможно в локальной одноранговой сети или в сети с файловым сервером.
Сеть обеспечивает аппаратную и программную поддержку обмена данными
между компьютерами. Access следит за разграничением доступа разных
пользователей к БД и обеспечивает защиту данных. При одновременной работе.
Так как Access не является клиент серверной СУБД, возможности его по
обеспечению многопользовательской работы несколько ограничены. Обычно
для доступа к данным по сети с нескольких рабочих станций, файл БД Access
(с расширением *.mdb) выкладывается на файловый сервер. При этом
обработка данных ведется в основном на клиенте - там, где запущено
приложение, в силу принципов организации файловых СУБД. Этот фактор
ограничивает использование Access для обеспечения работы множества
пользователей (более 15-20) и при большом количестве данных в таблицах, так
как многократно возрастает нагрузка не сеть.
В плане поддержки целостности данных Access отвечает только моделям
БД небольшой и средней сложности. В нем отсутствуют такие средства как
триггеры и хранимые процедуры, что заставляет разработчиков возлагать
поддержание бизнес логики БД на клиентскую программу [18].
В отношении защиты информации и разграничения доступа Access не
имеет надежных стандартных средств. В стандартные способы защиты входит
защита с использованием пароля БД и защита с использованием пароля

11

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
пользователя. Снятие такой защиты не представляет сложности для
специалиста.
Однако, при известных недостатках MS Access обладает большим
количеством преимуществ по сравнению с системами подобного класса.
В первую очередь можно отметить распространенность, которая
обусловлена тем, что Access является продуктом компании Microsoft,
программное обеспечение и операционные системы которой использует
большая часть пользователей персональных компьютеров. MS Access
полностью совместим с операционной системой Windows, постоянно
обновляется производителем, поддерживает множество языков.
В целом MS Access предоставляет большое количество возможностей за
сравнительно небольшую стоимость. Также необходимо отметить
ориентированность на пользователя с разной профессиональной подготовкой,
что выражается в наличии большого количества вспомогательных средств
(Мастеров, как уже отмечалось), развитую систему справки и понятный
интерфейс. Эти средства облегчают проектирование, создание БД и выборку
данных из нее.
MS Access предоставляет в распоряжение непрограммирующему
пользователю разнообразные диалоговые средства, которые позволяют ему
создавать приложения, не прибегая к разработке запросов на языке SQL или к
программированию макросов или модулей на языке VBA [4].
Access обладает широкими возможностями по импорту / экспорту
данных в различные форматы, от таблиц Excel и текстовых файлов, до
практически любой серверной СУБД через механизм ODBC.
Еще одно немаловажное преимущество MS Access заключается в
развитых встроенных средствах разработки приложений. Большинство
приложений, распространяемых среди пользователей, содержит тот или иной
объем кода VBA (Visual Basic for Applications). Поскольку VBA является
единственным средством для выполнения многих стандартных задач в Access
(работа с переменными, построение команд SQL во время работы программы,
обработка ошибок, использование Windows API ит. д.), для создания более-
менее сложных приложений необходимо его знание и знание объектной модели
MS Access.
Одним из средств программирования в Access является язык
макрокоманд. Программы, созданные на этом языке, называются макросами и
позволяют легко связывать отдельные действия, реализуемые с помощью форм,
запросов, отчетов. Макросы управляются событиями, которые вызываются
действиями пользователями при диалоговой работе с данными через формы или
системными событиями [19].

1.2 Анализ программных продуктов конкурентов

В качестве конкуретных решений будут рассмотрены 5 систем:


• Web Школа
• Электронный дневник школьника (Эдш)

12

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
• Аверс: Электронный классный журнал
• КлассИнфо
• РУЖЕЛЬ

Таблица 1
Анализ программных продуктов по основным показателям
Имя показателя Имя продукта
Web Школа Эдш Аверс КлассИнфо РУЖЕЛЬ

Версии ПО Интернет Интернет Интернет Интернет Интернет


Сетевая Сетевая
Локальная
Операционная среда Windows Windows Windows Windows Windows
функционирования
Linux Linux
Mac OS

Таблица 2
Анализ программных продуктов по функциональным возможностям
электронного журнала
Имя показателя Имя продукта
Web Эдш Аверс КлассИнфо РУЖЕЛЬ
Школа
Учет текущей + + + + +
успеваемости учащихся
Учет посещаемости + + + + +
занятий
Мониторинг текущей - - + - -
успеваемости
Возможность выставления - - + - +
оценок с учетом
значимости проводимых
мероприятий (зачет и др.)
Продолжение таблицы 2
Расчет рейтингов + + + + +
успеваемости учащихся
Формирование отчетов: + + + + +
- отчет об успеваемости;
- отчет о посещении + + + + +
занятий;
13

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
- отчет о выполнении - - + - -
тематических планов;

- отчет структуре типов - - + - -


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

Таблица 3
Анализ программных продуктов по функциональным возможностям
электронного дневника учащегося
Имя показателя Имя продукта
Web Эдш Аверс КлассИнфо РУЖЕЛЬ
Школа
Просмотри + + + + +
текущих оценок

Просмотр + + + + +
домашних заданий

Просмотр - + + + -
результатов
итоговой
успеваемости

Прием (отправка) + + + + -
электронного
письма родителю
(классному
руководителю)
Таблица 4
Анализ программных продуктов по способу информирования родителя
о результатах успеваемости
Имя показателя Имя продукта
Web Эдш Аверс КлассИнфо РУЖЕЛЬ
Школа

14

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Сайт + + + + +
образовательного
учреждения
Интернет портал + + + + +
Электронное + + + + +
письмо
Sms – сообщение + + + + -

1.3 Алгоритм решения задачи и его описание

Разрабатываемая информационная система должна вести


автоматизированный учет успеваемости и посещаемости студентов.
Информационная система «Электронный журнал успеваемости»
предназначена для комплексного информационно-аналитического обеспечения
процессов учебного заведения, в части исполнения следующих функций:
• ввод и редактирование данных об успеваемости студентов;
• ввод и редактирование списка студентов, списка групп;
• ввод и редактирование учебного плана;
• вывод успеваемости по заданным параметрам.
Информационную систему «Электронный журнал успеваемости»
предполагается использовать в учебных заведениях, которые решают
описанные выше функции.
Основными целями создания информационной системы являются:
• повышение эффективности исполнения процессов, перечисленных
выше, путем сокращения непроизводительных и дублирующих
операций, операций, выполняемых «вручную», оптимизации
информационного взаимодействие участников процессов;
• повышение качества принятия управленческих решений за счет
оперативности представления, полноты, достоверности и удобства
форматов отображения информации;
• повышение информационной открытости и прозрачности
деятельности учебного заведения;
• повышение удобства и комфорта при получении информации о
предоставляемых услугах потребителю.
1. При открытии главной формы производится поиск списка групп
в базе данных. При выборе группы программа автоматически
выбирает список предметов, которые ведутся у этой группы.
После того как пользователь выбрал предмет, программа ищет в
базе таблицу для данной группы и предмета, если ее нет, то
выводится диалоговое окно с предложением создать таблицу.

15

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
2. После открытия формы с оценками, программой автоматически
устанавливается текущий месяц, после этого ненужные месяца
скрываются. При изменении текущего месяца также
производится отбор дат из таблицы.
3. При добавлении нового дня производится добавление нового
столбца в выбранную таблицу из базы. Имя столбца
формируется из текущей даты, при замене точек на нижнее
подчеркивание.
4. При подсчете среднего балла студента производится вычисление
общего количества оценок и их сумма. Средний балл
устанавливается как среднее арифметическое оценок студента.
После всех расчетов выводится отчет.
5. При подсчете среднего балла всех студентов, программа
рассчитывает средний балл текущего студента, а затем переходит
к следующему. После всех расчетов выводится отчет.
6. При выводе сводной ведомости происходит сбор оценок из всех
таблиц, относящихся к выбранной группе. Формируется список
предметов, формируется количество студентов и отчет
передается в Excel.
7. При выводе не аттестованных студентов производится
фильтрация по оценкам, т.е. отбираются только те записи, у
которых поля оценок либо пустые, либо равны нулю. После
этого отфильтрованные записи добавляются в отчет.
8. При выводе неуспевающих студентов производится фильтрация
по оценкам, т.е. отбираются только те записи, в которых
значения оценок равны двум. После этого отфильтрованные
записи добавляются в отчет.
9. При выводе всех студентов сбрасываются все фильтры, и тип
сортировки устанавливается стандартный.
10. По кнопке «Добавить новый день» происходит выполнение
запроса на добавление столбца в таблицу, именем столбца
является системная дата.
11. На форме «Тема занятия» отображается таблица, в которую
заносятся данные о теме занятия и дате проведения. По кнопке
«добавить» происходит добавление новой строки в таблицу с
выбранной темой занятия.
12. Сортировка по фамилии и успеваемости производится в двух
направлениях: от меньшего к большему, и обратно.
13. На форме редактирования студентов отражается вся база
студентов, но с выборкой по определенной группе.
14. На форме «Учебный план» формируется список предметов для
группы на следующий семестр. Осуществляется
перетаскиванием из общего списка в отдельный список для
каждой группы.
15. Определяются предметы, выбранные для экзамена.

16

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
16. На форме «Предметы» отображается список предметов, в
который можно вносить изменения.
Также, следует отметить следующие требования:
- должно быть организовано наиболее удобное и привычное для
пользователя распределение пунктов и элементов основного меню;
- должна быть подобрана наиболее удобная для чтения текста цветовая
гамма программы, чтобы пользователь мог долго работать, не утомляясь;
- размер шрифта, цвет пунктов меню и других элементов управления
должен быть удобен для восприятия.
Понятный интерфейс делает обучение работе с ним легким и быстрым,
снижает время и затраты на обучение и техническую поддержку пользователей.
Понятный интерфейс повышает производительность труда
пользователей, в результате для выполнения задачи требуется меньше людей
или они затрачивают на работу меньше времени.
Понятный интерфейс снижает количество человеческих ошибок, а
значит, уменьшает количество времени на их исправление [21].
Ключевыми задачами к создаваемой системе являются:
— открытость, то есть она должна соответствовать всем
современными стандартами, а также возможность добавления функционала как
сторонних разработчиков, так и наработок учащихся;
— масштабируемость, как ключевое требование с точки зрения
экономии. Не придется заново перестраивать систему при наращивании
функционала;
— кроссплатформенность, способность работать на различных
устройствах, операционных системах, серверах;
— адаптируемость, то есть возможность простой настройки под
нужды заказчика;
— расширяемость, то есть возможность наращивания
функциональных возможностей системы, не изменяя принятого ранее метода
развития и базы.

1.4 Организация и описание входных и выходных данных

Входными данными в программе являются текстовые и числовые поля


таблиц:
• Предметы – таблица со списком предметов;
• Студенты – таблица со списком студентов всего учебного заведения;
• Группы - таблица со списком групп.
Также в процессе работы программы автоматически создаются таблицы
с именем номер группы и предмета, содержащие список студентов и их оценок,
таблица «Тема занятия» с номером группы, которая содержит информацию о
проводимых занятиях.
Вся информация хранится в базе данных «Base osn.mdb».
Выходные данные:

17

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Выходной информацией является формирование таблиц в Microsoft
Excel, содержащих следующие данные:
• Фамилия Имя Отчество
• Предметы
• Оценки по предметам студентов группы.
• Итоговые оценки
Так же формируются отчеты на основе отчетности, встроенной в Borland
Delphi, которые содержат следующие данные:
• Фамилия Имя Отчество
• Средний балл.

Таблица 5
Входные данные

Переменная Тип Описание

_name String Имена таблиц предметов


st Tstrings Список таблиц из базы
i Integer Переменная цикла
sum Integer Сумма оценок студента
Sred Real Среднее значение по
оценкам студента
rec Integer Запоминает положение
курсора в таблице
Filter String Содержит строку вида:
"дата1=2" or "дата2=2" or
"дата3=2" ...
Column String Строка текущей даты
n Integer Запоминает текущий
месяц
c Integer Запоминает выбранный
месяц
vvocenka String Введенная оценка
s Integer Количество оценок
студента
FList TStringList Содержит количество
полей в таблице.
indexKPF Integer Накапливает сумму в
случае нахождения КП
tempfam string Содержит список
студентов для вставки в
Excel
Продолжение таблицы 5

18

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
temppred string Содержит список
предметов для вставки в
Excel
STBases TStrings Список таблиц в базе
commandsql string Содержит SQL запрос на
создание таблицы.
tblEstr boolean Проверка на наличие
таблицы в базе.
nomgroupSQL string Содержит номер группы
для подстановки в SQL
запрос.
podst String Содержит имя итогового
столбца или КП.
SN TStringList Листы предметов без
Экзаменов
SE TStringList Листы предметов с
экзаменами
SF TStringList Полный лист (SN+SE)
SNF TStringList Листы предметов без
экзаменов и с
наименованиями.
SEF TStringList Листы предметов с
экзаменами и с
наименованиями.
SFF TStringList Полный лист с
наименованиями.

Функциями обработки входных данных при решении задачи является:


ввод данных об успеваемости в ВКСХК;
1) Цель и назначение данной задачи состоит в том, чтобы разработать
программу для работы с ней преподавателей ВКСХК, которая позволяет
просматривать всю информацию о пройденных парах.
2) Содержание функций обработки входной информации для решения
задачи: ввод данных о пройденных темах, сохранение введенных данных.
3) Требование к периодичности решения задачи: возможно при
необходимости просмотра информации.
4) Ограничение по срокам и точностям выходной информации:
информация предоставляется сразу после завершения процесса обработки
входной информации.
5) Состав и форма представления выходной информации: информация
представляется в виде текстового документа, результатом работы является
электронный документ по запросу.
6) Источники входной информации для решения задачи: источником
входной информации является документы преподавателей.
7) Пользователями задачи являются преподаватели ВКСХК.
19

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Структура взаимодействия входной и выходной информации.
Как и любая компьютерная программа, данная программа обрабатывает
входные данные и выводит результат в виде выходных данных. Входные данные
имеют структуру любой задачи - это описание некоторой ситуации (исходные
данные) и формулировка вопроса, ответ на который должен быть на основе
сложившейся ситуации. Разделение входных данных на две части дает
возможность задавать вопросы по уже имеющейся ситуации, не описывая ее
заново.
Следует отметить, что задача определения необходимой информации и
постановки вопросов остается за человеком. Данная программа - это всего лишь
средство для получения необходимой информации и к человеческим
рассуждениям не имеет никакого отношения.
Часто правильная постановка вопроса и четкое понимание того, что же
необходимо получить в качестве ответа - это почти готовое решение задачи.
Почти во всех логических задачах подтекстом идет очень много неявных
условий, т. е. таких условий, о которых нужно просто догадаться - причем этого
часто уже бывает достаточно, чтобы получить ответ.
В этой статье формированию условий задачи уделяется основное
внимание. Запись условий должна удовлетворять некоторым описанным ниже
правилам - иначе программа при синтаксическом разборе этой записи может
выдать сообщение об ошибке.
Схема взаимодействия входной и выходной информации изображена на
рисунке 1.

Рисунок 2 Схема взаимодействия входной и выходной информации

20

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
2 Проектная часть

2.1 Инфологическое проектирование

Инфологическая модель применяется на втором этапе проектирования


БД, то есть после словесного описания предметной области. Цель этапа
инфологического проектирования состоит в получении семантических
(концептуальных) моделей, отражающих предметную область и
информационные потребности пользователей. Процесс проектирования
длительный, он требует обсуждений с заказчиком, со специалистами в
предметной области. Инфологическая модель должна включать такое
формализованное описание предметной области, которое легко будет
«читаться» не только специалистами по базам данных. И это описание должно
быть настолько емким, чтобы можно было оценить глубину и корректность
проработки проекта БД.
Проблема представления семантики давно интересовала разработчиков,
и в семидесятых годах было предложено несколько моделей данных, названных
семантическими моделями. К ним можно отнести семантическую модель
данных, предложенную Хаммером (Hammer) и Мак-Леоном (McLean) в 1981
году, функциональную модель данных Шипмана (Shipman), также созданную в
1981 году, «модель сущность-связь», предложенную Ченом (Chen) в 1976 году,
и ряд других моделей. У всех моделей были свои положительные и
отрицательные стороны, но испытание временем выдержала только последняя.
И в настоящий момент именно модель Чена «сущность-связь», пли «Entity
Relationship», стала фактическим стандартом при инфологическом
моделировании баз данных. Общепринятым стало сокращенное название ER-
модель, большинство современных CASE-средств содержат инструментальные
средства для описания данных в формализме этой модели.
В качестве инструмента для построения семантических моделей данных
на этапе инфологического проектирования как раз и является неформальная
модель "Сущность-Связь" (ER-модель - Entity-Relationship). Моделирование
предметной области базируется на использовании графических диаграмм,
включающих небольшое число разнородных компонентов.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность (объект) - это реальный или представляемый объект
предметной области, информация о котором должна сохраняться и быть
доступна. Различают такие понятия, как тип сущности и экземпляр сущности.
Понятие тип сущности относится к набору однородных предметов, событий,
личностей, выступающих как единое целое. Экземпляр сущности относится к
конкретной вещи в наборе. В диаграммах ER-модели сущность представляется
в виде прямоугольника (в нотации Баркера), содержащего имя сущности.
Атрибут - поименованная характеристика сущности, определяющая его
свойства и принимающая значения из некоторого множества значений. Каждый
атрибут обеспечивается именем, уникальным в пределах сущности.

21

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Связь - это поименованная графически изображаемая ассоциация,
устанавливаемая между сущностями и представляющая собой абстракцию
набора отношений, которые систематически возникают между различными
видами предметов в реальном мире. Большинство связей относятся к категории
бинарных и имеют место между двумя сущностями.
В соответствии с упомянутыми ранее определениями данная область
данных будет содержать следующие сущности: студенты, преподаватели и
расписание.
Атрибуты сущности «Студенты»:
• Фамилия
• Группа
• Специальность

Рисунок 3 Атрибуты сущности «Студенты»

Атрибуты сущности Предметы:


- Предметы
- Название_табл
- Группа
- 1 семестр
- 2 семестр
- 3 семестр

Рисунок 4 Атрибуты сущности Предметы


Атрибуты сущности Спис_предметов:
- Предметы
- Название_табл

22

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 5 Атрибуты сущности Спис_предметов
Данная структура позволит легко представить все данные в одной
таблице.
Каждая сущность будет иметь свой уникальный номер и ряд полей,
характеризующих ее.
Даталогическое проектирование
Содержанием даталогического проектирования является определение
модели данных. Модель данных - это набор соглашений по способам
представления сущностей, связей, агрегатов, системы классификации. Кроме
этого каждая модель данных определяет особенности выполнения основных
операций над данными:
- добавление,
- удаление,
- выборка.
В качестве модели данных была выбрана реляционная модель данных.
Реляционная модель данных — логическая модель данных, строгая формальная
теория, описывающая структурный аспект, аспект целостности и аспект
обработки данных в реляционных базах данных.
Основными достоинствами реляционной модели данных являются:
– простота и доступность;
– независимость данных;
– гибкость;
– возможность непроцедурных запросов.
Логическая модель данных
Логическая модель данных описывает понятия предметной области и их
взаимосвязи и является прототипом будущей базы данных. Логическая модель
разрабатывается в терминах информационных понятий, но без какой-либо
ориентации на конкретную СУБД.
Логическую модель представим в виде ER-диаграммы (Рис. 1).
Основные преимущества ER-моделей:
• наглядность;
• модели позволяют проектировать базы данных с большим
количеством объектов и атрибутов;
• ER-модели реализованы во многих системах
автоматизированного проектирования баз данных (например,
CA BPwin Data Modeler).

23

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 6 ER-диаграмма
Физическая модель данных
Физическая модель данных строится на базе логической модели и
описывает данные уже средствами конкретной СУБД.
Отношения, разработанные на стадии логического моделирования,
преобразуются в таблицы, атрибуты в столбцы, домены в типы данных,
принятые в выбранной конкретной СУБД. Результатом физического
моделирования является генерация программного кода базы данных на
соответствующем выбранной СУБД диалекте структурированного языка
запросов SQL.
Разработка приложения для работы с базой данных
Для установки связи базы данных с приложением используется
библиотека функций ODBC.
ODBC (Open Database Connectivity) - широко распространенный
программный интерфейс фирмы Microsoft, удовлетворяющий стандартам ANSI
и ISO для интерфейсов обращений к базам данных (Call Level Interface, CLI).
Для доступа к данным конкретной СУБД с помощью ODBC, кроме собственно
клиентской части, этой СУБД нужен ODBC Administrator (приложение,
позволяющее определить, какие источники данных доступны для данного
компьютера с помощью ODBC, и описать новые источники данных), и ODBC-
драйвер для доступа к этой СУБД. ODBC-драйвер представляет собой
динамически загружаемую библиотеку (DLL), которую клиентское приложение
может загрузить в свое адресное пространство и использовать для доступа к
источнику данных. Для каждой используемой СУБД нужен собственный
ODBC-драйвер, так как ODBC-драйверы используют функции клиентских API,
разные для различных СУБД.
После установки связи базы данных с приложением начинаем
разработку приложения. Для этого используются следующие компоненты:
1. Query (со вкладки ADO). Позволяет формировать запросы к БД,
которые возвращают данные из базы (например, командой SELECT) или не
формируют результирующего набора данных (например, INSERT).

24

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Для того чтобы во время разработки программы задать, какая
информация будет выделена из базы данных в результате выполнения запроса,
свойство SQL должно содержать представленный на языке SQL запрос на
выборку данных.
В общем виде запрос на выборку из таблицы данных выглядит так:
SELECT Список-Полей FROM Таблица WHERE (Критерий) ORDER BY
СписокПолей
где:
SELECT — команда выбора записей из таблицы и вывода содержимого
полей, имена которых указаны в списке;
FROM — параметр команды, который определяет имя таблицы, из
которой нужно сделать выборку;
WHERE — параметр, который задает критерий выбора. В простейшем
случае критерий — это инструкция проверки содержимого поля;
ORDER BY - параметр, который задает условие, в соответствии с
которым будут упорядочены записи, удовлетворяющие критерию запроса.
2. Table (со вкладки ADO). Обеспечивает доступ к файлу (отдельной
таблице базы данных)
3. DataSource (со вкладки Data Access). Обеспечивает связь компонента
отображения-редактирования данных (например, компонента DBGrid) и
источника данных, в качестве которого может выступать таблица (компонент
Tаblе) или результат выполнения SQL-запроса к таблице (компонент Query).
4. DbGrid (со вкладки Data Controls). Служит для отображения записей
набора данных в табличной форме. В свойстве DataSource указываем компонент
источника данных.
5. DbComboBox (со вкладки Data Controls). Служит для отображения
записей какого-то поля таблицы либо результатов запроса.
6. DbLookupComboBox (со вкладки Data Controls). Служит для
отображения записей одного из полей связной таблицы.

2.2 Описание программных компонентов

После запуска программы появляется окно, в котором необходимо


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

25

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 7 Окно учета успеваемости

Описание главного меню.

Рисунок 8 Меню «Управление»


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

26

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 9 Список студентов без единой оценки

Вывести всех студентов. Выводит всех студентов. То есть возвращает


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

Рисунок 10 Меню «Администрирование»


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

Рисунок 11 Список двоечников


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

27

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 12 Меню «Вставка»

Выбрать предмет. Возвращает к окну выбора предмета.


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

Рисунок 13 Меню «Сервис»

Сортировка по фамилии. Упорядочивает фамилии в таблице по


возрастанию, повторный клик упорядочивает по убыванию.
Сортировка по успеваемости. Упорядочивает фамилии в таблице по
возрастанию в зависимости от успеваемости студента, повторный клик
упорядочивает по убыванию.
Основным рабочим элементом является таблица, в которую заносятся
сведения об успеваемости студентов данной группы.
Эту таблицу можно редактировать по усмотрению пользователя. Чтобы
ввести оценку необходимо дважды кликнуть на нужной клетке. Появится
диалоговое окно, в которое необходимо ввести оценку в диапазоне от 1 до 5 и
нажать клавишу «Ввод».

Рисунок 14 Окно «Ввод»


28

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
После этого оценка будет введена в соответствующее поле. Если ввод
осуществлен неверно, т.е. введенное число не попадает в диапазон от 1 до 5, то
выдается сообщение об ошибке, необходимо повторить ввод [30].
Кнопка «Добавить новый день» (аналогичный пункт есть в меню)
предназначена для добавления в таблицу столбца с текущей датой в заголовке.
Использовать эту функцию необходимо при каждом запуске программы.
Кнопка «Выбрать предмет» возвращает к выбору предмета и группы.
Используется для смены предмета или группы.
Кнопка «Ввести тему занятия» переходит к окну, в котором пользователь
может ввести тему занятия на каждый день.
Кнопка «Обновить» возвращает первоначальный вид таблицы.
Окно «Тема занятия» предназначено для ввода информации о темах
проведенных уроков по данному предмету.

Рисунок 15 Окно «Тема занятий»

Главным элементом является таблица, в которую непосредственно


заносится текущая дата и тема занятия (даты вводятся вручную с клавиатуры
через нижнее подчеркивание во избежание ошибок программы).
Кнопка «Добавить» выполняет добавление строки в таблицу.
Кнопка «Удалить» выполняет удаление выбранной строки и таблицы.
Окно «Студенты» используется для внесения изменений в таблицу
студенты, а также выполнять управление группами.

29

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 16 Окно «Студенты»

Основным элементом является таблица, в которой отображены список


студентов, а также группа, в которой числятся эти студенты.
Кнопки управления позволяют:
1. Выбрать группу для просмотра.
2. Добавить новую группу. Вносит изменения в базу данных в новую
таблицу с номером новой группы, сведения о студентах вносятся
позднее (необходимо в начале нового учебного года).
3. Удалить группу. Вносит изменения в базу данных, удаляя из нее таблицу
с указанным номером группы (необходимо в конце учебного года).
4. Добавить студента. Вносит изменения в таблицу, добавляя новые записи
(необходимо при поступлении нового студента в группу).
5. Удалить студента. Вносит изменения в таблицу, удаляя записи
(необходимо при отчислении студента из техникума).
6. Перевод студента из одной группы в другую осуществляется
непосредственным изменением номера группы в соответствующем поле
выбранного студента, и он автоматически будет переведен в другую
группу.
7. Кнопка «Сортировка» упорядочивает фамилии в таблице по
возрастанию, повторный клик упорядочивает по убыванию.
Ниже предлагается выбрать непосредственно предмет и группу, выбрав
из списка.

Рисунок 17 Элементы выбора

30

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Отчет об успеваемости студентов выбранной группы выглядит
следующим образом.
В верхней части отчета отмечен предмет, по которому составляется
отчет. Левый столбец отображает список студентов выбранной группы. Правый
столбец таблицы отражает средний балл студентов соответственно.

Рисунок 18 Отчет об успеваемости


Подобный отчет составляется при выводе информации об успеваемости
отдельного студента.

Рисунок 19 Отчет об успеваемости одного студента

Перед выводом оценок в сводную ведомость выдается диалоговое окно,


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

31

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 20 Окно «Сводная ведомость»

После подтверждения происходит обработка базы данных и сбор всех


оценок в одну таблицу. Оценки берутся из столбца «Итог». Скорость обработки
зависит от ресурсов компьютера.
После завершения операции управление передается в Excel.

Рисунок 21 Итоговые оценки


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

Рисунок 22 Диаграмма успеваемости студентов


Окно редактирование таблицы предметы имеет следующий вид.

32

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 23 Окно «Список предметов»

Для работы предусмотрены две кнопки «Добавить» и «Удалить».


Основной задачей этого окна является предоставление пользователю
возможности корректирования названия предметов, а также их префикс без
запуска MS Access. Позже этот список будет использоваться при составлении
учебного плана [32].
Окно «Учебный план» используется для составления индивидуальных
списков предметов для каждой из групп с указанием экзаменационных
предметов.

Рисунок 24 Окно «Учебный план»

Слева как мы видим общий список предметов, из которого необходимо


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

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
После завершения отбора необходимо сохранить результаты в таблицу.
Это делается с помощью кнопки «Сохранить».

Рисунок 25 Окно «Экзамены»

С помощью кнопки «Удалить предмет» происходит удаление выбранного


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

34

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
3 Проектирование базы данных системы, разработка интерфейса

3.1 Создание таблиц в MS Access

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


MS Access ряда таблиц со следующими именами.

Рисунок 26 Создание базы данных


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

35

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 27 Таблица «Предметы»

В таблице «Спис_предметов» содержится список всех предметов,


преподаваемых в техникуме.

Рисунок 28 Таблица «Спис_предметов»

В таблице «Студенты» содержатся записи о студентах, проходящих


обучение на данной специальности.

Рисунок 29 Таблица «Студенты»

В таблицы с общим названием [Предмет]_[Группа], например, ЭО_202


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

36

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 30 Таблица «ЭО_202»
В таблицы с общим названием «Тема занятия [Предмет]_[Группа]»,
например ЯП_202 будут заноситься данные о темах занятий проводящихся на
данном предмете.

Рисунок 31 Тема занятий


Таблицы с общим названием «new [Номер группы]» являются
временными таблицами.

Рисунок 32 Временная таблица


Эти таблицы будут обеспечивать хранение данных, предоставлять к ним
доступ. Таким образом, мы создали базу данных для более простого доступа к
данным и удобства обработки. Называем нашу базу Base osn и помешаем в
папку Access в рабочем каталоге программы это очень важно для более
простого подключения к базе.
Часть Delphi 7
FrmGlav.
При создании формы frmGlav следует изменить следующие свойства
формы.
Таблица 6
Свойства формы
37

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
object frmGlav: TfrmGlav
Left 306
Top 14
BorderIcons [biSystemMenu, biMinimize]
BorderStyle bsSingle
Caption Успеваемость
ClientHeight 651
ClientWidth 605
Color clBtnFace
Font.Charset DEFAULT_CHARSET
Font.Color clWindowText
Font.Height -11
Font.Name 'MS Sans Serif'
Font.Style []
Menu MainMenu1
OldCreateOrder False
Position poMainFormCenter
Scaled False
OnActivate FormActivate
OnClose FormClose
OnCreate FormCreate
PixelsPerInch 96
TextHeight 13

Располагаем на форме следующие элементы управления и объекты.


DBGrid1: TDBGrid;
DataSource1: TDataSource;
MainMenu1: TMainMenu;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
DataSource2: TDataSource;
QuickRep1: TQuickRep;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolBar2: TToolBar;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
Label1: TLabel;
38

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
DBText1: TDBText;
ImageList1: TImageList;
OpenDialog1: TOpenDialog;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Mes: TComboBox;
SpeedButton3: TSpeedButton;
Подключение базы к проекту осуществляется через форму frmStart с
помощью компонента ADOConnection1. На форме frmGlav обращаемся к базе
через компонент ADOTable1. Связь с таблицами базы происходит через
компонент DataSource1. Отображение таблиц базы происходит с помощью
компонента DBGrid1: TDBGrid; Через ADOQuery1 происходит обращение к
запросам базы.

3.2 Описание процедур

Процедура РАЗМЕР СТОЛБЦОВ.


Первоначально размеры в объекте DBGrid1 имеют определенный размер,
и для наглядности их следует изменить на более подходящий.
procedure TfrmGlav.FormActivate(Sender: TObject);
var
_date:TSystemTime;
begin
Также не требуется отображение нулевого и второго столбца, и мы их
скрываем от пользователя.
DBGrid1.Columns[0].Visible := false;
Ширину второго столбца изменяем и устанавливаем значение 300
DBGrid1.Columns[1].Width := 300;
DBGrid1.Columns[2].Visible:=false;
Изменение месяца.
Получаем системную дату в переменную _date
GetLocalTime(_date);
Из переменной _date получаем номер месяца.
Mes.ItemIndex:=_date.wMonth-1;
Вызвать обработку события изменения комбобокса.
MesChange(Mes);
end;
Процедура Добавление нового дня.
Процедура вызывается кликом по кнопке, имеющей имя ToolButton3 с
помощью этой процедуры выполняется добавление столбца в открытую
таблицу.
procedure TfrmGlav.ToolButton3Click(Sender: TObject);
Для выполнения процедуры нам понадобятся три переменные
var
I: Integer; Переменная цикла.
39

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
column:String; Имя столбца.
fields:TStrings; Список всех полей таблицы.
begin
Создаем объект класса массив строк
fields := TStringList.Create; - получим список всех полей таблицы в
перем.
ADOTable1.GetFieldNames(fields);
Поля можно добавлять только к неактивному набору данных.
ADOTable1.Close;
т.к. дальнейший код может вызвать не предусмотренную ошибку, то
целесообразно использовать обработчик исключений, т.е. конструкцию типа
try
...
finally
...
end;
это позволит нам сохранить работоспособность программы.
Очистим свойство SQL в запросе
ADOQuery1.SQL.Clear;
Получим строку текущей даты в формате dd_mm_yyyy
column := FormatDateTime('dd_mm_yyyy', Date);
Проверим таблицу на наличие столбца с текущей датой
for i:=3 to fields.Count-1 do
begin
если нашли, то выведем сообщение об этом

Рисунок 33 Окно «Ошибка»

if fields[i]=column then
begin
MessageBox(handle,'Дата уже существует!','ОШИБКА',MB_OK or
MB_ICONWARNING)
; и выйдем из процедуры
exit;
end;
end;
создадим запрос на добавление столбца в таблицу
ADOQuery1.SQL.Add('ALTER TABLE '+ADOTable1.TableName+' ADD
'+column+' Integer');

40

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
выполним запрос (зам.: Если в результате запроса не создается таблица,
то необходимо исп. метод ExecSQL)
ADOQuery1.ExecSQL;
добавим в таблицу "Темы" строку с текущей датой
frmTema.ADOTema.AppendRecord([nil,column,nil]);
finally
Теперь мы можем увидеть наши поля
ADOTable1.Open;
обновим поля в таблице
frmGlav.FormActivate(frmGlav);
end;
end;
Процедура ВЫЧИСЛЕНИЕ СРЕДНЕГО БАЛЛА ОДНОГО СТУДЕНТА.
Запускается процедура из основного меню нажатием на клавишу
«Вычисление среднего балла студента», клавиша имеет имя N6.
procedure TfrmGlav.N6Click(Sender: TObject);
Для выполнения процедуры потребуются три переменные
i-переменная цикла.
s-значение среднего балла.
sum-накопление суммы.
var
s,i,sum:integer;
k:integer;
XLApp,Sheet,Colum:Variant;
begin
Присваиваем переменным значение 0
sum:=0;
s:=0;
Цикл начинаем с 3 столбца и до N-1, т.к. счет начинается с нуля
for i:=3 to ADOTable1.FieldCount-1 do
Накапливаем сумму по строке
begin
sum := sum + ADOTable1.Fields[i].AsInteger;
if ADOTable1.Fields[i].AsInteger>0 then s:=s+1;
end;
Если сумма не равна нулю, то в поле sred заносим значение, по формуле
данное поле не отображается в таблице, но оно присутствует.
if (sum<>0) or (s<>0) then
begin
ADOTable1.Edit; Открываем таблицу для редактирования
ADOTable1['sred'] := 0.01*int(100*sum /s);
ADOTable1.Post;
end;
После вычисления среднего балла выводим данные для пользователя в
Excel.
Вывод данных на отчет
41

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
k:=6;
XLApp:= CreateOleObject('Excel.Application');
Отключаем реакцию Excel на события, чтобы ускорить вывод
информации
XLApp.Application.EnableEvents := false;
Устанавливаем наструки листа и ячеек
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
Colum.Columns[1].ColumnWidth:=40;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14; Результаты
Colum.Rows[2].Font.Color:=clBlue;
Colum.Rows[2].Font.Size:=10;ФИО студента
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
Выводим название предмета вверху листа
Sheet.Cells[1,1]:='Средний балл по предмету: '+
frmStart.Cmb_Predm.Text;
Сбрасываем фильтр
ADOTable1.Filtered := False;
Усанавливаем фильтрацию по выбранной строке
ADOTable1.Filter:=''+'Фамилия='+QuotedStr(DBGrid1.Columns[1].Field.
Text);
ADOTable1.Filtered := True;
i:=1;
Начинаем вывод
XLApp.Range[XLApp.Cells[k+i-2, 1], XLApp.Cells[k+i-1,
2]].Borders.LineStyle:=1;
Устанавливаем настройки ячеек
Sheet.Cells[k-1,1].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,1].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,1].Font.Bold:=true;
Sheet.Cells[k-1,1].Font.Size:=10;
Sheet.Cells[k-1,1]:='Фамилия студента';
Устанавливаем настройки ячеек
Sheet.Cells[k-1,2].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,2].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,2].WrapText := True;
Sheet.Cells[k-1,2].Orientation := 90;
Sheet.Cells[k-1,2].Font.Bold:=true;
Sheet.Cells[k-1,2].Font.Size:=10;
Выводим фамилии
Sheet.Cells[i+k-1,1]:=ADOTable1.FieldValues['Фамилия'];
Выводим среднее значение
Sheet.Cells[i+k-1,2]:=ADOTable1.FieldValues['sred'];
42

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
XLApp.Visible:=true;
А т.к у нас установлен фильтр то отобранной окажеться только одна
запись ее и выведет Excel.
Сбрасываем фильтр.
ADOTable1.Filtered := False;
end;
После запуска получаем отчет об успеваемости студента.

Рисунок 34 Отчет об успеваемости студента

Процедура СРЕДНИЙ БАЛ ПО ГРУППЕ.


Процедура аналогична предыдущей, с той разницей, что следует
выводить не одну строку в таблице, а несколько. Запускается процедура кликом
по клавише меню N7.
procedure TfrmGlav.N7Click(Sender: TObject);
Для выполнения процедуры потребуются следующие переменные
i-переменная цикла.
s-значение среднего балла.
sum-накопление суммы.
rec-запоминает положение курсора
var
s,rec, i, sum:integer;
str: string;
k:integer;
XLApp,Sheet,Colum:Variant;
begin
запоминаем положение курсора
rec := ADOTable1.RecNo;
ADOTable1.First;Встаем в начало таблицы
Задаем цикл по всей базе
while not ADOTable1.Eof do
begin
sum:=0;
s:=0;
Накапливаем сумму по строке
for i:=3 to ADOTable1.FieldCount-1 do
begin
sum := sum + ADOTable1.Fields[i].AsInteger;

43

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
if ADOTable1.Fields[i].AsInteger>0 then s:=s+1;
end;
Если сумма не равна нулю, то в поле sred заносим значение по формуле
if sum<>0 then
begin
ADOTable1.Edit;
ADOTable1['sred'] := 0.01*int(100*sum /s);
ADOTable1.Post;
end;
ADOTable1.Next;
end;
ADOTable1.RecNo := rec;
Вывод данных на отчет.
k:=6;
XLApp:= CreateOleObject('Excel.Application');
Отключаем реакцию Excel на события, чтобы ускорить вывод
информации
XLApp.Application.EnableEvents := false;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
Colum.Columns[1].ColumnWidth:=40;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;Результаты
Colum.Rows[2].Font.Color:=clBlue;
Colum.Rows[2].Font.Size:=10;ФИО студента
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
Выводим название предмета вверху листа
Sheet.Cells[1,1]:='Средний балл по предмету: '+
frmStart.Cmb_Predm.Text;
Встаем на первую запись
ADOTable1.First;
Начинаем вывод
for i:=1 to ADOTable1.RecordCount do
begin
XLApp.Range[XLApp.Cells[k+i-2, 1], XLApp.Cells[k+i-1,
2]].Borders.LineStyle:=1;
Установки ячеек
Sheet.Cells[k-1,1].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,1].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,1].Font.Bold:=true;
Sheet.Cells[k-1,1].Font.Size:=10;
Sheet.Cells[k-1,1]:='Фамилия студента';
Установки ячеек
Sheet.Cells[k-1,2].HorizontalAlignment := xlCenter;
44

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Sheet.Cells[k-1,2].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,2].WrapText := True;
Sheet.Cells[k-1,2].Orientation := 90;
Sheet.Cells[k-1,2].Font.Bold:=true;
Sheet.Cells[k-1,2].Font.Size:=10;
Выводим фамилии
Sheet.Cells[i+k-1,1]:=ADOTable1.FieldValues['Фамилия'];
Выводим средние значения
Sheet.Cells[i+k-1,2]:=ADOTable1.FieldValues['sred'];
ADOTable1.Next;/ Следующая запись
end;
XLApp.Visible:=true;

end;
Вот что получилось:

Рисунок 35 Отчет «Средний балл по предмету»


Процедура Вывод Н/А.
Эта процедура выбирает из таблицы только тех студентов, у которых нет
оценок.
Запускается процедура кликом по клавише меню N8.
procedure TfrmGlav.N8Click(Sender: TObject);
begin
Т.к. нам нужны все не аттестованные, то необходимо вывести все записи,
в которых средний балл равен "0". А т.к. средний балл может быть не
проставлен, то добавляется условие на пустое множество
ADOTable1.Filter := 'sred=null or sred=0'; Ставим фильтр по столбцу
средний балл и отбираем все записи со значением 0 или пустое.
ADOTable1.Filtered := true; Запускаем фильтрацию.
end;
После выполнения отображаются выбранные записи, все остальные
скрываются.
45

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Процедура Вывод двоечников.
Процедура будет выбирать из таблицы все строки, в полях которых
находится хотя бы одна двойка.
Запускается процедура кликом по клавише меню N8.
procedure TfrmGlav.N9Click(Sender: TObject);
Для выполнения процедуры потребуются следующие переменные
i-переменная цикла.
filter- содержит анализируемую строку.
var
i:integer;
filter:string;
begin
В цикле получим строку вида: "дата1=2" or "дата2=2" or "дата3=2" ...Т.е
строки, в которых есть двойки.
for i:=3 to ADOTable1.FieldCount-1 do
Filter :='['+ADOTable1.Fields[i].FullName + ']=2 OR '+ Filter;
Удалим последние 4 символа, т.е. " OR "
Delete(Filter,length(Filter)-3,4);
Если в таблице нет полей с датами, то фильтровать не надо!
if filter='' then exit;
ADOTable1.Filter := filter; В свойство фильтра запишем полученную
строку
ADOTable1.Filtered := true; В установим фильтрацию
end;
Процедура Сортировка по фамилии.
Данная процедура предназначена для сортировки студентов по фамилии
от А до Я и обратно.
Запускается процедура кликом по клавише меню N8.
procedure TfrmGlav.N15Click(Sender: TObject);
Ставим условие, что если список отсортирован по убыванию, то
отсортировать по убыванию.
begin
if (ADOTable1.Sort <> 'Фамилия DESC') then
ADOTable1.Sort := 'Фамилия DESC'
else
ADOTable1.Sort := 'Фамилия ASC';
Отображение клавиши.(Нажата, Не нажата)
n15.Checked := not n15.Checked;
n16.Checked := false;
end;
Процедура Сортировка по успеваемости.
Данная процедура сортирует фамилии студентов в зависимости от их
успеваемости, по какому либо предмету, в двух направлениях: от неуспевающих
к отличникам и наоборот.
Ставим условие, что если список отсортирован по убыванию, то
отсортировать, иначе, отсортировать по возрастанию.
46

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
procedure TfrmGlav.N16Click(Sender: TObject);
begin
if (ADOTable1.Sort <> 'SRED ASC') then
ADOTable1.Sort := 'SRED ASC'
else
ADOTable1.Sort := 'SRED DESC';
Отображение клавиши.(Нажата, Не нажата)
n16.Checked := not n16.Checked;
n15.Checked := false;
end;
Процедура обновить.
Процедура предназначена для обновления таблицы в DBGrid1, также
сбрасываются все фильтры и сортировки.
procedure TfrmGlav.ToolButton7Click(Sender: TObject);
begin
выкл. Фильтр и сортировки.
ADOTable1.Filter := '';
ADOTable1.Filtered := false;
ADOTable1.Sort := '';
end;
Процедура открыть базу.
Если необходимо сменить базу, для отображения в программе следует
использовать данную процедуру. С помощью объекта OpenDialog
предоставляется возможность сменить обращение к базе в
ADOBaseOsn(ADOConnection)
procedure TfrmGlav.N2Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
if OpenDialog1.FileName<>'' then
begin
frmStart.ADOBaseOsn.Close; Закрываем базу.
frmStart.ADOBaseOsn.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Sourc='+
OpenDialog1.FileName+';Persist Security Info=False'; Путь к новой базе.
frmStart.ADOBaseOsn.Open; Открываем базу.
end;
end;
end;
Процедура выбор месяца.
Эта процедура позволяет пользователю выбирать месяц обучения и
просматривать успеваемость. Изменение текущего месяца происходит с
помощью выпадающего списка (Combobox) и кнопок прокрутки.

procedure TfrmGlav.MesChange(Sender: TObject);


Потребуются следующие переменные:
47

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
n- текущий месяц
с - выбранный месяц
var
n,i:integer
begin;
c:=Mes.ItemIndex+1; В переменную c заносим значение индекса
переменной Mes и прибавляем 1.
Начинаем отображение столбцов через цикл.
for i:=3 to DBGrid1.Columns.Count-1 do
begin
n:=strtoint(copy(DBGrid1.Columns[i].FieldName,4,2)); Получаем в
переменную n имена столбцов (месяцы)
if n<>c then DBGrid1.Columns[i].Visible:=false Сравниваем две
полученные переменные, если условие выполняется то скрываем столбцы.
else
begin
DBGrid1.Columns[i].Visible:=True; Если не выполняется то
отображаем.
DBGrid1.Columns[i].Title.Caption:=copy(DBGrid1.Columns[i].FieldName,
1,2);
DBGrid1.Columns[i].Width:=20; Устанавливаем ширину столбцов.
end;
end;
end;
Переключение месяца клавишами.
На предыдущий.

Просто вычитаем из индекса месяца 1


procedure TfrmGlav.SpeedButton1Click(Sender: TObject);
begin
if Mes.ItemIndex<11 then
Mes.ItemIndex:=Mes.ItemIndex+1;
MesChange(Mes);
end;
На следующий.

Прибавляем 1
procedure TfrmGlav.SpeedButton2Click(Sender: TObject);
begin
if mes.ItemIndex>0 then
Mes.ItemIndex:=Mes.ItemIndex-1;
MesChange(Mes);
end;
Процедура ввод оценки.
Позволяет вносить в базу оценки, предупреждая ошибки ввода.
48

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
procedure TfrmGlav.DBGrid1DblClick(Sender: TObject);
var
vvocenka,StrMessage:string; Введенная оценка
begin
При двойном клике по ячейке таблицы выдается окно ввода
if InputQuery('Ввод оценки', 'Введите оценку:', vvocenka) then
Если введенный текст не является цифрой от 1 до 5, появляется
сообщение об ошибке.
if (StrToInt(vvocenka) > 5) or (StrToInt(vvocenka)<0) then
begin
StrMessage:='Не правильно введена оценка';
MessageDlg( StrMessage, mterror, [mbOk], 0);
end
else
begin
ADOTable1.Edit; Разрешить редактирование базы
Если нет ошибки, то оценка записывается в базу
ADOTable1.FieldValues[copy(DBGrid1.Columns[DBGrid1.SelectedIndex].Fi
eldName,1,10)] := vvocenka;
Если оценка равна 0, то оценка удаляется
if vvocenka = '0' then
ADOTable1.FieldValues[copy(DBGrid1.Columns[DBGrid1.SelectedIndex].FieldNam
e,1,10)] := null;
ADOTable1.Post; Происходит сохранение базы
end;
end;
Процедура все оценки.
Необходимо применять, когда необходимо отобразить все оценки
одновременно.
procedure TfrmGlav.SpeedButton3Click(Sender: TObject);
var i:integer;
begin
for i:=3 to DBGrid1.Columns.Count-1 do
begin
DBGrid1.Columns[i].Visible:=true; Отображаем все столбцы.
DBGrid1.Columns[i].Width:=20; Устанавливаем ширину.
end;
end;
end.
Процедура ДОБАВЛЕНИЕ ГРУППЫ.
Выполняет добавление в базу таблицу новой группы.
procedure TfrmStud.SpeedButton2Click(Sender: TObject);
var
s - наименование новой группы.
s:string;
begin
49

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
if MessageBox(handle,'Вы действительно хотите добавить новую
группу?','...',MB_ICONQUESTION or MB_YESNO)=mrYes then
Выводится вопросительное сообщение.
begin
s:=InputBox('...','Введите номер группы:','');
Номер группы запоминается в переменной s.
if s<>'' then
frmStart.ADOTGroup.AppendRecord([nil,s]); Добавляется запись.
end;
end;
Процедура удаление группы.
procedure TfrmStud.SpeedButton1Click(Sender: TObject);
begin
Выводится вопросительное сообщение.
if MessageBox(handle,PChar('Вы действительно хотите удалить группу
"'+grupp.text+'" ?'),'...',MB_ICONQUESTION or MB_YESNO)=mrYes then
begin
frmStart.ADOTGroup.Delete; Удаляется запись.
end;
end;
Процедура ДОБАВЛЕНИЕ, УДАЛЕНИЕ ЗАПИСИ.
procedure TfrmStud.SpeedButton4Click(Sender: TObject);
var
StrMessage:string;
begin
if Grupp.text = '' then
begin

Рисунок 36 Окно «Ошибка»

StrMessage:='Не выбрана группа';


MessageDlg( StrMessage, mterror, [mbOk], 0);
end
else
begin
ADOStud.AppendRecord([nil,nil,Grupp.text,nil]); Добавляется запись
end;
end;
procedure TfrmStud.SpeedButton5Click(Sender: TObject);
begin
50

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
ADOStud.Delete();Удаляется запись
end;
FrmStart

Рисунок 37 Форма начальной страницы

Процедура ВЫБОР ОТКРЫВАЕМОЙ ТАБЛИЦЫ


procedure TfrmStart.BitBtn1Click(Sender: TObject);
var
_name:string;
st:TStrings;
i:integer;
tab1,tab2:boolean;
begin
if grup.Text='' then exit; Если группа не выбрана выйти
if Cmb_Predm.Text='' then exit; Если предмет не выбран выйти
tab1:=false;
tab2:=tab1;
frmGlav.ADOTable1.Close; Закрыть таблицу предмет
frmTema.ADOTema.Close; и тема занятий
Получим имя таблицы из таблицы «Предметы»
и добавим номер группы
_Name := ADOTPredm.Fields[2].AsString+
Grup.Text;
st := TStringList.Create; Создать класс массив строк получим список
таблиц из базы.
ADOBaseOsn.GetTableNames(st);
В цикле попытаемся найти нужные таблицы в базе
и если находим, то переходим на другую форму
for i:=0 to st.count-1 do
begin
if st[i]=_name then tab1:=true
else if st[i]='Тема занятия '+_name then tab2:=true;
Открываем эту таблицу
if (tab1) and (tab2) then
begin
frmGlav.ADOTable1.TableName := _name;
frmGlav.ADOTable1.Open;
51

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
frmTema.ADOTema.TableName := 'Тема занятия '+_name;
frmTema.ADOTema.Open;
st.Free;
frmGlav.Show;
frmStart.Hide;
exit;
end;
end;
Процедура ВЫВОД ТЕКУЩЕЙ ДАТЫ.
procedure TfrmStart.Timer1Timer(Sender: TObject);
begin
label4.Caption := 'Дата: '+DateToStr(Date)+#10#13+
'Время: '+TimeToStr(Time);
end;
frmTema

Рисунок 38 Форма «Тема занятий»

Процедура ВЫВОД СООБЩЕНИЯ.


Выводится сообщение для пользователя в верхней части окна.

Рисунок 39 Сообщение для пользователя

procedure TfrmTema.Timer1Timer(Sender: TObject);


Устанавливаются конечные параметры (точки финиша).
begin
if dx1<=80 then inc(dx1,2);

52

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
if dx2>=90 then dec(dx2,2);
if dx3<=80 then inc(dx3,2);
if (dx1>=80) and (dx2<=90) and (dx3>=80) then
begin
inc(n);
if n=100 then
begin
Устанавливаются начальные параметры (точки отсчета).
dx1:=-420;
dx2:=700;
dx3:=-420;
n:=0;
end;
end;
inc(col);
if col=50 then
begin
canvas.Font.Color := TColor(colors); Установки цвета(Красный)
col:=0;
end;
BitBlt(canvas.Handle,0,0,690,98,Image1.Canvas.Handle,0,0,SRCCOPY);
Установки на обновления компонента Image1.
Само сообщение.
TextOut(canvas.Handle,dx1, 8,'Уважемый пользователь ввиду
ограниченных возможностей баз данных ',64);
TextOut(canvas.Handle,dx2,28,'Microsoft Access, просим вводить дату
через нижнее подчеркивание.',65);
TextOut(canvas.Handle,dx3,48,'Надеемся Вас это не затруднит.',30);
end;
ПРОЦЕДУРА ДОБАВЛЕНИЕ НОВОГО ПРЕДМЕТА
procedure TFormSpisPredm.SpeedButton4Click(Sender: TObject);
Используемые переменные.
i - переменная цикла.
Istina – логическая переменная для провери существующих предметов.
StrMessage – содежит сообщение
CaptionStr – переменная в которой будет содержаться префикс.
var
StrMessage,CaptionStr:string;
i:integer;
istina : boolean;
begin
CaptionStr:='';Присваиваем пустое значение.
if not InputQuery('Префикс', 'Введите Префикс',CaptionStr) then
exit;Сообщение о просьбе ввести префикс. Он заносится в переменную
CaptionStr
istina := false;
53

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 40 Окно ввода префикса

ADOTbPred.Prior;Устанавливаем курсор на первую запись.


for i:=1 to ADOTbPred.RecordCount do Запускаем цикл по проверке
существующих предметов.
begin
if CaptionStr = ADOTbPred.Fields.Fields[1].Text then istina :=
true;Сравниваем с каждой записью таблицы.
ADOTbPred.Next; Следующая запись
end;
if istina = true then
begin
StrMessage:='Префикс уже используется';Если находим выводим
сообщение.
MessageDlg( StrMessage, mterror, [mbOk], 0);
end
else
begin
ADOTbPred.Insert;
ADOTbPred.AppendRecord([nil,CaptionStr]);Иначе добавляем запись в
талицу.
end;
end;
ПРОЦЕДУРА УДАЛЕНИЕ ПРЕДМЕТА.
procedure TFormSpisPredm.SpeedButton5Click(Sender: TObject);
begin
ADOTbPred.Delete(); Удаляем последнюю запись.
end;

54

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Рисунок 41 «Форма «Сводная ведомость»

Эта форма очень важна, благодаря которой происходит формирование


сводной ведомости.
Нам понадобятся глобальные переменные
SN,SE,SF: TStringList; Листы предметов без экзаменов и с экзаменами,
полный лист.
SNF,SEF,SFF: TStringList; Листы предметов без экзаменов и с
экзаменами, полный лист полное наименование.
И процедура procedure VivodVExcel;
Начинаем с процедуры выбор текущего семестра.
Процедуры Добавление, удаление темы.
procedure TfrmTema.SpeedButton2Click(Sender: TObject);
begin
ADOTema.Append; Добавляем запись
end;
procedure TfrmTema.SpeedButton3Click(Sender: TObject);
begin
ADOTema.Delete; Удаляем запись.
end;
FormSpisPredm.

Рисунок 42 Форма «Список предметов»


ПРОЦЕДУРА ВЫБОР ТЕКУЩЕГО СЕМЕСТРА.
procedure TFormTemp.CmbSemChange(Sender: TObject);
var
str:string; Содержит наименование текущего семестра.
index2 : integer; Переменная цикла
begin
SF.Clear;Очищаем переменные
SE.Clear; Очищаем переменные
SN.Clear; Очищаем переменные
55

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
SFF.Clear; Очищаем переменные
SEF.Clear; Очищаем переменные
SNF.Clear; Очищаем переменные
Заносим значение из комбобокса в переменную str.
str:=CmbSem.Text;
Фильтруем по группе
ADOTblPred.Filtered:=false;
ADOTblPred.Filter:='Группа='+QuotedStr(frmStart.Grup.Text);
ADOTblPred.Filtered:=true;
Открываем цикл по всем записям в таблице
ADOTblPred.First;
for index2:=1 to ADOTblPred.RecordCount do
begin
Заносим значение «Название_табл» в переменную SE (Это массив
строк), а также «Предметы » в переменную SEF и иначе те же данные заносятся
в другие переменные SN и SNF соответственно. Таким образом, мы получим
два списка: в одном те предметы, по которым есть экзамены, а в другом – те, по
которым нет. Проходимся по всем столбцам (Семестрам).
if str = '1 семестр' then
begin
if ADOTblPred.FieldValues['1семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '2 семестр' then
begin
if ADOTblPred.FieldValues['2семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '3 семестр' then
begin
56

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
if ADOTblPred.FieldValues['3семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '4 семестр' then
begin
if ADOTblPred.FieldValues['4семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '5 семестр' then
begin
if ADOTblPred.FieldValues['5семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '6 семестр' then
begin
if ADOTblPred.FieldValues['6семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
57

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '7 семестр' then
begin
if ADOTblPred.FieldValues['7семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
if str = '8 семестр' then
begin
if ADOTblPred.FieldValues['8семестр'] = '0' then
begin
SE.Add(ADOTblPred.FieldValues['Название_табл']);
SEF.Add(ADOTblPred.FieldValues['Предметы']);
end
else
begin
SN.Add(ADOTblPred.FieldValues['Название_табл']);
SNF.Add(ADOTblPred.FieldValues['Предметы']);
end
end;
ADOTblPred.Next; // Следующая запись
end;
После завершения склеиваются листы так, чтобы экзаменационные
предметы оказались в конце.
for index2:=0 to SN.Count-1 do
begin
SF.Add(SN.Strings[index2]);
end;
for index2:=0 to SE.Count-1 do
begin
SF.Add(SE.Strings[index2]);
end;
for index2:=0 to SNF.Count-1 do
begin
SFF.Add(SNF.Strings[index2]);
end;
58

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
for index2:=0 to SEF.Count-1 do
begin
SFF.Add(SEF.Strings[index2]);
end;
end;
После завершения формирования списка вывода можно посылать
данные в Excel
ПРОЦЕДУРА ВЫВОД ОТЧЕТА В EXCEL.
Procedure TFormTemp.VivodVExcel;
var
k,i, i2, i3, index:integer;
indexKPF:integer; Если есть КП то прибавляем это число.
S: TStringList;
tempfam, temppred: string;
XLApp,Sheet,Colum:Variant;
begin
indexKPF:=1; Еще не встретили КП
FormTemp.Hide;
Меняем имя формы.
frmGlav.Caption:=' Пожалуйста, подождите, идет обработка….';
Отступаем шесть строк сверху
k:=6;
frmGlav.ADOTable1.First;
Создаем массив строк для вывода.
S:=TStringList.Create;
for i:=1 to frmGlav.ADOTable1.RecordCount do
begin
S.Add(frmGlav.ADOTable1.FieldValues['Отчет']);
frmGlav.ADOTable1.Next; Следующая запись.
end;
XLApp:= CreateOleObject('Excel.Application');
Отключаем реакцию Excel на события, чтобы ускорить вывод
информации.
XLApp.Application.EnableEvents := false;
Открываем книгу Excel находящуюся в каталоге ext
XLApp.Workbooks.Open(ExtractFilePath(Application.ExeName)
+'ext\'+'Отчетt.xls');
Устанавливаем параметры вывода
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;
Colum.Columns[1].ColumnWidth:=40;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчет '].Rows;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=14;
Colum.Rows[2].Font.Color:=clBlue;
Colum.Rows[2].Font.Size:=10;
59

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет'];
Пишем заглавие
Sheet.Cells[1,3]:='СВОДНАЯ ВЕДОМОСТЬ';
i3:=1+SF.Count;
XLApp.Range[XLApp.Cells[k-1, 1], XLApp.Cells[k-1,
i3]].Borders.LineStyle:=1;
Заставляем работать прогресс бар.
frmWait.ProgressBar1.Min:=0;
frmWait.ProgressBar1.Max:=s.Count;

Начинаем заполнение фамилиями, которые берутся из переменной s.


for i2:=0 to s.Count-1 do
begin
tempfam:=s.Strings[i2];
memo2.Lines.Add(tempfam);
frmStart.ADOTPredm.First;
Sheet.Cells[i2+k,1]:=tempfam;
XLApp.Range[XLApp.Cells[k+i2, 1], XLApp.Cells[k+i2,
i3]].Borders.LineStyle:=1;
frmWait.ProgressBar1.Position:=i2;
for i:=1 to SF.Count do
begin
Подпись столбца и его настройки
Sheet.Cells[k-1,1].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,1].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,1].Font.Bold:=true;
Sheet.Cells[k-1,1].Font.Size:=10;
Sheet.Cells[k-1,1]:='Фамилия студента';
Настройки последующих столбцов
Sheet.Cells[k-1,i+1].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,i+1].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,i+1].WrapText := True;
Sheet.Cells[k-1,i+1].Orientation := 90;
Sheet.Cells[k-1,i+1].Font.Bold:=true;
Sheet.Cells[k-1,i+1].Font.Size:=10;
Вставляем строки с предметами
Sheet.Cells[k-1,i+1]:=SFF.Strings[i-1];
temppred:=SF.Strings[i-1]+ frmStart.Grup.Text;
memo2.Lines.Add(temppred);
ADOTablePredTemp.TableName:=temppred;
ADOTablePredTemp.Active:=true;
ADOTablePredTemp.Filtered := False;
ADOTablePredTemp.Filter:=''+'Ôàìèëèÿ='+QuotedStr(tempfam);
ADOTablePredTemp.Filtered := True;
ADOTablePredTemp.GetFieldNames(FList);Получаем список полей
Добавляем
for index :=0 to FList.Count-1 do
60

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
begin
if (FList.Strings[index] = 'КП') and (i2=0) then
begin
indexKPF:=indexKPF+1;
end;
end;
Вставляем столбец для КП
for index :=0 to FList.Count-1 do
begin
if FList.Strings[index] = 'КП' then
begin
XLApp.Range [XLApp. Cells [k-1,1], XLApp. Cells[k1,
indexKPF+SF.Count]].Borders. LineStyle: = 1;
Sheet.Cells[k-1,indexKPF+SF.Count].HorizontalAlignment := xlCenter;
Sheet.Cells[k-1,indexKPF+SF.Count].VerticalAlignment := xlCenter;
Sheet.Cells[k-1,indexKPF+SF.Count].WrapText := True;
Sheet.Cells[k-1,indexKPF+SF.Count].Orientation := 90;
Sheet.Cells[k-1,indexKPF+SF.Count].Font.Bold:=true;
Sheet.Cells[k-1,indexKPF+SF.Count].Font.Size:=10;
Sheet.Cells[k-1,indexKPF+SF.Count]:='Курсовой проект по:
'+SFF.Strings[i-1];
end;
end;
Начинаем заполнение оценками
for index :=0 to FList.Count-1 do
begin
if FList.Strings[index] = 'КП' then
begin
XLApp.Range[XLApp.Cells[k+i2, 1], XLApp.Cells[k+i2,
indexKPF+SF.Count]]. Borders.LineStyle:=1;
Sheet.Cells[i2+k,indexKPF+SF.Count]:=ADOTablePredTemp.FieldValues['К
П'];
end;
end;
Sheet.Cells[i2+k,i+1]:=ADOTablePredTemp.FieldValues['Èòîã'];
ADOTablePredTemp.Filtered := False;
ADOTablePredTemp.Active:=false;
end;
end;
Закончили заполнение.
Описываем макрос по созданию среднего значения, необходим для
организации диаграммы.
Sheet:=XLApp.Workbooks[1].WorkSheets['Лист2'];
//i2 = 6
for i2:=0 to s.Count-1 do
begin
61

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Sheet.Cells[i2+6,1]:='=Отчет!RC'; Копируем с листа «Отчет» фамилии
Sheet.Cells[i2+6,2]:='=AVERAGE(Отчет!RC:RC[9])'Получаем средние
значения
Sheet.Cells[i2+6,2].NumberFormat := '# ##0,00'; Устанавливаем формат
ячейки.
end;
Показываем результаты.
frmWait.Hide;
XLApp.Visible:=true;
FormTemp.Close;
frmGlav.Caption:='Успеваемость';
end;
Очищаем переменные.
procedure TFormTemp.FormCreate(Sender: TObject);
begin
SE:=TStringList.Create;
SN:=TStringList.Create;
SF:=TStringList.Create;
SEF:=TStringList.Create;
SNF:=TStringList.Create;
SFF:=TStringList.Create;
FList:=TStringList.Create;
end;
Задержка перед началом вывода, а то форма подвисает.
procedure TFormTemp.SpeedButton3Click(Sender: TObject);
begin
frmWait.Show;
Timer1.Enabled:=true;
end;
procedure TFormTemp.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled:=false;
VivodVExcel;
end;
Конец
end.
ПРОЦЕДУРА ЗАГРУЗКА ПЛАНА.
procedure TfrmYchPl.LoadPlan;
var
ListItem: TListItem;
index: integer;
begin
Добавляем в ListItem список предметов.
for index:=1 to ADOTbl.RecordCount do
begin
with LVPlan do
62

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
begin
ListItem := Items.Add;
ListItem.Caption := ADOTbl.FieldValues['Предметы'];
Устанавливаем отображение так, что бы если в базе стоит 0, то
выдавалось «Есть» а если -1 то пустая клетка.
if ADOTbl.FieldValues['1семестр'] = '0' then
ListItem.SubItems.Add('Есть')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[' 2семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[' 3семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[‘4семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[' 5семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[' 6семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues[' 7семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
if ADOTbl.FieldValues['8 семестр '] = '0' then ListItem.SubItems.Add('
Есть ')
else ListItem.SubItems.Add(' ');
end;
ADOTbl.Next; Следующая запись
end;
end;
Процедура создание таблицы.
procedure TfrmYchPl.CreateTable;
var
commandsql:string;
begin
Команда для создания таблицы
commandsql:='Create table' +' '+ 'new'+CmBGroup.Text;
with ADOQuery1 do begin
with SQL do begin
Clear;
Команды для создания полей
Add(commandsql);
Add('(');
63

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Add('Предметы varchar(50),Название_табл varchar(50)');
Add(',Группа varchar(50)');
Add(',1семестр logical, 2 семестр logical');
Add(',3 семестр logical, 4 семестр logical');
Add(',5 семестр logical, 6 семестр logical');
Add(',7 семестр logical, 8 семестр logical');
Add(')');
end;
ADOQuery1.ExecSQL; Выполнение команд на SQL не смотря на
ошибки
end;
end;
ПРОЦЕДУРА УДАЛЕНИЕ ТАБЛИЦЫ.
procedure TfrmYchPl.DeleteTable;
var
commandsql:string;
begin
Команда для удаления таблицы
commandsql:='DELETE FROM' +' '+ 'new'+CmBGroup.Text;
with ADOQuery1 do begin
with SQL do begin
Clear;
Add(commandsql);
end;
ADOQuery1.ExecSQL; Выполнение команд на SQL не смотря на
ошибки
end;
end;
procedure TfrmYchPl.FormCreate(Sender: TObject);
var
i:integer;
begin
Получаем список таблиц в базе
STBases := TStringList.Create;
frmStart.ADOBaseOsn.GetTableNames(STBases, False);
for i:=1 to ADOTblGroup.RecordCount do
begin
Добавляем запись (Номер группы) в ComboBox
CmBGroup.Items.Add(ADOTblGroup.Fields.Fields[1].Text);
ADOTblGroup.Next; Следующая запись
end;
for i:=1 to ADOTblpred.RecordCount do
begin
Добавляем запись
LVPred.Items.Add.Caption:=ADOTblpred.Fields.Fields[0].Text;
ADOTblpred.Next; Следующая запись
64

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
end;
end;

65

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Заключение

В дипломном проекте нами построена модель информационной системы


«Электронный журнал успеваемости» для автоматизации процесса ведения
журнала успеваемости.
В ходе работы было проанализировано современное состояние
проблемы автоматизации деятельности ВКСХК. Изучена предметная область
автоматизации и разработана структура системы.
При разработке информационного обеспечения системы были
проанализированы: состав и структура информации, установлены
функциональные зависимости реквизитов, выделены информационные
объекты.
Программа «Электронный журнал успеваемости групп» отвечает
требованиям поставленной задачи, т.е.:
• Ведет учет внесенных оценок.
• Имеет возможность работы с оценками и темами занятий.
• Рассчитывает средний балл успеваемости студентов.
• Формирует отчетность по текущей успеваемости, а также выставленных
итогов.
• Автоматическое обновление и сохранение оценок.
• Происходит формирование диаграммы, которая отражает успеваемость
более наглядно.
Были выполнены следующие задачи:
1. Создание базы данных, которая содержит:
1.1. данные о студентах и предметах Восточно-Казахстанского
сельскохозяйственного колледжа;
1.2. перечень групп;
1.3. перечень изучаемых студентами дисциплин;
1.4. данные о текущей успеваемости студентов;
2. Создание интерфейса к базе данных;
2.1. разработка внешнего вида интерфейса;
2.2. создание форм для ввода данных;
2.3. подключение созданного интерфейса к базе данных.
Интерфейс программы, прежде всего, направлен на пожелания
пользователя, т.е. данный программный продукт составлен таким образом, что
пользователь может легко в нем ориентироваться.
Данная программа может работать в любых учебных заведениях,
которым необходимо вести учет успеваемости сотрудников, будь то студенты
средне специальных учебных заведений или учащиеся школ.

66

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
Список используемой литературы

1. Дарахвелизе П.Г., Марков Е.П.“Delphi 4”, СПб.:,БВХ-Санкт-


Петербург 1999.-816 с., ил.
2. Фленов Михаил “Библия Delphi” 2001г. http://www.cydsoft.com/vr-
online.
3. “Королевство Delphi” http://www.delphikingdom.com/
4. “Советы по Delphi” http://www.webmachine.ru/
5. “Все метрики” http://www.met-rix.narod.ru
6. “Мифоскоп или Современные мифы” http://a.lvt.ru/
7. “Новости Кибер-Мира” http://www.gyberinfo.ru/
8. “e-Crypt: Криптография, шифрование” http://www.cryptology.ru
9. В. Н. Петров «Информационные системы», Питер, 2002 г.
10. Кандзюба С. П.,
11. Громов В. Н, «Delphi 6. Базы данных и приложения», DiaSoft, 2002 г.
12. Алексей Федоров, Наталия Елманова, «ADO в Delphi», bhv-Санкт-
Петербург, 2002 г.
13. А. Жуков, «Изучаем Delphi», Питер, 2000
14. В. Фаронов, «Программирование баз данных в Delphi», Питер, 2004
15. Ф. Гофман, А. Хоменко «Работа с базами данных в Delphi», bhv-
Санкт-Петербург
16. В. Фаронов, «Delphi 5. Руководство программиста», Нолидж, 2001
17. Вероника Михеева, Ирина Харитонова «MS Access 2000», БВХ-
Петербург, 2000г.
18. Ирина Харитонова, «Access 2000», Питер, 2001
19. Джон Вейскас, «MS Access 2000», Питер, 2001
20. С. Робинсон , «Microsoft Access 2000», Питер, 2001
21. Архангельский А. Я. Программирование в Delphi 7.-М.: ЗАО
«Издательство БИНОМ», 2003г.
22. Александр, Днепров Видеосамоучитель. Microsoft Access 2007 (+
CD-ROM) / Днепров Александр. - Москва: Мир, 2017. - 518 c.
23. Бекаревич, Юрий Самоучитель Access 2010 (+ CD-ROM) / Юрий
Бекаревич , Нина Пушкина. - М.: БХВ-Петербург, 2017. - 432 c.
24. Гандерлой Автоматизация Microsoft Access с помощью VBA /
Гандерлой, Харкинз Майк; , Сейлз Сьюзан. - М.: Вильямс, 2013. - 416
c.
25. Голышева, А. В. Access 2007 без воды. Все, что нужно для уверенной
работы / А.В. Голышева, И.А. Клеандрова, Р.Г. Прокди. - М.: Наука и
техника, 2012. - 192 c.
26. Гринченко Проектирование баз данных. СУБД Microsoft Access /
Гринченко, Н.Н. и. - М.: Горячая Линия Телеком, 2014. - 240 c.
27. Гурвиц, Г. Microsoft Access 2010. Разработка приложений на
реальном примере / Г. Гурвиц. - М.: БХВ-Петербург, 2017. - 496 c.
28. Джонс, Эдвард Access 97: книга ответов / Эдвард Джонс , Джарел
Джонс. - М.: Питер, 2016. - 400 c.

67

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)
29. Епанешников, А. М. Практика создания приложений в Access / А.М.
Епанешников, В.А. Епанешников. - Москва: СИНТЕГ, 2017. - 440 c.
30. Культин, Никита Основы программирования в Delphi XE / Никита
Культин. - М.: "БХВ-Петербург", 2011. - 416 c.
31. Осипов, Дмитрий Delphi. Программирование для Windows, OS X,
iOS и Android / Дмитрий Осипов. - М.: "БХВ-Петербург", 2014. - 464
c.
32. Осипов, Дмитрий Delphi. Профессиональное программирование /
Дмитрий Осипов. - М.: Символ-плюс, 2013. - 820 c.
33. Попов, Сергей Delphi и 1С:Предприятие. Программирование
информационного обмена (+ CD-ROM) / Сергей Попов. - М.: БХВ-
Петербург, 2012. - 592 c.
34. Ревич, Ю. Нестандартные приемы программирования на Delphi / Ю.
Ревич. - М.: БХВ-Петербург, 2016. - 560 c.
35. Санников, Е. В. Курс практического программирования в Delphi.
Объектно-ориентированное программирование / Е.В. Санников. - М.:
Солон-Пресс, 2013. - 188 c.

68

Document shared on www.docsity.com


Downloaded by: grib-iuliana (aaw1612.gribiuliana@gmail.com)