个人作业三-ATM管理系统

博客班级 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19
作业要求 https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477
作业目标 ATM管理系统
学号 3190704208

一.题目要求

编写一个ATM管理系统,语言不限,要求应包括以下主要功能:

(1)开户,销户

(2)查询账户余额

(3)存款

(4)取款

(5)转账(一个账户转到另一个账户)等...
Account类:用于存取用户成员变量信息

Menu类:主菜单即登陆注册菜单,以及登陆成功后的存取查操作菜单

RegisAndLogin类:包括登陆和注册方法

Operation类:登陆成功后的存取查转方法

AtmTest类:功能测试类

二.代码提交
1.Account.java类
public class Account {
private int username;
private int password;
private String name;
private int age;
private int money;

public int getUsername() {
    return username;
}
public void setUsername(int username) {
    this.username = username;
}
public int getPassword() {
    return password;
}
public void setPassword(int password) {
    this.password = password;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}
public int getMoney() {
    return money;
}
public void setMoney(int money) {
    this.money = money;
}
public Account(){

}
public Account(int username, int password, String name, int age, int money) {
    this.username = username;
    this.password = password;
    this.name = name;
    this.age = age;
    this.money = money;
}

}

2.Menu.java类
//菜单
public class Menu {
public void menu(){
System.out.println("----------------------");
System.out.println("| 欢迎进入ATM机系统 |");
System.out.println("| 1注册 |");
System.out.println("| 2登录 |");
System.out.println("| 欢迎进入ATM机系统 |");
System.out.println("----------------------");
System.out.println("请输入整数序号:");
}

public void welcome(Account account){
    System.out.println("----------------------");
    System.out.println("   欢迎"+account.getName()+"进入ATM机系统");
    System.out.println("|    1查询余额                        |");
    System.out.println("|    2存款                                |");
    System.out.println("|    3取款                                |");
    System.out.println("|    4转账                                |");
    System.out.println("|    5退出                                |");
    System.out.println("----------------------");
    System.out.println("请输入整数序号:");
}

}
3.AtmTest.java类
import java.util.Scanner;

//ATM测试类
public class AtmTest {
public static void main(String[] args) {

    Menu m=new Menu();
    Scanner sc=new Scanner(System.in);
    RegisAndLogin r=new RegisAndLogin();
    Account a=new Account(00,00,"00",18,0);
    boolean b=false;
    Operation o=new Operation();
    //主菜单界面
    while(true){
        m.menu();
        int index=sc.nextInt();
        if(index==1){
            //注册
            b=r.regis(a, sc);
            if(b){
                System.out.println("注册成功!");
                System.out.println(a.getName()+"------初始账户余额:"+a.getMoney());
            }else{
                System.out.println("注册次数用完,请明天再来!");
            }

        }else if(index==2){
            //登陆
            b=r.login(a, sc);
            if(b){
                System.out.println("登陆成功,欢迎"+a.getName()+"用户!");
                break;
            }else{
                System.out.println("登陆次数用完,请明天再来!");
            }
        }
    }
    //操作界面
    if(b){
        while(true){
            m.welcome(a);
            int index=sc.nextInt();
            if(index==1){
                //查询余额
                o.findMoney(a, sc);
            }else if(index==2){
                //存款
                o.addMoney(a, sc);
            }else if(index==3){
                //取款
                o.putMoney(a, sc);
            }else if(index==4){
                //转账
                o.transMoney(a,sc);
            }
            else{
                //退出
                break;
            }
        }

    }
}

}
4.RegisAndLogin.java类
import java.util.Scanner;
//登陆、注册类
public class RegisAndLogin extends Account{
//boolean用于判断是否注册成功
public boolean regis(Account account,Scanner sc){
System.out.println("请输入整数型的注册账户:");
int uname=sc.nextInt();
for(int i=0;i<3;i++){
System.out.println("请输入整数型的账户密码:");
int pword=sc.nextInt();
System.out.println("请二次输入密码:");
int pword2=sc.nextInt();
if(pwordpword2){
//成功
account.setPassword(pword);
break;
}else{
System.out.println("两次输入密码不正确!");
if(i
2){
return false;
}
}
}
System.out.println("请输入用户名:");
String name=sc.next();
System.out.println("请输入年龄:");
int age=sc.nextInt();
account.setMoney(10000);
account.setUsername(uname);
account.setName(name);
account.setAge(age);
return true;

}
//boolean用于判断是否登陆成功
public boolean login(Account account,Scanner sc){
    System.out.println("请输入账户名:");
    for(int i=0;i<3;i++){
        int uname=sc.nextInt();
        if(uname==account.getUsername()){
            //账号正确
            break;
        }else{
            System.out.println("不存在此账户!请重新输入:");
            if(i==2){
                return false;
            }
        }
    }

    System.out.println("请输入账户密码:");
    for(int j=0;j<3;j++){
        int pword=sc.nextInt();
        if(pword==account.getPassword()){
            //密码正确
            break;
        }else{
            System.out.println("密码有误!请重新输入:");
            if(j==2){
                return false;
            }
        }
    }

    return true;

}

}
5.Operation.java类
import java.util.Scanner;

public class Operation {

public void addMoney(Account account,Scanner sc){
    System.out.println("请输入存款数额:");
    int money=sc.nextInt();

    if(money%100!=0){
        System.out.println("存钱数额不为100的倍数,请重新输入!");
    }else{
        if(money>0){
            account.setMoney(money+account.getMoney());
            System.out.println("存款成功!");
        }else{
            System.out.println("存款数额不能为零或负!");
        }
    }

}

public void findMoney(Account account,Scanner sc){
    System.out.println("您的余额为:"+account.getMoney());
}

public void putMoney(Account account,Scanner sc) {
    System.out.println("请输入你的取款额:");
    int money = sc.nextInt();
    if(money%100!=0){
        System.out.println("取款数额不为100的倍数,请重新输入!");
    }else{
        if(money>0){
            account.setMoney(account.getMoney()-money);
            System.out.println("取款成功!");
        }else{
            System.out.println("取款数额不能为零或负!");
        }
    }


}

public void transMoney(Account account,Scanner sc) {
    System.out.println("请输入对方账号:");
    int acount = sc.nextInt();
    System.out.println("请输入对方姓名:");
    String name = String.valueOf(sc.nextInt());
    System.out.println("请输入转账金额:");
    int money = sc.nextInt();
    if (0 < money && money <= account.getMoney()&&money%100==0) {
        System.out.println("转账成功!");
        account.setMoney(account.getMoney() - money);
    } else {
        System.out.println("余额不足!转账失败");
    }
}

}





三.个人小结
1)

psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 60 60
Development 开发 120 110
Analysis 需求分析(包括学习新技术) 15 10
Design Spec 生成设计文档 5 5
Design Review 设计复审 5 5
Coding Standard 代码规范 3 2
Design 具体设计 10 15
Coding 具体编码 30 25
Code Review 代码复审 5 7
Test 测试(自我测试,修改代码,提交修改) 10 15
Reporting 报告 9 6
Test Report 测试报告 3 2
Size Measurement 计算工作量 2 1
Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 3 3
posted @ 2020-11-18 09:55  zhuangzhi  阅读(100)  评论(0)    收藏  举报