个人作业三-ATM管理系统
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
posted on 2020-11-19 09:49  新梧  阅读(124)  评论(0编辑  收藏  举报