1.开篇
最近一直在准备2020年下半年的软考中级——软件设计师考试,不知不觉已经有10天没有学Java了,今天心血来潮,想着写点什么Java小程序练练手,只当是复习一下前段时间自学的有关Java类对象这块的知识!!!
下面,我主要是应用了Java中的类、对象、构造器、set和get方法、String类、控制台输入流这些相关内容,来模拟实现一个简单、简单、很简单的一个ATM银行管理系统。(大家不要慌,这里没有继承,没有多态,没有抽象类,也没有接口)
主要就是通过定义用户名、密码以及账户余额,来实现取钱、存钱、查询余额、转账、修改密码、重新登录、退出这些功能,用户名不能修改,密码可以进行修改。
如果大家觉得我写的太水了,也无妨,毕竟我也不是大佬呀(😆😆😆),我才自学JavaSE不到两个月,也差不多刚刚触摸到Java的冰山一角,好了,废话不多说,我们来看下面的代码吧!!!👇👇👇
2.程序代码:
2.1 ATMDemo类(主要就是set、get方法和类的构造器)
package ATMSystem; public class ATMDemo { //用户名,密码,账户余额 private String username="冷少"; private String password="szh2656307671"; private double money=20000; 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 + "]"; } }
2.2 ATMTest类(实现具体功能的类)
package ATMSystem; import java.util.*; public class ATMTest { ATMDemo atm=new ATMDemo();//实例化一个类对象 Scanner input=new Scanner(System.in);//控制台输入 private int num=0;//记录输入密码的次数 public void Select() { System.out.println("==========欢迎访问ATM银行管理系统=========="); 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("登录成功!!!"); 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("取款成功,请取走您的现金!!!"); }else {//取钱金额大于当前账户余额 System.out.println("抱歉,您的账户余额不足!!!"); } } public void saveMoney() {//存钱 System.out.println("请输入存钱金额(元):"); double rmb=input.nextDouble();//控制台获取存钱金额 rmb+=atm.getMoney();//加上存进去的 atm.setMoney(rmb);//调用set方法更新账户余额 System.out.println("恭喜您,存款成功!!!"); } public void selectMoney() {//查询余额 System.out.println("当前,您的帐户余额为:" + atm.getMoney() + "元");//调用get方法获取账户余额 } 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("转账成功!!!"); }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();//继续输入原密码 } } }
2.3 Main方法(Java程序的入口)
package ATMSystem; public class Main { public static void main(String[] args) { ATMTest atmtest=new ATMTest(); atmtest.Select(); } }
2.4 运行该程序的简单输出结果
这里只是做一个有关取钱、存钱、查询余额功能的简单输出测试,大家可以进行其他功能的测试!!!