java模拟ATM机操作

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;
 }
    
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值