Курсовые работы / ПРИС П _9
.pdfРисунок 14 - Экранная форма отчета «Ведомости»
Чтобы сменить пароль необходимо выбрать «Сервис», изменение пароля,
после чего высветиться окно, представленное на рисунке 15.
Рисунок 15 - Экранная форма «Смена пароля»
При смене пароля необходимо ввести старый пароль, а также придумать новый. После смены пароля программа предложит заново войти в систему.
22
1.10 Способы и результаты тестирования программного продукта в различных режимах
Немаловажным в разработке программы является тестирование. Главным тестирование будет стратегия «черного ящика» (тестирование по входу-выходу в трех режимах: нормальные условия, экстремальные условия, исключительные ситуации).
Протестируем справочники, поскольку там возможно редактирование. Во всех справочника стоит защита полей от некорректного ввода. В таблице 6
представлено тестирование справочников на примере справочника «Список студентов».
Таблица 6 – Тестирование системы при нормальных условиях
|
Вход |
|
Выход |
|
Корректные |
Группа: ПИЭ-13 |
Группа: ПИЭ-13 |
|
|
данные |
ФИО студента: Саламандра В.Ю. |
ФИО |
студента: |
Саламандра |
|
Номер зачетки: 65464ав |
В.Ю. |
|
|
|
Фото загрузить из БД |
Номер зачетки: 65464ав |
||
|
|
Фото загрузить из БД |
||
Граничные |
Группа: ПИЭ-13 |
Группа: ПИЭ-13 |
|
|
данные |
ФИО студента: Саламандра В.Ю. |
ФИО |
студента: |
Саламандра |
|
Номер зачетки: 0 |
В.Ю. |
|
|
|
Фото загрузить из БД |
Номер зачетки: 0 |
|
|
|
|
Фото загрузить из БД |
||
Некорректные |
Попытка ввести в ФИО цифры |
Система блокирует ввод. |
||
данные |
|
|
|
|
На рисунке 16 представлено окно, которое всплывает, при удаление
записи.
Рисунок 16 - Подтверждение удаления записи
23
Исключительная ситуация может произойти, если заполнить не все поля и попытаться сохранить. На рисунке 17 приведена реация системы на сохранение пустых значений.
Рисунок 17 - Реакция системы на ввод пустых значений
Также исключительной ситуацией может быть потеря связи с БД
(удалили случайно файл БД). Поэтому в программе присутствует резервное копирование, чтобы исключить данную ситуацию.
На рисунке 18 представлена экстремальная ситуация, которая наступает при сортировке ФИО студентов, женские фамилии автоматически переносятся в конец.
Рисунок 18 – Экстремальная ситуация Таким образом, было проведено тестирование, которое дало понять, что
в системе стоит нажежная защита некорректного ввода, поэтому ее можно сдать в эксплуатацию.
24
ЗАКЛЮЧЕНИЕ
В ходе выполнения данного курсового проекта была разработана программа для автоматизации учета успеваемости учащихся в ВУЗе. Была проанализирована предметная область, построены функциональная модель,
физическая и логическая модели данных. С помощью чего была составлена структура таблиц БД. Также разработаны интерфейс программы. Были подобраны алгоритмы работы данных. В результате было проведено тестирование программы, которое дало понять, что в системе стоит нажежная защита некорректного ввода, поэтому ее можно сдать в эксплуатацию.
На основании разработанной ИС была написана пояснительная записка пользователю, а также указаны необходимые аппаратные средства для работы с ней.
Результат выполнения курсового проекта – готовая к эксплуатации информационная система, имеющая файл-серверную архитектуру,
разработанная на основе структурно-функционального подхода.
Таким образом, можно сделать вывод, что в результате выполнения данного курсового проекта задачи выполнены, следовательно – цель достигнута.
25
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Методология IDEF0 [электронный ресурс] URL: http://itteach.ru/bpwin/metodologiya-idef0 (дата обращения 30.09.2016)
2 Нечаев Д. Ю., Чекмарев Ю. В. Надежность информационных систем
[электронный ресурс]: учебное пособие. М. : Изд. «ДМК Пресс» 2012. 64 с.
Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=3030
3 Аникеев С.В. Разработка приложений баз данных в Delphi:
Самоучитель [электронный ресурс]: С.В. Аникеев, А.В. Маркин. Электронные текстовые данные. М. : Диалог-МИФИ, 2013. 160 с. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=229741
4 Смирнов А.А. Технологии программирования [электронный ресурс]:
учебно-практическое пособие // А.А. Смирнов. Электронные текстовые данные.
М. : Изд. центр ЕАОИ, 2011. 191 с. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=90777(дата обращения 25.10.2016)
5 Баженова И.Ю. Основы проектирования приложений баз данных
[электронный ресурс]: учеб. пособие // И.Ю. Баженова. Электронные текстовые данные. М. : Открытый университет «ИНТУИТ», 2016. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=428933
6 Маркин А.В. Разработка отчетов в информационных системах
[электронный ресурс]: учеб. пособие // А.В. Маркин. Электронные текстовые данные. М. :2012, 312 с. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=229743
7 Баженова И.Ю. SQL и процедурно-ориентированные языки
[электронный ресурс]: учеб. пособие // И.Ю. Баженова. Электронные текстовые данные. М. : Открытый университет «ИНТУИТ», 2016. 167 с. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=428934
26
8 Вендров А. М. Проектирование программного обеспечения экономических информационных систем: Учебник для студентов вузов М. :
Финансы и статистика, 2013. 352 с.
9 Карпова Т. С. Базы данных: Модели, разработка, реализация. СПб:
Питер, 2011. 253 с.
10 Галисеев, Г. В. Программирование в среде Delphi 7. Самоучитель. М.:
Дрофа, 2012. 765 с.
11 Абрамов Г. В., Медведкова И. Е., Коробова Л. А. Проектирование информационных систем [электронный ресурс]. Воронеж, Воронежский Государственный университет инженерных технологий, 2012. 172 с. Режим доступа: http://biblioclub.ru/index.php?page=book_red&id=141626&sr=1
12 Исаев Г.Н. Моделирование информационных ресурсов: теория и решение задач: Учебное пособие. М. : Альфа-М : ИНФРА - М. 2012 224с.
13 Мартишин С.А., Симонов В.А., Храпченко М.В. Проектирование и реализация баз данных в СУБД MySQL c использованием MySQL Workbench:
Учебное пособие. М. : ИД. «Форум» : ИНФРА М, 2012.160с.
14 Баженова И.Ю. Основы проектирования приложений баз данных
[электронный ресурс]: учеб. пособие // И.Ю. Баженова. Электронные текстовые данные. М. : Открытый университет «ИНТУИТ», 2016. Режим доступа: https://biblioclub.ru/index.php?page=book_view_red&book_id=428933
15 Нечаев Д. Ю., Чекмарев Ю. В. Надежность информационных систем
[электронный ресурс]: учебное пособие. М. : Изд. «ДМК Пресс» 2012. 64 с.
Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=3030
27
ПРИЛОЖЕНИЕ А Диаграмма IDEF0
Рисунок А.1 – Декомпозиция блока «Учет дисциплин»
Рисунок А.2 – Декомпозиция блока «Учет студентов»
28
Рисунок А.3 – Декомпозиция блока «Анализ успеваемости»
29
ПРИЛОЖЕНИЕ Б
Листинг кода
Листинг Б.1 – Main
unit main; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ExtCtrls,jpeg,inifiles; type
TFmain = class(TForm) im1: TImage; MainMenu1: TMainMenu; N1: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N8: TMenuItem;
N7: TMenuItem;
N6: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N5: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem; N23451: TMenuItem;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject); procedure N7Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure N19Click(Sender: TObject); procedure N23451Click(Sender: TObject); procedure im1Click(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
Fmain: TFmain; implementation
uses datm, chpass, Spec, kafedra, Discip, Gruppa, Stud, Ocenka, ot1, ot2;
{$R *.dfm}
procedure TFmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if application.MessageBox('Вы уверены?','Выход из программы!',mb_yesno+mb_iconquestion)=idyes then
begin dm.ado.Connected:=false; application.Terminate; end
else canclose:=false; end;
procedure TFmain.FormShow(Sender: TObject); begin
if fileexists(ExtractFilePath(Application.ExeName)+'data\photo.jpe g') then
begin im1.Picture.LoadFromFile(ExtractFilePath(Application.ExeNam e)+'data\photo.jpeg');
end;
end;
procedure TFmain.N7Click(Sender: TObject); begin
tmp:=fmain.Caption+#13+#13+#13+
'Разработчик: '+avtor +#13+ 'Группа: '+grupa+#13+#13+
'CopyRight';
Showmessage(tmp);
end;
procedure TFmain.N4Click(Sender: TObject);
var inifile:tinifile; |
|
dbp:string; |
|
s:string; |
|
path1,path2:string; |
|
begin |
|
IniFile |
:= |
TIniFile.Create(ExtractFilePath(Application.ExeName)+'data\opt |
|
ions.ini'); |
// загрузка из фала настроек пути к базе |
DBP := IniFile.ReadString('options', 'DBPath', ''); IniFile.Free;
path1:=ExtractFilePath(Application.ExeName)+'data\Архив\CO PY_DB_'+datetostr(date)+'.mdb';
try copyfile(pchar(DBP),pchar(path1),true);
except |
|
end; |
|
if fileexists(path1) then |
showmessage('Резервная копия |
создана успешно') else |
showmessage('Ошибка при создании |
резервной копии'); |
|
end;
procedure TFmain.N3Click(Sender: TObject); begin
fchpass.Caption:=n3.Caption;
fchpass.ShowModal;
end;
procedure TFmain.N6Click(Sender: TObject); begin
closequery;
end;
procedure TFmain.N9Click(Sender: TObject); begin
30
fspec.DBGrid1.PopupMenu:=fspec.PopupMenu1;
dm.sp.Active:=false; dm.sp.CommandText:='Select * from spec'; dm.sp.Active:=true; fspec.Caption:=n9.Caption; fspec.ShowModal;
end;
procedure TFmain.N10Click(Sender: TObject); begin
fkafedra.DBGrid1.PopupMenu:=fkafedra.PopupMenu;
dm.kf.Active:=false; dm.kf.CommandText:='Select * from kafedra'; dm.kf.Active:=true; fkafedra.Caption:=n9.Caption; fkafedra.ShowModal;
end;
procedure TFmain.N5Click(Sender: TObject); begin
fdiscip.DBGrid1.PopupMenu:=fdiscip.PopupMenu1;
dm.dis.Active:=false;
dm.dis.CommandText:='Select id_dis,nazv_dis,lek_dis,sem_dis,fio_dis,nazv_kf FROM discip,kafedra WHERE (id_kf=id_kf_dis) ';
dm.dis.Active:=true;
fdiscip.Caption:=n5.Caption;
fdiscip.ShowModal;
end;
procedure TFmain.N13Click(Sender: TObject); begin
fgruppa.DBGrid1.PopupMenu:=fgruppa.PopupMenu1;
dm.gr.Active:=false;
dm.gr.CommandText:='select id_gr,nazv_gr,nazv_sp,sem_gr from gruppa,spec WHERE (id_sp=id_sp_gr) '; dm.gr.Active:=true;
fgruppa.Caption:=n13.Caption;
fgruppa.ShowModal;
end;
procedure TFmain.N15Click(Sender: TObject); begin fstud.DBGrid1.PopupMenu:=fstud.PopupMenu1; dm.st.Active:=false;
dm.st.CommandText:='Select id_st,fio_st,nazv_gr,nom_st from stud,gruppa where (id_gr=id_gr_st)';
dm.st.Active:=true;
fstud.Caption:=n15.Caption;
fstud.ShowModal;
end;
procedure TFmain.N16Click(Sender: TObject); begin
//Focenka.DBGrid1.PopupMenu:=Focenka.PopupMenu1;
dm.oc.Active:=false;
dm.oc.CommandText:='Select id_oc,fio_st,nazv_dis,sem_dis,zn_oc,opis_oc,([zn_oc]&" ("&[opis_oc]&")") as ocen FROM stud,ocenka,discip WHERE (id_st=id_st_oc) and (id_dis=id_dis_oc)';
dm.oc.Active:=true;
Focenka.Caption:=n15.Caption;
Focenka.ShowModal;
end;
procedure TFmain.N18Click(Sender: TObject); begin
tm:=0;
fot1.Caption:=n18.Caption;
fot1.ShowModal;
end;
procedure TFmain.N19Click(Sender: TObject); begin
fot2.Caption:=n19.Caption;
fot2.ShowModal;
36
end;
procedure TFmain.N23451Click(Sender: TObject); begin
tm:=1;
fot1.Caption:=n18.Caption;
fot1.ShowModal;
end;
procedure TFmain.im1Click(Sender: TObject); begin
end;
end.
Листинг Б.2 – AccessDB
unit AccessDB; interface
use
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus,inifiles,datm; function data(data:tdatetime):string; function Update(rs,tab,temp:string):boolean; function Delete(rs,tab,temp:string):boolean;
Procedure Zan(rs,tab,temp:string;tm:integer); Procedure jurnal(mesto,deis:string);
implementation var tmp:string;
tm:integer;
function data (data:tdatetime):string; var g,m,d:word;
begin decodedate(data,g,m,d);
result:=''+currtostr(d)+'/'+currtostr(m)+'/'+currtostr(g)+;
end;
function Update(rs,tab,temp:string):boolean; begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+temp+')';
dm.temp.Active:=true;
if dm.temp.Fields[0].AsBoolean=true then begin
result:=false; end
else begin
dm.com.CommandText:='Update '+tab+' set log_'+rs+'=TRUE where id_'+rs+'='+temp+'';
dm.com.Execute;
result:=true;
end;
end;
function Delete(rs,tab,temp:string):boolean; begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+temp+')';
dm.temp.Active:=true;
if dm.temp.Fields[0].AsBoolean=true then begin
result:=false; end
else if application.MessageBox('Вы хотите удалить запись?','Удаление',mb_yesno+mb_iconquestion)=idyes then
begin
dm.com.CommandText:='Delete * from '+tab+' where (id_'+rs+'='+temp+')';
dm.com.Execute;
result:=true;