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

ЗАКЛЮЧЕНИЕ

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

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

затем и непосредственное создание их структуры.

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

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

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

По теме данного курсового проекта была написана статья на тему «Выбор системы электронного документооборота организаций, осуществляющих деятельность в сфере предоставления услуг в сети интернет», текст которой представлен в приложение Б.

31

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

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

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

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

3Чиртик А.А.: Программирование в Delphi. - СПб: Питер, 2010

4Александреску А. Современное проектирование на C++. Обобщённое программирование и прикладные шаблоны проектирования; М.: Мир, 2008. 957 c.

5Блюттман, Кэн Access. Трюки; СПб: Питер, 2012. 336 c.

6Михеева Е.В.: Информационные технологии в профессиональной деятельности. - М.: Академия, 2011.384 с.

7Исаев Г.Н. Моделирование информационных ресурсов: теория и решение задач: Учебное пособие. - М.: Альфа-М : ИНФРА - М. 2012 - 224с.

8Мартишин С.А., Симонов В.А., Храпченко М.В. Проектирование и реализация баз данных в СУБД MySQL c использованием MySQL Workbench:

Учебное пособие. - М.: ИД. "Форум" : ИНФРА - М. 2012-160с.

9 Агальцов В.П., Титов В.М., Информатика для экономистов: учебник. - М.:

ИД. "Форум" : ИНФРА - М. 2013-448с.

10 Светлов Н.М., Светлова Г.Н. Информационные технологии управления проектами: Учеб. пособие. -2-е издание., перераб. и доп. - М.: ИД. "Форум" :

ИНФРА - М. 2012-232с.

11 Галисеев, Г. В. Программирование в среде Delphi 7. Самоучитель. – М.:

Дрофа, 2012 – 765 с.

12 Фараонов, В. В. Система программирования Delphi. – СПб.: БХВ -

Петербург, 2012. – 912 с.

13 Гофман, В. Э., Хомоненко, А. Д. Delphi 7. – СПб.: БХВ-Петербург, 2012. – 1152 с.

32

14 Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и статистика,

1985. – 344 с.

15Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.

16Чери С., Готлиб Г., Танка Л. Логическое программирование и базы данных. – М.: Мир, 1992.

17Нагао М., Катаяма Т., Уэмура С. Структуры и базы данных. – М.: Мир,

1986.

18Атре Ш. Структурный подход к организации баз данных. – М.: Финансы и статистика, 1983. – 320 с.

19Гейн К., Сарсон Т. Структурный системный анализ: средства и методы: В

2–x кн. – М.: Эйтекс, 1993. – Кн. 1. – 187с.; Кн. 2. – 214 с.

20Шлеер С., Меллор С. Объектно–ориентированный анализ: моделирование мира в состояниях. – Киев: Диалектика, 1993.– 240 с.

21Вендров А.М. CASE–технологии. Современные методы и средства проектирования информационных систем. – М.: Финансы и статистика, 1998.

33

ПРИЛОЖЕНИЕ А Листинг программы

Программный код для модуля авторизации пользователя:

unitLogForm;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, DB, ADODB, iniFiles;

type

TLogout = class(TForm) Panel1: TPanel; Label1: TLabel;

DBLookupComboBox1: TDBLookupComboBox; Panel2: TPanel;

Label2: TLabel;

Edit1: TEdit;

Panel3: TPanel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn; OpenDialog1: TOpenDialog;

procedure DBLookupComboBox1CloseUp(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject); procedure FormCreate(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Logout: TLogout; pwd:String; flag:Boolean; posetitel:string;

implementation

uses Home_page, Data_Modul;

{$R *.dfm}

//Процедуравыборапользователя

procedure TLogout.DBLookupComboBox1CloseUp(Sender: TObject); begin

posetitel:=DBLookupComboBox1.Text; if posetitel<>'' then

begin Edit1.SetFocus; DM.USQuery1.Close;

DM.USQuery1.SQL.Clear; DM.USQuery1.SQL.Add('SELECT Users.*' +' FROM Users'

+' WHERE Users.ID='+IntToStr(DBLookupComboBox1.KeyValue)+';'); DM.USQuery1.Open; pwd:=DM.USQuery1.FieldByName('U_Password').AsString; DM.USQuery1.SQL.Clear;

DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

end;

//Процедуравходавсистему

procedure TLogout.BitBtn1Click(Sender: TObject); begin

if posetitel<>'' then

if pwd<>Trim(Edit1.Text) then MessageDlg('Неверныйпароль!',mtError, [mbOK], 0)

34

else begin

flag:=false;

if not flag then begin

HomePage:=THomePage.Create(self);

HomePage.Label3.Caption:=Logout.DBLookupComboBox1.Text;

flag:=true;

end;

HomePage.Show;

Logout.Hide;

DM.USQuery1.SQL.Clear;

DM.USQuery1.Close end

else MessageDlg('Укажитепользователя', mtWarning, [mbOK], 0); end;

//Процедура отмены входа в систему

procedure TLogout.BitBtn2Click(Sender: TObject); begin

Logout.Close;

end;

//Процедура проверки связи с БД

procedure TLogout.FormCreate(Sender: TObject); var

DBPath:widestring;

F:TIniFile; buttonSelected : Integer;

begin

If FileExists(GetCurrentDir+'\Home_accouting.mdb') then begin

MessageDlg('Свзяь c БДустановлена.',mtInformation, [mbOk], 0); end

else begin

buttonSelected:=MessageDlg('СвзяьсБДотсутствует. Установить? ',mtError, mbOKCancel, 0); F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');

if OpenDialog1.Execute then begin

DBPath:=ExtractFilePath(OpenDialog1.FileName);

F.WriteString('Section_DBPath','Path',DBPath); if buttonSelected = mrOK then

begin DM.ADOConnection1.Close;

DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DBPath+'Home_accouting.mdb;Persist Security Info=False';

DM.ADOConnection1.Open;

DM.USQuery1.SQL.Clear; DM.USQuery1.SQL.Add('SELECT Users.*FROM Users;'); DM.USQuery1.Open;

end;

F.Free;

end;

if buttonSelected = mrCancel then begin

DM.ADOConnection1.Connected:=false;

Application.Terminate;

end;

end;

end;

end.

Программный код модуля «Главное меню»:

unit Home_page;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, DB, ADODB, jpeg, ExtCtrls, IniFiles, StdCtrls;

type

THomePage = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem;

N2: TMenuItem;

35

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; OpenDialog1: TOpenDialog; N18: TMenuItem;

N19: TMenuItem;

N20: TMenuItem;

N17: TMenuItem;

N21: TMenuItem;

Image1: TImage;

N22: TMenuItem;

N23: TMenuItem;

N24: TMenuItem;

N25: TMenuItem;

N26: TMenuItem;

N27: TMenuItem;

N28: TMenuItem;

N29: TMenuItem;

N30: TMenuItem;

N31: TMenuItem;

Label1: TLabel;

Label2: TLabel;

Timer1: TTimer;

Label3: TLabel;

procedure N6Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure N15Click(Sender: TObject);

procedure N14Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N20Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure N21Click(Sender: TObject); procedure N31Click(Sender: TObject); procedure Timer1Timer(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

HomePage: THomePage;

implementation

uses Data_modul, Doxods, Familyes, Now_doxod, Now_rasxod, Rasxods, ChangePass, LogForm, RegForm, AdForm, IndividDoxod, IndividRasxod, BalancForm;

{$R *.dfm}

//процедура связи с БД

procedure THomePage.N6Click(Sender: TObject); var F:TiniFile;

DBPath:widestring; begin

F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini'); if OpenDialog1.Execute then

begin DBPath:=ExtractFilePath(OpenDialog1.FileName); F.WriteString('Section_DBPath','Path',DBPath); DM.ADOConnection1.Close;

36

DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog1.FileName+';Persist Security Info=False';

DM.ADOConnection1.Open;

end;

F.Free;

end;

//процедуравыходаизпрограммы

procedure THomePage.N7Click(Sender: TObject); var

buttonSelected : Integer; begin

buttonSelected:=MessageDlg('Выйтиизпрограммы?',mtInformation, mbOKCancel, 0); if buttonSelected = mrOK then

begin DM.ADOConnection1.Connected:=false; Application.Terminate;

end;

end;

//процедураоткрытиямодуля «Доходы»

procedure THomePage.N8Click(Sender: TObject); begin

Doxod:=TDoxod.Create(Self);

Doxod.ShowModal;

end;

//процедураоткрытиямодуля «Расходы» procedure THomePage.N9Click(Sender: TObject); begin

Rasxod:=TRasxod.Create(Self);

Rasxod.ShowModal;

end;

//процедураоткрытиямодуля «Члены семьи» procedureTHomePage.N10Click(Sender: TObject); begin

Family:=TFamily.Create(Self);

Family.ShowModal;

end;

//процедураоткрытиямодуля «Текущие доходы» procedureTHomePage.N11Click(Sender: TObject); begin

NDoxod:=TNDoxod.Create(Self);

NDoxod.ShowModal;

end;

//процедураоткрытиямодуля «Текущие расходы» procedure THomePage.N12Click(Sender: TObject); begin

NRasxod:=TNRasxod.Create(Self);

NRasxod.ShowModal;

end;

//процедура закрытия программы

procedure THomePage.FormClose(Sender: TObject; var Action: TCloseAction); begin

DM.ADOConnection1.Connected:=False;

Application.Terminate;

end;

//процедурасоздания резервной копии

procedure THomePage.N16Click(Sender: TObject); var F:TiniFile;

DBPath1:string; buttonSelected : Integer;

begin

if Label3.Caption='ADMIN' then begin

buttonSelected:=MessageDlg('СоздатьрезервнуюкопиюБД?',mtInformation, mbOKCancel, 0); if buttonSelected = mrOK then

begin F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini'); DBPath1:=F.ReadString('Section_DBPath','Path','');

F.Free;

CopyFile(pchar(DBPath1+'Home_accouting.mdb'),pchar(DBPath1+'Copy_Home_accouting.mdb'),false); MessageDlg('СозданарезервнаякопияБД ',mtInformation, [mbOk], 0);

37

end; end else

MessageDlg('Доступно пользователю c правами администратора ',mtError, [mbOk], 0); end;

//процедураоткрытиямодуля «Смена пароля» procedure THomePage.N15Click(Sender: TObject); begin

Change:=TChange.Create(Self);

Change.ShowModal;

end;

//процедураоткрытиямодуля «Регистрация пользователя» procedure THomePage.N14Click(Sender: TObject);

begin Registration:=TRegistration.Create(Self); Registration.ShowModal;

end;

//процедураоткрытиямодуля «Смена пользователя» procedure THomePage.N13Click(Sender: TObject); var

ogPath:PChar; buttonSelected : Integer;

begin

buttonSelected:=MessageDlg('Программабудетперезапущена. ',mtInformation, mbOKCancel, 0); if buttonSelected = mrOK then

begin ogPath:=PChar(Application.ExeName); WinExec(ogPath,SW_SHOW); Application.Terminate;

end;

end;

//процедураоткрытиямодуля «Авторизация пользователя» procedure THomePage.N20Click(Sender: TObject);

begin Admin:=TAdmin.Create(Self); Admin.ShowModal;

end;

//процедураоткрытиямодуля «Индивидуальный отчет по доходам» procedure THomePage.N17Click(Sender: TObject);

begin InDoxod:=TInDoxod.Create(Self); InDoxod.ShowModal;

end;

//процедураоткрытиямодуля «Индивидуальный отчет по расходам» procedure THomePage.N21Click(Sender: TObject);

begin InRasxod:=TInRasxod.Create(Self); InRasxod.ShowModal;

end;

//процедураоткрытиямодуля «Баланс семьи» procedure THomePage.N31Click(Sender: TObject); begin

Balanc:=TBalanc.Create(Self);

Balanc.ShowModal;

end;

procedure THomePage.Timer1Timer(Sender: TObject); begin

Label1.Caption:='ВРЕМЯ: '+TimeToStr(now); Label2.Caption:='ДАТА: '+DateToStr(now); end;

end.

Программный код модуля «Доходы»:

unit Doxods;

interface

uses

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

38

Dialogs, ExtCtrls, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, Mask;

type

TDoxod = class(TForm) Panel1: TPanel; GroupBox1: TGroupBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit5: TDBEdit; DBGrid1: TDBGrid;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton; GroupBox2: TGroupBox; Label1: TLabel;

Label2: TLabel; ComboBox1: TComboBox; Edit1: TEdit;

DBNavigator1: TDBNavigator; Timer1: TTimer;

Label7: TLabel;

BitBtn1: TBitBtn;

procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure BitBtn2Click(Sender: TObject);

procedure DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BitBtn1Click(Sender: TObject);

procedure DBEdit3Enter(Sender: TObject); procedure DBEdit3Exit(Sender: TObject);

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure noEdit;

function checkEdit:boolean; public

{ Public declarations } end;

const

SQL='SELECT Doxod.*FROM Doxod';

var

Doxod: TDoxod; s:string; ins:boolean;

implementation

uses Data_modul;

{$R *.dfm}

//процедураобновленияданных procedure TDoxod.Refresh; begin

DM.DoxQuery1.Close;

DM.DoxQuery1.Open;

end;

//процедура статуса редактирования записи procedureTDoxod.isEdit;

begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Doxod SET Doxod.EDIT = True WHERE Doxod.D_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Doxod WHERE D_ID='+DBEdit1.Text+';';

39

DM.CheckQuery1.Open;

end;

end;

//процедура прекращения редактирования записи procedureTDoxod.noEdit;

begin

if DBEdit1.Text<>'' then begin

DM.CheckQuery1.SQL.Text:='UPDATE Doxod SET Doxod.EDIT = False WHERE Doxod.D_ID='+DBEdit1.Text+';';

DM.CheckQuery1.ExecSQL;

DM.CheckQuery1.SQL.Text:='Select * from Doxod WHERE D_ID='+DBEdit1.Text+';'; DM.CheckQuery1.Open;

end;

end;

//процедура проверки редактирования записи functionTDoxod.checkEdit:boolean;

begin checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckQuery1.SQL.Text:='Select * from Doxod'+' WHERE D_ID='+DBEdit1.Text+';';

DM.CheckQuery1.Open;

if DBEdit5.Text<>'' then begin

Label7.Visible:=StrToBool(DBEdit5.Text); DBEdit2.Enabled:= not StrToBool(DBEdit5.Text); DBEdit3.Enabled:= not StrToBool(DBEdit5.Text); checkEdit:=StrToBool(DBEdit5.Text);

end;

end;

//процедурасортировкитаблицы procedureTDoxod.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' ASC';

clr:= clMoneyGreen;

if RadioButton2.Checked then begin

s:=' DESC'; clr:= clSkyBlue; end;

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; DM.DoxQuery1.Sort:= DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

//процедурапоискапотаблице

procedure TDoxod.Edit1Change(Sender: TObject); begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; DM.DoxQuery1.SQL.Clear;

DM.DoxQuery1.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.text+'%"'); Refresh;

end;

//процедуразаполнения таблицы данными procedure TDoxod.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.DoxQuery1.SQL.Clear; DM.DoxQuery1.SQL.Add(SQL+';'); DM.DoxQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TDoxod.BitBtn2Click(Sender: TObject); begin

Refresh;

end;

40

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