Java项目实现模拟ATM机

本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下

项目名称

模拟ATM机

项目描述

简单实现ATM机功能

代码实现

测试类

public class Test {
    //模拟多功能ATM机
  public static void main(String[] args) {
    ATM atm = new ATM();
    atm.opearte();
  }
}

主类:实现主方法

public class ATM {
  private Bank bank;
  public ATM(){
    bank = new Bank();
  }
  private void success(BankCard bankCard) {
    while (true) {
      System.out.println("请选择:1、查询余额,2、取款,3、存款,4、转账,5、退卡");
      Scanner scanner = new Scanner(System.in);
      int choice = scanner.nextInt();
      if (choice == 5) {
        return;
      }
      switch (choice) {
        case 1:
          int money = bank.printf(bankCard);
          System.out.println("余额:" + money);
          break;
        case 2:
          System.out.println("请输入取款金额:");
          money = scanner.nextInt();
          bankCard.withdraw(money);
          break;
        case 3:
          System.out.println("请输入存款金额:");
          money = scanner.nextInt();
          bankCard.deposit(money);
          break;
        case 4:
          System.out.println("请输入对方账户id:");
          int id = scanner.nextInt();
          BankCard card = bank.transfer(id);
          if(card != null){
            System.out.println("请输入转账金额:");
            money = scanner.nextInt();
            if(money <= bankCard.getMoney()){
              bankCard.withdraw(money);
              card.deposit(money);
            }else {
              System.out.println("转账失败");
            }
          }else {
            System.out.println("未找到该账户");
          }
          break;
        default:
      }
    }
  }
  private void login(){ //登录
    System.out.println("请输入账号,密码");
    Scanner scanner = new Scanner(System.in);
    int id = scanner.nextInt();
    int password = scanner.nextInt();
    BankCard bankCard = bank.search(id,password);
    if(bankCard != null){
      System.out.println("登录成功");
      success(bankCard);
    }else {
      System.out.println("登录失败,请注册");
    }
  }
  private void register(){ //注册
    System.out.println("请输入账号,密码");
    Scanner scanner = new Scanner(System.in);
    int id = scanner.nextInt();
    int password = scanner.nextInt();
    BankCard bankCard = bank.search(id,password);
    if(bankCard != null){
      System.out.println("该账号已存在,请直接登录");
    }else {
      bank.addcard(id,password);
      System.out.println("注册成功");
    }
  }
  public void opearte() {
    while (true) {
      System.out.println("请选择:1、登录,2、注册,3、退出");
      Scanner scanner = new Scanner(System.in);
      int choice = scanner.nextInt();
      if (choice == 3) {
        return;
      }
      switch (choice) {
        case 1:
          login();
          break;
        case 2:
          register();
          break;
        default:
      }
    }
  }
}

银行类:一个银行对应多个ATM机

public class Bank {
  private BankCard[] bankCards;
  private final int INITSIZE = 10;
  private int size;
  public Bank(){
    bankCards = new BankCard[INITSIZE];
    size = 0;
  }
  public BankCard search(int id,int password){ //搜索
    BankCard[] bankCard = bankCards;
    for(int i=0;i<size;i++){
      if(bankCards[i].getId() == id && bankCards[i].getPassword() == password){
        return bankCard[i];
      }
    }
    return null;
  }
  public void addcard(int id,int password){ //注册
    BankCard bankCard = new BankCard(id, password);
    if (size == bankCards.length){
      bankCards = Arrays.copyOf(bankCards,bankCards.length * 2);
    }
    bankCards[size++] = bankCard;
  }
  public int printf(BankCard bankCard){ //显示余额
     return bankCard.getMoney();
  }
  public BankCard transfer(int id){
    for(int i=0;i<size;i++){
      if(bankCards[i].getId() == id){
        return bankCards[i];
      }
    }
    return null;
  }
}

银行卡类:不同账户的操作

public class BankCard {
  private int id;
  private int password;
  private int money;
  private int size = 0;
  public BankCard(int id,int password){
    this.id = id;
    this.password = password;
    money = 0;
  }
  public int getId(){
    return id;
  }
  public int getPassword(){
    return password;
  }
  public int getMoney(){
    return money;
  }
  public void withdraw(int money){ //取款
    if(this.money >= money){
      this.money -= money;
    }else {
      System.out.println("取款失败");
    }
  }
  public void deposit(int money){ //存款
    this.money += money;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现银行ATM系统

    用Java模拟一个银行ATM系统,供大家参考,具体内容如下 系统功能介绍: 使用面向对象的编程思想,尽可能模拟真实世界中的银行ATM业务流程. main方法里通过调用一行代码,完成整个业务流程的顺序调用. 加入了身份证号,手机号等元素,虽然他们不涉及银行卡的业务处理,但它们是真实世界中办理银行卡的必需条件,这些在代码中也有所体现. 为了尽可能使得随机生成的身份证号码和手机号码和银行卡号切合实际,还手动设计了一个工具类,用来生成随机的号码. 其中涉及到的知识,包括但不限于static修饰符的使用,

  • java模拟ATM功能(控制台连接Mysql数据库)

    本文实例为大家分享了java模拟ATM功能的具体代码,供大家参考,具体内容如下 有三个类:Test.java.Customer.java.CustomerDAO.java.ATMSystem.java ATMSystem.java实现模拟ATM的功能 Customer.java创建一个用户对象 CustomerDAO.java实现连接数据库 Test为主程序 ATMSystem.java: package ATM; import java.util.Scanner; public class A

  • java编写简单的ATM存取系统

    新手练手必备~ 密码账户为: 先创建账户类: 复制代码 代码如下: package cn.Atm; /** * @author 偶my耶 */ import java.io.*; import com.project.project; public class Account {   private String number=null;   private String name=null;   private String password=null;   private double mo

  • java实现ATM取款项目

    项目要求: 1.用户需要从控制台输入账号密码,账号或者密码不正确报异常 2.每日取款的金额有限制(100,30000),否则报异常 3.每次取款都要有记录,并在下一次取款时显示出来 思路: 1.先在"银行类"里生成一些用户(跳过了注册环节) 2.可使用List集合存储取款日志 3.可使用Map集合将"用户名"和对应的用户信息建立"键值关系" 4.使用while循环控制流程 项目实现代码: 管理类(含main方法): import java.uti

  • java 使用线程做的一个简单的ATM存取款实例代码

    实现Runnable接口.当一个线程已继承了另一个类时,就只能用实现Runnable接口的方法来创建线程,且便于保持程序风格的一致性. 我们知道,一个具有生命的线程,具有下面五种状态: 创建状态 使用new运算符创建一个线程后,该线程仅仅是一个空对象,系统没有分配资源,称该线程处于创建状态(new thread) 可运行状态 使用start()方法启动一个线程后,系统为该线程分配了除CPU外的所需资源,使该线程处于可运行状态(Runnable) 运行中状态 Java运行系统通过调度选中一个Run

  • Java实现ATM取款机程序

    本文实例为大家分享了Java实现ATM取款机程序的具体代码,供大家参考,具体内容如下 对象说明: 功能:该程序的功能为实现模拟银行ATM自动取款机取款,存款,查询余额,转账等功能,只是完成了基本的功能. 思路:第一.登录判断,密码限制三次,使用for循环.第二.成功登录,选择相应的功能,使用switch语句.第四.实现功能的反复循环操作,因为次数不确定,使用while结构.第五.对每个功能模块进行填充完善. 代码展示: import java.util.Scanner; public class

  • Java项目实现模拟ATM机

    本文实例为大家分享了Java实现模拟ATM机的具体代码,供大家参考,具体内容如下 项目名称 模拟ATM机 项目描述 简单实现ATM机功能 代码实现 测试类 public class Test { //模拟多功能ATM机 public static void main(String[] args) { ATM atm = new ATM(); atm.opearte(); } } 主类:实现主方法 public class ATM { private Bank bank; public ATM()

  • Java使用嵌套循环模拟ATM机取款业务操作示例

    本文实例讲述了Java使用嵌套循环模拟ATM机取款业务操作.分享给大家供大家参考,具体如下: 代码: package com.jredu.ch03; import java.util.Scanner; public class Work4 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); for (int i =

  • Java详解实现ATM机模拟系统

    目录 一.概述 二.程序概要设计 三.程序详细设计 四.程序演示 一.概述 (1)选题分析 (2) 开发环境 开发环境,选择IDEA这一Java开发软件,基于JDK1.8版本,在本机window上开发本ATM模拟程序. 二.程序概要设计 (1) 功能模块设计 经过对题目的分析,把本ATM模拟程序分为管理员端和用户模式两大模块.其中,管理员具有查询所有账户.导出所有账户信息到文件.注销功能.用户模块具有查询余额.ATM转账.ATM存款.ATM取款.修改密码.查询交易记录.导出记录.退卡等功能. 系

  • Java模拟实现ATM机

    Java模拟ATM机,供大家参考,具体内容如下 实现登录,查询,转账,取款,修改密码,退出功能. 源码 package bank; import java.io.*; import java.util.Scanner; //ATM类 public class Atm { private String[] user;//用户全部信息 private double money;//修改钱数 private double userMoney;//用户的钱 private String newPassw

  • java GUI实现ATM机系统(3.0版)

    写个小项目了解一下GUI.用java GUI实现银行ATM自动取款机,实现登录界面.登录成功界面.各个操作功能实现界面. 用java GUI实现一个ATM机系统(3.0版) 设计思路 设计两个包(bank包,atmJFrame包) 1.bank包: (1).ATM类:实现用户各种操作; (2).Data类:从user文件中获取所有用户信息,并返回要找的用户,再将修改完之后的用户信息写入user文件中: (3).user文件储存所有用户信息. 2.atmJFrame包: (1).MyJFrame类

  • java模拟实现银行ATM机操作

    java模拟银行ATM机操作(基础版),供大家参考,具体内容如下 实现的功能需求: 修改密码之后,就会自动退出登录,再重新登录,若登录成功才能验证修改密码成功,这里用到 [跳出指定循环], 其他功能都是基本操作,作为入门入手程序. 准备两个实体类(一个银行类,一个用户类),一个测试类,注意,这里暂且存储了两个用户,这里可以优化,暂且不优化了 Blank.java package com.demo2; public class Blank {     /*数组模拟数据库后台,并初始化*/    

  • Java实现ATM机操作系统

    本文实例为大家分享了Java实现ATM机操作系统的具体代码,供大家参考,具体内容如下 用IO流操作txt文件作为数据库模拟实现一个ATM业务操作系统---->网上银行,实现登录,查询余额,存款,取款,转账,开户,销户等业务功能看代码 1.用户类----->User: package atm; import java.io.Serializable; public class User implements Serializable{          //建议除了私有属性  无参数有参数构造方

  • 用Java实现简单ATM机功能

    本文实例为大家分享了Java实现简单ATM机功能的具体代码,供大家参考,具体内容如下 项目介绍 基于大家使用银行卡在ATM机取款操作,进行相对应ATM机操作流程的实现. 项目功能 1.注册功能: 根据用户输入的账号密码申请一张银行卡,存储在银行卡类型的数组中(一张银行卡对应一个有效用户). 2.登录功能: 登陆失败:重新登陆 或 注册登陆成功:对登陆的这张银行卡可以进行一下操作:存款.取款.查余额.转账.退卡功能. 项目知识点 3.java基本语法的使用4.一维数组5.函数调用,封装6.Java

  • java实现简单的ATM项目

    本文实例为大家分享了java实现简单的ATM项目的具体代码,供大家参考,具体内容如下 首先要了解的是,这个ATM项目本身是一个轻量级的项目,只为了完成一些ATM具备的一些方法,并非是真正完成一个ATM的全部功能和需求 那么在这个轻量级的ATM项目中,我将完成添加储蓄账号,添加信用账户,提款,取款等基本功能. 适合新手查看,需要掌握java的继承,多态,封装等基本技术能力 那么,首先创建如下的对象类:Account(账户类),Bank(银行类),CreditAccount(信用账户),Saving

随机推荐