Автоматизированное рабочее место по расчёту голосов в избирательных участках

Министерство образования Республики Беларусь

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ

«ГРОДНЕНСКИЙ ГОСУДАРСТВЕННЫЙ ПРОФЕССИОНАЛЬНО-ТЕХНИЧЕСКИЙ КОЛЛЕДЖ ЛЕГКОЙ ПРОМЫШЛЕННОСТИ»

Информационно-экономическое отделение



















ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОМУ ПРОЕКТУ

«Автоматизированное рабочее место по расчёту голосов

в избирательных участках»









УчащийсяА.В. Кава

Группа № 03-11-08тп

Руководитель

ПреподавательЛ.В. Матирко







Гродно 2010


СОДЕРЖАНИЕ



ВВЕДЕНИЕ

1. РАЗРАБОТКА ЭСКИЗНОГО ПРОЕКТА

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

1.2 Обоснование выбора программного обеспечения, использованного в работе

1.3 Описание входных данных

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

2. РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА

2.1 Спецификация программы

2.2 Система меню

2.3 Состав основных модулей

	3. ВНЕДРЕНИЕ

	3.1 Требования, предъявляемые к эксплуатации ресурса, техническим средствам, программному обеспечению

3.2 Тестирование

	ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 






ВВЕДЕНИЕ



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

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

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

В некотором смысле, база данных представляет собой очень хорошо организованную электронную картотеку, в которой мощное программное обеспечение, называемое системой управления базами данных (СУБД), помогает управлять содержимым этой картотеки.

СУБД представляет собой совокупность программ, с помощью которых осуществляется управление структурой БД и контроль доступа к данным, хранящимся в ней. СУБД позволяет нескольким приложениям или пользователям осуществлять совместный доступ к данным. В мире существует немало различных СУБД. Среди них: dBase, FoxPro, F1exes, MS Access, Oracle и др.

Таким образом, СУБД и БД составляют информационно-поисковую систему, которая обеспечивает быстрый автоматизированный поиск самой различной информации в БД, позволяет упорядочить информацию (размещать информацию в требуемом порядке), составлять отчеты, производить расчеты, выводить данные на печать и др.

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

Целью курсового проекта является разработка и эксплуатация автоматизированных информационных систем. В нашем случае это «Автоматизированное рабочее место по расчёту голосов в избирательных участках». 

Задачи курсового проекта:

Анализ предметной области.

Структурирование имеющейся, и поиск новой информации, необходимой для разработки автоматизированных информационных систем;

Создание автоматизированного рабочего места с помощью Borland Delphi 7 и MS Access;

Создание удобного пользовательского интерфейса;

Структурирование и функциональность автоматизированных информационных систем;

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

Предметом исследования является автоматизированное рабочее место секретаря избирательной комиссии, реализованное с помощью системы управления базами данных (СУБД) MS Access в приложении Borland Delphi 7.

При создании электронного пособия использовались следующие научные методы:

теоретические методы (анализ, синтез и сравнение);

экспериментальные методы;

моделирование.




1. РАЗРАБОТКА ЭСКИЗНОГО ПРОЕКТА



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



Темой курсового проекта является разработка электронного автоматизированного рабочего места с помощью среды разработки Delphi 7.

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

При разработке проекта необходимо реализовать следующие задачи:

Обзор литературных и Интернет источников;

Отбор информации по теме проекта;

Создание базы данных;

Реализация проекта в среде Borland Delphi 7. 

Проект предоставляет следующие возможности:

	Добавление новых записей в таблицу;

	Изменение записей в таблице;

	Удаление записей в таблице;

	Поиск по таблицам;

	Возможность формирования отчётов.

	

	1.2. Обоснование выбора программного обеспечения,

использованного в работе



Каждый раз перед написанием новой программы программисты задумываются над тем в какой программной среде создать свой проект.

Для создания своего проекта я воспользовался Delphi 7 и Microsoft Access. Спросите почему Delphi? Спросите любого программиста, набор ответов будет примерно одинаковым: 

- это объектно-ориентированное программирование; 

- это компилятор;  это скорость; 

- это визуальное проектирование; 

- это базы данных; 

- это великолепные компоненты; 

- это Паскаль.

Посмотрите на Delphi: здесь каждый может найти себе задачу по силам, получить свой вызов, независимо от уровня начальной подготовки. Кто только делает первые шаги в программировании, имеет прекрасную возможность изучить основные концепции, при этом с самых первых минут создавая реальные работающие программы. Для новичка в объектно-ориентированном программировании - строгий и ясный объектный язык - Object Pascal.

Здесь есть также много нового для программиста, разрабатывающего базы данных. А тот, кто считает себя настоящим профессионалом, компьютерным гуру, хорошо знающим как работает Windows "изнутри", наверняка найдет захватывающим и нетривиальным занятием создание новых, оригинальных компонентов. Может ли вышесказанное быть той искомой причиной? Думаю, что нет. По крайней мере, не на все сто процентов. Ведь сколько программистов перешли на Delphi после C++ или Paradox'а, где имели не меньше возможностей для самореализации.

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

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

Каждый язык программирования предназначен под определенные цели и задачи. И Acess решает достаточно большое количество офисных, бухгалтерских и других подобных задач. Программирование в Access, создание структуры базы данных аналогичны как и в других средах. И не зачем стрелять из пушки по воробьям и делать что-то на Informixe, если все это проще сделать на Access. Освоив основные принципы, легко перейти к другим средствам разработки. Отличие будет только в обертке - названиях функций, процедур, синтаксических правилах и т.д. Но основное - принцип создания баз и алгоритмов останется.

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



1.3 Описание входных данных



В процессе постановки задачи были выявлены требования, предъявляемые к проектируемой системе, которые после детального изучения, были отражены в структуре разработанной базы данных. База данных «АРМ секретаря избирательной системы» хранит сведения об объектах предметной области при помощи 8 следующих таблиц:

1. Таблица «Избиратели» - Содержит всю необходимую информацию о избирателе. Состав полей:

Код избирателя (счётчик) – ключевое поле, предназначено для идентификаций каждого избирателя;

ФИО на русском языке (текстовый);

Серия паспорта (текстовый);

Номер паспорта (числовой);

Дата выдачи паспорта (дата);

Кем выдан (текстовый);

Место проживания (текстовый);

Наличие урны (логический);

Код участка (числовой).

2. Таблица «Кандидаты» - Содержит всю необходимую информацию о кандидате. Состав полей: 

 Код кандидата (счётчик) – ключевое поле, предназначено для идентификаций каждого кандидата;

Код участка (числовой);

Код выборной компании (числовой);

		ФИО на русском языке (текстовый);

		Фото (текстовый);

		Информация о кандидате (текстовый).

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

Код результат голосования (счётчик) – первичный ключ для связи с таблицами «Избиратели» и «Кандидаты».

	Код кандидат (числовой);

	Количество голосов (числовой).

4. Таблица «участки» - Служит для связи с таблицами «Избиратели» и «Кандидаты». Состав полей таблицы:

Код участка (счётчик) – первичный ключ для связи с таблицами «Избиратели» и «Кандидаты».

		Адрес(текстовый).

5. Таблица «Выборная компания» - Содержит информацию о выборной компании. Состав полей таблицы:

Код выборной компании (счётчик) – первичный ключ.

	Дата проведения (дата);

	Код вид голосования (числовой).

6. Таблица «Вид голосования» - Содержит информацию о виде голосования. Состав полей таблицы:

Код вид голосования (счётчик) – первичный ключ.

		Вид голосования (мастер подстановки).

7. Таблица «Информация содержит информацию о выборной компании» - Служит для связи таблиц «Выборная компания» и «Кандидаты». Состав полей таблицы:

Код информации выборной компании (счётчик) – первичный ключ;

	Код кандидат (числовой);

	Код выборной компании (числовой).

8. Таблица «Голосование» содержит информацию о ходе голосования. Состав полей:

Код голосования (счётчик) – первичный ключ;

	Код избирателя (числовой);

		 Дата голосования (дата);

		 Код выборной компании (числовой) – вторичный ключ.



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



		Разработка структуры проекта.

		Разработка структуры базы данных.

		Выбор дизайна проекта.

		Разработка системы меню.

		Заполнение таблиц базы данных.

		Соединение проекта с базой данных.

		Наполнение страниц.

		Тестирование проекта.

		Устранение ошибок, выявленных в процессе тестирования.

		Оформление технической документации.

		Подготовка проекта к эксплуатации.






2. РАЗРАБОТКА РАБОЧЕГО ПРОЕКТА



2.1 Спецификация программы



Обозначение

Наименование

Примечание

*.dpr

Файл проекта



*.exe

Файл единого модуля, файл запуска



*.pas

Файл фрагмент программного кода

Содержит фрагмент программного кода

*.jpg

Файл изображения

Для отображения изображения в проекте

*.hlp

Файл справки

Содержит руководство по пользованию



2.2 Система меню







2.3 Состав основных модулей

	

	После запуска главной формы загружается следующая форма. Код на Timer:

	

	begin

	Form1->Hide;

	Form2->Show;

	end;

	При нажатии на кнопку «Выход», прописывается следующий код:

	begin

	Close;

	end;

	

	На главной форме находятся вкладки на панели PageControl, при нажатии на их мы переходим к разным таблицам БД.На главной форме в строке меню находятся ссылка «Справка», при нажатии на которую мы переходим к файлу справки:

	

	begin

	Application.HelpJump("StartLabel");

	end;

	

	При вызове поиска из вкладки на панели PagesControl, на событие CellClik прописываем следующий код:

	

	begin

	if MessageBox(Handle,'Удалить запись?','Подтверждение на удаление ',mb_iconquestion+mb_yesnocancel)=idyes then

	begin

	ADOQuery13.Parameters.ParamByName('id_rezultat_golosovanija').Value:=ADOQuery20.FieldByName('id_rezultat_golosovanija').AsInteger;

	ADOQuery20.Active:=false;

	ADOQuery20.Active:=true;

	end;

	end;

	procedure TForm1.Edit17KeyUp(Sender: TObject; var Key: Word;

	 Shift: TShiftState);

	begin

	if ComboBox2.ItemIndex=0 then

	begin

	with Form1.ADOQuery27 do begin

	    Close;

	    SQL.Clear;

	    SQL.Add('SELECT izberateli.id_izberateli, izberateli.fio, izberateli.adress_iz, izberateli.serija_pasporta, izberateli.nomer_pasporta, izberateli.kogda_vydan, izberateli.kem_vydan, izberateli.nalichie_urny, uchastki.id_uchastok, uchastki.adress');

	    SQL.Add('FROM uchastki INNER JOIN izberateli ON uchastki.id_uchastok = izberateli.id_uchastok');

	    SQL.Add('WHERE fio LIKE "'+Edit17.Text+'%"');

	    SQL.Add('ORDER BY fio');

	    active:=false;

	    active:=true;

	    Open;

	    end;

	    end

	else begin

	if ComboBox2.ItemIndex=1 then

	begin

	 DBGrid2.Visible:=true;

	 with form1.ADOQuery27 do begin

	    Close;

	    SQL.Clear;

	    SQL.Add('SELECT izberateli.id_izberateli, izberateli.fio, izberateli.adress_iz, izberateli.serija_pasporta, izberateli.nomer_pasporta, izberateli.kogda_vydan, izberateli.kem_vydan, izberateli.nalichie_urny, uchastki.id_uchastok, uchastki.adress');

	    SQL.Add('FROM uchastki INNER JOIN izberateli ON uchastki.id_uchastok = izberateli.id_uchastok');

	    SQL.Add('WHERE nomer_pasporta LIKE "'+Edit17.Text+'%"');

	    SQL.Add('ORDER BY nomer_pasporta');

	    Open;

	    end;

	    end;

	end;

	

	При нажатии на кнопку «Добавить» из вкладки на панели PagesControl, на событие OnClick прописываем следующий код:

	

	begin

	if (LabelSobytie3.Caption='Добавление') Then

	begin

	ADOQuery14.Parameters.ParamByName('data_provedenija_vyborov').Value:=DateTimePicker2.Date;

	ADOQuery14.ExecSQL;

	end;

	Panel5.Visible:=false;

	ADOTable4.Active:=false;

	ADOTable4.Active:=true;

	end;

	

	Запрос на добавление:

	

Insert Into vybornaja_kompanija

(data_provedenija_vyborov)

Values

	(:data_provedenija_vyborov);

	
Запрос на изменение:

	

Update vybornaja_kompanija

Set

data_provedenija_vyborov=:data_provedenija_vyborov

	Where id_vybornaja_kompanija=:id_vybornaja_kompanija;

	

	Запрос на удаление:

	

Delete

From vybornaja_kompanija

	Where id_vybornaja_kompanija=:id_vybornaja_kompanija;

	

	Запрос на выборку данных из другой таблицы:

	

SELECT kondidat.fio_k, kondidat.biografija, kondidat.foto, uchastki.adress, kondidat.id_kondidat,uchastki.id_uchastok

FROM (uchastki INNER JOIN kondidat ON uchastki.id_uchastok=kondidat.id_uchastok);



	Запрос для вывод отчёта о заказах на печать:



SELECT [Общее кол-во избирателей]![Count-id_izberateli]-[Кол-во голосовавших]![Count-id_izberateli] AS Выражение1

	FROM [Общее кол-во избирателей], [Кол-во голосовавших];

	

	Код на OnClose.Form1 (эффект затухания):

	

	begin

	Application.Terminate;

	Form1.AlphaBlend:=false;

	Sleep(500);

	AnimateWindow(handle, 1000, AW_BLEND or AW_HIDE);

	end;

	

	
3. ВНЕДРЕНИЕ

	

	3.1 Требования предъявляемые к эксплуатации ресурса, техническим 

	средствам, программному обеспечению



Для нормального функционирования и полноценного использования электронного пособия необходимы следующие системные требования: 

40 Мб свободного места на HDD;

ОС Windows/2000/NT/XP/7;

Наличие мыши и клавиатуры;

Монитор с 32-битной цветовой палитрой, разрешением 1280х1024 и частотой обновления 75 Гц;

Не менее 256 МБ оперативной памяти;

Процессор с частотой не ниже 300 МГц;

DVD/CD-ROM дисковод или USB-разъем;

Текстовый редактор Microsoft Word;

PowerPoint – для просмотра презентации;

	

	3.2. Тестирование

	



Рисунок 1. Форма «Загрузка»


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





Рисунок 2. Форма «Выборы»



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

При добавлении вам необходимо нажать первую кнопку на панели инструментов. 

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






Рисунок 3. Форма «Выборы»

	

	Для того чтоб организовать поиск по нашей таблице нажимаем на соответствующую кнопку(рис.4). На форме появляется еще одна панель с полем ввода для условия отбора.

	

	

Рисунок 4. Форма «Выборы»




Так выглядит отчёт о избирателях перед выводом его на печать(рис.5):





Рисунок 5. Форма «Выборы». Вкладка «Отчёты»



Так выглядит форма «Об авторе»(рис.6):





Рисунок 6. Форма «Выборы». Вкладка «Об авторе»




ЗАКЛЮЧЕНИЕ



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

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

Таким требованиям удовлетворяют СУБД, что и было доказано в работе. Использование СУБД эффективно не только для программистов, но и для конечных пользователей, не владеющих глубокими знаниями в области программирования.

Данная СУБД позволяет производить доработку и изменение данных. Многообразие форм, отчетов, запросов позволяют оперативно обрабатывать данные, получать отчеты, выводить данные на печать.

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

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

	
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

	

		А.Я. Архангельский. Программирование в Delphi 7. – М.: «Издательство БИНОМ», 2003 г. – 1152с.

		http://www.google.ru

		http://www.yandex.ru

1