1、3.系统需求说明ATM系统是与生活紧密相关的一个机构,提供了存款、取款、转账等业务,这些业务与人们的日常生活息息相关。在银行设立账户的人或机构通常被称为银行的储户。一个储户可以在银行开多个账户,储户可以存钱到账户中,也可以从自己的账户中取现,还可以将存款从一个账户转到另一个账户。储户还可以随时查询自己账户的情况,并查询以前所进行的存款、取款等交易记录。所以ATM自助服务系统必须满足存款,取款,转账,查询,修改密码等功能子模块为用户提供便利。4.基于UML的模型分析1) 用例图(use case图)用例模型描述:用户通过服务系统可以选择存款,取款,转账,查询,修改密码等几个子功能模块,其中取款,
2、存款需要通过存钞信息数据库验证,而所有功能都必须通过客户信息存储数据库的调用和修改,其中转账又分为卡内转账和卡卡转账两种,查询模块分为账户余额查询,账单记录查询,账户信息查询三种;所有的功能模块都必须先通过登录验证过才能进行2) 类图分析类图模型分析:类图中的用户属性有银行卡,密码,账户等属性,所以操作应为插入银行卡,输入密码,输入账户等操作,这一切都通过ATM交互类中的关联的部分类来完成,ATM键盘输入密码,ATM卡槽插入识别银行卡,ATM屏幕显示信息,ATM打印机打印用户凭条,放钞口用来存放或取出现金;其中涉及到的操作依赖于ATM服务操作类来完成,分为存款,取款,转账,查询,修改密码等操作
3、,并依赖于银行账户和账户信息验证来完成信息的修改,验证和存储。3) 时序图分析时序图模型分析:用户通过ATM交互插入银行卡并输入密码,利用用户验证来验证银行卡的合法性,利用账户信息验证确定密码的正确性;接下来进入服务界面,执行所要求的操作,通过银行账户及信息验证后完成操作;之后查询或修改银行账户的信息,将其存储到客户信息存储数据库中,然后返回操作界面,继续退出服务或继续操作。具体的操作界面分为存款,取款,转账,查询,修改密码五个存款操作时序图:取款操作时序图:转账操作时序图:查询操作时序图:修改密码操作时序图:4) 状态图分析状态图模型分析:先通过验证密码来进入操作界面,密码错误只能继续自返,
4、输错三次直接退出系统,成功则选择所需操作,操作结束后可以选择返回操作或退出服务;存款操作状态图:取款操作状态图:转账操作状态图:查询操作状态图:修改密码操作状态图:5) 活动图分析活动图模型分析:相比状态图更强调对象完成的操作,可以利用泳道来区分是何对象完成了什么操作。存款操作活动图:取款操作活动图:转账操作活动图:查询操作活动图:修改密码操作活动图:5.实验小结信息时代载着我们悄然驶进生活的快车道。面对着每天高度紧张的生活节奏,民众不再满足在银行排着长队等待银行业务员的人工服务.本系统的设计使得银行卡受理环境大大改善,交易效率显著提高,使广大持卡民众真正受到便利.本系统的在实施后,.它不仅能
5、方便支付,还能避免因携带现金而带来的不必要的担心,更可以让持卡民众享受到不断创新的银行卡带来的诸多增值服务,从而体验到更多的便利和乐趣.故它将广泛应用到水,电,气的缴费中,以及学校,医院,航空,税务等与老百姓生活息息相关的领域源代码程序/ */ * */ * function.h */ * #includeclass consumer;class ATM / ATM取款机public: ATM(consumer& cn):cnsm(cn) void welcome(); / 登陆界面 bool check_passwd(char n,char pwd); / 核对密码 void change_
6、passwd(); / 修改密码 void fetchmoney(); / 取款 void information(); / 查询信息 void exitATM(); / 退出系统 void functionshow(); / 功能界面 void lock(); / 锁机private: int times; / 记录密码输入次数 consumer& cnsm;class consumer/ 用户 friend class ATM; consumer(char Name,char Num, float Money,char Password);protected: char* get_name
7、(); / 取得姓名 char* get_num(); / 取得卡号 char* get_passwd(); / 取得密码 float get_money(); / 取得余额 void set_passwd(char pwd); / 设置密码 void set_money(float m); / 取钱 char passwd8; / 用户密码 char name20; / 用户姓名 char num20; float money;/ * consumer类的成员函数 *#includefunction.hstring.hconsumer:consumer(char Name,char Num,
8、float Money,char Password) strcpy(name,Name); strcpy(num,Num); money=Money; strcpy(passwd,Password);float consumer:get_money() return money;char* consumer:get_name() return name;get_num() return num;get_passwd() return passwd;void consumer:set_money(float m) money-=m;set_passwd(char pwd) strcpy(pass
9、wd,pwd);/ * ATM类的成员函数 *#include #include void ATM:welcome() times=0; cout$ 欢迎使用若雪银行ATM自动取款机! endl; char pwd8,num20,ch; int i=0; do i=0;endl请输入卡号:; cin.get(ch); numi+=ch; while(ch!=n); numi-1=0请输入密码: pwdi+=ch; pwdi-1= if(!check_passwd(num,pwd)你输入的卡号或密码有误, 请重新输入 times+; else functionshow(); while(time
10、s cinn; while(n4)请输入正确的操作序号! switch(n) case 1: change_passwd(); break; case 2: fetchmoney(); case 3: information(); case 4: exitATM(); while(true);change_passwd() char pwd8,repwd8;请输入旧密码:pwd;check_passwd(cnsm.get_num(),pwd) if(times=3) int t=0;请输入新密码:请再输入一次新密码:repwd; if(t=strcmp(pwd,repwd)!=0)你输入的两次
11、密码不一样, 请重新输入! while(t!=0); cnsm.set_passwd(pwd);密码修改成功,请牢记!fetchmoney() float m; char ch;你要取多少钱:n$endl ;m; while(m请输入正确的数字! if(cnsm.get_money()-m0)对不起,你的余额不足!操作成功,请收好钱! cnsm.set_money(m);是否要继续该项操作:(Y/N) ch; while(ch!nch!NYy) while(ch=|ch=information()* 用户姓名:cnsm.get_name()* 卡号:cnsm.get_num()* 余额:cnsm.get_money()lock()对不起,由于你的操作有误, 你的卡已经被没收! exit(1);exitATM()感谢你对本银行的支持, 欢迎下次光临!请取卡 exit(0);/ * ATM.cpp *void main() consumer c1(jim,12345,5200.3f,123 / 先构造一个用户 ATM atm(c1); atm.welcome();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1