zoukankan      html  css  js  c++  java
  • ATM管理系统


    博客班级 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构建类和面向对象的相关知识,管理系统代码功能并不完善还需要后期在加以更改。

  • 相关阅读:
    【JVM基础】JVM垃圾回收机制算法
    【java基础】- java双亲委派机制
    Java基础(一)
    JVM
    冷知识: 不会出现OutOfMemoryError的内存区域
    疯狂Java:突破程序员基本功的16课-李刚编著 学习笔记(未完待续)
    nor flash之写保护
    spinor/spinand flash之高频通信延迟采样
    nor flash之频率限制
    使用littlefs-fuse在PC端调试littlefs文件系统
  • 原文地址:https://www.cnblogs.com/sunxianlan/p/13991871.html
Copyright © 2011-2022 走看看