public class ATM {
public static int money=20000;//记录存款
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
while(true){
System.out.println("----------【ATM机】-----------");
System.out.println("----------1.【登录】-------------");
System.out.println("----------2.【查询余额】-----------");
System.out.println("----------3.【ATM 取款】 --------");
System.out.println("----------4.【ATM 存款】--------------");
System.out.println("----------5.【修改密码】--------------");
System.out.println("----------6.【退卡】--------------");
System.out.println();
System.out.println("请输入您的选择:");
int choose=sc.nextInt();
switch(choose){
case 1:
boolean flag=denglu();
if(flag)
System.out.println("登录成功");
else{
System.out.println("登录失败");
System.exit(0);
}
break;
case 2:
selectmoney();
break;
case 3:
getmoney();
break;
case 4:
setmoney();
break;
case 5:
modify();
break;
case 6:
System.exit(0);
break;
}
}
}
public static boolean denglu(){
Scanner sc =new Scanner(System.in);
System.out.println("请输入卡号:");
String card=sc.nextLine();
System.out.println("请输入密码:");
int password=sc.nextInt();
List<User> users=UserDB.getuser();
User user =new User(card,password);
if(users.contains(user)){
return true;
}
return false;
}
//查询余额
public static void selectmoney(){
System.out.println("余额"+money+"元");
}
//取款
public static void getmoney(){
//每次取款金额为 100 的倍数,总额不能超过 5000,支取金额不
Scanner sc =new Scanner(System.in);
System.out.println("请输入取款金额:");
int m =sc.nextInt();
if(m%100!=0||m>5000){
System.out.println("取款失败");
}else{
money-=m;
System.out.println("取款成功");
}
}
//存款
public static void setmoney(){
Scanner sc =new Scanner(System.in);
System.out.println("请输入存款金额:");
int m =sc.nextInt();
if(m<0){
System.out.println("存款金额不能为负数");
}else{
money+=m;
System.out.println("存款成功");
}
}
public static void modify(){
Scanner sc =new Scanner(System.in);
System.out.println("请输入旧密码:");
int password=sc.nextInt();
if(password==123456){
//新密码长度不小于 6 位,不允许出现 6 位完全相同的情况,只有
//旧密码正确,新密码符合要求,且两次输入相同的情况才可以成功修改密码
System.out.println("请输入新密码");
int password1=sc.nextInt();
System.out.println("请再次输入密码");
int password2=sc.nextInt();
if(password1<100000)
System.out.println("密码小于6位");
if(password1==password2){
User user =new User("CD001",password1);
UserDB.modifyuser(user);
System.out.println("密码修改成功");
}else{
System.out.println("新密码错误");
}
}else{
System.out.println("旧密码错误");
}
}
}
class UserDB {
private static ArrayList<User> list=new ArrayList<User>();
static{
list.add(new User("CD001",123456));
}
public static ArrayList<User> getuser(){
return list;
}
public static void modifyuser(User user){
list.add(user);
}
}
class User {
String username;
int password;
public User() {
}
public User(String username, int password) {
this.username = username;
this.password = password;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + password;
result = prime * result + ((username == null) ? 0 : username.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
User other = (User) obj;
if (password != other.password)
return false;
if (username == null) {
if (other.username != null)
return false;
} else if (!username.equals(other.username))
return false;
return true;
}
}
java模拟ATM机操作
最新推荐文章于 2022-03-15 10:36:45 发布