100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用Java程序模拟银行ATM机 实现包括存款 取款 查询 转账功能的简单应用

用Java程序模拟银行ATM机 实现包括存款 取款 查询 转账功能的简单应用

时间:2023-02-20 19:44:40

相关推荐

用Java程序模拟银行ATM机 实现包括存款 取款 查询 转账功能的简单应用

(1)想象现实世界中的相关操作沙及哪些实体呢?一个是储户,一个是ATM机。因

此根据面向对象中的抽象原则,可将其抽象为两个类:代表储户的账户信息类,代表银行

ATM机的ATM类。外加一个主类(负责实例化其他类的对象)。

(2)Account类记录储户的卡号,姓名、密码和账户余额等信息,并提供get方法获取每

个属性的值,对账户余额属性提供sub_Balance()方法和add_Balance()方法以模拟余额增

加、减少的功能。

注意:为加强对属性数据的控制访问,考虑将其定义为private。

(3)ATM类模拟ATM机的主要功能,根据对银行ATM机的了解,考虑设计以下主

要方法。

① Welcome()方法:欢迎显示功能。

② Load_Sys()方法:登录功能。

③ SysOpter()方法:根据用户输入进行任务调度。

④ Inqu_Info()方法:查询用户账户。

5 BetBalance()方法:取款。

AddBalance():存款。

⑦ isBalance()方法:判断余额是否足够。

⑧ isRight()方法:判断卡号、密码是否正确。

Account.java

/*Account类封装储户信息及部分功能*/import java.io.*;public class Account {private String number=null;//卡号private String name=null;//客户姓名private String password=null;//客户密码private double money=0.0;//余额/*构造方法,以生成多个储户信息*/public Account(String number,String name,String password,double money) {this.number=number;this.name=name;this.password=password;this.money=money;}protected String get_number() {return number;}protected String get_Name() {return name;}protected String get_Password() {return password;}public double get_Money() {return money;}protected void sub_Balance(double mon) {money-=mon;}//余额减少protected void add_Balance(double mon) {money+=mon;}//余额增加}

ATM.java

import java.io.*;class ATM {Account act;Account act2;public ATM() {act=new Account("000","text","111",5000);act2=new Account("222","text","333",5000); }/*********欢迎界面*********/protected void Welcome() {String str="---------------------";System.out.print(str+"\n");System.out.print("1.取款."+"\n"+"2.查询."+"\n"+"3.存款."+"\n"+"4.退出系统"+"\n"+"5.转账");System.out.print(str+"\n");}/*********登录系统* @throws Exception *********/protected void Load_Sys() throws Exception {String card,pwd;int counter=0;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));//创建标准输入和输出流do {System.out.println("请输入您的卡号:");card=br.readLine();//读取键盘信息System.out.println("请输入您的密码:");pwd=br.readLine();if(!isRight(card,pwd)) {System.out.println("您的卡号和密码有误:");counter++;}elseSysOpter();}while(counter<3);System.exit(1);//应用退出}protected void SysOpter()throws Exception{int num;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));System.out.println("请选择您要操作的项目(1-5):");num=br.read();//num为ascll码转换的整数switch(num) {case 49:BetBalance();break;case 50:Inqu_Info();break;case 51:AddBalance();case 53:ZhuanZhang();case 52:Exit_Sys();break;}System.exit(1);}/**********信息查询**********/protected void Inqu_Info()throws Exception{System.out.print("------------------------\n"+"账号:"+act.get_number()+"姓名;"+act.get_Name()+"余额:"+act.get_Money()+"\n"+"------------------------\n");SysOpter();}/**********取款**************/public void BetBalance() throws Exception{String str=null,str1;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));do {System.out.println("请输入取款项目:");str=br.readLine();double qu=Double.valueOf(str).doubleValue();//将字符串转换为double类型if(qu>act.get_Money()) {System.out.println("余额不足,请重新输入你要取的数目:");}else {act.sub_Balance(qu);System.out.println("取款成功,您账户的余额为:"+act.get_Money());Welcome();SysOpter();}}while(true);}public void AddBalance() throws Exception{String str=null,str1;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));do {System.out.println("请输入存款项目:");str=br.readLine();double qu=Double.valueOf(str).doubleValue();act.add_Balance(qu);System.out.println("存款成功,您账户的余额为:"+act.get_Money());Welcome();SysOpter();}while(true);}public boolean isBalance() {if (act.get_Money()<0) {return false;}return true;}protected boolean isRight(String card,String pwd) {if (act.get_number().equals(card)&&act.get_Password().equals(pwd))return true;elsereturn false;}protected boolean isRight2(String card,String pwd) {if (act2.get_number().equals(card)&&act.get_Password().equals(pwd))return true;elsereturn false;}protected void Exit_Sys() {System.out.println("感谢您使用本系统,再见!");System.exit(1);}/*转账功能*/protected void ZhuanZhang() throws Exception {String card,pwd;int counter=0;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));do {System.out.println("请输入您要转账的卡号:");card=br.readLine();System.out.println("请输入您的密码:");pwd=br.readLine();if(!isRight2(card,pwd)) {System.out.println("您的转账卡号和密码有误:");counter++;}elsedo {System.out.println("请输入转账的金额:");String str = br.readLine();double qu=Double.valueOf(str).doubleValue();if(qu>act.get_Money()) {System.out.println("余额不足,请重新输入你要转账的数目:");}else {act.sub_Balance(qu);double qu1=Double.valueOf(str).doubleValue();act2.add_Balance(qu1);System.out.println("转账成功,您账户的余额为:"+act.get_Money());System.out.println("存款成功,账户2的余额为:"+act2.get_Money());Welcome();SysOpter();}}while(true);}while(counter<3);System.exit(1);}}

ATMTest.java

public class ATMTest {public static void main(String[] args) throws Exception{ATM atm=new ATM();atm.Welcome();atm.Load_Sys();}}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。