Курсовые работы / ПРИС П _2
.pdfЗАКЛЮЧЕНИЕ
В результате выполнения курсового проекта была реализована программа по автоматизации учета доходов и расходов бюджета семьи. В процессе реализации проета построена функциональная модель по стандарту 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