Файл: Разработка информационной системы управления банковскими операциями.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 1702

Скачиваний: 40

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Таблица 8. Описание программных модулей

Наименование модуля

Описание

Main.pas

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

DataM.pas

Модуль, отвечающий за инициализацию подключения к базе данных

Login.pas

Отвечает за авторизацию пользователей в АИС

Client.pas

Форма для отображения списка клиентов и работы с ним

Oneclient.Pas

Форма для работы с данными клиента и его счетов (добавления/изменение/выполнение операций)

NewAccount.pas

Форма для открытия нового счета

Sprav.pas

Форма для организации работы со справочниками системы

Report.Pas

Форма для ввода параметров отчета, его формирования и выгрузки в Excel

Исходный код программных модулей приведен в приложении.

2.6 Контрольный пример работы системы

После запуска программы открывается форма авторизации (Рисунок 11). На которой пользователю необходимо выбрать себя из списка и ввести пароль от своей учетной записи.

Рисунок 11 – Форма авторизации

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

Рисунок 12 – Главное меню главного окна

Поле выбора пункта меню «Клиенты» Открывается форма со списком клиентов, на которой расположены элементы для поиска нужного клиента, кнопка для добавления нового (Рисунок 13).

Рисунок 13 – Форма Клиенты

После нажатия на кнопку «Добавить» открывается форма добавления нового клиента (Рисунок 14).

Рисунок 14 – Форма добавления клиента

При двойном щелчке на имени клиента в списке открывается форма работы с данными клиента, на которой отображаются все его данные и данные всех его счетов и операций по ним (Рисунок 15).

Рисунок 15 – Форма работы с данными клиентов

Для ввода новой операции по счету необходимо выделить его в списке и нажать правую кнопку мыши и выбрать соответствующий пункт контекстного меню (Рисунок 16).


Рисунок 16 – Контекстное меню

При необходимости откроется дополнительной диалоговое окно, запрашивающая необходимые данные, например, сумму операции дополнительного взноса в граммах соответствующего металла (Рисунок 17).

Рисунок 17 – Диалоговое окно запроса данных операции

После выполнения операции печатается квитанция.

Для формирования отчета по операциям необходимо перейти в раздел главного меню «Отчет по операциям». Отобразится форма для ввода интервала дат, за который нужно сформировать отчет (Рисунок 18).

Рисунок 18 – Форма для ввода интервала дат формирования отчета

Сформированный отчет выгружается в программу Excel (Рисунок 19).

Рисунок 19 – Сформированный отчет

ЗАКЛЮЧЕНИЕ

В ходе проделанной работы были решены следующие задачи:

  • была изучена текущая организация бизнес-процесса ведения операций с драгоценными металлами в банке «ФК Дэвим», в результате изучения была построена структурна-функциональная модель бизнес-процесса в нотации IDEF0;
  • по результатам изучения бизнес-процесса были выделены недостатки в текущей его организации, которые связаны с низкой автоматизацией данного процесса;
  • было рассмотрено три программных продукта, предназначенных для автоматизации банковской деятельности;
  • на основании проведенного исследования был составлен перечень требования к разрабатываемой информационной системе автоматизации ведения операций с драгоценными металлами;
  • была спроектирована база данных, составлены дерево функций и сценарий диалога информационной системы;
  • в качестве средств разработки ИС были выбраны СУБД Microsoft Access и среда программирования Delphi 7;
  • с использованием выбранных средств разработки была создана база данных и программные модули;
  • Была проверена работоспособность программы на тестовых данных.

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

СПИСОК ИСТОЧНИКОВ

  1. Автоматизированные информационные технологии в экономике: Учебник/Под ред. проф. Г.А. Титоренко. – М.: Компьютер, ЮИНИТИ, 2016. – 329 c.
  2. Гофман В., Хомоненко A., «Delphi. Быстрый старт»; С.-Петербург 2013 – 289 с.
  3. Кандзюба С.П., Громов В.Н. Delphi. Базы данных и приложения. Лекции и упражнения. – СПб.: ООО ДиаСофтЮП, 2015. – 456 c.
  4. Конналли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика – М.: Издательский дом «Вильямс», 2013. – 592 c.
  5. Марка Д. А., МакГоуэн К. Методология структурного анализа и проектирования SADT. М.: ДИАЛОГ-МИФИ, 2013. – 443 c.
  6. Маклаков С. В. Моделирование бизнес-процессов с AllFusion Process Modeler (BPwin 4.1). М.: ДИАЛОГ-МИФИ, 2013. – 340 c.
  7. Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite. – М.: ДИАЛОГ-МИФИ, 2015. – 512 c.
  8. Маклаков С.В. BPwin и Erwin. CASE-средства разработки информационных систем. – М.: ДИАЛОГ–МИФИ, 2014. – 369 c.

  • Михеева В., Харитонова И. Microsoft SQL Server. – СПб.: БХВ – Санкт-Петербург, 2014, 1072с.
  1. Проектирование экономических информационных систем: учеб. / под ред. Ю. Ф. Тельнова. М., 2005 – 345 c.
  2. Рудинский И. Д. Основы формально-структурного моделирования систем обучения и автоматизации педагогического тестирования знаний. – М.: Горячая линия – Телеком, 2014. – 204 с.
  3. Смирнова Г.Н. и др. Проектирование экономических информационных систем: Учебник / Под ред. Ю.Ф. Тельнова. – М.: Финансы и статистика, 2018 – 512 с.
  4. Смирнов И.Н. и др. Основные СУБД. – М.: Наука, 2019 – 320 с.
  5. Хомоненко А.Д. и др. Базы данных: Учебник для вузов / Под ред. проф. А.Д. Хомоненко. – СПб.: КОРОНА принт, 2016 – 736 с.
  6. Фаронов, В.В. Программирование баз данных в Delphi 7: учебный курс / В.В. Фаронов. – СПб.: Питер, 2014. – 459 с.

ПРИЛОЖЕНИЕ

Исходный код программных модулей

unit Main;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, ExtCtrls, Menus, ComObj;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

C1: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

procedure CreateSpravForm(const childName, id: string; table: TDataset;

p: integer);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses DataM, Sprav, Client, OneClient;

{$R *.dfm}

//создание формы для работы со справочником

procedure TForm1.CreateSpravForm(const childName, id : string; table: TDataset; p: integer);

var

Child: TForm2;

i,k :integer;

f : boolean;

begin

f:=False; //влаг-ложь

k:=0;

for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого окна

if (Form1.MDIChildren[i] is TForm2) and (Form1.MDIChildren[i].caption=childName) then

begin

f:=True;

k:=i;

end;

if (f) and (Form1.MDIChildren[k].Caption=childName) then begin //если создан, то

Form1.MDIChildren[k].bringToFront; //переносим его вперед

if Form1.MDIChildren[k].WindowState=wsMinimized then

Form1.MDIChildren[k].WindowState:=wsNormal;

end

else

begin //иначе - создаем форму

Child := TForm2.Create(Application);

Child.Caption := childName; //задаем название

Child.DBGrid1.DataSource.DataSet:=table; //задаем таблицу справочник, с которой будем работать

table.active:=true; //делаем таблицу активной

Child.Setgridcolumnwidths; //выравниваем ширину столбцов

//Child.Label1.Caption:=id; //передаем ид

// Case p of

// 1: Child.n1.visible:=true; //отображаем первый пункт контекстного меню

// 2: Child.n2.visible:=true; //отображаем второй пункт контекстного меню

{3: Child.n3.visible:=true; //отображаем третий пункт контекстного меню

4: Child.n4.visible:=true; //отображаем четвертый пункт контекстного меню

5: begin Child.n5.visible:=true; //отображаем четвертый пункт контекстного меню


Child.Panel2.visible:=false; }

// end;

end;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

CreateSpravForm('Пользователи','',Datamodule1.User,0); //Вызов процедуры для работы со Справочником Пользователи

end;

procedure TForm1.N5Click(Sender: TObject);

begin

CreateSpravForm('Драгоценные металлы','',Datamodule1.Metall,0); //Вызов процедуры для работы со Справочником Металлы

end;

procedure TForm1.N3Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N1Click(Sender: TObject);

var

Child: TForm3;

i,k :integer;

f : boolean;

begin

f:=False; //влаг-ложь

k:=0;

for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого окна

if (Form1.MDIChildren[i] is TForm3) then

begin

f:=True;

k:=i;

end;

if (f) then begin //если создан, то

Form1.MDIChildren[k].bringToFront; //переносим его вперед

if Form1.MDIChildren[k].WindowState=wsMinimized then

Form1.MDIChildren[k].WindowState:=wsNormal;

end

else

begin //иначе - создаем форму

Child := TForm3.Create(Application);

Child.DBGrid1.DataSource.DataSet.Open;

Child.Setgridcolumnwidths;

end;

end;

end.

unit Login;

interface

uses

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

Dialogs, StdCtrls, Buttons, DBCtrls;

type

TForm6 = class(TForm)

DBLookupComboBox1: TDBLookupComboBox;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label3: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure DBLookupComboBox1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

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

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Main, DataM;

{$R *.dfm}

procedure TForm6.BitBtn1Click(Sender: TObject);

begin

if DbLookupCombobox1.KeyValue<>-1 then //проверка выбран ли пользователь

begin

if Edit1.text=DbLookupCombobox1.ListSource.DataSet.FieldByName('password').AsString then //проверка правильности ввода пароля

begin

label3.Caption:='1';

Form1.Menu:=Form1.MainMenu1;

close;

end

else

begin

ShowMEssage('Пароль не верен');

edit1.Text:='';

Edit1.SetFocus;

end;

end;

end;

procedure TForm6.DBLookupComboBox1Click(Sender: TObject);

begin

Edit1.Text:=''; //очищаем пароль

Edit1.SetFocus; //передаем фокус ввода поля для ввода пароля

end;

procedure TForm6.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then BitBtn1.click; //нажатие энтер в поле пароля

end;

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

begin

if label3.caption='0' then

application.Terminate

else

Action:=cafree;

end;

procedure TForm6.BitBtn2Click(Sender: TObject);

begin

close;

end;

end.

unit Client;

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, DB, ADODB;

type

TForm3 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

DBGrid1: TDBGrid;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

GroupBox1: TGroupBox;

Edit1: TEdit;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

DataSource1: TDataSource;

ADOQuery1: TADOQuery;

ADOQuery1Id: TAutoIncField;

ADOQuery1FIO: TWideStringField;

ADOQuery1passport: TWideStringField;

ADOQuery1address: TWideStringField;


ADOQuery1phone: TWideStringField;

ADOQuery1birthdate: TDateTimeField;

BitBtn5: TBitBtn;

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

procedure FormResize(Sender: TObject);

procedure Setgridcolumnwidths;

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

Uses DataM, OneClient, Main;

{$R *.dfm}

Procedure TForm3.Setgridcolumnwidths;

var

i,x,dx:integer;

begin

x:=Round((DbGrid1.width-80)/(DbGrid1.Columns.Count-1));

DbGrid1.Columns[0].Width:=40;

For i:=1 to DbGrid1.Columns.Count-1 do

begin

DbGrid1.Columns[i].Width:=x;

end;

end;

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

begin

action:=cafree;

end;

procedure TForm3.FormResize(Sender: TObject);

begin

Setgridcolumnwidths;

end;

procedure TForm3.BitBtn3Click(Sender: TObject);

begin

if edit1.text<>'' then

begin

With AdoQUery1 do

begin

close;

SQL.Clear;

SQL.Add('SELECT * FROM client WHERE FIO like %:text%');

Parameters.ParamByName('text').Value:=edit1.Text;

open;

end;

end

else

begin

With AdoQUery1 do

begin

close;

SQL.Clear;

SQL.Add('SELECT * FROM client');

open;

end;

end;

end;

procedure TForm3.BitBtn4Click(Sender: TObject);

begin

edit1.Clear;

end;

procedure TForm3.BitBtn1Click(Sender: TObject);

var

Child: TForm4;

i,k :integer;

f : boolean;

begin

f:=False; //влаг-ложь

k:=0;

for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого окна

if (Form1.MDIChildren[i] is TForm4) then

begin

f:=True;

k:=i;

end;

if (f) then begin //если создан, то

Form1.MDIChildren[k].bringToFront; //переносим его вперед

if Form1.MDIChildren[k].WindowState=wsMinimized then

Form1.MDIChildren[k].WindowState:=wsNormal;

end

else

begin //иначе - создаем форму

Child := TForm4.Create(Application);

Child.Panel2.Visible:=false;

Child.Caption:='Новый клиент';

Child.Height:= 200;

end;

end;

procedure TForm3.BitBtn5Click(Sender: TObject);

begin

DbGrid1.DataSource.Dataset.close;

DbGrid1.DataSource.Dataset.open;

Setgridcolumnwidths;

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

var

Child: TForm4;

i,k :integer;

f : boolean;

begin

f:=False; //влаг-ложь

k:=0;

for i:=0 to Form1.MDIChildCount-1 do //проверяем создан ли экземпляр такого окна

if (Form1.MDIChildren[i] is TForm4) then

begin

f:=True;

k:=i;

end;

if (f) then begin //если создан, то

Form1.MDIChildren[k].bringToFront; //переносим его вперед

if Form1.MDIChildren[k].WindowState=wsMinimized then

Form1.MDIChildren[k].WindowState:=wsNormal;

end

else

begin //иначе - создаем форму

Child := TForm4.Create(Application);

Child.Caption:='Клиент '+DbGrid1.DataSource.DataSet.FieldByName('fio').AsString;

Child.Edit1.Text:=DbGrid1.DataSource.DataSet.FieldByName('fio').AsString;

Child.Edit2.Text:=DbGrid1.DataSource.DataSet.FieldByName('phone').AsString;

Child.Edit3.Text:=DbGrid1.DataSource.DataSet.FieldByName('passport').AsString;

Child.Edit4.Text:=DbGrid1.DataSource.DataSet.FieldByName('address').AsString;

Child.DateTimePicker1.DateTime:= DbGrid1.DataSource.DataSet.FieldByName('birthdate').AsDatetime;

Child.Label6.Caption:=DbGrid1.DataSource.DataSet.FieldByName('id').AsString;

Child.DBGrid1.DataSource.DataSet.Filtered:=false;

Child.DBGrid1.DataSource.DataSet.Filter:='balance>0 and clientid = '+DbGrid1.DataSource.DataSet.FieldByName('id').AsString;