| 博客班级 | 软件工程 |
| ---- | ---- | ---- |
| 作业要求 | 作业链接 |
| 作业目标 | 编写一个ATM系统语言不限 |
| 学号 | 3180701122 |
题目要求
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...
允许网上查询参考,但请注意不要直接抄袭,可以理解看懂别人的代码,再自己编写
代码
建立属性类
package ATM;
/*
* 定义账号和密码
*/
public class ATMbean {
//定义用户名和密码
private String username = "张三";
private String password = "123";
//定义初始账余额
private double money = 5000;
public ATMbean() {
super();
}
public ATMbean(String usename, String password, double money) {
super();
this.username = usename;
this.password = password;
this.money = money;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
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;
}
@Override
public String toString() {
return "ATMbean [username=" + username + ", password=" + password + ", money=" + money + "]";
}
}
实现类
package ATM;
import java.util.Scanner;
public class ATMtest {
//实例化ATMbean
ATMbean atm = new ATMbean();
Scanner s = new Scanner(System.in);
//定义一个计数器记录修改密码的次数,修改密码不得超过三次
int i = 1;
public void Select() {
//用户输入用户名和密码去和已经定义的用户名密码做比较,相同则进入系统,不相同则报错
System.out.println("==========欢迎进入ATM银行管理系统==========");
System.out.println("请输入用户名:");
String name = s.next();
System.out.println("请输入密码:");
String password = s.next();
//将用户输入的用户名和密码与系统中的用户名密码相比是否相同,相同则进入系统
if(name.equals(atm.getUsername()) && password.equals(atm.getPassword())) {
System.out.println("登录成功!");
//在此处可以进行循环
while(true) {
System.out.println("请选择需要选择的项目:1.取钱 2.存钱 3.查询余额 4.转账 5.修改密码 6.重新登录 7.退出登录");
switch(s.nextInt()) {
case 1:
//调用取钱的方法
getMoney();
break;
case 2:
//调用存钱的方法
saveMoney();
break;
case 3:
//调用查询余额的方法
selectMoney();
break;
case 4:
//调用转账的方法
zhuanzhangMoney();
break;
case 5:
//调用修改密码的方法
updateMoney();
break;
case 6:
//调用重新登录的方法,也就是调用自己
Select();
break;
case 7:
System.out.println("欢迎下次登录该系统!");
System.exit(0);
break;
default:
System.out.println("你输入有误!请重新输入!");
break;
}
}
//不相同。则报错
}else {
System.out.println("用户名或密码错误!请重新输入!");
Select();
}
}
//定义取钱的方法
public void getMoney() {
//输入取钱的金额,判断余额是否够
System.out.println("请输入取钱金额(元):");
double money = s.nextDouble();
if(money<=atm.getMoney()) {
//如果够了,则取钱,后计算余额并赋值
money = atm.getMoney() - money;
atm.setMoney(money);
System.out.println( " 取款成功!");
System.out.println(" 请取回您的现金!");
}else {
System.out.println("余额不足!");
}
}
//定义存钱的方法
public void saveMoney() {
System.out.println("请输入存钱金额:");
double money = s.nextDouble();
money = money + atm.getMoney();
atm.setMoney(money);
System.out.println("存钱成功");
}
//定义查询余额的方法
public void selectMoney() {
System.out.println("您的余额为:"+atm.getMoney()+"元");
}
//定义转账的方法
public void zhuanzhangMoney() {
System.out.println("请输入转账人账号:");
String name = s.next();
System.out.println("请输入转账金额:");
double money = s.nextDouble();
//判断转账的金额与你的余额的大小
if(money<=atm.getMoney()) {
money = atm.getMoney()-money;
atm.setMoney(money);
System.out.println("转账成功!");
}else {
System.out.println("你确定你有那么多的钱吗!");
}
}
//定义修改密码的方法
public void updateMoney() {
System.out.println("请输入原密码:");
String password = s.next();
//判断原密码是否是你输入的密码
if(password.equals(atm.getPassword())) {
System.out.println("请输入新密码:");
String newpassword = s.next();
System.out.println("请再次输入新密码:");
String newpassword01 = s.next();
//判断二次输入的密码是否相同
if(newpassword.equals(newpassword01)) {
System.out.println("修改成功!即将重新登录!");
atm.setPassword(newpassword01);
Select();
}else {
System.out.println("您输入的密码与之间的密码不相同!");
updateMoney();
}
}
//如果输入的密码不是原密码,则重新输入
else {
if(i>=3) {
System.out.println("您三次输入密码都是错的!");
System.out.println("您输入错误密码的次数超限!即将退出系统!");
System.exit(0);
}
System.out.println("您输入的密码与原密码不相同!请重新输入!");
i++;
updateMoney();
}
}
}
主方法
package ATM;
public class ATMmain {
public static void main(String[] args) {
ATMtest atm = new ATMtest();
atm.Select();
}
}
运行界面
psp表格
作业总结
通过这次实验我发现我有许多的知识盲区,首先java掌握不够,实现类功能不是很完善,通过CSDN学习才完成本次作业,希望在日后的学习中可以做到更好。