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

    | 博客班级 | 软件工程 |
    | ---- | ---- | ---- |
    | 作业要求 | 作业链接 |
    | 作业目标 | 编写一个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学习才完成本次作业,希望在日后的学习中可以做到更好。

  • 相关阅读:
    [HDU3555]Bomb
    [POJ3096]Surprising Strings
    [POJ1068]Parencodings
    [POJ3295]Tautology
    [POJ2586]Y2K Accounting Bug
    [POJ2109]Power of Cryptography
    [POJ1328]Radar Installation
    Binary search tree system and method
    ES6详解八:模块(Module)!--各种导入导出方法
    java在cmd下编译和执行引用jar的类
  • 原文地址:https://www.cnblogs.com/TheShuo/p/14002379.html
Copyright © 2011-2022 走看看