ATM系统(存取款以及转账功能)

ATM机系统 **ATM自动提款机**一级菜单1. 注册(银行卡账号及密码) 2.登陆 3.退卡二级菜单1,存款 2.取款 3.查询余额

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("输入有误请重新输入");}}}
}