银行定期存储管理系统文档Word文档下载推荐.docx
《银行定期存储管理系统文档Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《银行定期存储管理系统文档Word文档下载推荐.docx(36页珍藏版)》请在冰点文库上搜索。
取款子系统
存款子系统
登录子系统
图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
每个用户的密码可以自己设置
E——03
用户本金别名:
CMONEY
整数型
数据流
F——01
用户信息别名:
CINFOR
来源:
用户存款,取款,挂失表去向:
用户信息
数据流结构:
用户信息={帐号+密码+本金+储种+利息+挂失}
D——02
存款表别名:
存储组织:
二维表主键:
帐号
记录组成:
字段名帐号密码本金储种利息挂失
字段长度20201510101
用此存储用户存款信息
图4各种数据字典
其他数据元素字典,数据流字典,数据存储字典略。
三系统设计
1.系统功能设计
登录子系统
为了增强数据的安全性,设置了该系统,只有营业员能使用,营业员通过输入正确的帐号和密码才能使用。
以防他人篡改数据。
存款子系统
接受储户与营业员信息,并将以上信息添加到存款文件中。
取款子系统
先通过帐号验证子系统证明用户信息的正确性,输入正确的信息才能进行取款操作。
然后,在取款文件中添加储户与营业员取款信息,便便复查。
通过打印利息子系统打印利息单。
最后,在存款中删除被取款项。
挂失子系统
根据储户信息提供的帐户信息,检查有无此项存款,有则对此帐号加入挂失标记。
若无此款项,需判断存款是否被领走还是未发生过这笔款项。
5>
统计子系统
统计每天到期的储金数。
2.概念设计
图5概念设计
3.物理设计
存款表(cq)
字段名称
字段类型
字段长度
主键
可否为空
姓名
文本
NOTNULL
帐号
Y
密码
本金
数字
15
储种
1
挂失
营业员姓名
营业员工号
日期
10
利息
图6存款的物理设计
取款(qk)
姓名,
图7取款的物理设计
四系统实施
1.开发工具的选择
(1)前端软件开发工具的选择
本系统选择可视化的面向对象的程序设计语言VISUALC++作为前端开发工具,VISUALC++具有强大的数据库功能,丰富的对话框界面,BMP资源,主要是它的面向对象技术,使用MFC封装了大量的类,也可以在他们的基础上,继承和派生出符合自己运用的类。
使用ADO技术,可以很好的和数据库文件连接。
(2)后台数据库的选择
MicrosoftAccess2003是一种桌面数据库系统,特别适合小型企业或者存储数据不大的数据库使用,更重要的一点是,他简单易懂,操作起来与Microsoftword很象,使用起来比较上手,而且不需要代码的编写,就可以创建一个数据库文件。
(3)软件开发平台的选择
基于VISUALC++和Microsoftaccess2003对运行环境的要求,选择WindowsXP以上的操作系统作为系统开发和运行的平台。
2.程序设计
(1)登陆子系统
登陆界面
代码
在工程项目的CbanksystemApp.cpp文件中的BOOLCBanksystemApp:
:
InitInstance()函数的开始部分插入以下代码:
intncount=0;
while(ncount<
3)
{
if(dlg5.DoModal()==IDOK)
if((strcmp(dlg5.m_DLZHANGHAO,"
liugang"
)!
=0)||
(strcmp(dlg5.m_DLMIMA,"
=0))
{MessageBox(NULL,"
帐号或密码口令错误"
"
错误信息"
MB_OK|MB_ICONERROR);
ncount++;
}
elsebreak;
else{
returnFALSE;
if(ncount>
=3)
输入超过3次,请退出"
returnFALSE;
ncount变量是用来统计登陆次数的,如果超过3次以上,系统会弹出消息框
(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)存款子系统
通过点击菜单栏上的“操作”->
”取款”(或直接按
)就可以进入存款对话框。
存款界面:
代码
首先在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'
'
%d,%d,%d,'
%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);
Close();
存款成功,欢迎下次使用"
CDialog:
OnOK();
(4)存款&
&
挂失&
利息系统
通过点击菜单栏上的”操作”->
”取款&
利息”(或者直接按
存款&
利息界面
代码
QUKUAN.h"
OnQukuan()
CQUKUANdlg3;
dlg3.DoModal();
录入信息,通过点击“用户信息进入”按钮:
查看用户利息信息:
voidCQUKUAN:
{UpdateData(TRUE);
if(m_QUKUANMIMA.IsEmpty()||m_QUKUANZHANGHAO.IsEmpty())
if((strcmp(m_QUKUANMIMA,"
=0)||(strcmp(m_QUKUANMIMA,"
{MessageBox("
你不是管理员,请管理员输入正确的口令"
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->
m_grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset10->
m_grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset10->
m_grid.SetItemText(0,4,(char*)(_bstr_t)m_pRecordset10->
m_grid.SetItemText(0,5,(char*)(_bstr_t)m_pRecordset10->
//将记录集指针移动到下一条记录
m_pRecordset10->
MoveNext();
//断开数据库连接
ExitConnect10();
然后营业员根据用户提供的信息,对其进行“取款”按钮:
if(m_QUKUANZHANGHAO.IsEmpty()||m_QUKUANMIMA.IsEmpty())
if(strcmp(s6,"
1"
)==0){MessageBox("
改帐户已经挂失!
delete*fromcqwhere帐号='
m_QUKUANZHANGHAO);
m_pConnection10->
CStringsql1;
sql1.Format("
insertintoqk(姓名,帐号,储种,钱数,利息,挂失)\
)"
s1,s2,s3,s4,s5,s6);
Execute((_bstr_t)sql1,NULL,adCmdText);
m_grid.DeleteAllItems();
m_pRecordset10->
adLockOptimistic,adCmdText);
{
m_grid.SetItemText(0,5,(char*)(_bstr_t)m_pRecordse