简单银行存取系统.docx
- 文档编号:11870644
- 上传时间:2023-04-06
- 格式:DOCX
- 页数:62
- 大小:789.70KB
简单银行存取系统.docx
《简单银行存取系统.docx》由会员分享,可在线阅读,更多相关《简单银行存取系统.docx(62页珍藏版)》请在冰豆网上搜索。
简单银行存取系统
第8章简单银行存取系统
8.1系统需求分析
8.1.1引言
1.目的
需求分析报告是为“简单银行存取系统”开发人员进行系统总体规划设计及具体实施开发提供必要的参考资料,在系统开发完成后期为系统的测试、用户手册的编写提供帮助。
其编写过程由某高校信息学院学生完成。
预期读者是从事“简单银行存取系统”开发的相关人员。
2.背景
本项目名称为“简单银行存取系统”。
系统功能主要包括:
能够存储一定数量的储户信息,并方便有效的进行相应的信息操作和管理。
本项目的任务提出者为某高校信息学院,开发者为信息学院学生。
3.项目概述
本项目的用户是模拟储户。
储户必须先使用自己的账号和相应的密码登录到银行系统。
任何用户都可以合法地建立新账户。
在建立新账户时,需要向系统提供储户相关信息。
当储户使用合法身份登录到银行系统后,可以立即查看到该账户的各项信息。
储户在正确登录系统的前提下,可以凭账户开户时注册的身份证号码及当前账户密码来查询自己其它的账户余额信息。
在正确登录到系统后,储户还可进行如下操作:
取款、存款、查看到期日期、设置信用卡密码、查看透支额、查看汇款方式等。
4.参考文献
(1)JosephSchmuller著,李虎赵龙刚译.UML基础、案例与应用.人民邮电出版社.2004年8月
(2)孙鑫,余安萍编著,VC++深入详解.电子工业出版社.2006年6月
(3)MFCWindows程序设计(第2版).(美)帕罗赛斯著,北京博彦科技发展有限责任公司译 清华大学出版社.2007年5月
(4)陈明.软件工程实用教程.北京:
电子工业出版社,2006年1月
(5)潘孝铭辛明海软件文档编写.高等教育出版社.2004年2月
8.1.2需求概述
1.目标
“简单银行存取系统”主要提供不同模拟储户的一般操作,如:
取款、存款、查看到期日期、设置信用卡密码、查看透支额、查看汇款方式等。
2.用户类和特征
用户可分为定期储户、一般储户、结算储户、信用卡储户,具备一定的计算机操作知识即可。
3.运行环境
(1)硬件资源
服务器:
工作站或小型机;
打印机。
(2)软件资源
操作系统:
windows2000或windowsXp
数据库:
Access2000
开发平台:
VisualC++6.0
8.1.3功能需求
相应的需求有:
(1)装载账户信息:
所有的账户信息保存应能永久保存在一个特定磁盘文件中(本系统采用后台数据库作为账户信息的载体),在系统开始运行时应首先连接数据库文件,并将数据库中的数据装载到内存中,并依据它们构造各类账户对象,并添加到账户映射集合。
(2)登录系统:
各类储户必须先使用自己的账号和相应的密码登录到银行系统,才能进行其它操作。
(3)建立新账户:
任何用户都可以合法地建立新账户。
在建立新账户时,需要向系统提供如下信息:
账户类型、货币种类、预存款额、6位数字账户密码、账户特殊信息(信用卡账户需提供6位数字信用卡密码、定期账户需提供存储年限、结算账户需提供汇款方式)以及储户相关信息(身份证号、真实姓名、通讯地址和电话号码)。
(4)查看当前账户信息:
当储户使用合法身份登录到银行系统后,可以立即查看到该账户的各项信息,包括账户类型、账户余额、货币类型、创建日期以及储户的身份证号码(后四位隐藏)、姓名、通讯地址和电话号码。
(5)通过身份证号和账户密码查询其账户余额:
储户在正确登录系统的前提下,储户可以凭账户开户时注册的身份证号码及当前账户密码来查询自己其它的账户余额信息,该信息包括账号、账户类型、币种、余额和账户的创建日期。
(6)取款:
储户在正确登录系统的前提下,可以进行取款操作。
其中一般账户和结算账户的取款操作相同,定期存款账户不得在未到期之前取款,信用卡账户允许善意透支5000元(各币种)。
(7)存款:
储户在正确登录系统的前提下,可以进行存款操作。
其中一般账户、结算账户和信用卡账户的存款操作相同,定期存款账户在用户开户后不得再存款。
(8)查看到期日期(包含在查看当前帐户信息中):
针对定期存款储户的服务,储户可以在正确登录系统后立即查看到该账户的到期日期。
(9)设置信用卡密码:
针对信用卡储户的服务,储户可以通过旧信用卡密码来更改信用卡的密码。
信用卡密码和信用卡账户的密码可以一样,也可以不一样。
(10)查看透支额(包含在查看当前帐户信息中):
针对信用卡储户的服务,储户可以在正确登录系统后,立即查看到该账户的透支额。
(11)查看汇款方式(包含在查看当前帐户信息中):
针对结算储户的服务,储户可以在正确登录系统后,立即查看到该账户的汇款方式。
1.确定执行者
执行者为定期储户、一般储户、结算储户、信用卡储户。
2.确定用例
图8.1是我们通过一定的调研和分析得到的“简单银行存取系统”的用例图:
图8.1简单银行存取系统用例图
3.编写用例文档
(1)装载账户信息用例
用例名:
装载账户信息
参与执行者:
无。
入口条件:
无。
事件流:
在系统开始运行时首先连接数据库文件,并将数据库中的信息装载到内存中,构建各类账户信息,并添加至账户映射集合。
出口条件:
用户合法的创建新帐户后,系统将相关信息存放至数据库中。
异常事件:
无
(2)登录系统用例
用例名:
登录系统
参与执行者:
各类储户
入口条件:
无。
事件流:
各类储户输入自己的账号和密码登录,如果账户不存在或者密码有误,则给出相应提示,重新登录。
若重试超过三次,则封锁该储户。
若用户名和密码匹配,则进入系统。
出口条件:
系统显示该储户可进行的操作界面。
异常事件:
无
(3)建立帐号信息用例
用例名:
建立帐号信息
参与执行者:
储户
入口条件:
储户已经登录到该系统中。
事件流:
储户登录后,点击建立新帐户,填写账户类型、货币种类、预存款额、6位数字账户密码、储户身份证号、真实姓名、通讯地址和电话号码。
如果是信息卡账户需填写6位数字信用卡密码;如果是定期账户需要提供存储年限;如果是结算账户需要提供汇款方式。
出口条件:
系统将新账户的相关信息添加至数据库中。
异常事件:
无
(4)查询当前账户信息用例
用例名:
查询当前账户信息
参与执行者:
储户
入口条件:
储户已经登录到该系统中。
事件流:
当储户使用合法身份登录到银行系统后,可以查看该账户的各项信息:
账户类型、账户余额、货币类型、创建日期以及储户的身份证号码(后四位隐藏)、姓名、通讯地址和电话号码。
出口条件:
系统显示当前帐户信息。
异常事件:
无
(5)通过身份证和密码查询其他账户余额用例
用例名:
通过身份证和密码查询其他账户余额
参与执行者:
储户
入口条件:
储户已经登录到该系统中。
事件流:
储户正确登录到系统之后,可以凭账户开户时注册的身份证号码及当前账户密码来查询自己其它账户的账号、账户类型、币种、余额信息以及账户的创建日期。
出口条件:
系统显示其它账户信息。
异常事件:
无
(6)取款用例
用例名:
取款
参与执行者:
储户
入口条件:
储户已经正确登录到系统中
事件流:
一般账户和结算账户输入取款金额,该输入数目不能为负数,也不能超过余额,否则,系统提示错误。
正确输入取款金额后,系统模拟取款过程(非真实),当前账户余额减去取款金额。
定期存款账户不得在未到期之前取款。
信用卡帐户允许善意透支5000元(各种币种)。
出口条件:
提示操作是否成功,显示当前余额。
异常事件:
若出现断电或者其他不可预料情形,整个取款操作回滚到取款之前。
(7)存款用例
用例名:
存款
参与执行者:
储户
入口条件:
储户已经正确登录到该系统中。
事件流:
定期存款账户在开户后不得存款。
一般账户、结算账户和信用卡帐户输入存款金额,系统验证输入存款金额和实际金额是否一致(模拟),如果不一致,则提示错误,否则该账户余额增加存入数目。
出口条件:
系统显示当前账户余额。
(8)查看到期日期用例
用例名:
查看到期日期
参与执行者:
定期存款储户
入口条件:
拥有定期账号的储户已经登录到系统中。
事件流:
定期储户在登录后可查看该账户的到期日期。
出口条件:
系统定期储户的到期日期。
(9)设置信用卡密码用例
用例名:
设置信用卡密码
参与执行者:
拥有信用卡帐号的储户
入口条件:
拥有信用卡帐号的储户已经登录到系统中。
事件流:
拥有信用卡帐号的储户登录到系统中后,储户点击修改密码功能按钮,系统提示输入信用卡旧密码,如果输入的旧密码与数据库中存储的密码不一致,系统提示错误。
如果输入旧密码与数据库中存储的旧密码一致,则提示输入新的密码,点击确定,密码修改成功,给出成功提示。
出口条件:
系统给出是否修改成功的信息提示。
(10)查看透支额用例
用例名:
查看透支额
参与执行者:
拥有信用卡帐号的储户
入口条件:
拥有信用卡帐号的储户已经登录到该系统中。
事件流:
拥有信用卡帐号的储户已经登录到系统后,可以立即查看该账户的透支额。
出口条件:
系统显示该账户的透支额。
异常事件:
无
(11)查看汇款方式用例
用例名:
查看汇款方式
参与执行者:
拥有结算账户的储户
入口条件:
拥有结算账户的储户已经登录到该系统中。
事件流:
拥有结算账户的储户已经登录到该系统后,可以查看该账户的汇款方式。
出口条件:
系统显示汇款方式
异常事件:
无
8.2建立分析的对象模型
1.应用程序框架相关类
图8.2应用程序框架相关类图
应用程序框架采用MFC的基于对话框的框架程序实现。
以下是相关类的设计说明:
(1)CBankMISApp类
属性:
m_rsAccSet数据库记录集对象
m_dbAccounts数据库对象
m_accountMap帐号——账户对象映射表
操作:
CBankMISApp类构造函数,其中构造哈希表初始大小(使用m_accountMap完成)
InitInstance初始化实例,其中完成连接数据库、建立对象映射表及开启主对话框
InitMap建立对象映射表
(2)CClientsMap类(稍候说明)
(3)CAccountsSet类(稍候说明)
2.各种账户类型(主要数据类)
图8.3各类型账户类图
(1)CAccount类(账户抽象基类)
属性:
s_lastAccount存放记录集中最后一条记录的序号
s_accountCount账户总数
m_lID帐号
m_strPassword密码
m_accID账户类型
m_curType货币类型
m_balance余额
m_perOwner储户信息
m_createDate创建日期
操作:
CAccount(ACCTYPEAccountType,doubleInitBalance,CURRENCYTYPEcurType,constCString&pwd,constPerson*person,longaid=0,constCTime*pTime=NULL)构造函数,构造账户基类
virtual~CAccount()析构函数
GetAccountCount()获得账户总数
GetAccountID()获得帐号
GetAccountBalance()获得账户余额
GetCurrencyType()获得货币类型
GetPersonInfo()获得储户信息
GetCreateDate()获得创建日期字符串对象
GetAccountType()获得账户类型
CheckPassword检查密码
SetPassword设置密码
Deposit抽象函数,存款
Withdrawal抽象函数,存款
(2)CSaving类(一般存储账户类)
属性:
无
操作:
CSaving(ACCTYPEAccountType,doubleInitBalance,CURRENCYTYPEcurType,
constCString&pwd,constPerson*person,longaid=0,constCTime*pTime=NULL)
构造函数
~CSaving析构函数
Deposit存款
Withdrawal取款
(3)CCreditCard类(信用卡存储账户类)
属性:
s_minBalance最高善意透支数(=5000.0)
m_password信用卡密码
m_curBalance当前透支额
操作:
CCreditCard(ACCTYPEAccountType,constCString&InitPassword,doubleInitBalance,
CURRENCYTYPEcurType,constCString&pwd,constPerson*person,
longaid=0,constCTime*pTime=NULL,doublecurBalance=0.0)构造函数
~CCreditCard析构函数
GetCurBalance获取当前透支额
SetPassword设置信用卡密码
CheckCardPwd检查信用卡密码
Deposit存款
Withdrawal取款
(4)CFixSaving类(定期存储账户类)
属性:
m_fixTimeType存储年限
m_fixTime到期日期
操作:
CFixSaving(ACCTYPEAccountType,FIXTYPEft,constCTime&date,doubleInitBalance,
CURRENCYTYPEcurType,constCString&pwd,constPerson*person,
longaid=0,constCTime*pTime=NULL)构造函数
~CFixSaving析构函数
GetFixTimeType获取定期期限
GetFixTime获取到期日期
CompareFixTime比较到期情况
Deposit存款
Withdrawal取款
(5)CChecking类(结算存储账户类)
属性:
m_remitType汇款方式
操作:
CChecking(ACCTYPEAccountType,doubleInitBalance,CURRENCYTYPEcurType,
constCString&pwd,constPerson*person,REMITremitType,
longaid=0,constCTime*pTime=NULL)构造函数
~CChecking析构函数
Deposit存款
Withdrawal取款
SetRemit设置汇款方式
GetRemitType获得汇款方式
3.存储数据类
图8.4存储数据库类图
CClientsMap类(帐号——账户对象基类指针映射表类)
属性:
无
操作:
~CClientsMap()析构函数,析构由基类指针所指的各账户派生类对象
4.数据库类
图8.5数据库类图
CAccountsSet类(记录集类):
该类的属性自动与数据库中表的所有属性列绑定,作为相应属性列的缓冲区,操作由MFC框架自动生成。
数据库中表Accounts如下图,例:
+m_AccountID:
long代表绑定Accounts表中的AccountID属性,+m_AccountPWD:
CString代表绑定Accounts表中AccountPWD属性。
8.3提供交互界面的类
1.CAboutDlg类(关于对话框)
属性:
无
操作:
CAbountDlg构造函数
DoDataExchange重新定义据类中的虚函数,用于交互操作中的数据交换(后同)
2.CAskPwdDlg类(输入密码对话框)
属性:
m_iMode模式选择,1为退出时验证退出密码,2为取款时验证密码
m_strPwd输入密码的缓冲区,CString类对象成员
pAccount账户基类指针,用于在对话框内部验证账户或信用卡密码的正确性
操作:
CAskPwdDlg构造函数
OnOK重新定义基类中的虚函数,用于按OK按钮关闭该交互界面时的回应操作(后同)。
3.CChangePwdDlg类(变更密码对话框)
属性:
m_oldPwd旧密码
m_newPwd新密码
m_rePwd重复密码
操作:
CChangePwdDlg构造函数
4.CNewAccountDlg类(增加新账户对话框)
属性:
m_ctrlRemitCB汇款方式组合框控制,CComboBox类型对象成员
m_ctrlFixCB存期组合框控制,CComboBox类型对象成员
m_ctrlPwdEdit信用卡密码编辑框控制,CEdit类型对象成员
m_ctrlRemit汇款方式标签控制,CStatic类型对象成员
m_ctrlFixDate存款日期标签控制,CStatic类型对象成员
m_ctrlCardPwd信用卡密码标签控制,CStatic类型对象成员
m_strPersonName储户姓名标签控制,CStatic类型对象成员
m_strPersonAddr储户地址标签控制,CStatic类型对象成员
m_strPersonPhone储户电话标签控制,CStatic类型对象成员
m_strPersonID储户身份证号标签控制,CStatic类型对象成员
m_dInitBalance初始化余额缓冲,double类型
m_iAccountType账户类型缓冲,int类型
m_iCurrencyType货币类型缓冲,int类型
m_iRemitType汇款方式类型缓冲,int类型
m_iFixType存期类型缓冲,int类型
m_strAccPwd账户密码缓冲,CString类型对象成员
m_strCardPwd信用卡密码缓冲,CString类型对象成员
m_strRePwd重复密码缓冲,CString类型对象成员
操作:
CNewAccountDlg构造函数
OnSelchangeComboAccounttype改变账户类型下拉列表索引内容时出发的事件处理
5.CBankMISDlg类(主对话框)
属性:
isLogin标记当前是否是登录状态
pAccount账户基类指针
m_imageLis图片列表对象,CImageList类型对象成员
m_ctrlPerPhone储户电话标签控制,CStatic类型对象成员
m_ctrlPerName储户姓名标签控制,CStatic类型对象成员
m_ctrlPerId储户身份证号标签控制,CStatic类型对象成员
m_ctrlPerAddr储户地址标签控制,CStatic类型对象成员
m_ctrlAccountPwd账户密码编辑框控制,CEdit类型对象成员
m_ctrlAccountID账号编辑框控制,CEdit类型对象成员
m_ctrlCreateDate创建日期标签控制,CStatic类型对象成员
m_ctrlRemit汇款方式标签控制,CStatic类型对象成员
m_ctrlFixDate到期日期标签控制,CStatic类型对象成员
m_ctrlCurbal透支额标签控制,CStatic类型对象成员
m_ctrlAccType账户类型标签控制,CStatic类型对象成员
m_ctrlBalance账户余额标签控制,CStatic类型对象成员
m_ctrlBtnCGEPWD更改帐户密码按钮控制,CButton类型对象成员
m_ctrlBtnCGECardPwd更改信用卡密码按钮控制,CButton类型对象成员
m_ctrlCurrType货币类型标签控制,CStatic类型对象成员
m_ctrlBtnLogout登录按钮控制,CButton类型对象成员
m_ctrlBtnLogin登出按钮控制,CButton类型对象成员
m_ctrlBtnQuery查询按钮控制,CButton类型对象成员
m_ctrlBtnDeposit存款或取款按钮控制,CButton类型对象成员
m_ctrlQueryResult查询结果列表,CListCtrl类型对象成员
m_lLoginID帐号缓冲,long类型
m_strLoginPwd密码缓冲,CString类型
m_strPersonId储户身份证号缓冲,CString类型
m_strQueryPwd密码缓冲,CString类型
m_dAmount存取款数量缓冲,double类型
m_iDepositOpt存款或取款选项,int类型
操作:
CBankMISDlg构造函数
OnButtonAbout激活关于对话框
OnButtonChangeCardPwd激活修改信用卡密码对话框(登录后可用)
OnButtonChangePwd激活修改账户密码对话框(登录后可用)
OnButtonDeposit处理存款和取款功能(登录后可用)
OnButtonLogin处理登录功能
OnButtonLogout处理登出功能
OnButtonNewAccount激活新建账户对话框
OnButtonQuery处理查询其余账户余额功能(登录后可用)
OnClose处理WM_CLOSE消息
OnInitDialog初始化对话框
图8.6主对话类图
8.4建立动态模型
简列系统中重要业务流程时序图:
1.装载帐户信息
图8.7装载帐户信息时序图
同一时期,只能有帐户类的一个对象生成,用基类指针指向,并添加帐号——帐户基类指针映射。
2.各类储户建立新账户
图8.8建立新账户时序图
同一时期,只能有帐户类的一个对象生成,用基类指针指向,并添加帐号——帐户基类指针映射。
3.登录
图8.9登陆时序图
同一时期,接受验证的派生类对象只有一个,由基类指针所指。
4.查询当前帐户信息
图8.10查询当前帐户信息时序图
同一时期,基类指针指向唯一一个派生类对象,用基类指针调用相关函数获得信息并显示。
5.根据身份证号查询其他帐户余额
图8.11查询帐户余额时序图
6.取款
图8.12取款时序图
同一时刻,派生类对象只能出现一个,并且被基类指针所指,借以调用虚函数withdrawa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 银行 存取 系统
