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

ЗАКЛЮЧЕНИЕ

В ходе выполнения курсового проекта были закреплены теоретические знания, полученные в процессе изучения курса «Проектирование информационных систем», приобретены практические навыки проектирования информационных систем. Для этого была проанализирована предметная область – коечный фонд больничного стационара. Была построена функциональная модель бизнес-процессов по стандарту IDEF0, и физическая и логическая модели данных «сущность-связь» по стандарту IDEF1X. На основе полученных результатов был осуществлен выбор структур таблиц базы данных с учетом вопросов, связанных с нормализацией баз, а

затем и непосредственное создание их структуры. Далее было разработано клиентское приложение с использованием файл-серверной архитектуры, построено дерево модулей и схема взаимодействия модулей и массивов данных. Разработанное приложение протестировано методом «сверху вниз» в трех режимах нормальном,

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

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

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

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

22

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

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

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

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

2013. 352 с.

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

2012. 253 с.

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

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

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

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

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

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

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

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

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

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

9 Аньшин В. М., Алешин А. В., Багратиони К. А. Управление проектами:

фундаментальный курс: учебник. М. : Высшая школа экономики, 2013. 624 с.

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

КомпьютерПресс: Режим доступа: URL

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

23

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

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

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

14 Беломойцев Д. Е., Волосатова Т. М., Радионов С. В. Основные методы криптографической обработки данных: учебное пособие. М. : Изд. МГТУ им. Н.Э.

Баумана (Московский государственный технический университет имени Н.Э.

Баумана), 2014. 76 с.

15 Гусятников В. Н. Безруков А. И. Стандартизация и разработка программных систем. [Электронный ресурс]: Электрон. текстовые дан. СПб. : Лань,

2012. Режим доступа: URL http://e.lanbook.com/ books/element.php?pl1_id=5321.

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

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

17 Описание бизнес процессов [Электронный ресурс]: Режим доступа: URL: http://www.bsc-consulting.ru/services/business_consulting/business_processes_definition/ 18 Нечаев Д. Ю., Чекмарев Ю. В. Надежность информационных систем

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

24

ПРИЛОЖЕНИЕ А Описание таблиц базы данных

Таблица A.1 – Описание свойств полей таблицы PASS

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

r

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

login

Текстовый

50

Да

Нет

Имя

 

 

 

 

 

пользователя

pass

Текстовый

50

Нет

Нет

Пароль

Таблица A.2 – Описание свойств полей таблицы Pacient

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

 

ID_pac

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

 

Fio_pac

Текстовый

50

Нет

Нет

ФИО

 

Pol_pac

Текстовый

50

Нет

Нет

Пол пациента

dataN_pac

Дата/время

-

Нет

Нет

Дата

начала

 

 

 

 

 

лечения

dataK_pac

Дата/время

-

Нет

Нет

Дата

окончания

 

 

 

 

 

лечения

ID_pal_pa

Числовой

-

Нет

Нет

ID палаты

c

 

 

 

 

 

 

Таблица А.3 – Описание свойств полей таблицы Vrach

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_vr

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

Fio_vr

Текстовый

50

Нет

Нет

ФИО врача

 

 

 

 

 

 

Dr_vr

Дата/время

-

Нет

Нет

День рождения

 

 

 

 

 

 

Kat_vr

Числовой

Длинное

Да

Да

Категория

 

 

целое

 

 

 

log_mar

Логический

-

-

Нет

Метка занятости

25

Таблица А.4 – Описание свойств полей таблицы Otdel

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_ot

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

Nazv_ot

Текстовый

50

Да

Нет

Название отдела

 

 

 

 

 

 

data_opl

Дата/время

-

Нет

Нет

Дата оплаты

 

 

 

 

 

 

log_opl

Логический

-

-

Нет

Метка занятости

Таблица A.5 – Описание свойств полей таблицы BollList

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_bl

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

ID_pac_bl

Числовой

Длинное

Да

Да

Id пациента

 

 

целое

 

 

 

ID_vr_bl

Числовой

Длинное

Да

Да

id

 

 

целое

 

 

 

Datav_bl

Дата/время

-

Нет

Нет

Дата выписки

 

 

 

 

 

 

log_put

Логический

-

-

Нет

Метка занятости

Таблица А.6 – Описание свойств полей таблицы DgPac

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_dp

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

ID_dg_dp

Числовой

Длинное

Да

Да

Id диагноза

 

 

целое

 

 

 

ID_pac_dp

Числовой

Длинное

Да

Да

Id пациента

 

 

целое

 

 

 

Таблица А.7 – Описание свойств полей таблицы Diagnoz

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_dg

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

Sh_dg

Текстовый

50

Нет

Нет

Шифр

 

 

 

 

 

 

Nazv_dg

Текстовый

50

Нет

Нет

Название

 

 

 

 

 

 

log_tel

Логический

-

-

Нет

Метка занятости

Таблица А.8 – Описание свойств полей таблицы Palata

26

Имя поля

Тип данных

Размер

Обязательное

Индексированное

Комментарий

 

 

поля

поле

поле

 

ID_pal

Счетчик

Длинное

Да

Да (Совпадения

Ключевое поле

 

 

целое

 

не допускаются)

 

ID_ot_pal

Числовой

Длинное

Да

Да

 

 

 

целое

 

 

 

 

 

 

 

 

 

nom_pal

Текстовый

50

Нет

Нет

Номер палаты

 

 

 

 

 

 

Km_pal

Числовой

Длинное

Да

Да

 

 

 

целое

 

 

 

ID_vr_pal

Числовой

Длинное

Да

Да

Врач,

 

 

целое

 

 

курирующий

 

 

 

 

 

палату

Pol_pal

Текстовый

50

Нет

Нет

Пол палаты

 

 

 

 

 

 

log_op

Логический

-

-

Нет

Метка занятости

27

ПРИЛОЖЕНИЕ Б

Текст программы

unit Pass; interface uses

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

Forms,

Dialogs,inifiles, StdCtrls, Buttons, ExtCtrls; type

TFpass = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Label1: TLabel;

Label2: TLabel;

cb: TComboBox; e1: TEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

procedure cbKeyPress(Sender: TObject; var Key: Char); procedure BitBtn2Click(Sender: TObject);

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

procedure BitBtn1Click(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

unit main; interface uses

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

Forms,

Dialogs,jpeg,inifiles, Menus, ExtCtrls; type

TFmain = class(TForm)

Image1: TImage;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N17: TMenuItem;

N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

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

procedure N4Click(Sender: TObject); function data(data:tdatetime):string; function Update(rs,tab:string):boolean;

28

function Delete(rs,tab,temp:string):boolean; procedure N2Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N10Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N15Click(Sender: TObject);

procedure N17Click(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure N19Click(Sender: TObject);

procedure N20Click(Sender: TObject);

procedure N6Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Fmain: TFmain;

implementation

uses datm, Diagnoz, otdel, Vrach, Palata, Pacient, BolList, ot1, ot2, ot3,

chPass;

{$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.jpg') then

begin

image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'D

ata\photo.jpg');

end;

end;

procedure TFmain.N4Click(Sender: TObject);

begin

closequery;

end;

function TFmain.data (data:tdatetime):string;

var g,m,d:word;

begin

decodedate(data,g,m,d);

result:=''+currtostr(m)+'/'+currtostr(d)+'/'+currtostr(g)+'';

end;

function TFmain.Update(rs,tab:string):boolean;

begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+tmp+')';

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+'='+tmp+'';

dm.com.Execute;

result:=true;

end;

end;

function TFmain.Delete(rs,tab,temp:string):boolean;

29

begin

dm.temp.Active:=false;

dm.temp.CommandText:='Select log_'+rs+' from '+tab+' where (id_'+rs+'='+tmp+')';

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+'='+tmp+')';

dm.com.Execute;

result:=true;

showmessage('Удаление прошло успешно');

end;

end;

procedure TFmain.N2Click(Sender: TObject);

var inifile:tinifile;

dbp:string;

begin

 

IniFile

:=

TIniFile.Create(ExtractFilePath(Application.ExeName)+'Data\options.ini'

);

// загрузка из фала настроек пути к базе

DBP := IniFile.ReadString('base', 'Path', '');

IniFile.Free;

copyfile(pchar(DBP),pchar(ExtractFilePath(Application.ExeName)+'Dat a\Архив\base_'+datetostr(date)+'_'+stringreplace(timetostr(time),':','.',[rfR eplaceAll, rfIgnoreCase])+'.mdb'),true);

if fileexists(ExtractFilePath(Application.ExeName)+'Data\Архив\base_'+da tetostr(date)+'_'+stringreplace(timetostr(time),':','.',[rfReplaceAll, rfIgnoreCase])+'.mdb') =true then showmessage('Резервная копия создана успешно')

else showmessage('Ошибка при создании резервной копии');

end;

procedure TFmain.N8Click(Sender: TObject);

begin

fdiagnoz.Caption:=n8.Caption;

fdiagnoz.DBGrid1.PopupMenu:=fdiagnoz.PopupMenu1;

fdiagnoz.DBGrid1.DataSource:=dm.dgs;

dm.dg.Active:=false;

dm.dg.CommandText:='Select * from diagnoz';

dm.dg.Active:=true;

fdiagnoz.ShowModal;

end;

procedure TFmain.N9Click(Sender: TObject);

begin

fotdel.Caption:=n9.Caption;

fotdel.DBGrid1.PopupMenu:=fotdel.PopupMenu1;

fotdel.DBGrid1.DataSource:=dm.ots;

dm.ot.Active:=false;

dm.ot.CommandText:='Select * from otdel';

dm.ot.Active:=true;

fotdel.ShowModal;

end;

procedure TFmain.N12Click(Sender: TObject);

begin

fvrach.Caption:=n12.Caption;

fvrach.DBGrid1.PopupMenu:=fvrach.PopupMenu1;

fvrach.DBGrid1.DataSource:=dm.vrs;

dm.vr.Active:=false;

dm.vr.CommandText:='Select * from vrach';

dm.vr.Active:=true;

fvrach.ShowModal;

end;

procedure TFmain.N10Click(Sender: TObject);

begin

fpalata.Caption:=n10.Caption;

fpalata.DBGrid1.PopupMenu:=fpalata.PopupMenu1;

fpalata.DBGrid1.DataSource:=dm.pals;

dm.pal.Active:=false;

dm.pal.CommandText:='Select id_pal,nom_pal,nazv_ot,km_pal,km_pal- (select count(id_pac) from pacient where (id_pal_pac=id_pal) and (datak_pac is null) ) as sm, pol_pal,fio_vr from vrach,otdel,palata WHERE (id_vr=id_vr_pal) and (id_ot=id_ot_pal)';

30

dm.pal.Active:=true;

fpalata.ShowModal;

end;

procedure TFmain.N14Click(Sender: TObject);

begin

fpacient.Caption:=n14.Caption;

fpacient.DBGrid1.PopupMenu:=fpacient.PopupMenu1;

fpacient.DBGrid1.DataSource:=dm.pacs;

dm.pac.Active:=false;

dm.pac.CommandText:='Select id_pac,fio_pac,pol_pac,adr_pac,sp_pac,np_pac,kem_pac,kogda_pac,([naz v_ot]&", №: "&[nom_pal]) as pal,nazv_ot,nom_pal,id_pal,datan_pac,datak_pac from pacient,palata,otdel where (id_pal=id_pal_pac) and (id_ot=id_ot_pal)';

dm.pac.Active:=true;

fpacient.ShowModal;

end;

procedure TFmain.N15Click(Sender: TObject);

begin

fbollist.Caption:=n15.Caption;

fbollist.DBGrid1.PopupMenu:=fbollist.PopupMenu1;

fbollist.DBGrid1.DataSource:=dm.bls;

dm.bl.Active:=false;

dm.bl.CommandText:='Select id_bl,fio_pac,fio_vr,datav_bl,id_pac_bl from bollist,pacient,vrach where (id_pac=id_pac_bl) and (id_vr=id_vr_bl)';

dm.bl.Active:=true;

fbollist.ShowModal;

end;

procedure TFmain.N17Click(Sender: TObject);

begin

fot1.Caption:=n17.Caption;

fot1.cb1.clear;

dm.temp.Active:=false;

dm.temp.CommandText:='Select fio_vr from vrach';

dm.temp.Active:=true;

WHILE not dm.temp.Eof do

begin

31

fot1.cb1.Items.Add(dm.temp.fields[0].AsString);

dm.temp.Next;

end;

fot1.ShowModal;

end;

procedure TFmain.N18Click(Sender: TObject); begin

fot2.Caption:=n18.Caption;

fot2.ShowModal;

end;

procedure TFmain.N19Click(Sender: TObject);

begin

tm:=0;

fot3.Caption:=n19.Caption;

fot3.ShowModal;

end;

procedure TFmain.N20Click(Sender: TObject);

begin

tm:=1;

fot3.Caption:=n20.Caption;

fot3.ShowModal;

end;

procedure TFmain.N6Click(Sender: TObject);

begin

fchpass.Caption:=n6.Caption;

fchpass.ShowModal;

end;

end.

unit datm;

interface

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