JAVA代码用方法构造器来制造

来源:互联网 发布:淘宝上卖的龙钞真假 编辑:程序博客网 时间:2024/05/16 15:38
package com.yh.Javaoo01.learn;


import java.util.Scanner;


public class ATMJ {

// 常量在定义时就应该赋值
final int MAX_MONEY = 100000;// ATM最大值

int ATM_money = 50000;// ATM机当前余额

final int MAX_GET_MONEY = 2000;// 每次取钱最大值

final int MAX_SAVE_MONEY = 5000;// 每次存钱最大值


// 存储的用户信息--构造器中创建出相应的用户信息数组
User[] user;//定义一个User类型的数组用于存储用户的数据
User user1;//定义一个用户的变量用于收纳用户的信息
public ATMJ(){  //调用变量构造方法,给user赋值
    user=new User[3];
user[0]=new User ("刘涛","222",3000);
user[1]=new User("李涛","333",2500);
user[2]=new User("周涛","666",5000);
run();
}
//ATM行为
public boolean login(){//登陆成功需要将值赋给user1
Scanner sc=new Scanner(System.in);
//三次机会的输入包括没有输入的次数都在里面
boolean flag=false;
for(int i=1;i<=3;i++){//三次机会的输入
System.out.println("请输入你的账号");
String account=sc.next();
System.out.println("请输入你的密码");
String password=sc.next();
for(int j=0;j<3;j++){
//将账号密码与user[]数组对象里的对象一一比对
if(account.equals(user[j].account)&&password.equals(user[j].password)){
this.user1=user[j];
System.out.println("登陆成功");
     return flag=true;//返回bool判断结果,结束方法
}
if(i==3){
break;
}
System.out.println("登陆失败你还有"+(3-i)+"次机会");
}
}
return flag;
}
  public void checkMoney(){
System.out.println("您当前的余额为"+user1.money);
}
  public void getMoney(){
  Scanner sc=new Scanner(System.in);
  while(true){//无限循环
  System.out.println("请输入你要取出的金额");
  int money=sc.nextInt();
  if(money%100!=0){
  System.out.println("只能输入100的倍数");
} else if (money < 0) {
System.out.println("只能是>=0的数");
} else if (money > this.user1.money) {//user1的钱由this来调用
System.out.println("账户余额不足");
} else if (money > this.ATM_money) {
System.out.println("ATM余额不足");
} else if (money > this.MAX_GET_MONEY) {
System.out.println("每次只能取最多:" + this.MAX_GET_MONEY);
} else {
System.out.println("取款成功");
this.user1.money -= money;//用户取出的钱赋值给用户的钱
this.ATM_money -= money;//取出的钱赋值给ATM机的钱
break;
}
  }
  }
  public void saveMoney() {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入要存的金额(整数)");
int money = sc.nextInt();
if (money < 0) {
System.out.println("只能是>=0的值");
} else if (money % 100 != 0) {
System.out.println("只能是100的倍数");
} else if (money > this.MAX_SAVE_MONEY) {
System.out.println("一次最多存:" + this.MAX_SAVE_MONEY);
} else if (money + this.ATM_money > this.MAX_MONEY) {
System.out.println("ATM存满了,本次失败");
} else {
System.out.println("存款成功");
this.user1.money += money;//user1的钱为原来的user1的钱存钱加上用户的钱
this.ATM_money += money;//ATM机的钱为原来的ATM加上用户存入的钱
break;
}
}
}
  public void caiDan(){
  System.out.println("请选择你要的业务:");
System.out.println("1.查询当前余额");
System.out.println("2.取款");
System.out.println("3.存款");
System.out.println("4.退出");

  }
  public void run(){
  System.out.println("欢迎使用ATM机");
  boolean boo=this.login();
  if(boo){
  Scanner sc=new Scanner(System.in);
 
  while (true) {
int num = 0;
while (true) {
caiDan();
num = sc.nextInt();
if (num == 1 || num == 2 || num == 3 || num == 4) {
break;
} else {
System.out.println("输入有误,请重新输入");
}
}
switch (num) {
case 1:
checkMoney();
break;
case 2:
this.getMoney();
break;
case 3:
saveMoney();
break;
case 4:
System.out.println("欢迎下次再来");
return;

  
}
}else {
System.out.println("三次失败,请稍候再试");
return;//三次输入失败结束方法
  }
    } 
 
}


原创粉丝点击