AHPU-软件工程导论-计算机18级 | 班级链接 |
---|---|
作业要求 | 作业要求链接 |
作业目标 | 1.编写一个ATM管理系统 2.模块化解决问题 3.提升写代码时的逻辑思想 |
学号 | 3180402121 |
题目要求
编写一个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 + "]";
}
}
登录
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("存钱成功");
}
##查询余额
````java
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();
}
}
psp2.1 | 任务内容 | 计划完成需要的时间(min) | 实际完成的需要的时间(min) |
---|---|---|---|
Planning | 计划 | 50 | 40 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 20 |
Development | 开发 | 500 | 420 |
Analysis | 需求分析(包括学习新技术) | 200 | 240 |
Design Spec | 生成设计文档 | 20 | 30 |
Design Review | 设计复审 | 15 | 15 |
Coding Standard | 代码规范 | 20 | 15 |
Design | 具体设计 | 40 | 60 |
Coding | 具体编码 | 60 | 45 |
Code Review | 代码复审 | 20 | 80 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 20 | 15 |
Test Report | 测试报告 | 20 | 20 |
Size Measurement | 计算工作量 | 10 | 8 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 15 | 5 |