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

Рисунок 1.25 – Результаты проверки в исключительных условиях

Рассмотрим проверку в экстремальных условиях на отчете «Стоимость техосмотра». Попытаемся ввести конечную дату меньше начальной. Результаты проверки представлены на рисунке 1.26-1.27.

Рисунок 1.26 – Результаты проверки в экстремальных условиях

Рисунок 1.27

22

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы была проанализирована предметная область – станция технического осмотра автомобилей. Была построена функциональная модель по стандарту IDEF0 и методологии SADT, которая дополнена диаграммой описания логики взаимодействия информационных потоков

IDEF3, а затем и модели данных «сущность-связь» по стандарту IDEF1X. На основе полученных результатов был осуществлен выбор структур таблиц базы данных с учетом вопросов, связанных с нормализацией баз, а затем и непосредственное создание их структуры.

Результатом курсового проекта стала информационная система для автоматизации работы станции ТО, разработанная на основе применения структурно-функционального подхода [20].

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

что все поставленные задачи решены, цель достигнута.

23

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

1 Абрамов Г. В., Медведкова И. Е., Коробова Л. А. Проектирование информационных систем [электронный ресурс]. Воронеж, Воронежский Государственный университет инженерных технологий, 2012. 172 с. Режим доступа:

http://biblioclub.ru/index.php?page=book_red&id=141626&sr=1

2 Вендров А. М. Проектирование программного обеспечения экономических информационных систем: Учебник для студентов вузов М. : Финансы и статистика,

2013. 352 с.

3 Ревунков Г. И. Проектирование баз данных [электронный ресурс]: учебное пособие. М. : МГТУ им. Н.Э. Баумана (Московский государственный технический

университет имени Н.Э. Баумана), 2011. 20 с. Режим доступа:

http://e.lanbook.com/books/element.php?pl1_id=52390

4 Карпова Т. С. Базы данных: Модели, разработка, реализация. СПб: Питер,

2011. 253 с.

5 Вендров А. М. CASE технологии. Современные методы и средства

проектирования информационных систем. М. : Финансы и статистика, 2012. 254 с.

6 Вендров А. М. Современные технологии анализа и проектирования информационных систем [Электронный ресурс] // Центр Информационных

Технологий: Режим доступа: URL http://www.citmgu.ru/

7 Арутюнов, В. В. Теория экономических информационных систем. М. :

Синтег, 2011. 360 с.

8 Проектирование информационных систем [Электронный ресурс]: Режим

доступа: URL http://www.kgau.ru/istiki/umk/pis/pis.htm

9 Хоменко А. Д. Базы данных. Учебник для вузов. М. : Синтег, 2012. 262 с.

10 Елманова Н. Корпоративные СУБД – 2011 [Электронный ресурс]//

КомпьютерПресс:

Режим

доступа:

URL

http://www.compress.ru/article.aspx?id=20548&iid=939

 

 

24

11 Богданова С. В., Ермакова А. Н. Информационные технологии: учебное пособие для студентов вузов [электронный ресурс]: Ставрополь: Сервисшкола, 2014. 211 с. Режим доступа: http://biblioclub.ru/index.php?page=book_red&id=277476&sr=1

12 Ачкасов В. Ю. Программирование баз данных в Delphi [электронный ресурс]: М. : Интернет-Университет Информационных Технологий, 2010. 382 с.

Режим доступа: URL http://biblioclub.ru/index.php?page=book_red&id=233558&sr=1

13 Описание бизнес процессов [Электронный ресурс]: Режим доступа:

URL: http://www.bscconsulting.ru/services/business_consulting/business_processes_definition/

14 Уроки по работе с Microsoft Visio 2003 [Электронный ресурс]: Режим доступа: URL http://blog.engexp.ru/training/uroki-po-ms-visio/

15 Блог программиста [электронный ресурс]: Построение блок схем. Режим доступа: URL: http://pro-prof.com/archives/1462

16 Дарахвелидзе П. Г. Программирование в Delphi 7. Спб. : БХВ-Петербург, 2013. 784 с.

17 Осипов Д.Л. Базы данных и Delphi. Спб. : БХВ-Петербург, 2011. 854 с.

18 Проектная деятельность на уроке с использованием информационных технологий [электронный ресурс]: Проектная деятельность – Режим доступа: URL http://window.edu.ru/window/library/pdf2txt?p_id=26689

19 Нечаев Д. Ю., Чекмарев Ю. В. Надежность информационных систем

[электронный ресурс]: учебное пособие. М. : Изд. «ДМК Пресс» 2012. 64 с. Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=3030

20 Кузнецов И.Н. Рефераты, курсовые работы и дипломное проектирование.

Методика подготовки и оформления. М. : Изд-во Дашков и Ко, 2012. 340 с.

25

ПРИЛОЖЕНИЕ А Функциональная модель по стандарту IDEF0

Рисунок А.1 – Контекстная диаграмма

Рисунок А.2 – Диаграмма IDEF0 первого уровня

26

Рисунок А.3 – Диаграмма IDEF3 третьего уровня «Смена пароля»

27

ПРИЛОЖЕНИЕ Б

Свойства полей

Рисунок Б.1 – Свойства полей таблицы «Avto»

Рисунок Б.2 – Свойства полей таблицы «Marka»

Рисунок Б.3 – Свойства полей таблицы «Osmotr»

Рисунок Б.4 – Свойства полей таблицы «POtkaz»

Рисунок Б.5 – Свойства полей таблицы «StOsmotra»

Рисунок Б.6 – Свойства полей таблицы «Vlad»

Рисунок Б.7 – Свойства полей таблицы «Pass»

28

ПРИЛОЖЕНИЕ В

Листинг программы

program TexOsm;

uses Forms,

Pass in 'Pass.pas' {FPass}, main in 'main.pas' {Fmain},

datm in 'datm.pas' {dm: TDataModule}, MArka in 'MArka.pas' {FMArka}, aMarka in 'aMarka.pas' {FaMarka}, Vlad in 'Vlad.pas' {FVlad},

aVlad in 'aVlad.pas' {FaVlad}, Potkaz in 'Potkaz.pas' {FPotkaz}, apOtkaz in 'apOtkaz.pas' {FapOtkaz},

StOsmotra in 'StOsmotra.pas' {FStOsmotra}, aStOsmotra in 'aStOsmotra.pas' {FaStOsmotra}, avto in 'avto.pas' {Favto},

aAvto in 'aAvto.pas' {FaAvto}, aOsmotr in 'aOsmotr.pas' {FaOsmotr}, Osmotr1 in 'Osmotr1.pas' {FOsmotr1}, Osmotr2 in 'Osmotr2.pas' {FOsmotr2}, chPass in 'chPass.pas' {FchPass},

ot1 in 'ot1.pas' {Fot1}, ot2 in 'ot2.pas' {Fot2};

{$R *.res}

begin Application.Initialize;

Application.Title := 'Технический осмотр'; Application.CreateForm(TFPass, FPass); Application.CreateForm(TFmain, Fmain); Application.CreateForm(Tdm, dm); Application.CreateForm(TFMArka, FMArka); Application.CreateForm(TFaMarka, FaMarka); Application.CreateForm(TFVlad, FVlad); Application.CreateForm(TFaVlad, FaVlad); Application.CreateForm(TFPotkaz, FPotkaz); Application.CreateForm(TFapOtkaz, FapOtkaz); Application.CreateForm(TFStOsmotra, FStOsmotra); Application.CreateForm(TFaStOsmotra,

FaStOsmotra);

Application.CreateForm(TFavto, Favto); Application.CreateForm(TFaAvto, FaAvto); Application.CreateForm(TFaOsmotr, FaOsmotr); Application.CreateForm(TFOsmotr1, FOsmotr1); Application.CreateForm(TFOsmotr2, FOsmotr2); Application.CreateForm(TFchPass, FchPass); Application.CreateForm(TFot1, Fot1); Application.CreateForm(TFot2, Fot2); Application.Run;

unit Pass;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls,inifiles;

type

TFPass = class(TForm) Panel1: TPanel;

cb: TComboBox; Label1: TLabel; e1: TEdit; Label2: TLabel; Button1: TButton; Button2: TButton;

procedure cbKeyPress(Sender: TObject; var Key:

Char);

procedure FormShow(Sender: TObject);

29

procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

FPass: TFPass;

implementation

uses datm, main, Potkaz, StOsmotra;

{$R *.dfm}

procedure TFPass.cbKeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TFPass.FormShow(Sender: TObject); var iniFile:Tinifile;

DBP:string; begin

fpass.Caption:=application.Title;

IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'options.in i'); // загрузка из фала настроек пути к базе

DBP := IniFile.ReadString('Options', 'DBPath', ''); IniFile.Free;

if fileexists(DBP)=false then begin

if application.MessageBox('Хотите указать путь к БД самостоятельно?','БД не найдена',mb_yesno+mb_iconquestion)=idyes then

begin

dm.od.InitialDir:=ExtractFilePath(Application.ExeName); if dm.od.Execute then

begin

IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'options.in i');

IniFile.WriteString('Options', 'DBPath', dm.od.FileName);

IniFile.Free;

dbp:=dm.od.FileName;

end;

end;

end;

dm.Ado.Connected:=false;

dm.Ado.ConnectionString:='Provider=Microsoft.Jet.OL EDB.4.0;Data Source='+DBP+';Persist Security Info=False';

dm.Ado.Connected:=true;

if dm.Temp.Active=true then dm.Temp.Active:=false; dm.Temp.CommandText:='SELECT login FROM

Pass';

dm.Temp.Active:=true;

While not dm.Temp.Eof do begin

cb.Items.Add(dm.Temp.Fields[0].AsString);

dm.Temp.Next;

end;

end;

procedure TFPass.Button2Click(Sender: TObject); begin

halt;

end;

procedure TFPass.Button1Click(Sender: TObject); begin

if cb.Text='' then begin

showmessage('Не выбран пользователь'); exit;

end;

if (e1.Text='') and (cb.Text <> 'Гость') then begin

showmessage('Вы не ввели пароль'); exit;

end;

if cb.Text<>'Гость' then begin dm.Temp.Active:=false;

dm.Temp.CommandText:='Select r from pass WHERE (login="'+cb.Text+'") and (pass="'+e1.Text+'")';

dm.Temp.Active:=true;

if dm.Temp.RecordCount>0 then begin

if dm.Temp.Fields[0].AsInteger=0 then begin

fpass.Hide;

fmain.ShowModal; end

else if dm.Temp.Fields[0].AsInteger=1 then begin

fmain.N1.Visible:=false;

fmain.N4.Visible:=false;

fpass.Hide;

fmain.ShowModal;

end; end

else begin

showmessage('Ошибка в имени пользователя и/или пароле');

end; end

else begin

fmain.N15.Visible:=false;

fmain.N4.Visible:=false;

fmain.N12.Visible:=false;

fmain.N2.Visible:=false;

fmain.N9.Visible:=false;

fmain.N7.Visible:=false;

fmain.N8.Visible:=false;

fpotkaz.Button1.Enabled:=false;

fpotkaz.Button2.Enabled:=false;

fpotkaz.Button3.Enabled:=false;

fstosmotra.Button1.Enabled:=false;

fstosmotra.Button2.Enabled:=false;

fstosmotra.Button3.Enabled:=false;

fpass.Hide;

fmain.ShowModal;

end;

end;

unit aAvto;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, Spin, StdCtrls, ExtCtrls,dateutils;

type

TFaAvto = class(TForm) Panel1: TPanel; Button1: TButton; Button2: TButton; Label1: TLabel;

cb1: TComboBox;

Label2: TLabel; cb2: TComboBox; Label3: TLabel; e1: TEdit;

Label4: TLabel; se1: TSpinEdit; Label5: TLabel;

dtp1: TDateTimePicker; Label6: TLabel;

dtp2: TDateTimePicker; ch1: TCheckBox;

procedure cb1KeyPress(Sender: TObject; var Key:

Char);

procedure e1KeyPress(Sender: TObject; var Key:

Char);

procedure Button2Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure cb1Change(Sender: TObject); procedure cb2Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ch1Click(Sender: TObject);

procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

private

{Private declarations } public

{Public declarations } end;

var

FaAvto: TFaAvto;

implementation

uses datm, main;

{$R *.dfm}

procedure TFaAvto.cb1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TFaAvto.e1KeyPress(Sender: TObject; var Key: Char);

begin

if length(e1.Text)=0 then begin

if not (Key in [#8,'а'..'я']) then key:=#0; end

else if (length(e1.Text)>=1) and (length(e1.Text)<=3)

then

begin

if not (Key in [#8,'0'..'9']) then key:=#0; end

else if (length(e1.Text)>=4) and (length(e1.Text)<=5)

then

begin

if not (Key in [#8,'а'..'я']) then key:=#0; end

else if (length(e1.Text)>=6) and (length(e1.Text)<=8)

then

begin

if not (Key in [#8,'0'..'9']) then key:=#0; end;

end;

procedure TFaAvto.Button2Click(Sender: TObject); begin

closequery;

end;

procedure TFaAvto.FormShow(Sender: TObject); begin

if tm=0 then begin dtp1.Date:=date;

30

dtp2.Date:=date;

end;

end;

procedure TFaAvto.cb1Change(Sender: TObject); begin

dm.temp.Active:=false; dm.temp.CommandText:='Select id_vl from vlad where

(([fio_vl]&", "&[sp_vl]&"-"&[np_vl]) = "'+cb1.text+'")'; dm.temp.Active:=true; id_vl:=dm.temp.fields[0].asstring;

end;

procedure TFaAvto.cb2Change(Sender: TObject); begin

dm.temp.Active:=false; dm.temp.CommandText:='Select id_mr from marka

where (nazv_mr = "'+cb2.text+'")'; dm.temp.Active:=true; id_mr:=dm.temp.fields[0].asstring; end;

procedure TFaAvto.Button1Click(Sender: TObject); var tmp1,tmp2:string;

tmp3,tmp4:string;

yb:integer; begin

if (e1.Text='') or (cb1.Text='') or (cb2.Text='') then showmessage('Вы не заполнили одно или несколько полей')

else begin

if length(e1.Text)<8 then begin

showmessage('Гос. номер состоит минимум из 8ми

символов');

exit;

end;

if se1.Value>yearof(date) then begin

showmessage('Год выпуска автомобиля не может быть больше текущего');

exit;

end;

if yearof(dtp1.Date)<se1.Value then begin

showmessage('Год выпуска не может быть больше года постановки автомобиля на учет');

exit;

end;

if ch1.Checked=true then begin

tmp1:=',dataplan_av';tmp2:=',"'+datetostr(incday(dtp1.Date,30))+'" ';

tmp3:=',dataplan_av="'+datetostr(incday(dtp1.Date,30))+'"' end

else begin

if dtp1.Date>dtp2.Date then begin

showmessage('Ошибка в последовательности

дат');

exit;

end;

yb:=yearsbetween(dtp1.Date,strtodate('31.12.'+se1.text)); tmp3:=',datapto_av="'+datetostr(dtp2.Date)+'"' ; if yb<3 then

begin tmp2:=',"'+datetostr(incyear(dtp2.Date,3))+'"';

tmp3:=tmp3+',dataplan_av="'+datetostr(incyear(dtp2.Date,3))+'"'; end

else if (yb>=3) and (yb<5) then begin

tmp2:=',"'+datetostr(incyear(dtp2.Date,2))+'"';

tmp3:=tmp3+',dataplan_av="'+datetostr(incyear(dtp2.Date,2))+'"'; end

else begin

tmp2:=',"'+datetostr(incyear(dtp2.Date,1))+'"';

tmp3:=tmp3+',dataplan_av="'+datetostr(incyear(dtp2.Date,1))+'"'; end;

tmp1:=',dataplan_av,datapto_av'; tmp2:=tmp2+',"'+datetostr(dtp2.Date)+'"'; end;

if tm=0 then begin

dm.temp.Active:=false; dm.temp.CommandText:='Select id_av from avto

where (gosN_av="'+e1.Text+'")'; dm.temp.Active:=true;

if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует')

else begin

dm.com.CommandText:='Insert into avto (id_vl_av,id_mr_av,gosN_av,god_av,datapu_av'+tmp1+') values ('+id_vl+','+id_mr+',"'+e1.Text+'",'+se1.Text+',"'+datetostr(dtp1.D ate)+'"'+tmp2+')';

dm.com.Execute;

showmessage('Запись успешно добавлена'); dm.av.Requery();

closequery;

end; end

else begin

dm.temp.Active:=false; dm.temp.CommandText:='Select id_av from avto

where (gosN_av="'+e1.Text+'")'; dm.temp.Active:=true;

if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].asstring) then showmessage('Подобная запись уже существует')

else begin

dm.com.CommandText:='Update avto SET id_vl_av="'+id_vl+'",id_mr_av="'+id_mr+'",gosN_av="'+e1.Text+ '",god_av="'+se1.Text+'",datapu_av="'+datetostr(dtp1.Date)+'"'+t mp3+' WHERE (id_av='+tmp+')';

dm.com.Execute;

showmessage('Запись успешно изменена'); dm.av.Requery();

dm.av.recno:=ind;

closequery;

end;

end;

end;

end;

procedure TFaAvto.ch1Click(Sender: TObject); begin

if ch1.Checked=true then dtp2.Enabled:=false else dtp2.Enabled:=true;

end;

procedure TFaAvto.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin e1.Clear;cb1.Clear;cb2.Clear;se1.Value:=2011; if tm=1 then

begin

dm.com.CommandText:='Update avto set log_av=FALSE WHERE (id_av='+tmp+')';

dm.com.Execute;

end;

close;

31

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