博客班级 | AHPU软件工程 |
---|---|
作业要求 | 实现ATM管理系统 |
作业目标 | 熟练掌握代码编写 |
学号 | 3180701209 |
作业目标
编写一个ATM管理系统,语言不限,要求应包括以下主要功能:
(1)开户,销户
(2)查询账户余额
(3)存款
(4)取款
(5)转账(一个账户转到另一个账户)等...
代码
构建方法,函数
private String username="0111";
private String password="0111";
private double money=10000;
public ATMDemo() {
}
public ATMDemo(String username,String password,double money) {
this.username=username;
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 "[username=" + username + ",password=" + password + ",money=" + money + "]";
}
实现界面选择
ATMDemo atm=new ATMDemo();//实例化一个类对象
Scanner input=new Scanner(System.in);//控制台输入
private int num=0;//记录输入密码的次数
boolean flag = true;
public void Select() {
System.out.println("==========欢迎来到ATM银行管理系统==========");
for (int i = 1; i <= 3; i++) {
System.out.println("请输入用户名:");
String username=input.next();//用户名、密码不包含空格,所以用next(),而不是nextLine()
System.out.println("请输入密码:");
String password=input.next();
if(username.equals(atm.getUsername()) && password.equals(atm.getPassword()) ) {//用户名、密码输入正确
System.out.println("登录成功!");
flag = true;
} else {
if (i <= 2) {
System.out.println("密码输入不正确,你还有" + (3 - i) + "次机会!");
}
if(i==3) {
System.out.println("对不起,您的卡已被锁定!");
break;
}
flag = false;
}
while(true) {
System.out.println("尊敬的用户您好:");
System.out.println("请选择的项目:1.取钱 2.存钱 3.查询余额 4.转账 5.修改密码 6.重新登录 7.退出登录");
switch(input.nextInt()) {
case 1:
takeMoney();//取钱
break;
case 2:
saveMoney();//存钱
break;
case 3:
selectMoney();//查询余额
break;
case 4:
transferMoney();//转账
break;
case 5:
updatePassword();//修改密码
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 takeMoney() {//取钱
System.out.println("请输入取钱金额(元):");
double rmb=input.nextDouble();//控制台获取取钱金额
if(rmb<=atm.getMoney()) {//取钱金额小于等于当前账户余额
rmb=atm.getMoney()-rmb;//减去取走的
atm.setMoney(rmb);//调用set方法更新账户余额
System.out.println("取款成功,请取走您的现金!!!");
System.out.println("你当前账户余额为:"+atm.getMoney()+"元");
}else {//取钱金额大于当前账户余额
System.out.println("抱歉,您的账户余额不足!!!");
}
}
存款
public void saveMoney() {//存钱
System.out.println("请输入存钱金额(元):");
double rmb=input.nextDouble();
rmb+=atm.getMoney();
atm.setMoney(rmb);//调用set方法更新账户余额
System.out.println("恭喜您,存款成功!!!");
System.out.println("你当前账户余额为:"+atm.getMoney()+"元");
}
转账
public void transferMoney() {//转账
System.out.println("请输入转账人的用户名:");
String username=input.next();
System.out.println("请输入转账金额:");
double rmb=input.nextDouble();
if(rmb<=atm.getMoney()) {//转账金额小于等于当前账户余额
rmb=atm.getMoney()-rmb;//减去转走的
atm.setMoney(rmb);//调用set方法更新当前账户余额
System.out.println("转账成功!!!");
System.out.println("你当前账户余额为:"+atm.getMoney()+"元");
}else {//转账金额大于当前账户余额
System.out.println("当前账户余额不足,请充值后在选择进行操作");
}
}
修改密码
public void updatePassword() {//修改密码
System.out.println("请输入原密码:");
String password=input.next();//控制台获取原密码
if(password.equals(atm.getPassword())) {//原密码正确,才可以继续修改密码
System.out.println("请输入新密码:");
String newpassword1=input.next();//新密码
System.out.println("请再次输入新密码:");
String newpassword2=input.next();//新密码一般需要输入两次(大家改过密码的一定都清楚)
if(newpassword1.equals(newpassword2)) {//两次新密码匹配成功
System.out.println("密码修改成功,清重新登录!!!");
atm.setPassword(newpassword1);//调用set方法将原密码更新为新密码
Select();//重新登录
}else {//两次新密码输入不相同
System.out.println("您两次输入的新密码不相同,请重新操作!!!");
updatePassword();
}
}else {//原密码输入错误
num++;//记录次数
if(num>=3) {//大于等于三次,系统自动退出
System.out.println("您三次输入的密码都不正确!!!");
System.out.println("输入次数超限,即将退出ATM系统!!!");
System.exit(0);
}
System.out.println("您所输入的密码与原密码不相同,请重新输入:");
updatePassword();//继续输入原密码
}
}
主方法
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
ATMTest atmtest=new ATMTest();
atmtest.Select();
}
}
运行截图
作业小结
(1)psp表格
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 80 | 50 |
Development | 开发 | 250 | 300 |
Analysis | 需求分析(包括学习新技术) | 30 | 30 |
Design Spec | 生成设计文档 | 30 | 50 |
Design Review | 设计复审 | 5 | 10 |
Coding Standard | 代码规范 | 3 | 5 |
Design | 具体设计 | 10 | 12 |
Coding | 具体编码 | 80 | 60 |
Code Review | 代码复审 | 60 | 70 |
Test | 测试(自我测试,修改代码,提交修改) | 10 | 5 |
Reporting | 报告 | 9 | 6 |
Test Report | 测试报告 | 3 | 2 |
Size Measurement | 计算工作量 | 3 | 2 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 5 | 3 |
(2)心得和经验
通过java编写这次ATM银行管理系统,更加了解了java构建类和面向对象的相关知识,管理系统代码功能并不完善还需要后期在加以更改。