ATM机系统
**ATM自动提款机**一级菜单1. 注册(银行卡账号及密码) 2.登陆 3.退卡
二级菜单
1,存款 2.取款 3.查询余额 4.转账 5.返回上级菜单 4.转账(校验 1,不能自己转自己 2.转账账号是否存在)
-------(转账应注意的)--------存在:输入转账金额校验金额(余额是否够)true当前账户余额做减操作目标账户做余额加值操作false当前账户余额不足不存在:账户不存在
数据结构(账户 密码 余额)
方法:存款 取款 查询余额 转账 辅助类方法
账户代码
public class Acount {String acount;//账号String passworld;//密码int balance;//余额//存款方法boolean deposit(int sum){this.balance += sum;return true;}//取款方法boolean draw(int sum){this.balance -= sum;return true;}//查询当前用户的余额int select(Acount account1){return account1.balance;}//转账void transfer(Acount account1,Acount account2,int sum){account1.balance -= sum;account2.balance += sum;System.out.println("转账成功");}
}
测试类代码
package com.huayu.test;
import java.util.Scanner;
import java.util.Arrays;
public class Demo {public static void main(String[] args) {//记录登陆的账户及密码String login = "";String pass = "";//用于记录登陆的用户Acount login_user = new Acount();Scanner scanner = new Scanner(System.in);//定义首循环标签boolean main_menu = true;int count = 0;//定义数组存贮账号及密码三个String[][] count_array = new String[3][2];//定义数组存贮每次注册后的账户Acount[] user = new Acount[3];//创建用户,注册时为其一一赋值Acount acount = new Acount();while(main_menu){System.out.println("---------------1. 注册 2.登陆 3.退卡----------------------");switch (scanner.nextInt()){case 1:if(count<3){acount = new Acount();//存贮注册过的每个用户,转账时使用user[count] = acount;System.out.println("----------------请输入你要注册的账号-------------------");acount.acount = scanner.next();System.out.println("----------------请输入你要设置的密码---------------------");acount.passworld = scanner.next();//如果账号未重复则可以进行保存,否则提示错误boolean b_flag = true;for(int i=0;i<count_array.length;i++){if(acount.acount.equals(count_array[i][0])){System.out.println("-----------账号重复,注册失败------------------");b_flag = false;}}if(b_flag){//对账号及密码进行存贮count_array[count][0] = acount.acount;count_array[count][1] = acount.passworld;count++;}}else{System.out.println("------------------注册账号已达上限----------------------");}break;case 2:// System.out.println(Arrays.toString(count_array));
// for(int i=0;i
// System.out.print("账号为:"+count_array[count][0]);
// System.out.print("密码为:"+count_array[count][1]+"\n");
// }if(count == 0){System.out.println("------------------请先注册---------------------");}else{boolean flag = false;System.out.println("请输入你的账号");String s_acount = scanner.next();System.out.println("请输入你的密码");String s_pass = scanner.next();for (int i =0;i<count_array.length;i++){if(s_acount.equals(count_array[i][0])&&s_pass.equals(count_array[i][1])){flag = true;//记录登陆的账户及密码login = s_acount;pass = s_pass;//用户和账号是一一对应的,所以以i为链接点判断是哪个用户login_user = user[i];System.out.println("登陆成功");}}if(!flag){System.out.println("登陆失败,请重新登陆");}if(flag){boolean sec_menu = true;//定义存款金额int money = 0;//定义取款金额int i = 0;while(sec_menu){//存款或取款或余额都是基于 登陆账户 而言System.out.println("--------------1,存款 2.取款 3.查询余额 4.转账 5.返回上级菜单---------------");switch (scanner.nextInt()){case 1://存款System.out.println("请输入存款金额");money = scanner.nextInt();if(money>0){login_user.deposit(money);System.out.println("存款成功");}break;case 2:System.out.println("请输入取款金额");i = scanner.nextInt();if(i<=login_user.balance){login_user.draw(i);System.out.println("取款成功");}else{System.out.println("余额不足");}break;case 3:System.out.println("当前账户余额为:"+login_user.select(login_user));break;case 4:boolean s = false;//转出账户即为当前登陆的账户 不能操作别人账户
// System.out.println("请输入要转出的账户");
// int out_account = scanner.nextInt();System.out.println("请输入要转入的账户");String in_account = scanner.next();if(login==in_account){System.out.println("您输入的账户为您本人的账户");}else{for(int n=0;n<count_array.length;n++){//会多次判断,重复输出
// if(in_account.equals(count_array[n][0])){
//
// }else{
// System.out.println("您输入的账户不存在");
// }if(in_account.equals(count_array[n][0])){//输入的账户存在s = true;//定义变量记录n值,方便转账时以此为连接对应}}if(!s){System.out.println("您输入的账户不存在");}//账户存在,开始转账操作if(s){System.out.println("请输入要转账的金额");int transfer_money = scanner.nextInt();//循环判断输入账户所对应用户//注册了几个账号及有几个用户,就循环几次for(int u = 0;u<count;u++){if(in_account.equals(user[u].acount)){acount.transfer(login_user,user[u],transfer_money);}}}}break;case 5:sec_menu = false;break;default:System.out.println("输入错误,请重新输入");}}}}break;case 3:main_menu = false;System.out.println("-------------------欢迎下次光临----------------------");break;default:System.out.println("输入有误请重新输入");}}}
}