银行定期存储管理系统文档.docx

上传人:b****1 文档编号:23132377 上传时间:2023-05-08 格式:DOCX 页数:36 大小:408.37KB
下载 相关 举报
银行定期存储管理系统文档.docx_第1页
第1页 / 共36页
银行定期存储管理系统文档.docx_第2页
第2页 / 共36页
银行定期存储管理系统文档.docx_第3页
第3页 / 共36页
银行定期存储管理系统文档.docx_第4页
第4页 / 共36页
银行定期存储管理系统文档.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

银行定期存储管理系统文档.docx

《银行定期存储管理系统文档.docx》由会员分享,可在线阅读,更多相关《银行定期存储管理系统文档.docx(36页珍藏版)》请在冰豆网上搜索。

银行定期存储管理系统文档.docx

银行定期存储管理系统文档

学院:

管理科学与工程

第一实验小组

成员:

刘刚、何娟、姜信侠、

吴志华、查正功、朱路、樊宇新

一项目规划和需求分析2

1.开发背景2

2.组织的结构2

3.需求分析3

4.人力要求3

二系统分析3

1.系统安全性分析3

2.业务流程图(TransactionFlowDiagram,TFD)4

3.数据流程图(DataFlowDiagram,DFD)4

4.数据字典(DataDictionary,DD)5

三系统设计6

1.系统功能设计6

2.概念设计6

3.物理设计7

四系统实施7

1.开发工具的选择7

2.程序设计8

3.系统测试18

一项目规划和需求分析

1.开发背景

在计算机技术和网络技术没有得到全面普及以前,各企业和行政单位,在办工时,都要记录大量的数据,这些数据还要保存到文档里,不仅消耗大量的脑力,还要占据大量的空间。

特别是银行工作人员在办理各项业务时,不仅要需要大量的计算和统计,而且需要数据准确、精密。

所以,工作人员在处理业务时,容易出现不可避免的错误。

随着计算机技术和网络技术的快速发展,电脑和INTERNET进入了个行政企业,甚至平常家庭。

因此,编写一个处理银行定期管理的应用系统是很有必要的。

进行计算机计算和管理储户信息,银行存款等各项数据。

避免人类因疲惫或者其他原因造成的错误工作。

2.组织的结构

银行定期存储管理系统

打印利息子系统

帐号验证子系统

统计子系统

挂失子系统

取款子系统

存款子系统

登录子系统

图1组织的结构

3.需求分析

该系统存储以下信息:

(1)每笔存款的储户信息和办理该笔存款的营业员信息,这些信息存放于存款文件中。

其中储户信息包括:

帐号,姓名,密码,地址,储种(定期1年,3年,5年),本金,收储日期,是否已经挂失和挂失日期。

营业员信息包括:

接待该储户的营业员的姓名和工号。

 

(2)每笔存款的储户信息和办理该笔存款的营业员信息,这些信息存放于取款文件中。

 

该系统功能要求如下:

 

(1)创建存款文件(第一次输入储户信息时); 

(2)创建取款文件(第一次办理取款时); 

(3)接收储蓄:

接收储户和营业员信息并将以上信息添加到存款文件中; 

(4)处理挂失:

根据储户提供的帐号,姓名,密码,地址,储种,储金核查有无此项存款,有则对帐号加挂失标记;否则,则需判断是否领走还是未发生过这笔存款。

 

(5)办理取款:

<1>根据储户提供的存款单(上面有帐号,姓名,储种,本金,日期)判断是否

到期,检查有否挂失,根据储户提供的密码判断是否正确。

若判断通过,执行以下三步。

<2>取款文件中添加这笔存款的储户和营业员的所有信息和取款日期,以便复查。

<3>打印利息单,包括:

帐号,姓名,储种,起息日期,支取日期,本金,利息和支取金额。

利息计算如下:

1年到期利息7%,3年8%,5年9%;每逾期一天,每天利率0.05%;若提前支取,每天利率0.05%。

<4>在存款文件中对这笔存款删除。

4.人力要求

刘刚(组长):

将各组员做的各子系统数据汇总,建立数据库文件,并将储户信息和营业员信息保存在数据库文件当中。

何娟(副组长):

完成各项文档的编制,包括业务流程图,数据流程图,数据字典,系统文档的编写。

朱路:

完成“存款子系统”的设计任务;

吴志华:

完成“帐号验证子系统”的设计任务和完成用户信息和营业员信息类的定义和函数的编写;

查正功:

完成“打印利息子系统”和“登录子系统”的设计任务;

姜信侠:

完成“挂失子系统”的设计任务;

樊宇新:

完成“统计子系统”的设计任务。

二系统分析

1.系统安全性分析

使用本系统的人员可以划分成系统管理员,营业员,用户三类,系统管理员对系统拥有最高权限,可以修改,设定所有人员的密码和权限,主要是对该系统的维护和异常的处理。

营业员和用户是该系统的主要操作人员,营业员主要是每天开始工作的时候启动该系统,监督用户的存款和取款等操作。

用户只有输入正确的帐号和密码,才可以进行取款和挂失操作。

2.业务流程图(TransactionFlowDiagram,TFD)

 

图2业务流程图

3.数据流程图(DataFlowDiagram,DFD)

增加D09

不存在D08记录

存款D06存在D07添加D10

记录

取款D01存在D02

无挂失D03删除D04

记录

添加D05

记录

图3数据流程图

4.数据字典(DataDictionary,DD)

数据元素

系统名:

银行管理系统系统编号:

E——01

名称:

用户帐号别名:

CNO

数据值类型:

离散类型:

字符型

长度:

20

说明:

每个用户有一个唯一的帐号

数据元素

系统名:

银行管理系统系统编号:

E——02

名称:

用户密码别名:

CPASSWORD

数据值类型:

离散类型:

字符型

长度:

20

说明:

每个用户的密码可以自己设置

数据元素

系统名:

银行管理系统系统编号:

E——03

名称:

用户本金别名:

CMONEY

数据值类型:

离散类型:

整数型

长度:

20

数据流

系统名:

银行管理系统系统编号:

F——01

名称:

用户信息别名:

CINFOR

数据值类型:

离散类型:

字符型

来源:

用户存款,取款,挂失表去向:

用户信息

数据流结构:

用户信息={帐号+密码+本金+储种+利息+挂失}

数据元素

系统名:

银行管理系统系统编号:

D——02

名称:

存款表别名:

CPASSWORD

存储组织:

二维表主键:

帐号

记录组成:

字段名帐号密码本金储种利息挂失

字段长度20201510101

说明:

用此存储用户存款信息

图4各种数据字典

其他数据元素字典,数据流字典,数据存储字典略。

三系统设计

1.系统功能设计

<1>登录子系统

为了增强数据的安全性,设置了该系统,只有营业员能使用,营业员通过输入正确的帐号和密码才能使用。

以防他人篡改数据。

<2>存款子系统

接受储户与营业员信息,并将以上信息添加到存款文件中。

<3>取款子系统

先通过帐号验证子系统证明用户信息的正确性,输入正确的信息才能进行取款操作。

然后,在取款文件中添加储户与营业员取款信息,便便复查。

通过打印利息子系统打印利息单。

最后,在存款中删除被取款项。

<4>挂失子系统

根据储户信息提供的帐户信息,检查有无此项存款,有则对此帐号加入挂失标记。

若无此款项,需判断存款是否被领走还是未发生过这笔款项。

<5>统计子系统

统计每天到期的储金数。

2.概念设计

图5概念设计

3.物理设计

存款表(cq)

字段名称

字段类型

字段长度

主键

可否为空

姓名

文本

20

NOTNULL

帐号

文本

20

Y

NOTNULL

密码

文本

20

NOTNULL

本金

数字

15

NOTNULL

储种

数字

1

NOTNULL

挂失

数字

1

NOTNULL

营业员姓名

文本

20

NOTNULL

营业员工号

文本

20

NOTNULL

日期

数字

10

NOTNULL

利息

数字

15

NOTNULL

图6存款的物理设计

取款(qk)

字段名称

字段类型

字段长度

主键

可否为空

姓名,

文本

20

NOTNULL

帐号

文本

20

Y

NOTNULL

本金

数字

15

NOTNULL

储种

数字

1

NOTNULL

利息

数字

15

NOTNULL

挂失

数字

1

NOTNULL

图7取款的物理设计

四系统实施

1.开发工具的选择

(1)前端软件开发工具的选择

本系统选择可视化的面向对象的程序设计语言VISUALC++作为前端开发工具,VISUALC++具有强大的数据库功能,丰富的对话框界面,BMP资源,主要是它的面向对象技术,使用MFC封装了大量的类,也可以在他们的基础上,继承和派生出符合自己运用的类。

使用ADO技术,可以很好的和数据库文件连接。

(2)后台数据库的选择

MicrosoftAccess2003是一种桌面数据库系统,特别适合小型企业或者存储数据不大的数据库使用,更重要的一点是,他简单易懂,操作起来与Microsoftword很象,使用起来比较上手,而且不需要代码的编写,就可以创建一个数据库文件。

(3)软件开发平台的选择

基于VISUALC++和Microsoftaccess2003对运行环境的要求,选择WindowsXP以上的操作系统作为系统开发和运行的平台。

2.程序设计

(1)登陆子系统

<1>登陆界面

<2>代码

在工程项目的CbanksystemApp.cpp文件中的BOOLCBanksystemApp:

:

InitInstance()函数的开始部分插入以下代码:

intncount=0;

while(ncount<3)

{

if(dlg5.DoModal()==IDOK)

if((strcmp(dlg5.m_DLZHANGHAO,"liugang")!

=0)||

(strcmp(dlg5.m_DLMIMA,"liugang")!

=0))

{MessageBox(NULL,"帐号或密码口令错误","错误信息",MB_OK|MB_ICONERROR);

ncount++;

}

elsebreak;

else{

returnFALSE;

}

}

if(ncount>=3)

{MessageBox(NULL,"输入超过3次,请退出","错误信息",MB_OK|MB_ICONERROR);

returnFALSE;

}

ncount变量是用来统计登陆次数的,如果超过3次以上,系统会弹出消息框

(2)主界面

如果登陆成功,就可以进入主界面了

<1>主界面

<2>代码

主界面是单文档,是MFC向导自动生成的.因为该系统使用ADO技术和数据库文件连接,所以要在#include"stdafx.h"中加入#import"C:

\ProgramFiles\CommonFiles\System\ado\msado15.dll"no_namespace\

rename("EOF","adoEOF")rename("BOF","adoBOF"),

然后在BOOLCBanksystemApp:

:

InitInstance()函数初始化COM组件,加入函数:

:

CoInitialize(NULL);

(3)存款子系统

通过点击菜单栏上的“操作”->”取款”(或直接按

)就可以进入存款对话框。

<1>存款界面:

 

<2>代码

首先在CBanksystemView.cpp文件中加入#include"SAVE.h",因为要在视图里面调用它的对象,然后为”取款”添加消息处理函数,调用该对话框:

voidCBanksystemView:

:

OnSave()

{

CSAVEdlg;

dlg.DoModal();

}

弹出存款对话框以后:

用户可以录入自己的信息进行存款操作.通过点击”确定”按钮。

如果存储成功会弹出:

voidCSAVE:

:

OnOK()

{

UpdateData(TRUE);

if(m_CNO.IsEmpty()||m_pswd.IsEmpty())

{

MessageBox("基础信息不能为空!

");

return;

}

intlost=0;

doublelixi=1;

total2=total2+m_CMONEY;

if(m_CCHOICE==1)

lixi=m_CMONEY*1*0.00198*(1-0.2);

elseif(m_CCHOICE==2)

lixi=m_CMONEY*2*0.00225*(1-0.2);

elseif(m_CCHOICE==3)

lixi=m_CMONEY*3*0.00252*(1-0.2);

elseif(m_CCHOICE==5)

lixi=m_CMONEY*5*0.00279*(1-0.2);

else{MessageBox("银行不办理该项业务,请输入正确的储种1||2||3||5");return;}

OnInitADOConn();

CStringsql;

sql.Format("insertintocq(姓名,帐号,密码,本金,储种,挂失,营业员姓名,营业员工号,日期,利息)\

values('%s','%s','%s',%d,%d,%d,'%s','%s',%d,%f)",m_CNAME,m_CNO,m_pswd,m_CMONEY,m_CCHOICE,lost,m_ANAME,m_CANO,m_DATE,lixi);

m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);

m_pConnection->Close();

MessageBox("存款成功,欢迎下次使用");

CDialog:

:

OnOK();

}

(4)存款&&挂失&&利息系统

通过点击菜单栏上的”操作”->”取款&&挂失&&利息”(或者直接按

)就可以进入存款对话框。

<1>存款&&挂失&&利息界面

<2>代码

首先在CBanksystemView.cpp文件中加入#include"QUKUAN.h",因为要在视图里面调用它的对象,然后为”取款”添加消息处理函数,调用该对话框:

voidCBanksystemView:

:

OnQukuan()

{

CQUKUANdlg3;

dlg3.DoModal();

}

弹出存款对话框以后:

录入信息,通过点击“用户信息进入”按钮:

查看用户利息信息:

voidCQUKUAN:

:

OnOK()

{UpdateData(TRUE);

if(m_QUKUANMIMA.IsEmpty()||m_QUKUANZHANGHAO.IsEmpty())

{

MessageBox("基础信息不能为空!

");

return;

}

if((strcmp(m_QUKUANMIMA,"liugang")!

=0)||(strcmp(m_QUKUANMIMA,"liugang")!

=0))

{MessageBox("你不是管理员,请管理员输入正确的口令");

return;

}

m_grid.SetExtendedStyle(LVS_EX_FLATSB

|LVS_EX_FULLROWSELECT

|LVS_EX_HEADERDRAGDROP

|LVS_EX_ONECLICKACTIVATE

|LVS_EX_GRIDLINES);

m_grid.InsertColumn(0,"姓名",LVCFMT_LEFT,110,0);

m_grid.InsertColumn(1,"帐号",LVCFMT_LEFT,110,1);

m_grid.InsertColumn(2,"本金",LVCFMT_LEFT,110,2);

m_grid.InsertColumn(3,"利息",LVCFMT_LEFT,110,3);

m_grid.InsertColumn(4,"储种",LVCFMT_LEFT,110,4);

m_grid.InsertColumn(5,"挂失",LVCFMT_LEFT,110,5);

OnInitADOConn10();

_bstr_tSQL="select*fromcq";

m_pRecordset10.CreateInstance(__uuidof(Recordset));

m_pRecordset10->Open(SQL,m_pConnection10.GetInterfacePtr(),adOpenDynamic,

adLockOptimistic,adCmdText);

while(!

m_pRecordset10->adoEOF)

{

m_grid.InsertItem(0,"");

m_grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset10->GetCollect("姓名"));

m_grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset10->GetCollect("帐号"));

m_grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset10->GetCollect("本金"));

m_grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset10->GetCollect("利息"));

m_grid.SetItemText(0,4,(char*)(_bstr_t)m_pRecordset10->GetCollect("储种"));

m_grid.SetItemText(0,5,(char*)(_bstr_t)m_pRecordset10->GetCollect("挂失"));

//将记录集指针移动到下一条记录

m_pRecordset10->MoveNext();

}

//断开数据库连接

ExitConnect10();

}

然后营业员根据用户提供的信息,对其进行“取款”按钮:

voidCQUKUAN:

:

OnQukuan()

{

UpdateData(TRUE);

if(m_QUKUANZHANGHAO.IsEmpty()||m_QUKUANMIMA.IsEmpty())

{

MessageBox("基础信息不能为空!

");

return;

}

if(strcmp(s6,"1")==0){MessageBox("改帐户已经挂失!

");return;}

OnInitADOConn10();

CStringsql;

sql.Format("delete*fromcqwhere帐号='%s'",m_QUKUANZHANGHAO);

m_pConnection10->Execute((_bstr_t)sql,NULL,adCmdText);

CStringsql1;

sql1.Format("insertintoqk(姓名,帐号,储种,钱数,利息,挂失)\

values('%s','%s','%s','%s','%s','%s')",s1,s2,s3,s4,s5,s6);

m_pConnection10->Execute((_bstr_t)sql1,NULL,adCmdText);

m_grid.DeleteAllItems();

m_grid.SetExtendedStyle(LVS_EX_FLATSB

|LVS_EX_FULLROWSELECT

|LVS_EX_HEADERDRAGDROP

|LVS_EX_ONECLICKACTIVATE

|LVS_EX_GRIDLINES);

m_grid.InsertColumn(0,"姓名",LVCFMT_LEFT,110,0);

m_grid.InsertColumn(1,"帐号",LVCFMT_LEFT,110,1);

m_grid.InsertColumn(2,"本金",LVCFMT_LEFT,110,2);

m_grid.InsertColumn(3,"利息",LVCFMT_LEFT,110,3);

m_grid.InsertColumn(4,"储种",LVCFMT_LEFT,110,4);

m_grid.InsertColumn(5,"挂失",LVCFMT_LEFT,110,5);

_bstr_tSQL="select*fromcq";

m_pRecordset10->Open(SQL,m_pConnection10.GetInterfacePtr(),adOpenDynamic,

adLockOptimistic,adCmdText);

while(!

m_pRecordset10->adoEOF)

{

m_grid.InsertItem(0,"");

m_grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset10->GetCollect("姓名"));

m_grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset10->GetCollect("帐号"));

m_grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset10->GetCollect("本金"));

m_grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset10->GetCollect("利息"));

m_grid.SetItemText(0,4,(char*)(_bstr_t)m_pRecordset10->GetCollect("储种"));

m_grid.SetItemText(0,5,(char*)(_bstr_t)m_pRecordse

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1