模拟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类为自动存款类,用户在文本框中输入它想存入的数额,单击确定,就可以存入,如果输错了或者是不想存了,可以单击取消,退出的选择界面。
自动存提款机模拟系统
• 根据[说明]中的描述,给出图3-1中A1 和A2所对应的参与者,U1至U3所对应 的用例,以及该图中空 (1)所对应的关 系。
• • • • •
1.从ATM卡账户取款(Withdraw); 2.向ATM卡账尸存款(Deposit); 3.进行转账(Transfer): 4.查询(Inquire)ATM卡账户信息。 一次会话可以包含多个事务,每个事务处理也 会将卡号和个人验证码信息送到银行系统进行 验证。若个人验证码错误,则转个人验证码错 误处理(Invalid PIN Process)。每个事务完 成后,客户可选择继续上述事务或退卡。选择 退卡时,系统弹出ATM卡,会话结束。 • 系统采用面向对象方法开发,使用UML进行建 模。系统的顶层用例图如图所示。
ATM取款机模拟系统-程序设计-报告(完成版).doc
目录三、编程题部分(银行ATM模拟存取系统)1、设计内容 (2)2、设计 (2)(1)数据分析 (2)(2)程序流程分析 (3)3、编码及调试 (13)4、程序运行截图 (32)四、总结与体会 (37)五、参考文献 (39)三、编程题部分1、设计内容完成一个管理类的综合型设计:银行ATM模拟存取系统。
要求学生进行数据结构的设计、对函数进行模块化结构化设计、并灵活运用数组、结构体、指针、文件等多种数据类型设计开发系统。
通过写程序,学生应掌握用计算机程序设计语言解决实际问题的方法、步骤。
该系统应该具有以下功能:1)账户管理功能a) 开户:完成账户注册的功能。
即输入账户的相关信息。
要求账户号长度12位,密码长度不得低于6位,必须使用暗码,账户信息保存到数组中,账户信息最后保存到相关文件中;b) 账户登录:输入账户、密码,验证是否能够登录该系统;c)密码修改:输入两次相同的密码方可修改。
2)账务管理功能a) 存款:每笔存款金额大于0元小于等于1000元,以50元为基本单位。
需记录交易日期和时间。
b) 取款:每笔取款金额大于等于100元小于等于2000元,以50元为基本单位。
需记录交易日期和时间。
c) 转账:每笔转账金额大于等于100元小于等于5000元。
需记录交易日期和时间。
3)查询功能a) 存款记录查询b) 取款记录查询c) 转账记录查询d) 余额查询4)文件功能及其它功能:数据都应保存在相关文件中。
2、设计(1)数据分析(描述定义的各主要变量的作用及意义);char zhanghao[16];/*用户账号*/char xingming[9];/*用户姓名*/char mima[7];/*账户密码*/char shengfenzheng[19];/*用户身份证号*/float yue;/*账户余额*/char kaihushijian[50];/*开户时间*/char zhanghao[16];/*交易的账号*/char jiaoyishijian[50];/*交易时间*/char leixing[5];/*交易类型*/float jiaoyijine;/*交易金额*/float jiaoyiyue;/*交易后的余额*/char duifangzhanghao[12];/*交易时的对方账号*/int zhanghuxuhao=0,jiaoyixuhao=0,dangqianxiabiao=0,duifangzhanghuxiabiao=0;/*账户序号,交易序号,当前登录的账户下标,转账时对方的账户下标*/注册函数:int baiwei,shiwei,gewei,len;/*定义账号的后三位*/char mima2[7];/*注册时第二次输入的密码*/登录函数:char zhanghao[16],mima[7];/*登录时输入的账号和密码*/装载和保存文件函数:FILE *fp;/*定义文件指针*/char wenjianming[13];/*定义输入的文件名*/存、取款,转账函数:float jine;/*输入的存、取款,转账金额*/char t[30];/*把取得的存、取款,转账时间赋给该数组*/转账函数:char duifangzhanghao[16],c;/*输入的对方账号赋给该数组。
uml--ATM自动取款机系统
创建系统用例模型
创建系统用例的第一步是确定系统的参与者。ATM自动取款机系统的参 与者包含以下三种:
(1)客户 (2)银行职员 (3)信用系统
创建系统用例模型
1.客户用例图
客户在本系统中可以进行取款、存款、转账、查询余额、修改密码和还款 的相关操作 。
创建系统用例模型
2.银行职员用例图
银行职员在本系统中能够进行硬件维护、修改密码和添加现金的相 关操作。
创建系统部署模型
2. 系统部署图
ATM自动取款机系统的部署图描绘的是系统节点上运行资源的安排。包括 了四个节点,分别是:ATM客户端、地区ATM服务器、银行数据库服务器 和打印机。
选择=结果
汇报结束 谢谢观看! 欢迎提出您的宝贵意见!
(1)客户将银行卡插入读卡器,读卡器识别卡的真伪,并在显示器上 提示输入密码。
(2)客户通过键盘输入密码,取款机验证密码是否有效。如果密码错 误提示错误信息,如果正确,提示客户进行选择操作的业务。
(3)客户根据自己的需要可进行存款、取款、查询账户、转账、修改 密码的操作。
(4)在客户选择后显示器进行交互提示和操作确认等信息。 (5) 操作完毕后,客户可自由选择打印或不打印凭条。 (6)银行职员可进行对ATM自动取款机的硬件维护和添加现取款活动协作图
创建系统动态模型
3. 根据用户开立新账户的步骤 ,我们可以创建的活动图。
创建系统动态模型
4.系统状态图
在ATM自动取款机系统中,有明确状态转换的类是银行账 户从账号的打开到账户关闭的过程,状态会发生明显的变 化。
创建系统部署模型
1.系统构件图
在本系统中,我们可以对银行账户、信用系统、客户、ATM屏幕、ATM取款 机、ATM键盘、银行职员、读卡器和数据库服务器分别创建对应的构件进行 映射。
模拟ATM机存取款管理系统
课程设计题目:ATM柜员机系统专业:计算机科学与技术学号:班级:学生姓名:一可行性研究1编写目的1.1 目的这份可行性研究报告是对ATM柜员机的可行性研究分析及指出存在的必要性。
1.2 预期的读者软件管理人员、开发人员、维护人员、顾客用户。
2 问题定义2.1 ATM柜员机介绍ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的卡号和密码时,系统能登录ATM柜员机系统,通过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。
2.2 基本目标ATM柜员机主要是由各个实体窗口组成,它是由登录页面、选择服务、存款、取款、查询余额、修改密码以及查看交易记录等功能。
它的各种按钮的事件和功能可以简单的模拟ATM柜员机的要求,让用户在电脑上可以轻松体验ATM取款机的使用流程,以达到易学易用的效果,避免用户在真实的ATM机上出现失误,带来不必要的损失。
2.3 经济目标由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重小组成员整体水平的提高。
3 可行性研究的方法及评价度3.1 可行性研究所采用的方法根据调查,本小组成员多数有JA V A编程经验,也具备MY SQL的使用经验,因而开发此系统采用JA V A结合MY SQL的数据库系统开发。
3.2 评价尺度此软件暂时只是一个初级产品,实现的功能也只能完成初步的工作。
4 工作产品4.1 设计目标为了减少银行的业务处理压力,尽量节省人们取钱所花费的时间和价值;并且尽可能的防止一些非法的业务操作,同时它的使用可以有效解决用户信息和资金信息的繁杂问题。
4.2 设计及约束条件a. ATM面向客户十分广泛,所以界面设计要力求简单明了,只要认识汉字并具备实际行动能力的人,就可以顺利进行操作,对于用户输入的数据,系统能进行严格的数据检验,尽可能的排除人为地错误。
b. 开发人员应具备相应的开发能力,懂C++ 与java编程,小组成员能够根据计划的要求,按时完成系统的每一部分,保证后面的开发进程可以顺利进行。
C++模拟ATM机存取款管理系统设计
温馨提示程序语言:C、C++、C#、Python(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的数据结构)C++语言项:STL库(黑体标明表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015均可通过编译。
(浅蓝色字体表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:241行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
《面向对象程序设计》课程设计报告书设计题目:模拟ATM机存取款管理系统设计指导老师:学生班级:学生学号:学生姓名:同组人员:时间:2017.12.课程设计任务书第一章概述使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大的便利。
本文就以C++语言设计一项简单的模拟ATM柜员机程序。
运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123456)后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功能。
自动取款机(ATM)模拟程序(C#控制台应用程序)
自动取款机(ATM)模拟程序一、需求我们需要设计一个具备如下功能的ATM模拟程序。
●开户:用户能够通过ATM来开设帐号,开户需要设置密码。
●登录:用户能够登录到已经开设的帐号上,登录需要验证密码。
●管理帐号:用户登录到帐号上后,能够进行如下的操作。
■存款:将指定的款项存到帐号中。
■取款:从帐号中取出指定的款项。
■查询余额:查询帐号的余额。
■修改密码:修改帐号的密码。
二、分析面向对象编程的第一步是进行面向对象分析。
面向对象分析的目标是建立问题领域的模型,包括如下模型。
●功能模型:即画出每一个功能要求的用例图。
●对象模型:对用例模型进行分析,把系统分解成互相协作的类,通过类图/对象图描述对象、对象的属性、对象间的关系。
●动态模型:描述系统的动态行为,通过序列图来描述对象的交互,以揭示对象间如何写作来完成每个具体的用例,单个对象的状态变化和动态行为可以通过状态图来表达。
1.功能模型根据我们的需求,可以很容易地画出A TM模拟程序的用例图:可以看出,用户可以开户和登录帐号,开户或者登录帐号之后就能管理帐号。
要管理账号,就必须首先登录帐号或者开户。
管理帐号的功能包括存款、取款、查询余额和修改密码。
2.对象模型ATM是银行相连的设备,因此银行是A TM模拟程序的相关对象,所有的操作都是针对帐号的,因此帐号是其中的核心对象。
此外,需要一个程序来启动ATM。
因此,在ATM模拟程序中,我们需要处理四个类,或者说四类对象:启动程序、A TM、银行及帐号。
1)帐号类Account帐号类Account包含所有的帐号信息负责所有的帐号操作。
基本的帐号信息包括:●帐号名name●帐号密码password●帐号余额balance主要的帐号操作包括:●登录Login●存款Deposit●取款Withdraw●查询余额Get_Balance●修改密码ChangePassword2)银行类Bank银行类Bank的本质就是一组帐号的组合,并负责管理帐号。
c语言银行自动存取款机模拟
C语言银行自动存取款机模拟介绍本文档将介绍如何使用C语言编写一个简单的银行自动存取款机模拟程序。
该程序可以模拟银行客户进行存款和取款操作,并实时更新账户余额。
功能此银行自动存取款机模拟程序具有以下功能:•登录功能:用户可以输入账号和密码进行登录。
•存款功能:用户可以输入存款金额进行存款,存款成功后会更新账户余额。
•取款功能:用户可以输入取款金额进行取款,取款成功后会更新账户余额。
•查询余额功能:用户可以查看账户余额。
•退出功能:用户可以选择退出程序。
程序设计数据结构在程序中,需要定义一个结构体来表示银行客户的账户信息。
每个账户包含账号、密码和余额:struct Account {int accountNumber;char password[20];double balance;};登录功能首先,用户需要输入账号和密码进行登录。
可以定义一个函数来实现登录功能:int login(struct Account *accounts, int numAccounts, int accountNumber, char *password) {for (int i = 0; i < numAccounts; i++) {if (accounts[i].accountNumber == accountNumber && strcmp(accounts[i].password, password) == 0) {return i; // 返回账号在数组中的索引}}return -1; // 登录失败,返回-1}存款和取款功能存款和取款功能可以分别定义两个函数来实现。
存款函数会增加账户余额,取款函数会减少账户余额。
```c void deposit(struct Account *account, double amount) { account->balance += amount; }void withdraw(struct Account *account, double amount) { if (account->balance >= amount) { account->balance -= amount; printf(。
模拟ATM自动存取款机界面
实验(四)学号:姓名:实验项目:选择结构程序设计之switch语句实验日期:年月日实验目的及要求:1.熟练掌握switch语句的一般书写形式和执行过程。
2.学习使用switch语句设计多分支选择结构的程序。
实验技术要点:switch语句switch(表达式){ case 常量表达式1:语句组;[break;]……case 常量表达式n:语句组;[break;][ default:语句组;[break; ] ]}实验内容:任务一:模拟ATM自动存取款机界面。
提示与要求:主界面:查询余额、存款、取款、退卡四个功能。
查询余额界面:显示余额存款界面:100、500、输入存款金额、返回取款界面:100、500、输入取款金额、返回退卡界面:退出程序。
附源程序如下:#include<stdio.h>int main(){char getkey;int getnum;int total=10000,money;printf("-----------\n");printf("1.查询余额\n");printf("2.取款\n");printf("3.退卡\n");printf("4.退出\n");printf("-----------\n");getkey=getchar();switch(getkey){case'1':printf("----------\n");printf("您的余额为%元\n",total);printf("----------\n");break;case'2':printf("-----------\n");printf("1.100\n");printf("2.500\n");printf("3.输入取款金额\n");printf("4.退出\n");printf("-----------\n");scanf("%d",&getnum);}switch(getnum){case '1': // 取款100元puts("=======================");puts("| 您的取款金额为100元|");puts("| 请按任意键返回|");puts("=======================");getch();break;case '2': // 取款500元puts("=======================");puts("| 您的取款金额为500元|");puts("| 请按任意键返回|");puts("=======================");getch();break;case '3': //用scanf函数输入取款金额puts("=====================");puts("| 请输入您的取款金额:|");scanf("%d",&money);printf("|您的取款金额:%d |\n",money);puts("| 请按任意键继续。
ATM自动取款机模拟程序
2.3,ATM自动取款机模拟程序2.3.1总体设计:流程图2.3.2详细设计:登陆系统主界面开户业务模板:void openAccount()。
主要功能在于新开账户(也可为下面转账系统服务等做铺。
)且储存信息。
经提升,密码已可以包含字符。
用户可根据提示,一步步完成操作。
主要代码:void openAccount()//开户函数{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 开户业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用开户业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;cout<<"\t\t请输入你的用户名:";cin>>user[st].n;cout<<"\t\t请输入你的卡号:";int k1;//k1表示新用户输入的卡号cin>>k1;int a=-1;//用来做标示for(int i=0;i<st;i++){if(user[i].k==k1){a++;}}if(a==-1){user[st].k=k1;//将k1的数值赋值给user[st].k保存起来cout<<"\t\t请输入你的性别:";char xb[5];cin>>xb;strcpy(user[st].sex,xb);cout<<"\t\t请输入密码:";char m2[20];cin>>m2;strcpy(user[st].mm,m2);//保存用户输入可以包含字符的密码cout<<"\t\t请输入你的开户金额:";float km;cin>>km;//km表示用户的开户金额user[st].je=km;//je将开户时的金额赋值给user[st].je保存if(km<10){cout<<"\t\t你输入的金额小于10元或输入有误!\n";}else{cout<<"\t\t恭喜你,开户成功!\n"<<endl;cout<<"\t\t你的用户名为:"<<user[st].n<<endl;cout<<"\t\t你的卡号为:"<<user[st].k<<endl;cout<<"\t\t你的当前余额为:"<<user[st].je<<endl;cout<<"\n"<<endl;st++;//用于统计新开用户后现有的用户数}}else{cout<<"\t\t你输入的卡号已存在!请核实!\n"<<endl;}}缴费业务模板:主要提供给用户缴费服务关键代码:cout<<"\t\t请输入你要缴费的金额:";float j1;//j1表示用户存款时存取的金额cin>>j1;user[a].je=user[a].je+j1;cout<<"\t\t恭喜你,缴费成功!当前余额为:"<<user[a].je<<endl; 取款业务模板:主要功能用于用户的提款cout<<"\t\t请输入你要取出的金额:";float j1;//j1表示用户粗款时存取的金额cin>>j1;if(j1>user[a].je){cout<<"\t\t\a\a\a你输入账户余额仅为:"<<user[a].je;}else{user[a].je=user[a].je-j1;cout<<"\t\t取款成功!当前余额为:"<<user[a].je<<endl;查询余额业务模板:主要提供用户余额的查询服务cout<<"\t\t当前余额为:"<<user[a].je<<endl;查询个人信息业务模板:主要提供用户个人信息的模板cout<<"\t\t\t用户名:"<<user[a].n<<endl;cout<<"\t\t\t性别:"<<user[a].sex<<endl;cout<<"\t\t\t卡号:"<<user[a].k<<endl;cout<<"\t\t\t当前余额:"<<user[a].je<<endl;转账业务模板:提供用户转取个人金额服务的模板关键代码:cout<<"\t\t请输入你要转入的用户的账号:";int m2,b=-1;//b用来标示cin>>m2;for(int i=0;i<st;i++){if(user[i].k==m2){b=i;}} Array if(b!=-1){cout<<"\t\t你要转入用户的信息:\n"<<endl;cout<<"\t\t姓名:"<<user[b].n<<endl;cout<<"\t\t性别:"<<user[b].sex<<endl;cout<<"\t\t\a是否继续??继续请按任意键"<<endl;char n;n=getch();cout<<"\n\t\t请输入你要转取的金额:";float j1;//j1表示用户存款时存取的金额cin>>j1;if(j1>user[a].je){cout<<"\t\t你的账户余额不足,不能进行转账!"<<endl;}else{user[a].je=user[a].je-j1;cout<<"\t\t\a转账成功!当前你账户余额为:"<<user[a].je<<endl;}对卡服务模板:主要提供用户操作完毕后退卡的服务主要代码:cout<<"\t\t按Enter键返回主菜单!\n"<<endl;getchar();system("cls");代码:4.3 ATM自动取款机模拟程序(面向对象)#include<iostream.h>#include<stdio.h>#include<stdlib.h>class ATM{public:char name[10];//保存用户姓名long cardID;//保存卡号long psw;//密码ATM(){cardID=123123;psw=123;money=100;}void openAccount()//开户函数{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 开户业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用开户业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;cout<<"\t\t请输入您的姓名:"<<endl;cin>>name;cout<<"\t\t请输入您的卡号:"<<endl;cin>>cardID;cout<<"\t\t请输入您的密码:"<<endl;cin>>psw;cout<<"\t\t请输入您的预存金额:"<<endl;cin>>money;cout<<"\t\t恭喜您,开户成功!\n"<<endl;}void saveMoney()//缴费{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 存款业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用存款业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;int money1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID &&psw1==psw){cout<<"\t\t请输入您的存款金额:";cin>>money1;money=money+money1;cout<<"\t\t取款成功,卡上余额为:"<<money<<endl;}else{cout<<"\t\t您输入的卡号或密码有误!"<<endl;}}void takeMoney()//取款{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 取款业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用取款业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;int money1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t请输入您取款的金额:";cin>>money1;money=money-money1;cout<<"\t\t取款成功,您卡上余额为:"<<money;}else{cout<<"\t\t温馨提示:您的卡号或密码错误,注意密码尝试三次后将被吞卡!\n"<<endl;}}void query()//查询余额{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 查询余额业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用查询余额业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long psw1;cout<<"\t\t请输入您的卡号:";cin>>cid;cout<<"\t\t请输入您的密码:";cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t卡上余额为:"<<money<<endl;}else{cout<<"\t\t您的卡号或密码错误!\n";}}void transfer()//转账{system("cls");cout<<"\t************************************\n"<<endl;cout<<"\t* 转账业务*\n"<<endl;cout<<"\t************************************\n"<<endl;cout<<"\t欢迎使用转账业务,请按照提示操作!\n"<<endl;cout<<"\n"<<endl;long cid;long bcid;long psw1;int money1;cout<<"\t\t请输入您的卡号:"<<endl;cin>>cid;cout<<"\t\t请输入您的密码:"<<endl;cin>>psw1;if(cid==cardID && psw1==psw){cout<<"\t\t请输入您要转账的卡号:"<<endl;cin>>bcid;cout<<"\t\t请输入您要转账的金额:"<<endl;cin>>money1;money=money-money1;cout<<"\t\t转账成功!您卡上余额为:"<<money<<endl;}else{cout<<"\t\t您的卡号或者密码错误!"<<endl;}}int print1(){return cardID;}int print2(){return psw;}private:int number;int password;int money;};void main(){ATM per;int i=0,n,psw;int cardID;cout<<"\t*************************************************\n"<<endl;cout<<"\t* ICBC *\n"<<endl;cout<<"\t* 欢迎进入中国工商银行*\n"<<endl;cout<<"\t* ATM自助服务系统*\n"<<endl;cout<<"\t*************************************************\n"<<endl;cout<<"\n"<<endl;cout<<"请输入您的卡号:";cin>>cardID;cout<<"请输入您的密码:";cin>>psw;for(;;){if(cardID==per.print1 () &&psw==per.print2 ()){cout<<"请选择您要办理的手续:\n";cout<<"1.开户\n";cout<<"2.缴费\n";cout<<"3.取款\n";cout<<"4.查询\n";cout<<"5.转账\n";cout<<"6.退出\n";cout<<"请选择你要办理的业务:";cin>>n;if(n==6)break;switch(n){case 1:void openAccount();//开户break;case 2:void saveMoney();//缴费break;case 3:void takeMoney();//取款break;case 4:void query();//查询余额break;case 5:void transfer();//转账default:cout<<"你的输入有误,请输入1--7之间的数:\n";continue;}}else{for(i=1;i<3;i++){cout<<"密码或账号错误,请重新输入"<<endl;cout<<"请输入您的卡号:";cin>>cardID;cout<<"请输入您的密码:";cin>>psw;if(cardID==per.print1 () &&psw==per.print2 ())break;elsecontinue;}if(i==3){cout<<"您的密码尝试次数已达到上限,卡已被系统吞吃。
模拟自动取款机(ATM)CPPT课件
二、案例分析
➢ 本案例涉及一个银行卡和ATM机之间的“对话”。 需要处理两个对象,即ATM和银行卡,因此可以 定义两个类来解决这个问题。
➢ ATM机类有“单笔取款最高限制”、“每日取款 总金额限制”、“余额”等基本属性。需要实现 “核对密码”、“修改密码”、“取款”、“查 询信息”、“退出系统”、“锁机吞卡”等功能。 将这些操作定义为ATM机类的成员函数。
It'S An Honor To Walk With You All The Way
演讲人:XXXXXX
时 间:XX年XX月XX日
41
目录
目退录出
27
目录
目退录出
28
目录
目退录出
29
目录
目退录出
30
目录
目退录出
31
目录
目退录出
32
目录
目退录出
33
目录
目退录出
34
目录
目退录出
35
目录
目退录出
36
目录
目退录出
37
目录
目退录出
38
目录
目退录出
五、案例总结与提高
➢ 案例总结
模拟ATM详细设计以及编码实现
ATM 需求分析Task 1 .用户界面一个当地银行打算安装一个新的Automated teller machine (A TM)自动取款机,允许用户进行基本的财政交易。
每一个用户只能有一个账户在银行里。
A TM用户应该能够查看他们的账户余额,取钱以及存钱的信息。
A TM的用户界面应该包含下面几个部分:1)一个给用户显示信息的屏幕2)一个接收用户输入数字的键区3)一个出钱的接口,可以出钱币4)一个存储槽能接收用户的存折界面如下图1.1所示。
图1.1 ATM用户界面Task 2. 用户验证A TM的周期包含通过账号和个人身份数字验证用户的有效性,创建和执行财政交易。
为了验证用户以及执行财政交易,A TM需要和存储在电脑上的银行账户信息数据交互。
对于每一个银行账户,数据库存储一个账号,一个密码,一个账户余额。
当第一次接触A TM的时候,用户应该体验下面几个事件:1)屏幕显示欢迎页面,提示用户输入账号。
2) 通过数字键区用户输入五位的账号。
3) 屏幕提示用户输入个人身份数字(密码)4) 用户在键区输入五位的用户身份号码。
5) 如果用户输入有效的账号和正确的密码,屏幕会显示主菜单。
如果用户输入无效的账号或者是错误的密码,屏幕会显示一个错误信息提示用户,然后ATM 返回第一步,重新进行验证的过程。
Task 3. 业务流程在A TM对用户验证后,将会出现主菜单界面。
主菜单应该包含三项操作:查询余额信息,取款和存款。
应该包含另外一个选项就是用户可以退出系统。
用户可以选择其中一项来进行操作(通过输入1,2,3),或者退出系统(通过输入4)。
A TM主界面如下图1.2所示。
图1.2 ATM主界面1.如果用户输入选项1 将查询余额,屏幕将会显示账户里的余额。
这一步是A TM系统从数据库中查询出来然后显示到系统界面上。
2.如果用户输入选项2 取款,以下几个步骤将会描述发生的事件:1)屏幕将会显示一个菜单,菜单包括标准的取款数目,以及取消交易的选项。
java课程设计-ATM柜员机模拟程序
java课程设计-ATM柜员机模拟程序ATM柜员机模拟程序文档1、简介1.1 目的1.2 背景1.3 范围2、系统需求分析2.1 功能需求2.1.1 用户身份认证2.1.2 查询账户余额2.1.3 存款2.1.4 取款2.1.5 转账2.1.6 交易明细查询2.1.7 修改密码2.2 非功能需求2.2.2 可靠性2.2.3 可维护性3、概要设计3.1 系统结构3.1.1 用户界面模块 3.1.2 业务逻辑模块 3.1.3 数据访问模块 3.2 类图3.3 时序图3.4 数据库设计4、详细设计4.1 用户身份认证模块设计 4.1.1 输入验证4.1.2 身份验证4.2 查询账户余额模块设计 4.2.1 数据库查询4.3 存款模块设计4.3.1 输入验证4.3.2 更新账户余额 4.4 取款模块设计4.4.1 输入验证4.4.2 更新账户余额 4.5 转账模块设计4.5.1 输入验证4.5.2 更新账户余额 4.6 交易明细查询模块设计 4.6.1 数据库查询4.6.2 显示交易明细 4.7 修改密码模块设计4.7.1 输入验证4.7.2 更新密码5、测试计划5.1 单元测试5.2 集成测试5.3 系统测试5.4 用户验收测试6、部署计划6.1 环境要求6.2 部署步骤7、维护与支持7.1 维护流程7.2 支持渠道8、附件8.1 用户界面设计稿8.2 数据库设计文档9、法律名词及注释9.1 ATM(Automatic Teller Machine):自动柜员机9.2 用户身份认证:通过用户输入的身份信息进行验证确认用户身份的过程9.3 查询账户余额:用户查询银行账户中的可用余额的操作9.4 存款:用户将现金存入银行账户的操作9.5 取款:用户从银行账户中取出指定金额的现金的操作9.6 转账:用户将一定金额从自己的账户转移到其他账户的操作9.7 交易明细查询:用户查询银行账户的交易明细记录的操作9.8修改密码:用户修改自己的银行账户密码的操作。
C++模拟ATM机存取款管理系统设计
温馨提示程序语言:C、C++、C#、Python(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的数据结构)C++语言项:STL库(黑体标明表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015均可通过编译。
(浅蓝色字体表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:241行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
《面向对象程序设计》课程设计报告书设计题目:模拟ATM机存取款管理系统设计指导老师:学生班级:学生学号:学生姓名:同组人员:时间:2017.12.课程设计任务书第一章概述使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大的便利。
本文就以C++语言设计一项简单的模拟ATM柜员机程序。
运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123456)后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功能。
案例十五 模拟自动取款机(ATM)
目录
目退录出
➢ 案例提高
➢ 在全面理解的根底上,读者可以对本 案例作一些改动与提高。
➢ 读者可以继续添加一些功能,例如代 缴 费、水电费、煤气费等功能,使得 该自动取款机变成一个功能完善的自 动柜员机。
目录
目退录出
目录
目退录出
目录
目退录出
目录
目退录出
2.主程序设计
两个类ATM类及BankCard类可以完成几 乎全部的功能,自动取款机主程序流 程如下图。
目录
目退录出
主程序流程图
目录
目退录出
➢ 在主函数main()中,先建立了一个BankCard 类的对象模拟银行卡,然后建立一个ATM 类的对象模拟自动取款机,最后调用ATM 类的成员函数welcome()启动登录界面。取 款、查余额等工作全部交由两个类来完成。
+BankCard(in Name[] : char, in Num[] : char, in Money : float, in Password[] : char) #* getname() : char #* getnum() : char #* getpasswd() : char #getmoney() : float #setpasswd(in pwd[] : char) #setmoney(in m : float)
目录
目退录出
目录
目退录出
目录
目退录出
目录
目退录出
ATM类图
ATM
-tim es : int -totalm oney : float -leftm oney : float -oncem oney : float -& B ankC ardA tA T M : B ankC ard
第21组ATM机模拟系统
ATM机模仿体系设计文档目次第一章项目名称及义务 (2)1.1 项目名称 (2)1.2 项目近况 (2)项目意义感化............................ 错误!未定义书签。
第二章项目情况与技巧 (3)项目标情况.............................. 错误!未定义书签。
项目标硬件情况 (3)项目标开辟情况 (3)2.2 项目技巧&架构 (3)第三章项目标功效性需求(待完美) (4)3.1 功效具体解释 (4)第四章项目标非功效性需求 (5)4.1 程序外不雅解释 (5)第五章项目可行性剖析 (6)5.1 市场剖析及猜测 (6)5.2 数据流图 (7)5.3 用况图 (7)5.4 流程图 (10)第六章项目团队人员需求 (10)6.1 人员需求 (10)第七章项目标时光安插 (10)7.1 时光安插 (10)第一章项目名称及义务1.1 项目名称ATM机模仿体系1.2 项目近况ATM机治理体系是银行营业流程进程中十分主要且必备的环节之一,在银行营业流程当中起着承上启下的感化,其主要性不问可知.但是,今朝很多银行在具体的一些营业流程处理进程中仍然运用手工操纵的方法来实行,不但费时.辛苦,效率低下,并且无法达到幻想的后果.本文针对上述问题,采取软件工程的开辟道理,根据软件流程进程规范,按照需求剖析.概要设计.具体设计.程序编码.测试.软件运用等进程开辟了一个银行ATM机模仿体系.便利不熟习银行ATM机体系的人熟习体系,以便在今后的生涯中可以流程的运用运用ATM机,并且锤炼了我们的合作着手才能,为今后的程序设计打下基本.第二章项目情况与技巧项目标硬件情况操纵体系:Windows XP/7;Mac OXCPU:1G内存:512M以上项目标开辟情况操纵体系:Windows 2003/7数据库:SQL Server 2005数据库衔接驱动: Java Project 集成开辟情况2.2 项目技巧&架构运用数据库技巧编写银行的客户数据,包含客户的账号.暗码.消失银行的钱的余额等一系列数据,运用Java技巧编写ATM机模仿体系的主界面以及焦点功效并且采取C/S架构,做到流利的人机交互.C/S构造,即Client/Server(客户机/办事器) 构造,是大家熟知的软件体系体系构造,经由过程将义务合理分派到Client端和Server端,下降了体系的通信开销,须要装配客户端才可进行治理操纵.它是软件体系体系构造,经由过程它可以充分运用两头硬件情况的优势,将义务合理分派到Client端和Server端来实现,下降了体系的通信开销.今朝大多半运用软件体系都是Client/Server情势的两层构造,因为如今的软件运用体系正在向散布式的Web运用成长,Web和Client/Server运用都可以进行同样的营业处理,运用不合的模块共享逻辑组件;是以,内部的和外部的用户都可以拜访新的和现有的运用体系,经由过程现有运用体系中的逻辑可以扩大出新的运用体系.这也就是今朝运用体系的成长偏向.第三章项目标功效性需求(待完美)3.1 功效具体解释登陆:客户输入账号暗码之后点击登录可以或许登入到ATM机主界面查询残剩金额:主界面上有按钮提醒客户可以检讨银行卡里面的残剩金额取款:主界面上有按钮可以提醒客户取款转帐:主界面上有按钮可以提醒客户转账,并且可以输入转入账户的银行卡号修正暗码:主界面上有按钮可以提醒客户修正暗码打印凭条:在做完一系列操纵之后可以有按钮提醒是否打印凭条第四章项目标非功效性需求4.1 程序外不雅解释运用JAVA开辟情况编写程序的界面,JAVA对于程序界面的编写比较呆板,不克不及做出比较美不雅的界面,只能尽量使界面的计划加倍合理人道化.界面设计如下:1. 在未运用时显示待机界面2. 按随意率性键进入登录界面,输入准确的帐号和暗码3. 暗码输入错误,弹出暗码错误界面.提醒从新输入暗码4. 登录成功落后入选择界面,选择须要进行的营业.根据不合选择进入以下界面5. 假如选择取款,进入取款界面.输入取款面额.提醒最高面额为5000元.选择撤消进入取卡界面,选择返回进入选择界面6. 生意营业成功后,提醒掏消失金.点持续进入选择界面.点撤消进入打印界面7. 假如选择余额查询界面,显示余额.并提醒可用金额8. 假如选择转帐,进入转帐界面.提醒输入转帐帐号和确认帐号9. 生意营业成功,选择持续进入选择界面,选择撤消进入打印界面10. 假如选择修正暗码,进入暗码修正界面.并提醒输入新暗码和确认新暗码11. 生意营业成功,选择持续进入选择界面,选择撤消进入取卡界面12. 打印界面,打印取款和转帐生意营业的信息,选择否跳过13. 取卡界面,退出生意营业第五章项目可行性剖析5.1 市场剖析及猜测固然ATM机已经消失了很长的一段时光,但是仍然有很多人没有运用或者很少运用这种机械,对于ATM机的操纵不熟习,为此,我们设计了这个软件,来便利没有运用过的人熟习ATM机的操纵流程,一边在今后的生涯中可以或许更便当5.2 数据流图DFD/0层图DFD/1层图DFD/2层图5.3 用况图用况名称:取款介入的履行者:客户,ATM机前置前提:无事宜流:1.客户点击登录按钮时用况开启2.客户输入账号,暗码3.磨练账户是否输入准确,假如有错回到第2步,不然持续4.磨练暗码是否输入准确,假如有错回到第2步,不然持续5.在数据库中添加登录记载,用况停止修正信息:数据库中的上一次登录时光信息用况名称:存款介入履行者:客户,ATM机前置前提:一个正当的客户已登录到该体系事宜流:1.当用户选择存款功效时用况时开端2.输入存款金额,点击确认3.在客户对应的账户添加存款金额4.在数据库中添加存款记载,用况停止修正信息:数据库中客户对应账户的存款余额用况名称:检讨余额介入履行者:客户,ATM机前置前提:一个正当的客户已登录到该体系事宜流:1.当用户选择检讨余额功效时用况时开端2.点击检讨余额,然后体系显示客户对应账户上面的各类币值的余额3.在数据库中添加客户检讨余额的记载,用况停止修正信息:数据库中客户对应账户的检讨余额记载用况名称:修正暗码介入履行者:客户,ATM机前置前提:一个正当的客户已登录到该体系事宜流:1.当用户选择修正暗码功效时用况时开端2.输入旧暗码3.输入新暗码4.在一次输入新暗码5.假如两次输入的新暗码不准确则回到第3步,不然持续6.显示修正成功,在数据库中添加修正记载,用况停止修正信息:客户对应账户的暗码用况名称:转账介入履行者:客户,ATM机前置前提:一个正当的客户已登录到该体系事宜流:1.当用户选择转账功效时用况时开端2.输入要转入账户的账号3.在一次输入要转入账户的账号4.假如两次输入的账号不一致则回到第2步,不然持续5.点击确认,显示客户本身账号的余额6.在数据库中添加转账记载,用况停止5.4 流程图第六章项目团队人员需求6.1 人员需求小构成员共4人,每小我都必备JAVA软件开辟所必须的常识,每小我完成ATM机模仿体系主界面的一个功效,最后交由组长整合第七章项目标时光安插7.1 时光安插4月份中旬写出需求剖析.概要设计,然后在4月份下旬计划出部分功效的具体设计,在5月份出写出大部分按钮的程序编码,并且在5月底进行软件测试以及软件运用,请一些同窗来模仿客户进行最后的软件测评,6月初交出程序的源代码,以及软件的打包程序.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟ATM机存取款
管理系统
课程设计
题目: ATM柜员机系统专业:计算机科学与技术学号:
班级:
学生姓名:
一可行性研究
1编写目的
1.1 目的
这份可行性研究报告是对ATM柜员机的可行性研究分析及指出存在的必要性。
1.2 预期的读者
软件管理人员、开发人员、维护人员、顾客用户。
2 问题定义
2.1 ATM柜员机介绍
ATM柜员机使用与ATM机相似的图形用户界面,当用户在登录界面输入给定的卡号和密码时,系统能登录ATM柜员机系统,经过数据链接操作来达到独立的客户与机器交互从而进行取款、存款、转账、查询余额、修改密码等业务办理的目的。
2.2 基本目标
ATM柜员机主要是由各个实体窗口组成,它是由登录页面、选择服务、存款、取款、查询余额、修改密码以及查看交易记录等功能。
它的各种按钮的事件和功能能够简单的模拟ATM柜员机的要求,让用户在电脑上能够轻松体验ATM取款机的使用流程,以达到易学易用的效果,避免用户在真实的ATM机上出现失误,带来不必要的损失。
2.3 经济目标
由于本软件的主要背景(为课程设计)在经济上不注重直接的经济收益,而是注重小组成员整体水平的提高。
3 可行性研究的方法及评价度
3.1 可行性研究所采用的方法
根据调查,本小组成员多数有JAVA编程经验,也具备MY SQL的使用经验,因而开发此系统采用JAVA结合MY SQL的数据库系统开发。
3.2 评价尺度
此软件暂时只是一个初级产品,实现的功能也只能完成初步的工作。
4 工作产品
4.1 设计目标
为了减少银行的业务处理压力,尽量节省人们取钱所花费的时间
和价值;而且尽可能的防止一些非法的业务操作,同时它的使用能够有效解决用户信息和资金信息的繁杂问题。
4.2 设计及约束条件
a. ATM面向客户十分广泛,因此界面设计要力求简单明了,只要认识汉字并具备实际行动能力的人,就能够顺利进行操作,对于用户输入的数据,系统能进行严格的数据检验,尽可能的排除人为地错误。
b. 开发人员应具备相应的开发能力,懂C++ 与java编程,小组成员能够根据计划的要求,按时完成系统的每一部分,保证后面的开发进程能够顺利进行。
但根据现有条件和知识,我们还得在技术方面进行学习和提高。
4.3 工作原理
a. 先建立数据库且追建数据库的驱动程序。
b. 在使用时,分为后台管理和前台操作。
c. 用户输入账户基本信息进行登录,然后方能进行下一步操作。