情景篇:Java中模仿ATM机的程序

mac2024-01-29  33

当我们对Java语言学习到面向对象的时候,写出这个程序应该不难,写出这个程序,也就预示着基础阶段过关了!!! 模拟ATM机的运行程序:要求有以下功能:取款,存款,转账,修改密码,查询余额,退出.

import java.util.Scanner; public class AtmSystem { //成员变量 //创建用户、密码、账户金额 private String [] users = {"小明","小黑","小红"}; private String [] password = {"025232","654321","123456"}; private int [] money = {10000,20000,3000}; private String [] phone = {"15811111111","15822222222","15833333333"}; private String yes = "yes"; private int x = 0; //成员函数 //判断用户名与密码是否正确的方法 boolean login(String loginusre,String loginpass){ for(int i = 0;i<users.length;i++){ if(loginusre.equals(users[i])&&loginpass.equals(password[i])){ x = (i); return true; } } return false; } //确定取款人的账户余额,并取款 void qukuan(){ Scanner sc5 = new Scanner(System.in); System.out.print("请输入取款金额:"); int quKuan = sc5.nextInt(); if(quKuan <= money[x]) { money[x] = money[x] - quKuan; System.out.println("取款金额:"+quKuan); System.out.println("剩余金额:"+money[x]); }else { System.out.println("余额不足!!!"); } } //存款 void cunkuan() { Scanner sc4 = new Scanner(System.in); System.out.print("请输入存款金额:"); int cunkuan = sc4.nextInt(); money[x] = money[x] + cunkuan; System.out.println("存款金额为:"+cunkuan+"!存款成功!"); System.out.println("当前余额为:"+money[x]); } //转账 void zhuanZhang(){ Scanner sc1 = new Scanner(System.in); System.out.println("请输入对方手机号:"); String phone1 = sc1.next(); System.out.println("请输入转账金额:"); int c = sc1.nextInt(); for(int i = 0;i<=phone.length;i++){ if(phone1.equals(phone[i])){ if(i!= x){ if(c <= money[x]){ System.out.println("请您核对账户名:"+users[i]); System.out.println("是否确定转账:yes/no?"); String yesNo = sc1.next(); if(yesNo.equals(yes)) { money[i] = money[i]+c; System.out.println("转账成功!"); money[x]= money[x]-c; System.out.println("您当前余额为:"+money[x]); break; }else { System.out.println("!!!转账失败!!!"); System.out.println("您当前余额为:"+money[x]); break; } }else { System.out.println("转账失败,您的余额不足!!"); break; } }else{ System.out.println("号码输入错误!不能给自己转账!!!"); break; } }else if(i == 2){ System.out.println("输入的电话有误!"); break; } } } //修改密码 void changePassword () { Scanner sc3 = new Scanner(System.in); System.out.println("请输入原密码:"); String originalPassword = sc3.next(); System.out.println("请输入新密码:"); String newPassword = sc3.next(); if(originalPassword.equals(password[x])) { originalPassword=newPassword; System.out.println("密码修改成功!"); System.out.println("请妥善保管密码,不要告诉其他人,您的新密码为:"+originalPassword); }else { System.out.println("密码错误!"); } } //显示余额 void showYu_e() { System.out.println("当前余额为:"+money[x]); } //主方法 public static void main(String[]args){ AtmSystem AS = new AtmSystem(); Scanner sc = new Scanner(System.in); //进入界面 System.out.println("***********************欢迎使用ICBC中国工商银行***********************"); int i; int number; //输入用户名 for(i = 1;i <= 3;i++) { System.out.print("请输入用户名:"); String user= sc.next(); //输入密码 System.out.print("请输入密码:"); String pass= sc.next(); while(AS.login(user, pass)){ //判断用户名和密码是否正确,如果正确则办理业务,如果错误,则重新输入,如果输入错误三次,则锁定 if(AS.login(user, pass)){ System.out.println("请选择要办理的业务:1.取款 2.存款 3.转账 4.修改密码 5.查询余额 6.退出"); number = sc.nextInt(); //通过switch、case来选择业务 switch(number){ //需要调用“取款”的方法 case 1: AS.qukuan(); break; //需要调用“存款”的方法 case 2: AS.cunkuan(); break; //需要调用“转账”的方法 case 3: AS.zhuanZhang(); break; //需要调用“修改密码”的方法 case 4: AS.changePassword(); break; //查询余额 case 5: AS.showYu_e(); break; //退出、输出语句 case 6: System.out.print("欢迎您再次使用!再见!"); return; } } } if(i<3){ System.out.println("用户名或密码错误"+i+"次,请重新输入"); }else{ System.out.println("用户名或密码错误3次!!!您的卡已经被锁定!!!请致电银行!!!"); break; } } } }
最新回复(0)