做网站可能遇到的困难,wordpress相册管理插件下载,室内设计师联盟官网入口,专门做继电器的网站一、前言#xff1a; 关于上次我写的博客文章中Java之《ATM自动取款机》(面向对象)#xff0c;里面还不够完善#xff0c;因为在各个服务功能相互跳转时#xff0c;会出现混乱问题。这次我对其进行了修改和改进#xff0c;若还有其它在大家测试时出现的bug请及… 一、前言 关于上次我写的博客文章中Java之《ATM自动取款机》(面向对象)里面还不够完善因为在各个服务功能相互跳转时会出现混乱问题。这次我对其进行了修改和改进若还有其它在大家测试时出现的bug请及时评论联系谢谢 二、代码
(1)关于用户类User的代码基本没变。
package com.fs.demo;public class User {public String accountNumber;public String password;public double sum;public User(){this.accountNumber1234;this.password5678;this.sum8888.0;}public User(String accountNumber,String password,double sum){this.accountNumberaccountNumber;this.passwordpassword;this.sumsum;}
}
(2) 测试类发生很多变化(其实就是新添加一个功能用它来判断当输入的服务选项不匹配时进行提示并要求重新输入)。当然这里可以用一写方法来把它分为几个功能这样代码能简化很多这里交给大家去修改了哈哈
package com.fs.test;
import com.fs.demo.*;
import java.util.*;
public class Test01 {public static void main(String[] args) {Scanner sc new Scanner(System.in);User user new User();System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 请输入你的账号 **);String accountNum sc.next();while(!accountNum.equals(user.accountNumber)){System.out.println(该账号输入有误,请重新输入正确账号);accountNumsc.next(); //只有当账号输入正确时才会跳转到输入密码环节}System.out.println(** 请输入你的密码 **);String passwordsc.next();int i1;//记录输入错误密码次数while(!password.equals(user.password)){ //只要第一次输入的密码不是正确密码就会进人循环:判断下一次输入的密码是否正确if(i1||i2) {System.out.println(你已连续输入错误密码 i 次。若连续三次密码输入错误,该账号将被冻结!);System.out.println(请你重新输入正确密码);password sc.next();if(!password.equals(user.password)) {i;}}if(i3){System.out.println(你已连续输入错误密码3次,该账号将已被冻结!);break;}}if(password.equals(user.password)){System.out.println(银行卡账号登录成功!);System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);int selectsc.nextInt();while(true) {if (select 1) {System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(******** 查询成功!! ********);System.out.println(您查询的账号的总余额为 user.sum 元);System.out.println();System.out.println(********返回请选择5****************);int flag1sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();}if(flag1!5){ //用来判断当输入服务不是5返回时要重新输入while(flag1!5) {System.out.println(抱歉你的输入有误返回失败请重新输入);System.out.println();System.out.println(********返回请选择5****************);flag1 sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();break;}}}}if (select 2) {System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 请输入您要取款的金额);double sum sc.nextDouble();System.out.println(******** 取款成功!! ********);System.out.println(您的账号余额还剩 (user.sum - sum) 元);user.sum(user.sum-sum);System.out.println();System.out.println(********返回请选择5****************);int flag1sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();}if(flag1!5){while(flag1!5) {System.out.println(抱歉你的输入有误返回失败请重新输入);System.out.println();System.out.println(********返回请选择5****************);flag1 sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();break;}}}}if (select 3) {System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 请分别输入您要转账的目的银行卡的账号和密码);User user1 new User(sc.next(), sc.next(), 4000.0);System.out.println(** 请输入您要转账的金额);double sum sc.nextDouble();System.out.println(******** 转账成功!! ********);System.out.println(您的账号余额还剩 (user.sum - sum) 元);System.out.println(目的银行卡账号 user1.accountNumber ,的余额还剩 (user1.sum sum) 元);user.sum(user.sum - sum);System.out.println();System.out.println(********返回请选择5****************);int flag1sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();}if(flag1!5){while(flag1!5) {System.out.println(抱歉你的输入有误返回失败请重新输入);System.out.println();System.out.println(********返回请选择5****************);flag1 sc.nextInt();if(flag15){System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(** 1.查询 2.取款 **);System.out.println(** 3.转账 4.退卡 **);System.out.println(请选择您需要的服务);selectsc.nextInt();break;}}}}if (select 4) {System.out.println(********欢迎使用中国民生银行自动取款服务********);System.out.println(******** 退卡成功!! ********);return;}if(select ! 1 select ! 2 select ! 3){ //判断进来选择服务的时候只能是选择已有的1或者2或者3服务或者直接退卡不然就要重新输入选择System.out.println(你选择的服务有误!请重新输入);selectsc.nextInt();}}}}
}补充这里面的一些导包是因为User用户类与测试类Test01 它们不在同一个包要用到就要导入它这个类所在的包当然要在声明本包的下面进行导包。且注意银行卡账号和密码都是系统提前办理好的也就是已经在User类初始化 (相当于我们测试时是要输入用户注册的账号和密码才行)所以这个项目还能进行改进就是注册银行卡账号并存入初始本金然后再测试服务。 三、代码测试结果
(1)测试当账号输入与密码输入分别错误的情景 (2)测试当输入的账号和密码都正确时进入选择不同的自助服务 下面是接着上面没有结束的进程进行测试