ATM机项目开发

37 阅读2分钟

1.开发一个系统——完成系统架构搭建

image.png ArrayList 是 Java 中基于动态数组实现的 List 接口容器,属于集合框架(Java Collections Framework)的核心类之一。 ArrayList 就像会自动扩容的储物柜:

储物格是连在一起的:每个物品(元素)按顺序存放,找东西时直接报序号就能快速拿到(比如第3个格子) 不够了自动加格子:默认10个格子,存满时自动增加1.5倍新空间(比如变成15格) 中间插队很麻烦:如果要在中间插入或拿走一个物品,后面的所有物品都要挪位置 柜子不锁门:多人同时用可能出错,需要自己加锁

image.png

image.png 开户功能总结: image.png

package ATMproject;

public class Account {
    private String cardID;
    private String userName;
    private char sex;
    private String passWord;
    private double money;
    private double limit;

    public Account() {
    }

    public String getCardID() {
        return cardID;
    }

    public void setCardID(String cardID) {
        this.cardID = cardID;
    }

    public String getUserName() {
        return userName+(sex =='男'?"先生":"女士");
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getLimit() {
        return limit;
    }

    public void setLimit(double limit) {
        this.limit = limit;
    }
}
package ATMproject;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class ATM {
//    定义一个集合,存储账户信息
    private ArrayList<Account> accounts= new ArrayList<>();
//    从键盘接收数据
    private Scanner sc = new Scanner(System.in);

//    启动ATM系统 展示欢迎界面
    public void start(){
        while(true) {
            System.out.println("欢迎您进入到了ATM启动系统界面");
            System.out.println("1.用户登录");
            System.out.println("2.用户开户");
            System.out.println("请选择:");
//        键盘接收到数据后传值给command
            int command = sc.nextInt();
            switch (command) {
                case 1:
                    //用户登录
                    break;
                case 2:
                    //用户开户
                   createAccount();
                    break;
                default:
                    System.out.println("没有该操作~~");
            }
        }
    }
    private void createAccount(){
        System.out.println("====系统开户操作====");
        Account acc = new Account();
        System.out.println("请输入您的账户名称");
        String name = sc.next();
        acc.setUserName(name);

        while (true) {
            System.out.println("请输入您的性别:");
            char sex = sc.next().charAt(0);
            if(sex=='男'||sex=='女'){
                acc.setSex(sex);
                break;
            }else{
                System.out.println("您输入的性别有误,请重新输入~~");
            }
        }
        while (true) {
            System.out.println("请输入您的账户密码:");
            String passWord = sc.next();
            System.out.println("请输入您的确认密码:");
            String okPassword = sc.next();
            if(okPassword.equals(passWord)){
                acc.setPassWord(okPassword);
                break;
            }else{
                System.out.println("您输入的2次密码不一样");
            }
        }
        System.out.println("请输入您的取现额度:");
        double limit = sc.nextDouble();
        acc.setLimit(limit);

        accounts.add(acc);
        System.out.println("恭喜您"+acc.getUserName()+
                "开户成功,您的卡号是:");

        }
    //        返回一个8位数的卡号,且唯一
    private String createCardId(){
        String cardId = "";
        Random r =new Random();
        for(int i=0;i<8; i++){
            int data = r.nextInt(10);
            cardId+=data;
        }
    }
    private Account getAccountByCardId(String cardId){
        
    }
}
package ATMproject;

public class Test {
    public static void main(String[] args) {
        ATM atm =new ATM();
        atm.start();
    }
}