个人作业三-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(i2){
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 |

浙公网安备 33010602011771号