JAVA 面向对象第四天

来源:互联网 发布:单片机课程设计报告 编辑:程序博客网 时间:2024/05/01 21:42

ATM机的面向对象编程



package com.lovo.bean;


import java.util.Scanner;


public class Atm {

private int cash;//现金

private UserInfo theUser;//用户信息

public final int MAX_CASH = 100000;//最大现金数

public Atm(){
this.theUser = new UserInfo("王二麻子","123456","111111",20000);
this.cash = 50000;
}


//运行--完成流程控制
public void run(){
this.welcome();
boolean flag = this.login();

if(flag){
while(true){
int choice = this.choiceMenu();
switch(choice){
case 1:
this.query();
break;
case 2:
this.getMoney();
break;
case 3:
this.saveMoney();
break;
case 4:
this.changPwd();
break;
case 5:
this.exit(0);
break;
default:
System.out.println("只能输入数字1-5,请重新输入!");
break;
}
}
}else{
this.exit(1);
}
}

//欢迎
private void welcome(){
System.out.println("***************************");
System.out.println("**********欢***迎***********");
System.out.println("**********使***用***********");
System.out.println("**********爱存不存***********");
System.out.println("**********银***行***********");
System.out.println("***************************");
}

//登录
private boolean login(){
Scanner scan = new Scanner(System.in);

for(int i = 0; i < 3; i++){
System.out.println("请输入卡号:");
String inputCardNum = scan.next();
System.out.println("请输入密码:");
String inputPwd = scan.next();

if(inputCardNum.equals(this.theUser.getCardNum()) &&
inputPwd.equals(this.theUser.getPassword())){
System.out.println("登录成功!");
return true;
}
System.out.println("您还有" + (2 - i) + "次机会!");
}
System.out.println("三次卡号密码输入错误,卡被没收!");
return false;
}

//选择菜单
private int choiceMenu(){
Scanner scan = new Scanner(System.in);
System.out.println("请选择您要操作的业务:");
System.out.println("1、查询余额;2、取款业务;3、存款业务;4、修改密码;5、退出");
int choice = scan.nextInt();

return choice;
}

//查询
private void query(){
System.out.println("您当前的余额是:" + this.theUser.getAccount() + "元。");
}

//存钱
private void saveMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你要存入的金额:");
int inputMoney = scan.nextInt();
if(inputMoney <= 0){
System.out.println("你输入的钱是负数,无法操作!");
return;
}
if(inputMoney % 100 != 0){
System.out.println("你输入的钱不是100的整数,无法操作!");
return;
}
if(this.cash + inputMoney > this.MAX_CASH){
System.out.println("本机容量不足,无法操作!");
return;
}
this.cash += inputMoney;
this.theUser.setAccount(this.theUser.getAccount() + inputMoney);
System.out.println("存钱操作已经成功,谢谢!");
}

//取钱
private void getMoney(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入你要取出的金额:");
int outputMoney = scan.nextInt();
if(outputMoney <= 0){
System.out.println("你输入的钱是负数,无法操作!");
return;
}
if(outputMoney % 100 != 0){
System.out.println("你输入的钱不是100的整数,无法操作!");
return;
}
if(this.theUser.getAccount() < outputMoney){
System.out.println("您账户的余额不足,无法操作!");
return;
}
if(this.cash <= outputMoney){
System.out.println("本机现金不足,无法操作!");
return;
}
this.theUser.setAccount(this.theUser.getAccount() - outputMoney);
this.cash -= outputMoney;
System.out.println("取钱操作已经成功,请收好现金!");
}

//修改密码
private void changPwd(){
Scanner scan = new Scanner(System.in);
System.out.println("请输入原密码:");
String oldPwd = scan.next();
System.out.println("请输入新密码:");
String newPwd = scan.next();
System.out.println("请确认新密码:");
String reNewPwd = scan.next();

if(!oldPwd.equals(this.theUser.getPassword())){
System.out.println("原密码输入错误!");
return;
}
if(!newPwd.equals(reNewPwd)){
System.out.println("两次新密码输入不一致!");
return;
}
this.theUser.setPassword(newPwd);
System.out.println("新密码设置成功!");
}

//退出
private void exit(int status){
if(status == 1){
System.out.println("本机停止为您服务,请去柜台操作处理!");
}else if(status == 0){
System.out.println("谢谢您的使用,期待下次为您服务!");
}
System.exit(0);
}
}



package com.lovo.bean;


public class UserInfo {

private String username;//用户名

private String cardNum;//卡号

private String password;//密码

private float account;//账户额


public UserInfo(){

}

public UserInfo(String username, String cardNum, String password,float account){
this.username = username;
this.cardNum = cardNum;
this.password = password;
this.account = account;
}




public String getUsername() {
return username;
}


public void setUsername(String username) {
this.username = username;
}


public String getCardNum() {
return cardNum;
}


public void setCardNum(String cardNum) {
this.cardNum = cardNum;
}


public String getPassword() {
return password;
}


public void setPassword(String password) {
this.password = password;
}


public float getAccount() {
return account;
}


public void setAccount(float account) {
this.account = account;
}

}


package com.lovo.test;


import java.util.Scanner;


import com.lovo.bean.Atm;


public class TestMain {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Atm().run();

0 0