银行ATM

来源:互联网 发布:c语言迷宫算法基本思路 编辑:程序博客网 时间:2024/06/10 05:07
package com.lovo.bean;


import java.util.Scanner;


public class Atm {

private UserBean user;//用户

private int cash;//ATM中的现金

private String bankName;//所属银行

public final int MAX_CASH = 100000;


public Atm(){
//初始化数据
this.cash = 50000;
this.bankName = "ICBC爱存不存银行";
this.user = new UserBean("001003002132","132231",520);
}
//运行方法---流程控制
public void run(){
this.wlecome();
boolean flag = this.login();
if(flag){
while(true){
int choice = this.chooseMenu();
switch(choice){
case 1:
this.query();
break;
case 2:
this.getMoney();
break;
case 3:
this.storeMoney();
break;
case 4:
this.changePwd();
break;
case 5:
this.exit();
break;
default:
System.out.println("没有该选项,请重新选择");
break;
}
}
}else{
this.exit();
}
}
//欢迎方法
private void wlecome(){
System.out.println("**********************");
System.out.println("**欢迎来到***************");
System.out.println("********" + this.bankName + "*");
System.out.println("**********************");
System.out.println("*************verson 1.0");
}
//登录方法
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.user.getCardNum()) && 
inputPwd.equals(this.user.getPassword())){
System.out.println("卡号:" + this.user.getCardNum() + "用户,登录成功!");
return true;
}else{
System.out.println("卡号或密码有误,请查证。");
}
}
System.out.println("三次机会使用完毕,您的卡被没收,请到柜台处理!");
return false;
}
//菜单选择方法
private int chooseMenu(){
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.user.getAccount());
}
//取钱方法
private void getMoney(){
System.out.println("取钱");
Scanner input = new Scanner(System.in);
//输入取款的金额
System.out.println("请输入您的取款金额:");
int getInput = input.nextInt();
//如果输入金额不是100的整数或者金额小于余额,那么不给取
if(getInput % 100 != 0){
System.out.println("取款金额必须是100的整数倍,请重新输入!");//判断输入金额是否为100的整数倍
}else{
if(getInput > this.user.getAccount()){
System.out.println("您的余额不足,请先存钱!");//判断取款金额与账户余额之间的大小
}else{
if(getInput > this.cash){
System.out.println("ATM机中现金不足,请通知工作人员加钞!");//判断取款金额与ATM机中现金的大小
}else{
this.user.setAccount(this.user.getAccount() - getInput);
System.out.println("取款成功,您的账户当前余额为:"
+this.user.getAccount()+"元");//显示取款后的账户余额
this.cash = this.cash - getInput;//ATM机中的现金相应减少
}
}
}
}
//存钱方法
private void storeMoney(){
System.out.println("存钱");
Scanner input = new Scanner(System.in);
System.out.println("请输入您的存款金额:");//输入存款金额
int getInput = input.nextInt();
if(getInput % 100 != 0){
System.out.println("请输入100的整数倍存款金额!");
}else{
if(getInput > (this.MAX_CASH - this.cash)){
System.out.println("很抱歉,钞箱已满不能存钱!");//
}else{
this.user.setAccount(this.user.getAccount() + getInput);
System.out.println("存款成功,您账户当前的余额为:"+this.user.getAccount()+"元");
this.cash = this.cash + getInput;
}
}
}
//修改密码方法
private void changePwd(){
System.out.println("修改密码");
Scanner input = new Scanner(System.in);
System.out.println("请输入原密码:");
String getInput = input.nextLine();

if(!getInput.equals(this.user.getPassword())){
System.out.println("密码错误,不能进行密码重置操作!");
}else{
int index = 0;
for(int i = 0;i < 3;i++){
System.out.println("请输入6位数新密码:");
String getInput1 = input.nextLine();
System.out.println("请再次输入6位数新密码");
String getInput2 = input.nextLine();
if(!getInput1.equals(getInput2)){
System.out.println("两次输入密码不一致,请重新输入:");
index++;
if(index > 2){
System.out.println("您修改密码操作达到3次,不能进行密码重置操作!");
break;
}
}else{
this.user.setPassword(getInput2);
System.out.println("操作成功,您的新密码为:"+this.user.getPassword());
break;
}
}
}
}
//退出方法
private void exit(){
System.out.println("谢谢您的光顾,请下次再来!");
System.exit(1);//关闭虚拟机
}

}


package com.lovo.bean;


public class UserBean {

private String cardNum;//卡号

private String password;//密码

private double account;//余额

public UserBean(){
}
public UserBean(String cardNum, String password, double account) {
this.cardNum = cardNum;
this.password = password;
this.account = account;
}
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 double getAccount() {
return account;
}
public void setAccount(double account) {
this.account = account;
}
}


package com.lovo.test;


import com.lovo.bean.Atm;


public class TestMain {


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

0 0
原创粉丝点击