zoukankan      html  css  js  c++  java
  • Atm

    本周学习了面向对象编程,所以重做了Atm机代码

    一.

    public class TestMain {

    public static void main(String[] args) {

    ATMMachine machine = new ATMMachine();
    machine.run();

    }

    }

    二.

    //用户信息
    public class UserInfo {
    //账号
    private String username;
    //密码
    private String password;
    //余额
    float account;

    public UserInfo(){

    }

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

    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    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;
    }
    }

    三.

    import java.util.Scanner;


    //ATM机
    public class ATMMachine {
    // 用户信息
    private UserInfo user;
    // 现金
    private int cash;
    // 现金容量上限
    public final int MAX_CASH = 200000;
    // 存取上限
    public final int GET_SET_MAX = 2000;
    private float account;
    private Object choose;

    public ATMMachine() {
    // 预载入用户信息
    this.user = new UserInfo("J124", "123456", 500);
    this.cash = 100000;
    }

    // 运行
    public void run() {

    this.welcome();
    boolean flag = this.login();
    if (flag) {
    System.out.println("欢迎您,用户" + this.user.getUsername() + "!");
    while (true) {
    int choice = this.choiceMenu();
    switch (choice) {
    case 1:
    this.query();

    break;
    case 2:
    this.storeMoney();
    break;
    case 3:
    this.getMoney();
    break;
    case 4:
    this.changePwd();
    break;
    case 5:
    this.exit();
    break;
    default:
    System.out.println("对不起,没有该选项!");
    break;
    }
    }
    } else {
    System.out.println("您的账户被冻结!请到柜台处理!");
    }
    }

    // 显示欢迎
    private void welcome() {
    System.out.println("******************************");
    System.out.println("*********欢**迎**登**录*********");
    System.out.println("******************************");
    System.out.println("*********爱存不存银行ATM*********");
    System.out.println("******************************");
    System.out.println("*****************version1.0***");
    }

    // 登录
    private boolean login() {

    for (int i = 0; i < 3; i++) {
    Scanner scan = new Scanner(System.in);
    System.out.println("请输入您的账号:");
    String inputName = scan.next();
    System.out.println("请输入您的密码:");
    String inputPwd = scan.next();
    if (inputName.equals(this.user.getUsername())
    && inputPwd.equals(this.user.getPassword())) {
    return true;
    } else {
    System.out.println("输入有误!您还有" + (2 - i) + "次机会");
    }
    }
    return false;
    }

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

    // 查询余额
    private void query() {
    //直接显示user对象中的account属性值
    Scanner scan=new Scanner(System.in);
    System.out.println(this.user.getAccount());
    System.out.println("请选择操作 1.返回 2.退出");
    int choose=scan.nextInt();
    switch(choose){
    case 1:
    break;
    case 2:
    System.out.println("谢谢您的使用!请收好您的卡!");
    System.exit(0);
    }
    }


    // 存钱
    private void storeMoney() {
    //1、接收用户输入
    //2、判断--不能为0,不能为负,不能不是100的倍数,不能超过存取上限,不能超过现金容量--给出提示
    //3、判断通过--加现金,加余额

    float storemoney=0;
    Scanner scan=new Scanner(System.in);

    System.out.println("请输入存款金额!");
    storemoney=scan.nextFloat();
    if(storemoney<=0 ){
    System.out.println("输入金额不正确,请输入正确金额!");
    storemoney=0;
    }
    else if((int) (storemoney) % 100!=0){
    System.out.println("请输入正确取款金额!");
    storemoney=0;
    }
    else if(storemoney>this.GET_SET_MAX){
    System.out.println("存取上线,请重新选择金额,或去柜台办理业务!");
    storemoney=0;
    }
    else if(this.cash+storemoney>this.MAX_CASH){
    System.out.println("金额上线,请到柜台办理该业务!");
    storemoney=0;
    }
    else{
    System.out.println("恭喜存钱成功!");
    }

    this.user.account+=storemoney;
    this.cash+=storemoney;
    System.out.println("请选择操作 1.返回 2.退出");
    int choose = scan.nextInt();
    switch(choose){
    case 1:
    break;
    case 2:
    System.out.println("谢谢您的使用!请收好您的卡!");
    System.exit(0);
    }
    }

    // 取款
    private void getMoney() {

    float getmoney=0;
    Scanner scan=new Scanner(System.in);

    System.out.println("请输入取款金额!");
    getmoney=scan.nextFloat();
    if((int)(getmoney)%100!=0){
    System.out.println("请输入正确金额!");
    getmoney=0;
    }
    else{
    System.out.println("恭喜你,取钱成功,请拿好现金!");

    }

    this.user.account-=getmoney;
    this.cash-=getmoney;
    System.out.println("请选择操作 1.返回 2.退出");
    int choose=scan.nextInt();
    switch(choose){
    case 1:
    break;
    case 2:
    System.out.println("谢谢您的使用!请收好您的卡!");
    System.exit(0);
    }
    }


    // 修改密码
    private void changePwd() {

    Scanner scan=new Scanner(System.in);

    System.out.println("请输入需要修改的密码");
    String password=scan.next();
    if(password.equals(this.user.getPassword())){
    System.out.println("请第一次输入新的密码");
    String password1=scan.next();
    System.out.println("请第二次输入新的密码");
    String password2=scan.next();
    if(password1.equals(password2)){
    System.out.println("密码修改成功");
    }
    else{
    System.out.println("两次密码输入不一致,请重新输入");
    }

    }

    else{
    System.out.println("密码输入有误,请重新输入");
    }
    System.out.println("请选择操作 1.返回 2.退出");
    int choose=scan.nextInt();
    switch(choose){
    case 1:
    break;
    case 2:
    System.out.println("谢谢您的使用!请收好您的卡!");
    System.exit(0);
    }

    }

    // 退出
    private void exit() {
    System.out.println("谢谢您的使用!请收好您的卡!");
    System.exit(0);
    }

    }

  • 相关阅读:
    sql增删改查-转载
    委托和事件 链接
    三层架构-转载
    ToList()方法
    Invoke--转载
    C# 6.0新特性---语法糖
    索引器
    HBase学习总结(1)
    教程-关于Owner和Parent的区别
    问题-在TreeView使用时,发现选中的树节点会闪烁或消失
  • 原文地址:https://www.cnblogs.com/-xhx/p/5518052.html
Copyright © 2011-2022 走看看