一个用java模拟ATM操作的小程序
来源:互联网 发布:郑州seo服务公司 编辑:程序博客网 时间:2024/05/16 06:22
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模拟ATM操作的小程序
- Java小程序:模拟ATM取款
- 模拟ATM银行取款小程序
- Java编写的模拟ATM取款机程序
- Java编写的模拟ATM取款机程序
- 基于eclipse的用java语言编写的ATM柜员机模拟程序,急需!!!
- ATM柜员机模拟程序
- 一个模拟音频条的小程序
- 一个模拟斗地主的小程序
- 用C语言控制台程序模拟一个ATM 机存取款流程
- ATM小程序
- java初级ATM模拟
- 用java完成一个简单的ATM项目
- java的一个小程序
- Java的一个小程序
- ATM机模拟C程序
- 简易ATM机的java程序
- C++编写的ATM自动取款机模拟程序
- 简单总结spark中executer的个数设置
- Fragment与Fragment、Activity通信的四种方式(二)
- 获取sha1码
- hadoop分布式模式的安装和配置
- 在阿里云上搭建svn
- 一个用java模拟ATM操作的小程序
- PHP邮件群发程序
- AppCompatActivity
- Bzoj 2002 弹飞绵羊
- Android中的WebView之loadDataWithBaseURL遇到的坑
- Unity UI 图片模糊的问题
- Oracle中约束条件
- Elastic Stack X-Pack 插件 更新 Updating Your License
- FPGA中组合逻辑和时序逻辑的区别