ATM柜员机模拟实现分析

合集下载

c++ATM机仿真设计实验报告

c++ATM机仿真设计实验报告

一、实验名称:ATM机仿真程序设计二、实验目的:实验目的使学生掌握类的简单设计及实现三、实验仪器:PC机,人手一机四、实验原理及内容4.1 实验设计:运用C++语言描述ATM机类和银行卡类,每个类均包含数据成员和成员函数,并运用对象的引用和友元类的知识。

注重面向对象程序设计理论知识的理解与实际的动手编程能力。

运用面向对象的理念实现模拟自动取款机使用过程中的界面和用户交互过程。

实验预定要求:1)正确性和健壮性:即此程序对一切合法的的操作都得能满足规格说明要求的结果,对不合法的操作也要有正确的处理措施,使程序严谨,保证用户的信息和财产安全;2)可读性:程序要尽量简明扼要,便与相关人员调试和修改;3)效率性:要求本程序执行时间尽可能短,占用的内存空间尽可能的少。

4.2 ATM系统实现:1)核对用户卡号、密码:核对用户输入的密码与卡号是否对应正确;2)修改密码:修改银行卡密码;3)取款功能4)存款功能5)查询账户信息:显示用户名、卡号、余额信息;6)退出终端系统:操作完成,退出;7)锁机吞卡:操作不当,密码输入错误超过三次,退出系统。

4.3系统分工:4.4 函数流程图:登录终端界面(主程序)流程图输入卡号、密码开始判断卡号密码是否正确进入账号操作菜单卡号密码输入是否超过3次关闭终端退出1.修改密码2.取款功能3.存款功能4.查询余额0.退出系统NYNY修改密码(核心算法)流程图:取款功能(核心算法)流程图:开始N输入取款金额是否为负数Y是否>5000Y是否为100的倍数Y账户中余额是否足够Y更新账户信息存款操作成功结束实验源代码清单:#include <iostream>#include<iomanip>#include<string>#include <cstring>#include <stdio.h>#include <stdlib.h>using namespace std;class consumer //用户定义{public:friend class ATM;consumer(char Name[],char Num[], float Money,char Password[]); protected:char* get_name();char* get_kahao();char* get_passwd();float get_money();void set_passwd(char pwd[]);void set_money(float m);void set_money2(float a);private:char passwd[10]; //用户密码char name[20]; //用户姓名char kahao[20]; //用户卡号float money; //用户余额};class ATM //ATM终端定义{public:A TM(consumer & cn):cnsm(cn){}void welcome(); //登陆终端界面bool check_passwd(char n[],char pwd[]); //核对用户密码void change_passwd(); //修改用户密码void fetchmoney(); //取款功能void deposit(); //存款功能void information(); //查询信息void exitATM(); //退出终端系统void functionshow(); //功能界面void lock(); //输入错误,退出终端private:int times; //记录密码输入次数consumer &cnsm;};int main(){consumer one("wangrunke","22889350248",10000.00F,"666666"); //构造一位用户,信息包//括:用户姓名、用户卡号、用户账户余额、用户密码A TM atm(one);atm.welcome();return 0;}consumer::consumer(char Name[],char Kahao[], float Money,char Password[])//构造函数,建立账户{strcpy(name,Name);strcpy(kahao,Kahao);money=Money;strcpy(passwd,Password);}float consumer::get_money() //获取余额{return money;}char*consumer::get_name() //获取用户名{return name;}char*consumer::get_kahao() //获取用户卡号{return kahao;}char*consumer::get_passwd() //获取用户密码{return passwd;}void consumer::set_passwd(char pwd[])//设置用户密码{strcpy(passwd,pwd);}void ATM::welcome() //登录用户界面{times=0;cout<<"\n\n\n\t\t*欢迎使用银行ATM自动取款机*\n\n"<<endl;char pwd[6],num[20],ch;int i=0;do{i=0;cout<<endl<<"\t\t请输入卡号:";do{cin.get(ch);num[i++]=ch;}while(ch!='\n');num[i-1]='\0';i=0;cout<<"\t\t请输入密码:";do{cin.get(ch);pwd[i++]=ch;}while(ch!='\n');pwd[i-1]='\0';if(!check_passwd(num,pwd)){cout<<"\n\t\t你输入的卡号或密码有误,请重新输入!"<<endl;times++;}elsefunctionshow();}while(times<3);lock();}bool ATM::check_passwd(char num[],char pwd[]){if(strcmp(num,cnsm.get_kahao())==0&&strcmp(pwd,cnsm.get_passwd())==0) return true;elsereturn false;}void ATM::functionshow(){system("cls"); //每次执行一次操作进行清屏int n;do{cout <<endl<<"\n\n\n\t\t******欢迎进入用户界面******\t\t "<<endl;cout<<"\n\n\t\t*1.修改密码*"<<endl<<"\t\t*2.取款功能*"<<endl<<"\t\t*3.存款功能*"<<endl<<"\t\t*4.查询余额*"<<endl<<"\t\t*0.退出系统*"<<endl;cout<<"\t\t 功能选项(0-3):";cin>>n;while(n<0||n>4){cout<<"\t\t请在范围内输入功能选项!"<<endl;cout<<"\t\t 功能选项(0-4):";cin>>n;}switch(n){case 0: exitA TM();break;case 1: change_passwd();break;case 2: fetchmoney();break;case 3: deposit();break;case 4: information();break;}}while(true);}void ATM::change_passwd(){system("cls");char pwd[6],repwd[6];times=0;do{cout<<"\n\n\n\t\t******修改密码******"<<"\n\t\t请输入原密码:";cin>>pwd;if(!check_passwd(cnsm.get_kahao(),pwd))times++;elsebreak;}while(times<3);if(times==3)lock();int k=0;int t=0;do{k=0;cout<<"\n\t\t请输入新密码:";cin>>pwd;int g=0;int v=0;g=strlen(pwd);if(g!=6){k=1;cout<<"\n\t\t密码为6位数字!"<<endl;}for(int i=0;i<g-1;i++){if(pwd[i]==pwd[i+1])v=v+1;}if(v==g){k=1;cout<<"\t\t原密码与新密码不能一致!"<<endl;}if(g==6&&v!=g){cout<<"\n\t\t请再次输入新密码(两次保持一致):";cin>>repwd;if((t=strcmp(pwd,repwd))!=0)cout<<"\t\t你输入的两次密码不一样,请重新输入!"<<endl;}}while(t!=0||k==1);cnsm.set_passwd(pwd);cout<<"\n\n\t\t温馨提示:密码修改成功"<<endl;cout<<"\n\n\t\t";system("pause");system("cls");}void ATM::fetchmoney(){system("cls");float m;char ch;do{cout<<"\n\n\n\t\t ******取款功能******"<<"\n\t\t本ATM终端机只能取出面值为100元的人民币"<<endl<<"\t\t温馨提示:取款金额为100的倍数"<<endl<<"\t\t 每次最多取款5000元"<<"\n\n\t\t 请输入取款金额:";cin>>m;while(m<=0){cout<<"\n\t\t请不要输入负数或0!"<<endl;cout<<"\t\t" ;system("pause");cout<<"\n\t\t 请重新输入取款金额:" ;cin>>m;}if(m>5000){cout<<"\n\t\t对不起,本A TM终端机一次最多取5000元"<<endl;cout<<"\t\t 若金额超过1万元请在柜台取款" <<endl;cout<<"\t\t 如果给您带来不便,还请谅解";}else{if((int)m%100!=0){cout<<"\n\t\t对不起,取款金额为100的倍数"<<endl;}else{if(cnsm.get_money()-m<0){cout<<"\t\t对不起,你的账户余额不足!"<<endl;}else{cout<< endl<<"\t\t *操作成功,请取回款" <<endl;cnsm.set_money( m );}}}cout<<"\n\t\t ***账户现有余额: "<<cnsm.get_money()<<endl;cout<<"\n\t\t是否要继续该项操作(Y/N):";cin>>ch;while(ch!='n'&&ch!='Y'&&ch!='y'){cout<<"(Y/N):";cin>>ch;}}while(ch=='y'||ch=='Y');system("cls");}void ATM::deposit(){system("cls");float a;char b;do{cout<<"\n\n\n\t\t ******存款功能******"<<"\n\t\t本ATM终端机只能存入面值为50或100元的人民币"<<endl<<"\t\t温馨提示:存款金额为50的倍数"<<endl<<"\t\t 每次最多存款5000元"<<"\n\n\t\t 请输入存款金额:";cin>>a;while(a<=0){cout<<"\n\t\t请不要输入负数或0!"<<endl;cout<<"\t\t" ;system("pause");cout<<"\n\t\t 请重新输入存款金额:" ;cin>>a;}if(a>5000){cout<<"\n\t\t对不起,本A TM终端机一次最多存5000元"<<endl;cout<<"\t\t 若金额超过1万元请在柜台存款" <<endl;cout<<"\t\t 如果给您带来不便,还请谅解";}else{if((int)a%50!=0)cout<<"\n\t\t对不起,存款金额为50的倍数"<<endl;else{cout<< endl<<"\t\t *操作成功,存款完成" <<endl;cnsm.set_money2 (a);}}cout<<"\n\t\t ***账户现有余额: "<<cnsm.get_money()<<endl;cout<<"\n\t\t是否要继续该项操作(Y/N):";cin>>b;while(b!='n'&&b!='Y'&&b!='y'){cout<<"(Y/N):";cin>>b;}}while(b=='y'||b=='Y');system("cls");}void ATM::information(){system("cls");cout<<"\n\n\n\t\t******************账户信息****************"<<endl;cout<<"\n\n\t\t 用户姓名"<<" 卡号"<<" 余额"<<endl;cout<<"\t\t"<<cnsm.get_name()<<" "<<cnsm.get_kahao()<<" "<<cnsm.get_money()<<endl;cout<<"\n\n\t\t******************************************"<<endl;cout<<"\n\n\t\t";system("pause");system("cls");}void ATM::lock(){system("cls");cout<<endl<<"\n\n\n\t\t感谢使用本ATM终端机!"<< "\n\t\t请取回您的银行卡......."<<endl;}void ATM::exitATM(){system("cls");cout<<"\n\n\n\t\t成功退出ATM终端系统!欢迎使用!"<<endl;exit(0);}void consumer::set_money (float m){money=money-m;}void consumer::set_money2 (float a){money=money+a;}五、实验结果(实验数据、曲线等)5.1 登录用户界面:三次密码输入错误,执行lock 函数,退出终端。

C++编写的ATM自动取款机模拟程序分析

C++编写的ATM自动取款机模拟程序分析

C++编写的ATM自动取款机模拟程序分析第一篇:C++编写的ATM自动取款机模拟程序分析// ************************************ // * * // * function.h * // * * // ************************************ #includeclass consumer;class ATM // ATM取款机{ public: ATM(consumer& cn):cnsm(cn){ } void welcome();// 登陆界面bool check_passwd(char n[],char pwd[]);// 核对密码void change_passwd();// 修改密码 void fetchmoney();// 取款void information();// 查询信息 void exitATM();// 退出系统void functionshow();// 功能界面 void lock();// 锁机 private: int times;// 记录密码输入次数consumer& cnsm;};class consumer // 用户 { public: friend class ATM;consumer(char Name[],char Num[], float Money,char Password[]);protected: char* get_name();// 取得姓名 char* get_num();// 取得卡号 char* get_passwd();// 取得密码float get_money();// 取得余额void set_passwd(char pwd[]);// 设置密码void set_money(float m);// 取钱 private: char passwd[8];// 用户密码 char name[20];// 用户姓名 char num[20];float money;};// ************************************ // * * // * consumer类的成员&&函数 * // * * // ************************************ #include“function.h” #includeconsumer::consumer(char Name[], char Num[],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;}char* consumer::get_num(){ return num;}char* consumer::get_passwd(){ return passwd;}void consumer::set_money(float m){ money-=m;} voidconsumer::set_passwd(char pwd[]){ strcpy(passwd,pwd);} // ************************************ // * * // * ATM类的成员&&函数 * // * * // ************************************#include “function.h” #include #include void ATM::welcome(){ times=0;cout<<“$ 欢迎使用若雪银行ATM自动取款机!~!”<”;cin>>n;while(n<1||n>4){ cout<<“请输入正确的操作序号!”<”;cin>>n;} switch(n){ case 1: change_passwd();break;case 2: fetchmoney();break;case 3: information();break;case 4: exitATM();break;} }while(true);} void ATM::change_passwd(){ char pwd[8],repwd[8];times=0;do { cout<>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;el se break;}while(times<3);if(times==3)lock();int t=0;do { cout<<“请输入新密码:”;cin>>pwd;cout<<“请再输入一次新密码:”;cin>>repwd;if((t=strcmp(pwd,repwd))!=0)cout<<“你输入的两次密码不一样,请重新输入!”<”<>m;while(m<=0){ cout<<“请输入正确的数字!”< ”;cin>>m;} if(cnsm.get_money()-m<0){ cou t<<“对不起,你的余额不足!” < ”;cin>>ch;while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y'){ cou t<<“$ >”;cin>>ch;} }while(ch=='y'||ch=='Y');} void ATM::information(){ cout<<“**********************************”< #include“function.h” void main(){ consumer c1(“jim”,“12345”,5200.3f,“123”);// 先构造一个用户ATM atm(c1);atm.welcome();}第二篇:ATM自动取款机C++课程设计C++课程设计学校:惠州学院题目:设计ATM自动取款机系统系别:电子科学系班级: 11电信2班学号: 110703229 姓名:王志勇2014年4月21日一、课程设计目的及要求1.1设计目的1.提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。

ATM用例描述及用例分析

ATM用例描述及用例分析

ATM用例描述及用例分析ATM(Automated Teller Machine)是一种自动柜员机,主要用于给客户提供各种银行服务,如取款、存款、查询余额等。

下面将对ATM的用例进行描述和分析。

用例一:取款1.用例名:取款2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:客户成功取款,系统更新账户余额5.主要流程:a.客户选择取款选项b.客户输入取款金额c.系统验证是否有足够的余额d.系统发出请求给银行核准e.系统将钞票和取款收据输出给客户f.系统更新账户余额g.用例结束用例二:存款1.用例名:存款2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:客户成功存款,系统更新账户余额5.主要流程:a.客户选择存款选项b.客户输入存款金额c.系统验证存款金额的合法性d.系统接受存款并将钞票数目和金额显示给客户确认e.客户确认无误后,系统记录存款并更新账户余额f.用例结束用例三:查询余额1.用例名:查询余额2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:系统显示客户的账户余额5.主要流程:a.客户选择查询余额选项b.系统验证客户账户信息c.系统显示客户的账户余额d.用例结束用例四:转账1.用例名:转账2.参与者:客户、受益人3.前置条件:客户已经插入银行卡并通过验证4.后置条件:客户成功转账,系统更新账户余额5.主要流程:a.客户选择转账选项b.客户输入受益人账户信息和转账金额c.系统验证转账信息的合法性d.系统更新客户账户余额和受益人账户余额e.用例结束用例五:修改密码1.用例名:修改密码2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:客户成功修改密码,系统更新客户密码5.主要流程:a.客户选择修改密码选项b.客户输入原密码以及新密码c.系统验证原密码的正确性d.系统更新客户密码e.用例结束用例六:打印账单1.用例名:打印账单2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:系统打印客户的账单5.主要流程:a.客户选择打印账单选项b.系统验证客户账户信息c.系统打印客户的账单d.用例结束用例七:查询交易记录1.用例名:查询交易记录2.参与者:客户3.前置条件:客户已经插入银行卡并通过验证4.后置条件:系统显示客户的交易记录5.主要流程:a.客户选择查询交易记录选项b.系统验证客户账户信息c.系统显示客户的交易记录d.用例结束以上是对ATM的几个主要用例进行了描述和分析。

java课程设计ATM柜员机模拟程序

java课程设计ATM柜员机模拟程序

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:ATM柜员机模拟程序院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2016-1-4-2016-1-8信息技术学院昆明学院课程设计(大作业)任务书课程设计(大作业)报告一、题目分析1.系统需求分析(1)设计目标:随着市场经济的繁荣发展,人们的物质生活得到极大的提高,手中的剩余资金也日益增多。

受传统观念影响,绝大多数人喜欢把资金投进银行,而在需要使用现金的时候再到银行提取现金。

这就导致银行业务的急剧增加。

虽然银行网点越来越多,银行的工作效率也随着信息化有较明显的增长,但是依旧不能满足广大用户的需要。

而一味的增加营业网点,从理论上虽然能稍微的缓解银行的压力,但是治标不治本,而且每增加一个网点,不仅要付出昂贵的资金成本,还需要长期投入人力资本,成本非常之昂贵。

这时候就迫切的需要一种自动的,易于普及的,低成本的设备来解决这一问题。

于是ATM机系统应运而生了。

自动柜员机,即ATM,是指银行在不同地点设置一种小型机器,利用一张信用卡大小的胶卡上的磁带记录客户的基本户口资料(通常就是银行卡),让客户可以透过机器进行提款、存款、转账等银行柜台服务,大多数客户都把这种自助机器称为自动提款机。

本文正是通过设计一个ATM模拟模拟程序来实现ATM机系统的基本功能,充分运用自己所学的Java知识进行设计编程。

(2)题目设计要求:本ATM柜员机的主要功能如下所述:要求使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:●查询余额:初始余额为10000元。

●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

●ATM存款:不能出现负存款。

●修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

c#模拟银行ATM机系统实训报告

c#模拟银行ATM机系统实训报告

C#程序开发集中实践实训报告实训项目名称:模拟银行ATM机系统专业:计算机科学与技术班级:学号:姓名:指导教师:日期:2015年6月5 日由于经济社会发展速度的大幅提高,几乎所有的银行都配备了ATM自动取款机。

人们可以随时随地进行交易,不再受银行的服务时间的约束,方便快捷。

在日常生活中,ATM机与我们关系密切。

此次C#实训所研究的课题就是模拟ATM机系统,在实训期间,我们通过编写窗口应用程序或控制台应用程序,来模拟实现ATM机的用户登录、存款、取款、更改密码的部分功能,巩固以前学过的知识,结合课本综合运用,提高自己的实践水平,增加程序开发经验。

二、实验内容在VS2010软件中新建一个窗体应用程序(模拟银行ATM机系统),通过设计窗体、添加组件,并设置事件触发方法代码,使其实现用户登录、存款、取款、更改密码的部分ATM机的简单功能。

三、实验要求1.欢迎界面:窗体显示“欢迎进入中国银行ATM机登录系统!”内容2.登录界面:用户名和密码同时正确,可登录系统,如果其中的一项输入错误,都显示登录失败3.ATM机界面:进入系统后,有两种银行卡类型供用户选择(银行储蓄卡和银行信用卡)4.储蓄卡服务界面:用户可选择服务项目(存款、取款、修改密码、退出系统)5.信用卡服务界面:用户可选择服务项目(存款、取款、修改密码、退出系统)6.存款界面:用户可输入存款金额,存款成功后,弹出提示框7.储蓄卡取款界面:用户可输入取款金额,取款成功或失败后,弹出提示框8.信用卡取款界面:用户可输入取款金额,取款成功或失败后,弹出提示框9.修改密码界面:用户可输入新密码进行修改账户密码,修改成功或失败后,弹出提示框1.认真阅读设计题目发要求,分析设计一个模拟银行ATM机系统2.编写窗体应用程序,包括各个操作界面(欢迎界面,登录界面,ATM机选择界面,储蓄卡服务界面,信用卡服务界面,存款界面,储蓄卡取款界面,信用卡取款界面,修改密码界面)3.试验程序,不断修改和完善程序,将各个功能都尽量实现4.运行程序,按照设计的步骤,实现各个窗体界面部分和功能(欢迎界面,用户登录,银行卡类型选择,选择服务项目,存款,取款,修改密码,退出系统)5.根据编写好的窗体程序,完成此次C#程序开发集中实训的实训报告五、主要源程序//欢迎界面private void button2_Click(object sender, EventArgs e){Form2 f2 = new Form2();f2.Show();this.Hide();}//登录界面private void button2_Click(object sender, EventArgs e){Form9 f9 = new Form9();string password = "123456";//初始密码string newpass=f9.textBox2.Text;//新设密码if (textBox1.Text == "张三" && textBox2.Text == password){MessageBox.Show("用户名和密码正确,请进入系统!", "提示框", MessageBoxButtons.OK);Form3 f3 = new Form3();f3.Show();this.Hide();}if (miss){missCount++;MessageBox.Show("用户名或密码错误,请重新输入!", "提示框", MessageBoxButtons.OK);textBox1.Text = "";textBox2.Text = "";}elsemiss = true;if (missCount >= 3){MessageBox.Show("用户名或密码超过三次输入错误!无法再次登录!", "提示框", MessageBoxButtons.OK);button2.Enabled = false;}}//ATM机界面private void button1_Click(object sender, EventArgs e){Form4 f4 = new Form4();f4.Show();this.Hide();}private void button2_Click(object sender, EventArgs e){Form5 f5 = new Form5();f5.Show();this.Hide();}//储蓄卡服务界面private void button1_Click(object sender, EventArgs e){Form6 f6 = new Form6();f6.Show();this.Hide();}private void button2_Click(object sender, EventArgs e){Form7 f7 = new Form7();f7.Show();this.Hide();}private void button5_Click(object sender, EventArgs e){Form1 f1 = new Form1();f1.Show();this.Hide();}private void button4_Click(object sender, EventArgs e){Form9 f9 = new Form9();f9.Show();this.Hide();}//信用卡服务界面(与储蓄卡服务界面相同)//存款界面(信用卡与储蓄卡存款界面相同)private void button1_Click(object sender, EventArgs e){Form2 f2 = new Form2();int money = 300;int total = Int32.Parse(textBox2.Text);MessageBox.Show("存款成功!账户余额为:" + (total+money) + "元", "提示框", MessageBoxButtons.OK);Form4 f4 = new Form4();f4.Show();this.Hide();}private void button2_Click(object sender, EventArgs e){textBox2.Text = "";}//储蓄卡取款界面private void button1_Click(object sender, EventArgs e){int total = 300;int money = Int32.Parse(textBox2.Text);if (money <= total){total = total-money;MessageBox.Show("取款成功!账户余额为:" + total + "元", "提示框", MessageBoxButtons.OK);Form4 f4 = new Form4();f4.Show();this.Hide();}else{MessageBox.Show("余额不足!取款失败!账户余额为:" + total + "元", "提示框", MessageBoxButtons.OK);Form4 f4 = new Form4();f4.Show();this.Hide();}}private void button2_Click(object sender, EventArgs e){textBox2.Text = "";}//信用卡取款界面private void button1_Click(object sender, EventArgs e){int total =2000;int money = Int32.Parse(textBox2.Text);if (money <= total){total= total - money;MessageBox.Show("支付(购物)成功!账户余额为:" + total + "元", "提示框", MessageBoxButtons.OK);Form4 f4 = new Form4();f4.Show();this.Hide();}else{MessageBox.Show("支付(购物)失败!账户已透支!余额为:" + total + "元", "提示框", MessageBoxButtons.OK);Form4 f4 = new Form4();f4.Show();this.Hide();}}private void button2_Click(object sender, EventArgs e){Form5 f5 = new Form5();f5.Show();this.Hide();}//修改密码界面private void button1_Click(object sender, EventArgs e){if (textBox2.Text == textBox1.Text){MessageBox.Show("密码修改成功!", "提示框", MessageBoxButtons.OK);Form3 f3 = new Form3();f3.Show();this.Hide();}else{MessageBox.Show("两次新密码输入不相同,请检查后重新输入!", "提示框", MessageBoxButtons.OK);textBox1.Text = "";textBox2.Text = "";textBox3.Text = "";}}private void button2_Click(object sender, EventArgs e){Form3 f3 = new Form3();f3.Show();this.Hide();}六、实验结果1.欢迎界面图6.1 窗体欢迎界面截图2.用户登录界面(成功、失败、失败超过三次无法登录)图6.2 用户登录成功界面截图图6.3 用户登录失败界面截图图6.4 用户登录失败三次界面截图3.ATM机界面(银行卡类型选择)图6.5 银行卡类型选择界面截图4.储蓄卡服务界面(存款、取款)图6.6 储蓄卡服务界面截图图6.7 存款界面截图图6.8 储蓄卡取款界面截图图6.9 储蓄卡服务界面截图5.信用卡服务界面(存款、取款)图6.10 信用卡服务界面截图图6.11 信用卡取款界面截图图6.12 信用卡取款提示框界面截图6.修改密码界面(成功和失败)图6.13 修改密码成功界面截图图6.14 修改密码失败界面截图7.退出系统(返回欢迎界面)七、实验总结通过这次的C#程序开发集中实训,我编程的基础更扎实了,由于间隔时间较长,课本中学到的知识大部分已经模糊,加上已经学习过的高级编程语言多种多样,我对C#的印象就越发不清楚了,但是,通过这次的实训,巩固的知识并不是一点半点,而是综合应用的巩固,是对自己全方面素质的综合磨练,再者,通过对模拟银行ATM机系统的深入了解,对C#的掌握又深了一层。

基于JAVA的模拟ATM系统的设计与实现【开题报告】

基于JAVA的模拟ATM系统的设计与实现【开题报告】

开题报告计算机科学与技术基于JAVA的模拟ATM系统的设计与实现一、综述本课题国内外研究动态,说明选题的依据和意义ATM 是Automatic Teller Machine的缩写,即自动柜员机。

它是有计算机控制的持卡人自我服务型的金融专用设备。

现代意义上的ATM系统始于二十世纪60年代末,最早的ATM机只是现钞发放机,1976年,英格兰的巴克莱银行安装了第一台现钞发放机,它并没有使用磁条卡,而是向用户发行纸券,用户将纸券插入机器,取出面值为10英镑的钞票。

现代ATM机的想法来自于唐·维泽尔,1968年,当他在达拉斯银行排队等候的时候,萌发了这个想法。

之后,他建议自己的雇主Docutel研制这种机器。

研发中最重要的过程是将信息加密后存储在磁条上,然后将磁条加在塑料卡片上。

研制成功后,Doctuel将ATM机卖给了纽约化学银行。

1969年,化学银行把这个机器安装在洛克菲勒中心的办公室,虽然Docutel的ATM机器使用了现代的磁条技术,但和今天的技术相比,还是显得比较原始,它只能用于取现钞,而且只能脱线使用,机器用特殊的方法打印下交易的纪录。

直到20世纪70年代初,ATM技术才发展到我们今天的水平。

起初,ATM主要用来处理信用卡,到了1972年,克里夫兰城市国家银行成功地引进了一种可在ATM机上使用的没有透支功能的卡片。

如今,ATM机发展了更多功能,包括存钱、支票和储蓄账户之间相互转账,付款等等。

同时,ATM实现了与计算机相连接,使客户可以实时地了解账户余额和支付情况。

多台ATM机与银行主机相连,就逐渐形成了ATM网络。

目前全球共有ATM超过120万台,平均每5分钟新增一台,连南极科考基地都安装了ATM,每年通过这些机器进行的金融交易超过400亿。

从这些数据可以看出银行自动提款机已经进入了人们的日常生活,我们对自助式服务已经不再陌生,并成为了人们日常生活习以为常的一部分,确实的给人们的生活带来了极大的便利。

自动取款机(ATM)模拟程序(C#控制台应用程序)

自动取款机(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的本质就是一组帐号的组合,并负责管理帐号。

ATM(自动柜员机)界面设计

ATM(自动柜员机)界面设计
函数间的调用示意图
项目目标
知识目标 了解函数的概念,掌握函数定义与说明的方法,掌握函数调用中参数的传递方法,掌握函数的调用方法,熟悉函数的编程与使用方法。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。
分析:实现ATM机上的普通功能,当进入柜员机界面后,程序由main主函数、Query查询余额函数、Get Money取款函数、Save Money存款函数和返回Return函数组成。
任务三:ATM查询功能:Query()
case '1':system("cls");puts("================================");puts("| Your Query balance is$%6d |\n",x);puts("| Press any key to return... |");puts("================================");ge务一:ATM密码验证功能:PassWord()任务二:ATM自动柜员机操作主界面任务三:ATM查询功能:Query()任务四:ATM取款功能:Get Money()任务五:ATM存款功能:Save Money()任务六:ATM退出功能:Return()
任务一:ATM密码验证功能:PassWord()
分析:使用Query语句实现查询功能。
任务四:ATM取款功能:Get Money()
case '2':do{system("cls");puts("========================");puts("| Please select GetMoney: |");puts("| 1. $100 |");puts("| 2. $200 |");puts("| 3. other |");puts("| 4. Return |");puts("========================");GetMoney = getch(); }while(GetMoney!='1'&&GetMoney!='2'&&GetMoney!='3' && GetMoney!='4');switch(GetMoney){ case '1':system("cls"); puts("======================"); puts("| Your GetMoney is $100,Thank you! |"); puts("| Press any key to return... |"); puts("======================");

模拟自动取款机(ATM)CPPT课件

模拟自动取款机(ATM)CPPT课件
+ A T M (in & bc : B ankC ard ) + w elcom e()() + checkpassw d (in n[] : char, in pw d [] : char) +changepassw d() + fetchm oney () + inform ation () + exitA T M () + functionshow () + lock ()
二、案例分析
➢ 本案例涉及一个银行卡和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详细设计以及编码实现

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柜员机模拟程序

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修改密码:用户修改自己的银行账户密码的操作。

银行ATM自动取款机模拟系统实验报告

银行ATM自动取款机模拟系统实验报告

西安科技大学《VC++语言程序设计》实验报告题目 __科学计算器的实现______ 院、系(部)计算机科学与技术学院专业及班级软件工程1102班姓名赵文杰日期 2012/11/91.题目:科学计算器2.功能需求:这是计算器,在满足用户需求方面应有以下功能:1)进行简单的加、减、乘、除;2)进行函数运算如sin、cos、tan函数;3)可进行进制转换、及弧度运算;3.总体设计4.详细设计以下是详细的分部:1>基于MFC创建一个基本对话框Calculator2>实现基本运算的代码:void CCalculatorDlg::OnNumberKey(UINT nID) {CString n;switch(nID){case IDC_NUMBER1:n="1";break;case IDC_NUMBER2:n="2";break;case IDC_NUMBER3:n="3";break;case IDC_NUMBER4:n="4";break;case IDC_NUMBER5:n="5";break;case IDC_NUMBER6:n="6";break;case IDC_NUMBER7:n="7";break;case IDC_NUMBER8:n="8";break;case IDC_NUMBER9:n="9";break;case IDC_NUMBER0:n="0";break;case IDC_NUMBER_Point:n=".";if(Point==TRUE){m_Point.ShowWindow(SW_HIDE);Point=FALSE;}break;}if(NumberState==1){m_Cnumber=m_Cnumber+n;number1=atof(m_Cnumber);UpdateData(FALSE);}else{m_Cnumber=m_Cnumber+n;number2=atof(m_Cnumber);UpdateData(FALSE);}if(Zero=FALSE){Zero=TRUE;m_Zero.ShowWindow(SW_SHOW);}}void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}3>函数的实现代码:void CCalculatorDlg::OnOperationKey(UINT nID) {m_number=atof(m_Cnumber);switch(nID){case IDC_NUMBER_PlusMinus:m_number=m_number;if(NumberState==1)number1=m_number;elsenumber2=m_number;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_BackSpace:int n;n=m_Cnumber.GetLength();m_Cnumber=m_Cnumber.Left(n-1);UpdateData(FALSE);break;case IDC_NUMBER_Divide:cal();if(Zero==TRUE){m_Zero.ShowWindow(SW_HIDE);Zero=FALSE;}OperationState=1;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Multiply:cal();OperationState=2;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Add:cal();OperationState=3;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Subtract:cal();OperationState=4;m_number=0;m_Cnumber="";NumberState=2;break;case IDC_NUMBER_Clear:number1=number2=m_number=0;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);m_Cnumber="";NumberState=1;break;case IDC_NUMBER_Sqrt:number1=m_number=sqrt(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Sin:number1=m_number=sin(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Cos:number1=m_number=cos(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Tan:number1=m_number=tan(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log:number1=m_number=log(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Log10:number1=m_number=log10(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case IDC_NUMBER_Exp:number1=m_number=exp(number1);m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Derivative:number1=m_number=(double)1/number1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case IDC_NUMBER_Equal:cal();break;}if(Point==FALSE){Point=TRUE;m_Point.ShowWindow(SW_SHOW);}}CCalculatorDlg::cal(){m_number=atof(m_Cnumber);switch(OperationState){case 1:m_number=(double)number1/number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 2:m_number=(double)number1*number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;case 3:m_number=(double)number1+number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);case 4:m_number=(double)number1-number2;NumberState=1;m_Cnumber.Format("%g",m_number);UpdateData(FALSE);break;}number1=m_number;OperationState=0;}4>进制转换,弧度:实现时有问题5.测试及实现6.总结这是一个科学计算器,只能实现基本运算和函数运算。

java课程设计-ATM柜员机模拟程序

java课程设计-ATM柜员机模拟程序

感谢您的耐心观看
汇报人:
添加标题
操作选择:用户选择 要进行的操作
添加标题
操作执行:执行用户 选择的操作,如存款、 取款、转账等
添加标题
操作结果:显示操作 结果,如存款成功、 取款成功、转账成功 等
添加标题
用户退出:用户选择 退出系统,结束程序
程序运行环境
操作系统: Windows、 Linux、Mac
OS等
开发环境: Java
登录按钮:点击登录,验证用户名和密 码
界面美化:使用美观的图标和颜色,提 高用户体验
账户管理模块实现
账户创建: 用户输入 账户信息, 系统自动 生成账户
账户查询: 用户输入 账户号, 系统返回 账户信息
账户修改: 用户输入 账户号和 修改信息, 系统更新 账户信息
账户删除: 用户输入 账户号, 系统删除 账户信息
系统从用户账户 中扣除存款金额
系统将存款金额 存入用户账户
查询余额模块实现
系统从数据库中获取用户银 行卡余额信息
系统将余额信息显示在界面 上
用户输入银行卡号,系统验 证银行卡号是否正确
用户可以查看自己的账户余 额
ATM柜员机模拟程序测 试
测试用例设计
不足:在程序实现过程中遇到了一些困难,如算法优化、界面设计等
展望:希望在未来的学习中,能够更深入地了解Java编程,提高编程能力,实现 更复杂的程序设计
对未来改进和发展的建议
增加用户界面友 好性,提高用户 体验
优化算法,提高 程序运行效率
增加安全机制, 确保用户数据安 全
拓展功能,如支 持在线支付、转 账等
转账:用户可以将资金从一个账户转移到另一个账户。
添加项标题

案例十五 模拟自动取款机(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

ATM柜员机模拟实现分析

ATM柜员机模拟实现分析

ATM柜员机模拟实现摘要计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。

金融业ATM取款机的诞生不仅是世界金融行业中的一大进步,更是其发展历史性的转折点。

目前国内的银行大力发展银行自动取款机(ATM ),以提高工作效率和降低成本。

全文共分为绪论、课题要求及分析、系统需求分析、系统设计、系统实现与测试、课程设计总结六个部分,利用JAVA语言强大功能,并具有面向对象开发等的特点,联系实际ATM应用界面,以win8操作系统后台开发出了一套自动取款机系统。

在此论文中ATM柜员机模拟系统主要是由各个Windows窗口组成,它具有登录页面、选择服务、存取款、查询余额、修改密码和退卡等功能,它的各种按钮的事件和功能能够实现模拟ATM柜员机的基本要求。

完成整个程序设计之后,经过测试表明该ATM柜员机模拟系统运行稳定且各项功能都能正确运行,达到预期的要求。

关键词:ATM柜员机;存取款;查询;JAVA语言SIMULATION OF ATM TELLER MACHINES TOACHIEVEABSTRACTThe developme nt of computer scie nee and tech no logy not only greatly enhance the development of scienee, but also significantly speeds up the information of the economy and society. The birth of the financial industry ATM machine is not only a great progress of world financial industry, is a turning point in the development history of. At prese nt the domestic bank develop ing bank automatic tellermach in e(ATM), and to improve the work efficie ncy and reduce cost.The full text is divided into introduction, the requirements of the project and an alysis, system requireme nts an alysis, system desig n, system impleme ntati on and testing, curriculum design is summarized in six parts, the use of JAVA Ianguage and powerful function, and has the characteristic of object-orie nted developme nt, con tact the actual ATM applicati on in terface, based on win 8operat ing system backstage developed an automatic teller mach ine system .In this paper the ATM teller machi ne simulatio n system is mai nly composed of various Win dows win dow, it has the login page, select a service, withdrawals,balanee inquiries, modify passwords and other functions butt on back card, itseve nts and fun cti ons can simulate the ATM machi ne to the basic requireme nts.After completing the design of the whole procedure, after testing showed that the ATM teller mach ine simulatio n system is stable in operati on and the variousf un cti ons are correct operati on, to achieve the desired requireme nts.Key words:ATM machine; Deposit; Query; JAVA Ianguage目录1绪论................ . .................... .…….................. .11.1 课题背景....... ...... ... .. . (1)1.2课题目的...... ............................................ ... .................................. .. (1)2课题要求及分析............................ .. (2)2.1 题目及要求 ............... .. .......... .. (2)2.2 操作环境..... . ............... . ..... (2)2.3 开发工具..... . ............... . ..... (3)3 系统需求分析............................................... .33.1 功能需求分析 ..... . ......... ... .. (3)3.2其他需求分析...... . ......... . . (3)4系统设计 ....................................................... .44.1 总体设计 ....... . ......... .….. ........................................................ .44.2界面设计...... …… ......... ...................... .…..……................... .54.3功能模块设计….. .................. . ......... .. ……..…. .................... .64.3.1登陆页面模块设计...... .. ........ . …….......…............ .64.3.2选择服务模块设计...... .. ........ . …….......…............ .74.3.3取款模块设计...... ....... ......... ..….......… . ............ .94.3.4修改密码模块设计...... .. ................ … .. .......... .. …… .104.3.5退卡模块设计...... ...................... .............. (11)4.4异常处理情况说明......... .. .......... ..... ........... (11)5系统实现与测试 (12)6用户使用说明.................... ........... .. (17)7课程设计总结.................... ........... .. (19)参考文献......................... ........... .. (20)附录.................................. ... (21)1绪论1.1课题背景ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。

实验报告--模拟ATM

实验报告--模拟ATM

面向对象实训报告题目:模拟ATM机组长:杨新萍成员:郑苗成员:韩勇成员:齐雨霏成员:贾然成员:高凡指导教师:张燕2014 年 5 月20 日一、课程设计题目:模拟ATM1)程序允许建立10个账户。

2)弹出要建立帐户还是查询账户信息的界面。

用户选择自己所需的服务。

3)如果要建立帐户,弹出一个界面要求用户输入用户名和密码以及确认密码(两次输入密码均不可以显示在屏幕中)。

两次输入密码如果不相同,返回错误信息,再次要求输入用户名密码,直到用户选择该界面的退出键或者成功建立帐户为止,返回到2)的界面。

4)如果查询用户信息,弹出输入帐户名和密码界面。

如果该账户名和密码都注册成功过,进入个人账户的菜单,该菜单有存钱、取钱、查余额、退出等项目。

要求存钱、取钱弹出输入金额的菜单,并能判断是否有足够余额可以取。

如果查询余额,弹出显示余额的菜单。

如果退出,返回2)界面。

二、问题定义设计ATM取款机主要包括登陆页面,选择服务,存款,取款,查询余额,修改密码和退出等功能。

三、需求分析1、功能需求分析(1)模拟ATM机程序主界面(2)建立帐户用户输入自己的用户名及密码,再输入一次密码以确认密码,直至成功建立帐户。

(3)取钱用户根据自己需要取多少钱,输入要取的金额,系统判断是否有足够金额可以取出。

每次取款金额为系统界面显示的数字,或者用户自定义输入要取出的数目。

金额要求为100的倍数。

总额不超过5000元,支取金额不允许透支。

(4)存钱用户可以存款,金额要求为100的倍数。

查询余额。

(5)查余额用户需要查询账户内余额时,可以查询自己帐户的余额。

(6)修改密码用户可以根据自己的意愿修改密码(7)退出用户无需再进行任何业务时,选择退出系统即退出系统。

2、设计需求分析A.界面设计简洁。

B.操作简单。

C.信息分类简单明了,准确。

3、ATM功能模块图4、Java类和自定义类的层次关系MF类、denlu类、qukuan类、cunkuan类、chaxun类和gaimi类都继承了Java 类的JFrame类5、流程图四、算法设计1、概要设计(1) Class Account 主类(2) Class MF 主界面类(3) Class ZC 注册类(4)Class denlu 登录类(5)Class qukuan 取款类(6)Class cunkuan 存款类(7)Class chaxun 查余额类(8)Class gaimi 改密码类2、详细设计(1) Class Account创建客户,初始化客户信息功能以及保存客户信息,例如:用户名、密码、原有余额、取款后卡里的余额以及存款后卡里的余额。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ATM柜员机模拟实现摘要计算机科学技术的发展不仅极大地促进了整个科学的发展,而且明显加快了经济信息化和社会信息化的进程。

金融业ATM取款机的诞生不仅是世界金融行业中的一大进步,更是其发展历史性的转折点。

目前国内的银行大力发展银行自动取款机(ATM),以提高工作效率和降低成本。

全文共分为绪论、课题要求及分析、系统需求分析、系统设计、系统实现与测试、课程设计总结六个部分,利用JA V A语言强大功能,并具有面向对象开发等的特点,联系实际ATM应用界面,以win8操作系统后台开发出了一套自动取款机系统。

在此论文中ATM柜员机模拟系统主要是由各个Windows窗口组成,它具有登录页面、选择服务、存取款、查询余额、修改密码和退卡等功能,它的各种按钮的事件和功能能够实现模拟ATM柜员机的基本要求。

完成整个程序设计之后,经过测试表明该ATM柜员机模拟系统运行稳定且各项功能都能正确运行,达到预期的要求。

关键词:ATM柜员机;存取款;查询;JA V A语言SIMULATION OF ATM TELLER MACHINES TOACHIEVEABSTRACTThe development of computer science and technology not only greatly enhance the development of science, but also significantly speeds up the information of the economy and society. The birth of the financial industry ATM machine is not only a great progress of world financial industry, is a turning point in the development history of. At present the domestic bank developing bank automatic teller machine(ATM), and to improve the work efficiency and reduce cost.The full text is divided into introduction, the requirements of the project and analysis, system requirements analysis, system design, system implementation and testing, curriculum design is summarized in six parts, the use of JA V A language and powerful function, and has the characteristic of object-oriented development, contact the actual ATM application interface, based on win8operating system backstage developed an automatic teller machine system. In this paper the ATM teller machine simulation system is mainly composed of various Windows window, it has the login page, select a service, withdrawals,balance inquiries, modify passwords and other functions button back card, itsevents and functions can simulate the ATM machine to the basic requirements.After completing the design of the whole procedure, after testing showed that the ATM teller machine simulation system is stable in operation and the variousfunctions are correct operation, to achieve the desired requirements.Key words:ATM machine; Deposit; Query; JA V A language目录1 绪论 (1)1.1 课题背景 (1)1.2 课题目的 (1)2 课题要求及分析 (2)2.1 题目及要求 (2)2.2 操作环境 (2)2.3 开发工具 (3)3 系统需求分析 (3)3.1 功能需求分析 (3)3.2 其他需求分析 (3)4 系统设计 (4)4.1 总体设计 (4)4.2 界面设计 (5)4.3 功能模块设计 (6)4.3.1 登陆页面模块设计 (6)4.3.2 选择服务模块设计 (7)4.3.3 取款模块设计 (9)4.3.4 修改密码模块设计 (10)4.3.5 退卡模块设计 (11)4.4 异常处理情况说明 (11)5 系统实现与测试 (12)6 用户使用说明 (17)7 课程设计总结 (19)参考文献 (20)附录 (21)1 绪论1.1 课题背景ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。

随着我国金融电子化建设的深入发展和银行客户对金融服务质量要求的提高,自动柜员(ATM机)在金融行业的应用越来越广泛,自动柜员机(ATM机)在拉近客户与银行之间的距离,扩展营业网点,改善用卡环境,提供全天候、全方位的金融服务,降低经营成本,提高金融行业的服务质量和综合竞争实力等方面正发挥着不可替代的作用。

同时,随着国内银行机构的大量增加,我国的银行业面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。

Java是一个广泛使用的编程语言,是一种新的计算概念。

1995年Java的诞生让全世界的程序员为之疯狂。

与以往的任何一种语言相比Java都有着无可比拟的优势。

首先,Java是一种简单、面向对象、分布式、解释、健壮、安全、结构中立、可移植、高效能、动态的语言。

目前,Java已得到了全世界主要计算机软硬件厂商的支持,在计算机领域中得到了广泛应用。

本系统选题为基于Java程序设计的ATM柜员机模拟系统,是模拟银行存取款的管理。

设计的指导思想是一切为使用者着想,界面要美观大方,操作尽量简单明了,而且作为一个实用的管理系统要有要有良好的容错性,在出现误操作时能尽量及时地给出警告,以便用户及时地改正。

鉴于本系统的特殊性,还需要本程序有良好的保密性。

1.2 课题目的对用户来说,自动柜员机(ATM机)的诞生,使原来必须到银行柜台办理的账务查询、转账等业务,可以在大街小巷的固定取款机前进行办理。

对银行来说,自动柜员机(ATM机)的开通,将大大提高工作效率,在方便用户的同时可以节省大量的柜台服务为人员,从而降低生产经营成本。

同时,学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。

通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。

2 课题要求与分析2.1 题目及要求课题描述:基于Java程序设计的ATM柜员机模拟系统,ATM柜员机模拟系统要求是由各个Windows窗口组成,它由登录页面、选择服务、取款、查询余额、修改密码和退卡等功能。

它的各种按钮的事件和功能能够实现模拟ATM柜员机的基本要求。

基本要求:(1)实时性好、灵活性强、易于不同年龄阶段的人操作;(2)以Windows窗口形式显示,标题栏为ATM柜员机名称;(3)用户界面窗口右上角有最小化按钮、最大化按钮、关闭按钮;(4)不同的界面窗口中有不同的按钮和选择菜单。

实现提示:(1)用户界面设计为菜单方式。

程序运行用户登录后,显示如下功能菜单:1.存款;2.取款;3.查询余额;4.修改密码;5.退出(2)用户根据自己的需求选择相应数字,程序就执行相应的功能并显示下一级菜单,直至用户单击【确定】退出界面。

2.2 操作环境(1)Windows 8系统(2)MyEclipse 编译环境(3)Wps 20132. 3 开发工具JA V A语言3 概要设计3.1 功能需求分析ATM柜员机模拟系统的主要功能如下所述:(1)要求使用图形用户界面;(2)当输入给定的卡号和密码(初始卡号为201253100226和密码为1314521)时,系统能登录进入ATM柜员机模拟系统;(3)用户可以按照以下流程进行操作:●查询余额:初始余额为60000元;●ATM存款:不能出现负存款;●ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支;●修改密码:只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

3.2 其他需求分析性能描述:ATM柜员机模拟系统实时性好、灵活性强、易于不同年龄阶段的人操作。

设计约束:开发工具:MyEclipse运行环境:Windows XP 、Window 7、Window 8能实现用户所定义的各项需求界面要求:以Windows窗口形式显示,标题栏为ATM柜员机名称,右上角有最小化按钮、最大化按钮、关闭按钮,不同的窗口中有不同的按钮和选择菜单。

系统流程:1. 首先来到“欢迎使用ATM机! ”登录页面,输入卡号和密码。

2. 然后进入选择服务模块。

3. 用户根据自己的需要选择相应的的功能。

4. 用户可根据相应的功能可任意输入一些测试数据。

5. 直到用户单击【确定】菜单退出页面。

4 系统设计4.1 总体设计根据课程设计的要求,为了让系统设计的思路清晰,我所设计的ATM柜员机模拟系统主要是由登录页面模块还由选择服务模块组成,其中选择服务模块又由存款模块、取款模块、查询余额模块、修改密码模块、退卡模块组成。

该系统主要功能模块的流程图如下:登录页面模块选择服务模块存款模块取款模块查询余额模块修改密码模块退卡模块4.2 界面设计ATM柜员机模拟系统的界面应该要简单明了、思路清晰,当然界面样式美观、人性化就更好了。

相关文档
最新文档