Скачиваний:
13
Добавлен:
17.06.2023
Размер:
1.3 Mб
Скачать

Рисунок 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;

Соседние файлы в папке Курсовые работы