一个用java模拟ATM操作的小程序
2016-12-02 16:36
519 查看
import java.util.*; //主类 public class MyBank { public static void main(String[] args) { //实例化登陆类并显示登陆界面 Login lg=new Login(); lg.show();
} } //登陆类 class Login { //获取登录账户ID及密码 public void show() { System.out.println("请输入账户ID:"+" "+"[0退出]"); Scanner zhid =new Scanner(System.in); String str1=zhid.nextLine(); if(str1.equals("0")) { System.out.println("谢谢使用,再见!"); System.exit(0); } else { System.out.println("请输入账户密码:");
Scanner mm =new Scanner(System.in); String str2=mm.nextLine(); //实例化用户信息类并验证登陆账号及密码 Info info=new Info(); info.check(str1,str2); } } } //用户父类 class User { //存款方法(当前账号的下标,存款金额,账户信息数组) public void cunKuan(int c,double m,String[][] user) { if((m%100)==0&&m>=0){
user[c][3]=Double.toString(Double.parseDouble(user[c][3])+m); System.out.println("存款操作成功!"); } else {System.out.println("请输入100的整数倍或请输入正数!");return;} } //取款方法(当前账号的下标,取款金额,账户信息数组) public void quKuan(int c,double m,String[][] user) { if((m%100)==0&&m>=0){ if((Double.parseDouble(user[c][3])-m)>=0)
{ user[c][3]=Double.toString(Double.parseDouble(user[c][3])-m); System.out.println("取款操作成功!"); } else{System.out.println("余额不足,取款失败!");} } else {System.out.println("请输入100的整数倍或请输入正数!");return;} } //查询余额方法(当前账号的下标,账户信息数组) public void yuE(int c,String[][] user)
{ System.out.println("账户名:"+user[c][0]+" ID:"+user[c][1]+" "+"余额为:"+user[c][3]+"元"); } //普通用户判断选项并执行操作 //判断方法(操作选项,当前账号的下标,账户信息数组) public void panDuan(int p,int i1,String[][] user) { switch(p) { case 1:{ System.out.println("请输入存款数:"); Scanner cks =new Scanner(System.in);
Double ck=cks.nextDouble(); this.cunKuan(i1,ck,user); break; } case 2:{ System.out.println("请输入取款数:"); Scanner qks =new Scanner(System.in); Double qk=qks.nextDouble(); this.quKuan(i1,qk,user); break; } case 3:{ this.yuE(i1,user); break; } case 0:{ System.exit(0);break;
} default:{System.out.println("请输入0~3的操作选项!");} } } } //普通用户类 class NotVip extends User { //普通用户操作选项 public void show() { System.out.println("我爱我家自动提款机普通用户操作界面"); System.out.println("---------"); System.out.println("【
存款---1】"); System.out.println("【取款---2】"); System.out.println("【余额---3】"); System.out.println("【退卡---0】"); System.out.println("---------"); System.out.println("请输入你的操作:"); } } //VIP用户类 class Vip extends User { //VIP用户操作选项 public void show() { System.out.println("我爱我家自动提款机VIP用户操作界面");
System.out.println("---------"); System.out.println("【存款---1】"); System.out.println("【取款---2】"); System.out.println("【余额---3】"); System.out.println("【转账---4】"); System.out.println("【退卡---0】"); System.out.println("---------"); System.out.println("请输入你的操作:");
} //VIP特有的转账方法(当前账下标,目标账号下标,转账金额,账户信息数组) public void zhuanZhang(int c,int s,double m,String[][] user) { if((Double.parseDouble(user[c][3])-m)>=0&&m>=0) { user[c][3]=Double.toString(Double.parseDouble(user[c][3])-m); user[s][3]=Double.toString(Double.parseDouble(user[s][3])+m);
System.out.println("转账操作成功!"); } else{System.out.println("余额不足,转账失败或请输入正数!");} } //VIP用户判断选项并执行操作 //重写父类判断方法(操作选项,当前账号的下标,账户信息数组) public void panDuan(int p,int i2,String[][] user) { switch(p) { case 1:{ System.out.println("请输入存款数:"); Scanner ck1 =new Scanner(System.in);
Double ck=ck1.nextDouble(); this.cunKuan(i2,ck,user); break; } case 2:{ System.out.println("请输入取款数:"); Scanner qk1 =new Scanner(System.in); Double qk=qk1.nextDouble(); this.quKuan(i2,qk,user); break; } case 3:{ this.yuE(i2,user); break; } case 4:{ System.out.println("请输入目标账号ID:");
Scanner zhh =new Scanner(System.in); String zh=zhh.nextLine(); for(int j=0;j<user.length;j++) { if(user[j][2].equals(zh)) { System.out.println("请输入转入金额:"); Scanner zje =new Scanner(System.in); Double zj=zje.nextDouble(); this.zhuanZhang(i2,j,zj,user); return;
} } System.out.println("目标账户不存在,请核对信息!"); return; } case 0:{System.exit(0);break;} default:{System.out.println("请输入0~4的操作选项!");} } } } //用户信息类 class Info { //i变量保存当前用户在数组中的下标 int i; //保存用户信息的数组,格式:姓名,账号,密码,余额,是否VIP String[][] user={{"未知","999","999","0","notVIP"},{"聂庆亮","{{200981501:0}}","{{10010:0}}","0","notVIP"},{"乐乐","{{200981511:0}}","{{583911:0}}","0","VIP"},{"尹继平","{{200981512:0}}","{{1324114:0}}","0","VIP"}};
//判断用户
户类型并执行相应操作 //登陆验证方法(登陆账号,登陆密码) public void check(String st1,String st2) { for(i=0;i<user.length;i++) { if(user[i][1].equals(st1)&&user[i][2].equals(st2)) { if(user[i][4].equals("VIP")) { while(true) { //满足VIP类时实例化Vip类并显示Vip菜单页面 Vip vip=new Vip(); vip.show();
try { //获取用户操作并判断 Scanner sz1 =new Scanner(System.in); int str4=sz1.nextInt(); vip.panDuan(str4,i,user); } catch (Exception e) { System.out.println("需要输入数字!"+e); } } } else { while (true) { //满足普通用户类时实例化普通用户类并显示普通用户菜单页面 NotVip nv=new NotVip(); nv.show(); try
{ //获取用户操作并判断 Scanner sz =new Scanner(System.in); int str3=sz.nextInt(); nv.panDuan(str3,i,user); } catch (Exception e) { System.out.println("需要输入数字!"+e); } } } } } System.out.println("输入的账户ID或密码有误!请核对信息!"); Login lg=new Login(); lg.show(); } }
对于学习有困难不知道如何提升自己可以加扣:578024144进行交流得到帮助,获取学习资料
相关文章推荐
- JAVA--第九周实验--编写一个模拟用户帐户的程序(内测版)
- java 怎样给一个程序设置冷却时间? 好比一个操作我一天只想让客户执行一次?
- JAVA第九周任务1.编写一个模拟用户帐户的程序
- 【C语言】没事可以试试这个小程序,使用文件操作,模拟实现一个简单的文件拷贝工具!
- java模拟而一个电话本操作
- java模拟而一个电话本操作
- 剑指offer面试题java实现之题7:用两个栈模拟一个队列的入队和出队操作
- Java编写的模拟ATM取款机程序
- 用C语言控制台程序模拟一个ATM 机存取款流程
- 模拟Ping操作的一个Java类
- Java写的一个计算器模拟小程序
- 模拟自助取款机操作--java小程序
- 如何实现用Java编写程序,设计一个模拟电梯运行的类
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
- 很久以前写的一个java模拟扑克牌洗牌发牌的小程序,学的知识少写的比较麻烦,不过也放上来吧
- 一个java文件操作小程序 system.out.in buffer read
- Java编写的模拟ATM取款机程序
- ATM:模拟实现一个ATM + 购物商城程序
- 一个模拟简单的物品掉落的程序
- 一个经典的JAVA APPLET程序(二)