Курсовая работа: Автоматизированное рабочее место по расчёту голосов в избирательных участках
·
Информация о кандидате
(текстовый).
3. Таблица «Результат голосования» -
Содержит информацию о набранных голосах кандидата. Состав полей:
·
Код результат голосования
(счётчик) – первичный ключ для связи с таблицами «Избиратели» и «Кандидаты».
·
Код кандидат (числовой);
·
Количество голосов (числовой).
4. Таблица «участки» - Служит для связи с
таблицами «Избиратели» и «Кандидаты». Состав полей таблицы:
·
Код участка (счётчик) –
первичный ключ для связи с таблицами «Избиратели» и «Кандидаты».
·
Адрес(текстовый).
5. Таблица «Выборная компания» - Содержит
информацию о выборной компании. Состав полей таблицы:
·
Код выборной компании
(счётчик) – первичный ключ.
·
Дата проведения (дата);
·
Код вид голосования
(числовой).
6. Таблица «Вид голосования» - Содержит
информацию о виде голосования. Состав полей таблицы:
·
Код вид голосования (счётчик)
– первичный ключ.
·
Вид голосования (мастер
подстановки).
7. Таблица «Информация содержит информацию о
выборной компании» - Служит для связи таблиц «Выборная компания» и «Кандидаты».
Состав полей таблицы:
·
Код информации выборной
компании (счётчик) – первичный ключ;
·
Код кандидат (числовой);
·
Код выборной компании
(числовой).
8. Таблица «Голосование» содержит информацию о ходе голосования. Состав
полей:
·
Код голосования (счётчик) –
первичный ключ;
·
Код избирателя (числовой);
·
Дата голосования (дата);
·
Код выборной компании
(числовой) – вторичный ключ.
1.4 Алгоритм решения задачи
1
Разработка структуры проекта.
2
Разработка структуры базы данных.
3
Выбор дизайна проекта.
4
Разработка системы меню.
5
Заполнение таблиц базы данных.
6
Соединение проекта с базой данных.
7
Наполнение страниц.
8
Тестирование проекта.
9
Устранение ошибок, выявленных в процессе тестирования.
10
Оформление технической документации.
11
Подготовка проекта к эксплуатации.
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
(эффект затухания):
Страницы: 1, 2, 3 |