银行ATM自动取款机模拟程序
ATM柜员机模拟程序

ATM柜员机模拟系统目录1.设计目的 (2)2.功能介绍 (2)3.概要设计 (2)3.1 需求分析 (2)3.2 自定义类说明 (2)3.3 界面设计思想 (3)3.4 方法定义说明 (3)4.详细设计 (3)4.1程序流程图 (3)4.2登陆界面设计 (4)具体实现过程 (4)关键代码设计 (5)5.设计心得与体会 (25)1·设计目的使用图形用户界面。
当输入给定的卡号和密码(初始卡号和初始密码)时,系统能登录ATM柜员机系统2·功能介绍(1)查询余额:初始余额为10000元(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
(3)ATM存款:不能出现负存款。
(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
3·概要设计3.1 需求分析使用ATM机可以节约人力资源,方便用户进行简单常用操作,并且可以为用户提供全天候的服务,提高银行效率。
3.2 自定义类说明a:Guest类定义客户类,该类主要提供用户的各种操作提供定义变量 b:DENGRU类为主类,主要有按钮、文本框,组合框,标签,在组合中选择账号,在密码的文本框中输入各个账号所对应的密码,单击登录按钮可以进入选择界面,如果密码错误,就会弹出对话框,提示“密码错误,拒绝登录”。
c:KQ类为选择界面模块,在选择模块服务中,有各种ATM的服务功能,只要在用户该界面中选择按钮,它会弹出各个相应的界面。
d:Zdqk类为取款类,在取款模块中,用户在文本框中输入它想取的数额,但必须是100的倍数,否则会弹出报错窗口,而且每一次最多只能去5000快,否则会弹出报错窗口,当然取款时不能超过卡里的余额没卡里的余额不可以为负数,否则会弹出报错的窗口。
e:Zdck类为自动存款类,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。
java课程设计ATM柜员机模拟程序

数据库连接:使用JDBC连接 数据库,进行数据查询
查询语句:编写SQL查询语句, 根据用户输入进行查询
结果展示:将查询结果以列表 或表格形式展示给用户
05
AT M 柜 员 机 的 数 据 库 设计
数据库表结构设计
用户表:存储用户信息,包括用户名、密码、余额等 交易表:记录用户的交易信息,包括交易时间、交易金额、交易类型等 账户表:存储账户信息,包括账户编号、账户类型、账户余额等 银行信息表:存储银行信息,包括银行名称、银行地址、银行电话等 系统日志表:记录系统操作日志,包括操作时间、操作人、操作内容等
网络中断等
性能测试与优化
测试方法:压力测 试、负载测试、稳 定性测试等
测试工具: JMeter、 LoadRunner等
优化目标:提高系 统响应速度、减少 资源消耗、提高系 统稳定性等
优化方法:代码优 化、数据库优化、 缓存优化等
调试过程与问题解决
测试环境搭建:安装Java开发环境,配置 数据库,安装模拟器等
06
AT M 柜 员 机 的 测试与调试
01 添加章节标题
02
AT M 柜 员 机 模 拟 程 序 概述
AT M 柜 员 机 的 基 本 功 能
存 款 : 用 户 可 以 将 现 金 存 入 AT M 柜 员 机 , 系统会自动识别并记录存款金额
转 账 : 用 户 可 以 通 过 AT M 柜 员 机 进 行 转 账操作,系统会自动记录转账信息
异地备份:将 备份数据存储 在异地,防止 自然灾害等意 外情况导致的
数据丢失
访问控制:设 置严格的访问 控制策略,防 止未授权访问
安全审计:定 期进行安全审 计,及时发现 并修复安全漏
模拟ATM柜员机程序 (C++)

课程设计任务书一、课程设计题目《模拟ATM柜员机程序》二、课程设计内容(含技术指标)1.使用文本命令行界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:查询余额:初始余额为10000元ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
ATM存款:不能出现负存款。
修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
2.建立银行账户类、文件读写类、界面显示类等以及各相关接口类。
三、进度安排1.1-4学时,分析需求、理解需求;2.5-8学时,程序设计,定义类、数据处理方式;3.9-12学时,编写程序、调试、测试;4.12-16学时,编写设计报告学时,答辩;四、基本要求1.只能使用C++语言,源程序要有适当的注释,程序容易阅读2.至少采用文本菜单界面(如果能采用图形菜单界面更好)3.学生可自动增加新功能模块(视情况可另外加分)4.用文件保存信息5.写出课程设计报告,具体要求见相关说明文档课程负责人签名:年月日课程设计分工安排摘要演示程序时,初始卡号和密码为123456,系统能登录ATM柜员机系统,进入功能界面,根据功能界面的提示,然后由用户进行相应的功能操作。
本程序使用C++语言,操作时,使用文本命令行界面。
该程序还需要一些改进,就是没有采用图形菜单界面。
关键词:登陆界面修改密码取款查询信息功能界面目录摘要 (I)目录 .............................................................................................................. I I 第一章需求分析 .. (1)1.1功能: (1)1.2操作: (1)第二章总体设计 (2)2.1 模拟ATM柜员机程序功能图 (2)2.2 整个程序的流程图 (3)第三章详细设计与实现 (4)3.1 类的设计 (4)3.2 ATM柜员机的登陆 (5)3.3 ATM柜员机修改密码功能 (5)3.4 ATM柜员机取款存款功能 (6)3.5 ATM柜员机查询余额功能 (7)第四章测试 (8)4.1程序开始运行的界面 (8)4.2 正确输入帐号密码后的界面 (9)4.3 取钱成功后的界面 (9)4.4 程序结束时的界面 (10)参考文献 (11)心得体会 (12)第一章需求分析1.1功能:(1)模拟ATM柜员机程序;(2)修改密码。
ATM柜员机模拟程序文档

西安科技大学软件工程课程设计报告题目:ATM柜员机模拟程序班级:信计0801学号:080806013008080601260808060125姓名:覃永贤上官恩辉申松2010年12月目录1概述1.1目的及意义1.2 设计内容1.3 人员组成及分工2系统分析2.1 问题背景及概况2.2 系统需求分析3 系统设计3.1 软件结构设计3.2 数据库设计4系统实现4.1 开发环境4.2 关键技术4.3 主要功能代码5系统测试参考文献日历系统设计文档1 概述1.1目的及意义目的:1、培养独立的Java语言与算法设计方法,具备初步的独立分析和设计能力;2、学习软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3、训练综合运用所学的理论知识和方法进行独立分析和解决问题的能力;4、训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
意义:模拟ATM柜员机的相关功能,实现其取款、余额查询、密码修改等相关功能,通过课程设计让我们了解其相关方面的运作过程。
1.2 设计内容使用图形用户界面模拟ATM柜员机的相关功能。
功能如下:1.实现用户登录功能。
2.实现余额查询功能。
3.实现取款功能。
4.实现密码修改功能。
1.3 人员组成及分工1、组员名单:覃永贤申松上官恩辉2、组员分工:(1)覃永贤负责程序设计(2)上官恩辉负责需求分析(3)申松负责软件测试2系统分析2.1 问题背景及概况人们日常生活中经常使用ATM柜员机,其极大的方便了人们的日常生活,同时在使用的过程中也会遇到这样那样的问题,如果有一款软件模拟ATM,可以帮助人们了解其运行过程,避免有些不必要的麻烦。
2.2 系统需求分析:2.2.1功能需求分析(1)用图形用户界面实现。
本系统基于JA V A采用多线程的程序设计,使得界面清晰直观,系统全部通过界面来实现系统的功能需求。
2.2.2性能需求分析(1)可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如数据未初始化等,在出现不可知的错误以后,可以尽量安全的退出程序。
pta atm模拟程序的设计

pta atm模拟程序的设计PTA ATM模拟程序是一个用来模拟ATM机器的程序。
它可以用于测试ATM 机器的功能,并帮助用户学习如何使用ATM机器。
PTA ATM模拟程序的设计可以分为以下几个步骤:1.定义ATM机器的功能首先,需要定义ATM机器的功能。
这包括ATM机器可以执行的操作,以及这些操作的输入和输出。
ATM机器的基本功能包括:●登录●查询余额●取款●存款●转账●修改密码2.设计ATM机器的状态转换图根据ATM机器的功能,可以设计ATM机器的状态转换图。
状态转换图可以用来描述ATM机器的状态和状态之间的转换。
ATM机器的状态转换图如下所示:ATM机器的状态转换图的图片在新窗口中打开ATM机器的状态转换图状态转换图中的每个状态表示ATM机器的一种状态。
状态之间的箭头表示ATM机器从一种状态转换到另一种状态。
3.设计ATM机器的控制流程根据ATM机器的状态转换图,可以设计ATM机器的控制流程。
控制流程可以用来描述ATM机器的操作顺序。
控制流程中的每个步骤表示ATM机器要执行的操作。
4.实现ATM机器的功能根据ATM机器的功能、状态转换图和控制流程,可以实现ATM机器的功能。
ATM机器的功能可以使用多种编程语言来实现。
例如,可以使用Python来实现ATM机器的功能。
5.测试ATM机器的功能在实现ATM机器的功能后,需要测试ATM机器的功能。
测试可以用来验证ATM机器的功能是否正确。
ATM机器的功能可以使用多种方法来测试。
例如,可以使用自动化测试工具来测试ATM机器的功能。
6.发布ATM机器在测试ATM机器的功能后,可以发布ATM机器。
发布ATM机器后,用户可以使用ATM机器。
PTA ATM模拟程序的设计是一个复杂的过程,需要考虑多种因素。
通过仔细设计,可以开发出功能强大、易于使用的ATM模拟程序。
C语言模拟ATM机的编写程序

C语言模拟ATM机的编写程序#include <stdio.h>void main(){long int a,b,c,d,e,f,g,k,l,m,n,o,p,h;n=0;h=10000;k=123456;loop0: printf("\t\t\t欢迎使用中国邮政ATM取款机!\n\n");printf("请插入你的银行卡,并输入你的密码,三次密码输入错误,将终止程序:\n");scanf("%ld",&l);if(k==l){loop1: printf("请输入你选择的操作类型:\n");printf("请输入0-4进行选择:\n");printf("1:<转账>\t2:<查询>\t3:<取款>\t4:<修改密码>\t0:<取卡>\n");scanf("%ld",&a);switch(a){case 1: printf("请输入转账账号:\n");scanf("%d",&o);printf("请输入你需要转账的金额:\n");scanf("%d",&p);printf("请输入你选择的操作类型:\n");printf("请输入0或1进行选择:\n");printf("1:<确认>\t0:<返回>\n");h=10000-p;scanf("%ld",&b);switch(b){case 1:printf("\n转账%d元人民币成功!\n\n",p);goto loop1;break;case 0:goto loop1;break;default :printf("\n无此操作项!\n\n");goto loop1;}break;loop4:case 2:printf("请输入你选择的操作类型:\n");printf("请输入0-2进行选择:\n");printf("1:<查询余额>\t2:<查询明细>\t0:<返回>\n");scanf("%ld",&c);switch(c){case 1:printf("\n你的余额为:%5d\n\n",h);goto loop1;break;case 2:printf("\n你的账单为:******。
ATM取款机模拟程序 课程任务书

课程设计任务书课程名称:C++程序设计课程设计设计题目:ATM取款机模拟程序已知技术参数和设计要求:1. 问题描述:课题的任务是设计一个ATM取款机的模拟程序。
日常生活中,我们常使用ATM取款机,对它的操作过程有所了解。
这里我们要模拟的是用户所见的A TM取款机的属性和行为,ATM机与网络连接的部分不包括在这个任务中。
设计中应尽可能把它模拟得与真实的ATM接近一些,我们抽象出下列问题:(1) 用户插卡,A TM验证用户帐号信息。
(2) 用户首次操作须验证密码。
(3) 用户查询余额,ATM显示余额。
(4) 用户取款,A TM操作交易过程。
(5) 用户转账,A TM请求插入转入卡,然后操作交易过程。
(6) 用户更改密码,A TM受理此业务。
(7) 用户退卡。
A TM清理现场。
(8) 所有用户信息保存在文件中。
(9) 对于一个在线用户,如果超过一定时间用户没有任何操作,ATM锁机,直到用户退卡为止。
(10) ATM向用户显示欢迎词及其他提示信息。
2. 功能要求:(1)插卡功能(用卡号模拟);(2)取款功能;(3)查询余额功能;(4)验证帐号功能;(5)更改密码功能;(6)退卡功能;(7)锁卡功能。
3. 界面要求:用户界面设计不做统一规定,但应做到界面友好,易于操作。
4. 技术要求:要求所有用户的信息以密文形式保存在数据文件中,加密算法为:字节各位取反,然后高半字节和低半字节交换位置。
用户输入密码时不能以明文形式显示在屏幕上,应以“*”号代替来显示用户密码的输入。
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;在设计的过程中,建立清晰的类层次;在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;要求运用面向对象的机制来实现系统功能。
要求主函数(或图形界面下的主调函数)很“干净”,只有一些类对象的定义和某个类对象的一个成员函数的调用。
5. 课程设计时间:15周、16周6. 课程设计的考核方式及评分方法1)考核方式⏹课程设计结束时,在机房当场验收。
ATM自动取款机模拟程序

银行ATM自动取款机模拟程序本程序需要两个文件,ATM程序文件及系统管理员管理,两个文件必须在同一个文件或同一路径下!1.ATM程序文件://////CUser.h //////////#include<fstream>using namespace std;struct user{int Money;int User;int Password;};class CAtm{public:int Login();//登陆void GetBalance();//查询余额void ChangePassword();//修改密码void DrawMoney();//取款void TranserAccounts();//转账void BankSaving();//存款int Exit();//退出系统private:int Position;//数据位置user us[5];//保存文件内容user us[20];user s;};///////////User.cpp /////////////#include<iostream>#include<fstream>#include"CUser.h"using namespace std;int CAtm::Login() //登录{ int save[5];//保存被吃卡的用户的账号bool flag;int i,j,k,num;fstream iofile("atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("jiesuo.dat",ios::in|ios::out|ios::binary);in.read((char*)&save,sizeof(save));cout<<"请输入你的账号:";cin>>num;flag=true;for(i=0;i<5;i++){ if(us[i].User==num) {flag=false;j=i;}}if(flag==true) { cout<<"账号不存在!"<<endl;return 0;}for(k=0;k<5;k++)//判断账号是否已经被锁{if(save[k]==num){ cout<<"你的账号已锁,请寻系统管理员解锁!"<<endl;return 0;}}k=0;cout<<"请输入密码:";cin>>num;for(i=1;i<=3;i++){ k++;if(us[j].Password!=num){ if(k==3){ cout<<"你的卡被锁定了,请找系统管理员解锁!"<<endl;save[j]=us[j].User;in.close();fstream out("jiesuo.dat",ios::out|ios::binary);out.write((char*)&save,sizeof(save));out.close();return 0;}else { cout<<"请重新输入密码:";cin>>num;}}}cout<<"密码正确,进入系统!"<<endl;er=us[j].User;s.Money=us[j].Money;s.Password=us[j].Password;Position=j;iofile.close();return 1;}void CAtm::GetBalance()//查询余额{ cout<<"您的账户余额:"<<s.Money<<endl;}void CAtm::ChangePassword()// 修改密码{ fstream iofile("atm.dat",ios::in|ios::out|ios::binary);cout<<"请输入新密码:";cin>>s.Password;iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}void CAtm::DrawMoney()//取款{int j;cout<<"请输入取款金额:";cin>>j;while(j>s.Money){cout<<"金额不足,请重新输入取款金额:";cin>>j;}s.Money=s.Money-j;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));cout<<"取款金额是:"<<j<<" "<<"取款成功!!"<<endl;iofile.close();}void CAtm::TranserAccounts()//转账{ int s1,p,i;cout<<"请输入要转入的账号:";cin>>s1;bool flag=true;for(i=0;i<5;i++){ if(us[i].User==s1) {flag=false; p=i;}}if(flag==true)cout<<"账号不存在!"<<"请重新输入账号:";cout<<"请输入要转入的金额:";cin>>s1;while(s1>s.Money){cout<<"请重新输入转入金额:";cin>>s1;}us[p].Money=s1;s.Money=s.Money-s1;us[Position].Money=s.Money;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.write((char*)&us,sizeof(us));iofile.close();cout<<"转账成功!"<<endl;}void CAtm::BankSaving()//存款缴费{ int k;cout<<"请输入要存款的金额:";cin>>k;s.Money=s.Money+k;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}int CAtm::Exit()//退出系统{cout<<" 谢谢使用本程序!!!"<<endl;return 0;}//////////////main.cpp ////////////////#include<iostream>#include"CUser.h "using namespace std;int main(){ cout<<" 欢迎使用银行ATM自动取款机模拟程序!"<<endl;cout<<endl;cout<<" 首次使用本程序,请先运行系统管理员程序!"<<endl;cout<<endl;cout<<" 说明:账号,密码,金额相同"<<endl;cout<<endl;cout<<" 文件中定义为5个账户,分别为1.2.3.4.5 "<<endl;cout<<endl;cout<<" 初始化时,请注意这些!!!"<<endl;cout<<endl;CAtm atm;if(atm.Login()==1){ cout<<" 1 查询余额"<<endl;cout<<" 2 修改密码"<<endl;cout<<" 3 取款"<<endl;cout<<" 4 转账"<<endl;cout<<" 5 存款"<<endl;cout<<" 0 退出系统"<<endl;int n;cout<<"请选择操作:";while(cin>>n){if(n==0) return atm.Exit();//退出系统if(n==1) atm.GetBalance();//查询余额if(n==2) atm.ChangePassword();//修改密码if(n==3) atm.DrawMoney();//取款if(n==4) atm.TranserAccounts();//转账if(n==5) atm.BankSaving();//存款cout<<"请继续选择操作:";}}return 0;}2.系统管理员程序:#include<iostream>#include<fstream>using namespace std;struct user{int Money;int User;int Password;};int main(){ int a[5]={0,0,0,0,0};int n;user us[20];cout<<" 欢迎使用系统管理员程序"<<endl;cout<<endl;cout<<" 说明:本程序只能建立5个账户!"<<endl;cout<<endl;cout<<" 请输入相应数字选择操作:"<<endl;cout<<endl;cout<<"----------------------------"<<endl;cout<<"- 0 结束操作-"<<endl;cout<<"- 1 用户信息-"<<endl;cout<<"- 2 吃卡解锁-"<<endl;cout<<"- 3 系统初始化-"<<endl;cout<<"----------------------------"<<endl;cout<<endl;cout<<"说明:用户信息的操作是进行开户操作!"<<endl;cout<<" 系统初始化是采用已定义好的5个账户,即原始系统初始化!"<<endl;while(cin>>n){ if(n==1){ user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}cout<<"请输入数据:"<<endl;cout<<"账号密码金额"<<endl;for(i=0;i<5;i++){cin>>u[i].User>>u[i].Password>>u[i].Money;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<endl;cout<<"数据输入结束!"<<endl;cout<<endl;continue;}if(n==2){ fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("..\\ATM自动取款机\\jiesuo.dat",ios::in|ios::out|ios::binary);int i,j,p;bool flag;cout<<"请输入要解锁的账号:";cin>>j;flag=true;while(flag==true){for(i=0;i<5;i++){ if(j==us[i].User) { flag=false;p=i; break; }if(flag==true) { cout<<"账号不存在!"<<endl;cout<<"请重新输入账号:"; }cin>>j;}}a[p]=0;cout<<"解锁成功"<<endl;in.write((char*)&a,sizeof(a));in.close();continue;}if(n==3){ cout<<"系统初始化"<<endl;fstream out("..\\ATM自动取款机\\jiesuo.dat",ios::out|ios::binary);out.write((char*)&a,sizeof(a));user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}for(i=0;i<5;i++){u[i].User=i+1;u[i].Password=i+1;u[i].Money=i+1;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<"初始化成功!!!"<<endl;continue;}if(n==0){ return 0;}}return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
制作组员: 组长 wzy 组员 lyz
目录
• 课程设计的目的 • 课程设计任务码与调试 • 系统使用手册 • 总结
一、课程设计目的
目的: 1. 掌握C++语言基本知识及其编程方法 2. 掌握类和对象的基本概念与使用方法 3. 掌握面要向求 对象中的继承与多态等面向 对象特性 4. 掌握文件流的基本操作
四、系统设计
• 模拟ATM取款机的操作:
㈠、登录功能:输入帐号和密码进行登录, 如密码错误提示重新输入密码,如帐号错误 提示无此帐户。 ㈡、查询功能:查询账户余额。 ㈢、取款功能:取款,更新余额。 ㈣、修改密码:输入原密码和新设置密码。 ㈤、吃卡功能:密码输错3次,锁卡。 ㈥、转账功能:输入转账的转出账户以及转 账金额,进行转账。
四、系统设计
• 5)查询功能
开始 主界面
图4-3-5
选择查询的操 作序号
结束
六、编码与调试
以下是程序的源代码
#include"iostream" using namespace std; class consumer; class ATM {public:
ATM(consumer & cn):cnsm(cn){ } void welcome(); //登陆界面 bool check_passwd(char n[],char pwd[]); void change_passwd(); //修改密码 void fetchmoney(); //取款 void zhuan();//转账 void information(); //查询信息 void exitATM(); //退出系统 void functionshow(); //功能界面 void lock(); //锁机
(2)银行卡类:具有“用户姓名”、“用户密码”、 “存款额”等特征。需要实现“身份验证”、“查询余额”、 “修改密码”、“交易成功更改余额”等操作。将这些操作 定义为银行卡类的成员函数。
四、系统设计
• 模拟ATM取款机的操作:
首先录入账户信息,格式如下
卡号
姓名
密码 余额
123456 wzy
123456 10000.00
2、)定义了一个consumer 类,类中包括以下几部分: 公有继承了consumer类
私有段: 卡号,用户姓名,用户密码,存款钱数
保护段: 取得姓名,取得卡号,取得密码,取得余额,设置密码,取钱
四、系统设计
• 1)登录流程
图4-3-1
开始
输入卡 号 输入密码 主界面
结束
四、系统设计
• 2)修改密码
protected:
char* get_name(); //取得姓名
char* get_kahao(); //取得卡号
char* get_passwd(); //取得密码
private: int times; //记录密码输入次数 consumer &cnsm;
};
//核对密码
六、编码与调试
class consumer
//用户
{
public:
friend class ATM;
consumer(char Name[],char Num[], float Money,char Password[]);
四、系统设计
• 模块结构图:
模拟ATM取款机
ATM功能类 登陆界面 核对密码 取款 转账 查询信息 退出系统 锁卡
consumer用户类 获取姓名 获取卡号 获取密码 获取余额 核对密码
五、详细设计 登陆界面
否 输入卡号和密码
卡号密码错误 超过3次?
否 卡号密码正确
是
选择一项功能执行
结束
功能界面 1.修改密码
二、课程设计任务与要求
任务: 编写一个银行ATM自动取款机模拟程序(2人)
实现ATM取款机的基本功能,如给用户提供查询 余额、取款、修改密码、吃卡、退出系统等服务,可 根据实际情况添加(如缴费、转账等服务)。
1)对于用户要求输入相应的帐号和密码,如果三 次出错则将卡吃掉并打印出相应凭条。 2)若输入的取款金额超出账户余额,则提示用户输入 有误并提供更正功能
开始
主界面
选择查询的操作 序号
请输入旧密 码 请输入新密码
图4-32
请再次输入新密 码
结束
四、系统设计
• 3)取款功能
图4-3-3
开始 主界面
选择需要的操作 序号
取款额数 是否继续
结束
四、系统设计 开始
• 4)转账功能
主界面
选择查询的操 作序号
图4-34
请输入所转账 号
请输入所转金 额
余额不足
转账成功, 余额
二、课程设计任务与要求
要求: 1. 要求利用面向对象的方法以及C++的 编程思想来完成系统的设计; 2. 要求在要设求 计的过程中,建立清晰的类 层次; 3. 在系统中至少要定义类,若有多个类, 每个类中要有各自的属性和方法; 4. 在系统的设计中,要求使用面向对象 的继承与多态等机制。
三、需求分析
2.取款 3.转账 4.查询余额 5.退出系统
总体流程图4.1
五、详细设计
4.2 相关数据结构的说明:
信息的载体用对象数组。系统录入信息的操作非常枯燥,所以创建 一个文件,把每次录入的信息保存入文件,在下一次进入系统是,它会 默认读取文件原有的信息,当然也可以随时添加录入ATM信息。然后系 统的各个功能仅仅是通过查询找到具体对象的具体数据进行操作。
本案例涉及一个银行卡和ATM机之间的“对话”。需 要处理两个对象,即:ATM和银行卡,因此可以考虑定 义两个类来解决这个问题
(1)ATM机类:有“单笔取款最高限制”、“每日取款 总金额限制”、“金额”等基本属性。需要实现:“核对密 码”、“修改密码”、“取款”、“查询信息”、“退出系 统”、“锁机吞卡”等功能。可以将这些操作定义为ATM机 类的成员函数。
用户姓名:Name 字符型。 用户账号:Num 字符型。 用户密码:Password 字符型。 存款数额:Money 实型。
五、详细设计
4.3 类的设计
1)、定义了一个ATM取款机类,类中包括以下几部分: 公有段: 依次为登陆界面,核对密码,修改密码,取款,转账,查询信息,退
出系统,功能界面,锁机。 私有段: 记录密码输入次数。 友元函数: 取款,转账,查询信息,账号,密码。