这是我第一次写项目所进行的修改之后的内容,感觉比之前写的通顺而且相比较更加容易理解。
项目要求:
实现银行自动取款机的以下基本操作功能:读卡、取款、存款、查询。(自动取款机中修改密码不作要求)
其他要求:
用户在账号密码正确进入主界面后,只要不退卡,可以循环操作。具体循环操作次数不固定;用户每选择一项服务并操作完后,给出相应的提示,并提示用户返回主界面
中间要求:
请大家自己看代码理解
package ATM;
import java.util.Scanner;
public class ATM1 {
//成员变量
private static String usernames[] = {"zhangsan","李四"};
private static String passwords[] = {"123456","123456"};
private static double moneys[] = {5000,4500};
public static void main(String[] args) {
// TODO Auto-generated method stub
mune();
}
/**
* -登录模块
*/
public static int login() {
int i = 0;
while(i < 3) {
//登录过程
Scanner input = new Scanner(System.in);
System.out.println("请输入您的账号:");
String username = input.next();
System.out.println("请输入您的密码:");
String password = input.next();
for(int j = 0 ; j < usernames.length;j++) {
if(usernames[j].equals(username)
&& passwords[j].equals(password)) {
//返回登录用户成功的数组的索引下标
return j;
}
}
i++;
if(i < 3) {
System.out.println("登录失败,剩余"+(3-i)+"次机会!");
}else {
System.out.println("账号被冻结!");
}
}
return -1;
}
/**
* -菜单模块
*/
public static void mune() {
int index = login();
if(index < 0) {
return;
}
while(true) {
System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
System.out.println(" 1.查询 2.取款 ");
System.out.println(" 3.转账 4.退卡 ");
Scanner input = new Scanner(System.in);
System.out.print("请选择:");
if(!input.hasNextInt()) {
System.out.println("输入错误,请重新输入!");
continue;
}
int select = input.nextInt();
switch(select) {
case 1:
//查询方法
queryMoney(index);
break;
case 2:
//取款方法
getMoney(index);
break;
case 3:
//转账方法
sendMoney(index);
break;
case 4:
System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
System.out.println("-----------谢谢您使用中国民生银行自助取款服务---------");
System.out.println("请取卡,再见!");
return;
default:
System.out.println("选择错误,无此选项,请重新输入!");
break;
}
}
}
/**
* -查询方法
*/
public static void queryMoney(int index) {
System.out.println("-----------欢迎使用中国民生银行自助取款服务----------");
System.out.println("您的余额为"+moneys[index]+"元/人民币");
btnFive();
}
/**
* -取款
*/
public static void getMoney(int index) {
Scanner input = new Scanner(System.in);
System.out.println("请输入您取款的金额:");
if(!input.hasNextInt()) {
System.out.println("输入错误,请重新输入!");
return;
}
int money = input.nextInt();
if(money <= 0 || money > moneys[index]) {
System.out.println("余额不足,取款失败!");
return;
}
moneys[index] = moneys[index] - money;
btnFive();
}
/**
* -转账
*/
public static void sendMoney(int index) {
Scanner input = new Scanner(System.in);
System.out.println("请输入您转账的金额:");
if(!input.hasNextInt()) {
System.out.println("输入错误,请重新输入!");
return;
}
int money = input.nextInt();
if(money <= 0 || money > moneys[index]) {
System.out.println("余额不足,取款失败!");
return;
}
System.out.println("请输入收款账号:");
String username = input.next();
//是否存在账号标志位
int flag = -1;
for(int i = 0 ; i < usernames.length;i++) {
if(username.equals(usernames[i])) {
flag = i;
}
}
if(flag >= 0) {
//转出方
moneys[index] = moneys[index] - money;
}else {
System.out.println("账号不存在!");
}
btnFive();
}
/**
* -按5返回
*/
public static void btnFive() {
while(true) {
System.out.println("按5返回:");
Scanner input = new Scanner(System.in);
if(!input.hasNextInt()) {
System.out.println("输入错误,请重新输入!");
continue;
}
int value = input.nextInt();
if(value == 5) {
break;
}
}
}
}