ATM机客户端项目设计文档.docx
- 文档编号:12119395
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:23
- 大小:105.02KB
ATM机客户端项目设计文档.docx
《ATM机客户端项目设计文档.docx》由会员分享,可在线阅读,更多相关《ATM机客户端项目设计文档.docx(23页珍藏版)》请在冰豆网上搜索。
ATM机客户端项目设计文档
荆楚理工学院
课程设计成果
学院:
计算机工程学院班级:
11计算机科学与技术3班
学生姓名:
王志成、刘建、乐卓学号:
306、343、344
设计地点(单位):
___________________________
设计题目:
______________________________________
完成日期:
2014年06月06日
指导教师评语:
成绩(五级记分制):
教师签名:
_____________________________
ATM机客户端模拟系统
1.系统概论
1.1开发背景
随着经济的迅速发展,银行的业务变得越来越多,工作人员的工作负荷也越来越重,然而,在这个人力资源成本,尤其金融工作人员成本相当高昂的现代社会,要增加更多的工作人员去应对增长的业务与应对人员增加而增加建筑设施投资的高昂成本,往往又让银行难以承受。
开发一个能够代替银行工作人员,让用户可以自己通过简单地操作就能完成日常小额的存取工作的自助设备——ATM机客户自助服务终端系统,成了银行管理人员十分感兴趣的选择。
1.2开发目标
由于银行用户大都对银行服务的执行了解甚少,所要开发的设备就必须能模仿银行工作人员的提示,让用户按要求进行操作(这要求用户具备基本的文化知识),在该系统设计的自助服务操作过程要极尽简单、易懂,让用户能够通过简单的提示,执行简单的操作就能完成自己所要实现的服务需求。
同时,从经济上、技术上、操作上考虑均可行后,尽量提高进度可减少人力成本费用,采用一次性购置多台设备可有优惠,对系统性能如:
处理速度,尽量做到越快越好,控制精度提高;同时加强项目管理,提高工作人员的效率。
1.3术语
账号:
在银行中,事物应用的单个账号。
每个顾客可以拥有多个账号。
用户:
拥有银行的一个或多个账号的人。
可以是一个人或多个人,或者是公司。
相同的人,拥有不同的银行账号被认为是不同的客户。
ATM:
ATM是AutomaticTellerMachine的缩写,意为自动取款机,是一种高度精密的机电一体化设备,利用磁卡或智能IC卡储存用户信息并通过加密键盘输入密码然后通过银行内部网络验证并进行各种交易的金融自助设备。
1.4系统概述
该系统的功能要求:
提供简洁友好的界面、数字键盘、存钱、取钱、余额查询、转帐、修改密码、打印发票等功能;
●性能要求:
从界面开始,用户的每一步操作都要伴随提示信息,功能都能顺利实现;
●输入要求:
当输入账户密码时,密码以“*”显示;当存钱时,以输入方式代替系统识别过程,输入数额后,系统显示出确认信息(并显示“若存入数额不对,请马上联系银行工作人员!
”);当输入资金数额时,提供100元、200元、500元等几个取款金额项;
●输出要求:
当用户存钱后,显示存款的账号、金额、时间与日期;
●安全要求:
为保证用户账号安全,输入的密码以6个“*”显示;
1.5系统功能
该系统要求提供用户存款、取款、查询、转账、修改用户密码等基本服务功能。
2.系统可行性分析
2.1可行性研究
2.1.1技术可行性
ATM系统是一个基于局域网、互联网和WINDOWS操作的系统,现有我们所学习的技术已差不多都已涉及,以老师咨询为技术后盾,利用现有技术可以实现系统开发目标。
同时,开发期限较为宽裕,预计可以在规定期限内完成开发任务。
2.1.2操作可行性
本系统简单易用客户使用部分自己学习即可,系统维护员由计算机的专业人员担任,经过简单培训,就能熟练使用本软件。
2.1.3经济可行性
该系统的开发,主要投入的是系统的开发成本,另外是一些系统的支持的硬件成本,相较于投入厂房、人员、设备的开支,进行新系统开发的收益更大。
2.1.4社会方面可行性
随着经济的发展,社会工作压力在逐步加大,人们的工作节奏也在跟随着加快,同时,从们的资金也在银行与用户之间加快流动,提高人们从银行存取款的效率,也正符合当下人们的需求。
2.2系统简要描述
2.2.1系统处理流程图
图2系统处理流程图
举例说明:
取钱的流程:
在读卡机中插入银行卡,识别后提示输入密码,用键盘输入密码后,验证密码正确后进入ATM操作界面选择取钱,按提示操作后,吐钱机吐钞,吐钞后提示取走钱,系统自动跳转到主界面客户可以进行其他事务的选择,若无其它服务需求,则退出系统。
2.2敏感性分析
2.3结论
在业务量大大增加的当前环境下,相较于银行新建建筑物、增加工作人员、投资硬件设备的投入,进行新软件服务系统开发的成本,在短期内便可收回成本,并获得投资收益,从长远来看,效益更是可观。
除此之外,本项目还具有方便快捷等优势,投资回报利益大,使得用户方便进行银行基础业务,符合社会信息化发展的需要,技术、经济、操作、法律方面都是可行的,因此,可以开发本系统。
3.系统需求分析及系统设计
3.1系统的功能要求
3.1.1系统功能模块划分
该系统分为以下功能模块:
1)存款模块
2)取款模块
3)转账模块
4)查询模块
5)修改密码模块
3.1.2模块说明
1)存款模块的说明
在主界面中,当用户单击“存款”时,系统弹出“存款”对话框,其中显示当前登陆的账户作为要存入的用户账号,另外提供数额输入编辑框,用于用户输入要存入的存款数额,另外一个“确定”按钮,一个“取消”按钮:
●“确定”按钮:
用于检验用户是否能够根据输入的信息进行取款操作。
在单击“确定按钮”后,系统对是否满足数据合法性要求以及用户账户数据是否存在等信息,进行存款操作的服务功能权限要求鉴定:
先通过try……catch进入数据库访问的测试,测试失败时,输出"该用户账户不存在,请确认账号是否正确!
"提示信息;
测试成功时,先测试存款输入框是否为空,若为空,则弹出提示"您输入的数值不合法,请重新输入!
";
若不为空,则检测输入是否满足输入数据合法的要求,即输入的数据不能以“0”开头,若以“0”开头,则弹出"您输入的数值不合法,请重新输入!
"提示信息;
若输入数据满足要示,则检测输入数值是否满足只能识别100元面钞的要求,如果不满足要求,则弹出"系统只能识别100元面额的整数,请重新输入!
"的提示信息,同时清空输入框;
若以上输入要求全部满足,再检测输入的存款数额是否大于20000元,若大于20000元,则弹出"单次最多只能放入20000元,如果您要取出数额大于2万元,请分次操作或到银行服务台操作!
",若不大于20000元,则修改数据库的余额值,并更新数据库。
●“取消”按钮:
用于放弃存款操作,当该按钮被单击时,系统放弃本次存款操作,并自动返回到主操作界面。
2)取款模块的说明
在主界面中,当单击“取款”时,系统弹出“取款”对话框,其中显示取款的金额选项“100元”,“200”元、“500元”和“其它数额”单选项,以及一个文本输入框,其中文本输入框作为取款金额输入框变量,另外有一个“确定”按钮,一个“取消”按钮:
当单击“100元”时,取款金额的金额数据输入框变量设为100元,变量m_radio_dj设为1;
当单击“200元”时,取款金额的金额数据输入框变量设为200元,变量m_radio_dj设为1;
当单“500元”时,取款金额的金额数据输入框变量设为500元,变量m_radio_dj设为1;
当单击“其它数额”时,将“其它数额”下的存款金额数据编辑框由不可用状态变为编辑可输入状态,变量m_radio_dj设为0;
●“确定”按钮:
用于检验用户是否能够根据输入的信息进入取款操作。
在单击“确定”按钮后,系统对是否满足数据合法性要求以及用户账户数据是否存在等信息,进行取款操作的服务功能权限要求鉴定:
当单击“确定”按钮时,先通过try……catch进入数据库访问的测试,测试失败时,输出“该用户账户不存在,请确认账号是否正确!
”提示信息;
当测试成功后,首先判断100元、200元、500元单选项是否被单击,即m_radio_dj的值是否为1,如果m_radio_dj不等于1,表示未被单击,此时再判断“其它数额”是否被单击,当单选按钮未被单击且文本输入框也为空时,弹出“您还未输入要取款的数额,请先选择要取款的数额!
”提示框,否则,根据输入的修改存款余额并更新数据库。
●“取消”按钮:
用于放弃取款操作,当该按钮被单击时,系统放弃本次取款操作,并自动返回到主操作界面。
3)查询模块的说明
当用户单击“查询”按钮,执行查询操作时,系统弹出一个对话框,其中根据用户的登陆账号从数据库中查询用户的姓名、客户账号、余额及当前查询的时间信息,并把它们显示到对话框中对应的变量项上。
4)转账模块的说明
在主窗口中,当用户单击“转账”功能时,表示用户要执行转账服务,此时,系统弹出一个转账对话框,提示用户输入转账的信息(要转账的账号和要转账的金额),其中包含一个要转到的对方用户账号输入框和一个用于输入的要转账的数额信息:
●“确定”按钮:
用于检验用户是否能够根据输入的信息进行转账操作。
当单击“确定”按钮后,系统对是否满足数据合法性要求以及用户账户数据是否存在等信息,进行转账操作的服务功能权限要求鉴定:
系统先根据用户账号对输入的账号进行查询,并判定输入的用户账号是否与当前登陆用户账号相同,若相同,则弹出提示信息"不能自己转给自己本账户,请重新输入!
",若不相同,则判断该用户是否存在,如果不存在,则弹出提示信息;如果输入的不是本账户,并且对方账户存在的话,那么就对该服务进行数据的交换更新,完成后,系统返回到服务主界面。
●“取消”按钮:
用于放弃转账操作,当该按钮被单击时,系统放弃本次转账操作,并自动返回到主操作界面。
5)修改密码的说明
在主窗口中,当用户单击“修改密码”功能时,表示用户要执行修改密码服务,此时,系统弹出一个“修改密码”对话框,提示用户输入原密码,并重复输入两次新密码信息,另外有一个“确定”按钮和一个“取消”按钮:
●“确定”按钮:
用于检验用户是否能够根据输入的信息进行取款操作。
在单击“确定按钮”后,系统对是否满足数据合法性要求以及用户账户数据是否存在等信息,进行存款操作的服务功能权限要求鉴定:
当原密码为空时,系统弹出“密码为空,请输入密码!
”提示对话框;
当新密码为空时,系统弹出“请输入新密码并确认!
”提示对话框;
当确认新密码为空时,系统弹出“请再次输入新密码并确认!
”提示对话框;
当新密码与确认密码不一到处时,系统弹出“您前后两次输入的密码不一致,请重新输入!
”提示对话框;
当以上输入信息都正确时,使用try……catch语句对该账户的密码进行修改操作,操作完成后,系统完成更新并返回到服务主界面。
3.2基于UML系统描述
3.2.1系统的用例图
图1系统用例图
3.2.2系统的类图
(1)
(2)(3)(4)
(5)(6)(7)(8)
图1类图
3.2.3类图关系
3.2.4类的说明
●CATMDlg类的说明
该类对应于ATM客户机模拟系统的“登陆”对话框界面,其中,包含用于客户输入的账户变量m_strUserID;、密码变量m_strUserPwd和响应“登陆”事件的CATMDlg:
:
OnDenglu()函数;
变量名
变量类型
变量功能
m_strUserID
CString
用于用户账户的输入
m_strUserPwd
CString
用于用户密码的输入
表1CATMDlg类
●CClientRecordSet类的说明
该类是基于CRecordSet类生成的子类,用于建立与数据库Client表的关联,通过生成对象后,响应存款、取款、转账和修改密码等操作,对Client表进行数据修改操作;
●CDrawMoney类的说明
该类是关联用户的“存款”对话框界面,变量关联对话框资源中的各控件变量名、控件变量类型以及变量的功能如下:
变量名
变量类型
变量功能
m_drawMoneyNum
CString
用户取款数额输入字符串型变量
m_edit_drawNum
CEdit
对取款数额输入变量进行可用状态的切换控制
m_numberMoney
double
取款数额浮点型变量
m_radio_dj
int
记录单选按钮的状态为0或1
表2CDrawMoney类的说明
●CMainServiceWin类的说明
该类是关联服务主操作界面的类,对应“欢迎使用ATM自助终端系统”对话框界面,在该类中,主要包含操作服务中,用户要执行的“存款”、“取款”、“转账”、“查询”和“修改密码”等事件的单击消息响应事件的消息,对应消息响应函数及其功能作用如下:
功能函数名
函数功能
voidCMainServiceWin:
:
OnDeposit()
单击后,打开“存款”对话框界面
voidCMainServiceWin:
:
OnDrawmoney()
单击后,打开“取款”对话框界面
voidCMainServiceWin:
:
OnTransfer()
单击后,打开“转账”对话框界面
voidCMainServiceWin:
:
OnChangePassword()
单击后,打开“修改密码”对话框界面
voidCMainServiceWin:
:
OnSelect()
单击后,打开“查询”对话框界面
表3CMainServiceWin类的说明
●CPassWord_Change类的说明
该类是关联服务主操作界面的类,对应“修改密码”对话框界面,在该类中,主要包含提供用户输入的三个编辑输入变量和一个“确定”按钮的消息响应函数,其中三个编辑输入变量的变量名及功能如下:
变量名称
变量类型
变量功能
m_oldPassword
CString
用于输入原有密码
m_newPassword1
CString
用于输入新密码
m_newPassword2
CString
用于确认密码的输入
表4CPassWord_Change类的说明
●CPublicData类的说明
该类是个公有类,其中包含有在其它类需要使用的变量值数据,该变量名及变量功能如下:
变量类型
变量名
变量功能
CString
m_userID
保存用户登陆的账号信息,当提供服务时按照该账号查询
CString
m_userPwd
保存用户登陆时的原密码信息,当用户修改密码时查询修改
CString
m_serviceNum
用于保存用户存款要产生变动的数额
CString
m_user_name
用于保存用户的姓名信息,以便查询时直接显示
double
m_user_remain
用于保存用户的存款余额信息
表5CPublicData类的说明
●CRecordSetPwd0类的说明
该类是基于CRecordSet类生成的子类,用于建立与数据库denglu表的关联,通过生成对象后,访问denglu表的客户的用户名和密码信息,它包含两个变量和该类的消息函数,两个变量信息如下:
CStringm_UserID;//用户输入账号信息
CStringm_UserPwd;//用户输入密码信息
●CSelect类的说明
该类关联“查询”对话框界面,
●CShowServiceInfo类的说明
该类用于显示用户存款操作的客户卡号、存入数额和服务时间,关联对应于“服务信息”对话框界面。
●CTransfer类的说明
该类关联对应于“转账”对话框界面,用于为客户的转账功能设置变量及消息响应。
其中包含用户要转到的对方账户变量和要转账的金额变量,变量信息如下:
CStringm_user_anotherID;//对方账户变量
CStringm_transferNum;//要转账的金额
3.2.5时序图
取款顺序图
基本流
3.3设计数据库
UserID
UserPwd
20140301
123450
20140302
123451
20140303
123452
20140304
123453
20140305
123454
20140306
123455
20140307
123456
表1数据库denglu表
UserID
UserID
UserID
UserID
UserID
UserID
20140301
王平
男
4202221991101701
黄石
2523000
20140302
刘三
男
4202231992111104
荆门
102600
20140303
胡闰
女
4212211993010611
武汉
9900
20140304
王凡
女
4222351994052425
汉口
95000
20140305
张青山
男
4232412000012603
南昌
500
20140306
郑馨
女
4312341992081422
长沙
1500
20140307
王忠
男
4412351995022421
北京
50000
表2数据库client信息表
4.系统实现
本系统采用VC++集成环境MFC开发
4.1系统登陆模块的实现
4.1.1界面实现
voidCATMDlg:
:
OnDenglu()
{
//先更新表单控件中的输入内容到关联变量上,获得m_strUserName,m_strUserPwd输入值
UpdateData(TRUE);
CRecordSetPwd0m_UserRecordSet;//生成一个CRecordSetPwd0类的实例m_UserRecordSet,用来操作denglu_PassWord数据库中的denglu表
CMainServiceWinm_mainServiceWin;
try//捕获意外,用CDBException类的实例来捕获数据库操作中可能出现的错误
{
if(m_UserRecordSet.IsOpen())
m_UserRecordSet.Close();
if(m_strUserID==""||m_strUserPwd=="")
{
if(m_strUserID=="")
MessageBox("卡号为空,请输入卡号!
","提示");
else
MessageBox("密码为空,请输入密码!
","提示");
return;
}
m_UserRecordSet.m_strFilter.Format("UserID='%s'andUserPwd='%s'",m_strUserID,m_strUserPwd);//注:
如果变量名不对应于数据库,则会提示中“参数不足,期待值是1"
m_UserRecordSet.Open(CRecordset:
:
snapshot,NULL,CRecordset:
:
none);//执行查询操作
if(m_UserRecordSet.IsEOF())//判断符合查询条件的记录集是否为空,如果为空,则表明用户名或者密码不正确,给出相应警告;否则,提示正确
{
m_UserRecordSet.Close();//操作完成后,关闭数据库
MessageBox("账号不存在或密码错误,请确认卡号和密码正确!
","提示");
//当输入的账号和密码出现错误时,清空输入框
m_strUserID.Empty();
m_strUserPwd.Empty();
UpdateData(FALSE);
//AfxMessageBox("账号不存在或密码错误,请重试!
");
return;
}
else
{
m_UserRecordSet.Close();//操作完成后,关闭数据库
CDialog:
:
OnOK();//关闭当前对话框
//为全局变量赋值
PublicData.m_userID=m_strUserID;
PublicData.m_userPwd=m_strUserPwd;
m_mainServiceWin.DoModal();//调用ATM服务操作主窗体界面
}
}
catch(CDBException*e)
{
e->ReportError();
//e->Delete
return;
}
}
4.1.2流程设计
4.2系统主窗体的实现
4.2.1主窗体界面实现
主窗体界面主要响应“存款”、“取款”、“查询”、“查询”和“修改密码”五个按钮控件的单击响应事件,单击后,调出对应的操作界面,代码如下:
voidCMainServiceWin:
:
OnSelect()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CSelectdlg_select;
CClientRecordSetm_clientSet;
CDialog:
:
OnOK();
try
{
if(m_clientSet.IsOpen())
m_clientSet.Close();
m_clientSet.m_strFilter.Format("UserID='%s'",PublicData.m_userID);
m_clientSet.Open(CRecordset:
:
snapshot,NULL,CRecordset:
:
none);
//MessageBox((CString)m_clientRecordSet.m_Remaining,"存款前,余额为");//测试起初余额
if(m_clientSet.IsEOF())//判断符合查询条件的记录集是否为空,如果为空,则表明用户名不存在,给出相应警告;否则,提示正确
{
MessageBox("该用户账户不存在,请确认账号是否正确!
","提示");
UpdateData(FALSE);
m_clientSet.Close();//关闭记录集
return;
}
else//如果输入的银行账户存在的话,那么就对该事务进行处理
{
//将用户名和用户余额保存到全局变量中
PublicData.m_user_name=m_clientSet.m_UserName;
PublicData.m_user_remain=m_clientSet.m_Remaining;
}
}
catch(CDBException*e)
{
e->ReportError();
//e->Delete
return;
}
dlg_select.DoModal();
}
voidCMainServiceWin:
:
OnChangePassword()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
CPassWord_Changem_strChangePassword;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM 客户端 项目 设计 文档