Java实现简单银行ATM功能

本文实例为大家分享了Java实现简单银行ATM功能的具体代码,供大家参考,具体内容如下

实现功能

1、用户需要通过输入银行卡号和密码才能进入ATM系统
2、用户可以在ATM中实现取款、存款、转账、余额查询、退出系统等功能

简单分析

1、创建User类(cardNo,identity,phone,username,password,balance(余额))
2、创建Bank类,主要实现初始化用户、用户登录、显示菜单、取款、存款、转账、余额查询、退出系统等功能。

代码实现

User.java

public class User {
   private String username;
   private int password;
   private String cardNo;
   private String identity;
   private String phone;
   private double blance;

  public User() {
  }

  public User(String username, int password, String cardNo, String identity, String phone, double blance) {
    this.username = username;
    this.password = password;
    this.cardNo = cardNo;
    this.identity = identity;
    this.phone = phone;
    this.blance = blance;
  }

  public String getUsername() {
    return username;
  }

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

  public int getPassword() {
    return password;
  }

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

  public String getCardNo() {
    return cardNo;
  }

  public void setCardNo(String cardNo) {
    this.cardNo = cardNo;
  }

  public String getIdentity() {
    return identity;
  }

  public void setIdentity(String identity) {
    this.identity = identity;
  }

  public String getPhone() {
    return phone;
  }

  public void setPhone(String phone) {
    this.phone = phone;
  }

  public double getBlance() {
    return blance;
  }

  public void setBlance(double blance) {
    this.blance = blance;
  }
}

Bank.java

public class Bank {
  //创建用户数组
  private User[] users=new User[100];
  //用户个数
  private int size=0;
  //当前登录的用户
  private User loginuser;

  public Bank() {
    initial();//初始化用户
  }

  /**
  * 初始化用户
  */
  public void initial(){
    User user1=new User("钟爱",12346,"6226789234023434","130324192309123074","13133565435",2312313);
    User user2=new User("冷冬",12354,"6226789234023567","1305472309123074","13446745675",2333);
    User user3=new User("小龙",9893,"6226789234023564","13032414575467457","13145745435",255553);
    User user4=new User("赵丽颖",6342,"6226789234029324","130324192647456774","13145675435",288883);
    User user5=new User("徐三哥",8445,"6226789234025487","1303241923456744","1457785435",28989);
    users[0]=user1;
    users[1]=user2;
    users[2]=user3;
    users[3]=user4;
    users[4]=user5;
    size=5;
  }
  /**
  * 用户登录
  */
  public User login(String cardNo,int password){
    for (int i = 0; i <size ; i++) {
  if((users[i].getCardNo().equals(cardNo))&&(users[i].getPassword()==password)){
        loginuser=users[i];
        return users[i];
      }
    }
    return null;
  }
  /**
  * 显示菜单
  */
  public void showMenus(){
    Scanner input =new Scanner(System.in);
    do { System.out.println("**********************************欢迎进入ATM系统*****************************************");
    System.out.println("*********************1 存款 2 取钱 3 转账 4 查询余额 5 修改密码 0 退出***********************");

      int choice=input.nextInt();
      switch (choice){
        case 1:
          //取款
          save();
          break;
        case 2:
          //存钱
          withdraw();
          break;
        case 3:
          //转账
          trans();
          break;
        case 4:
          //查询余额
          query();
          break;
        case 5:
          //修改密码
          revise();
          break;
        case 0:
          //退出ATM系统
          System.out.println("欢迎下次使用本系统");
         return;
      }
    } while (true);
  }
 /**
   * 存款操作
   */
  public void save(){
    System.out.println("请输入您的存款金额:");
    Scanner input=new Scanner(System.in);
    int money=input.nextInt();
    if(loginuser!=null){
      if(money>0){
        loginuser.setBlance(loginuser.getBlance()+money);
        System.out.println("存款成功");
        System.out.println("您的当前余额为"+loginuser.getBlance());
      }else{
        System.out.println("输入错误!");
      }
    }else{
      System.out.println("您还未进行账户登录");
    }
  }
  /**
   * 取款操作
   */
  public void withdraw(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入你要取出的金额为:");
    int money=input.nextInt();
    if(loginuser!=null){
      if(money>0&&money<=loginuser.getBlance()){
        loginuser.setBlance(loginuser.getBlance()-money);
        System.out.println("取款成功");
        System.out.println("您的当前余额为:"+loginuser.getBlance());
      }else{
        System.out.println("输入错误");
      }
    }else{
      System.out.println("您还未进行账户登录");
    }
  }
  /**
   * 转账操作
   */
  public void trans(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入要转入账户的卡号:");
    String cardNo=input.next();
    User nuser=null;//对方账户
    boolean IsExit=false;//判断对方账户是否存在
    for (int i = 0; i <size; i++) {
      if(users[i].getCardNo().equals(cardNo)){
        IsExit=true;//检索到对方账户
        nuser=users[i];
      }
    }
    if(loginuser==nuser){
      System.out.println("不可以自己给自己账户进行转账");
      return;
    }
    if(loginuser!=null){
      System.out.println("请输入要转账的金额:");
      int money=input.nextInt();
      if(money>0&&money<=loginuser.getBlance()){
        loginuser.setBlance(loginuser.getBlance()-money);
        nuser.setBlance(nuser.getBlance()+money);
        System.out.println("转账成功");
        System.out.println("您当前余额为"+loginuser.getBlance());
        System.out.println(nuser.getBlance());
      }else{
        System.out.println("输入错误");
      }
    }else{
      System.out.println("请登录账户");
    }
  }
  /**
   * 查询余额
   */
  public void query(){

    System.out.println("您的余额为:"+loginuser.getBlance());
  }
  /**
   * 修改密码
   */
  public void revise(){
    Scanner input=new Scanner(System.in);
    System.out.println("请输入您的新密码");
    int newpassword=input.nextInt();
    for (int i = 0; i < size; i++) {
      if(users[i]==loginuser){
        users[i].setPassword(newpassword); //进行修改
      }
    }
    System.out.println("密码修改成功");
  }
}

BankSystem.java

public class BankSystem {
  public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    Bank bank=new Bank();
      System.out.println("请输入您的卡号:");
      String cardNo=input.next();
      System.out.println("请输入您的密码:");
      int password=input.nextInt();
      User user = bank.login(cardNo, password);//用户登录
      if(user!=null){
        System.out.println(user.getUsername()+"登陆成功");
        bank.showMenus();
      }else{
        System.out.println("登陆失败");
      }
  }
}

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

(0)

相关推荐

  • Java实现ATM取款机程序

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

  • 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机

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

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

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

  • 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项目

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

  • Java实现简单银行ATM功能

    本文实例为大家分享了Java实现简单银行ATM功能的具体代码,供大家参考,具体内容如下 实现功能 1.用户需要通过输入银行卡号和密码才能进入ATM系统 2.用户可以在ATM中实现取款.存款.转账.余额查询.退出系统等功能 简单分析 1.创建User类(cardNo,identity,phone,username,password,balance(余额)) 2.创建Bank类,主要实现初始化用户.用户登录.显示菜单.取款.存款.转账.余额查询.退出系统等功能. 代码实现 User.java pub

  • java实现简单银行ATM系统

    本文实例为大家分享了java实现简单银行ATM系统的具体代码,供大家参考,具体内容如下 #ATM系统 ##功能 模拟银行ATM机系统,具有注册.登录功能用户登录后可实现以下功能:1)存款 2)取款 3)转账 4)查询 5)退出 ##设计思路 首先,要进行ATM机操作应该具有银行卡和ATM,所以我们要设计一个ATM类和Bankcard类,ATM具有存取款等操作,Bankcard用来记录用户存取款等操作后的越,其次因为ATM同时为多个用户服务,所以我们应该识别每张卡,这里增加一个Bank类来记录银行

  • Java实现简单文件过滤器功能

    代码思路: 想要循环遍历文件夹下所有子文件夹,就要用到递归. 首先判断路径是否存在: 是:获取文件 判断是否文件夹: 是:调用自身,继续获取子文件夹下内容 否:判断文件后缀,符合则输出 否:输出提示 package com.hanqi.maya.util; import java.io.File; import java.util.Scanner; public class TestGuolv { public static void main(String[] args) { Scanner

  • java方法实现简易ATM功能

    用java方法写简易ATM,供大家参考,具体内容如下 本文需求:用java写一个简易ATM 功能:有登陆,有查询资金功能,有存款功能,有取款功能,有转账功能,有退出: 简述: (java方法)类似于javascript中的函数,用于封装一些代码,以便代码的复用: 技术需求:方法 效果如下: 代码如下: package com.atm; import java.util.Scanner; /** * * @author 小zz *创建时间2019年5月9日下午4:13:10 *@version 1

  • Java实现基础银行ATM系统

    目录 一.前言 二.使用步骤 三.运行效果图: 本文实例为大家分享了Java实现银行ATM系统的具体代码,供大家参考,具体内容如下 一.前言 银行ATM系列简单操作 二.使用步骤 1.创建用户信息类Account.java 代码如下(示例): package ATM; public class Account {         private String id;         private String name;         private double balance;    

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

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

  • Java实现简单密码加密功能

    本文实例为大家分享了Java实现简单密码加密案例,供大家参考,具体内容如下 需求: 首先将一组数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换. 请任意给定一个小于8位的整数, 然后,把加密后的结果在控制台打印出来. 分析: 1.数据小于8位数 2.数据倒序 3.每位数字都加上5,再用和除以10的余数代替该数字 4.最后将第一位和最后一位数字交换 5.打印输出 代码实现: public class Encrypt{ public static v

  • 基于java实现简单发红包功能

    本文实例为大家分享了java实现简单发红包的具体代码,供大家参考,具体内容如下 这个案例是普通红包,均分的,不是拼手气红包. package nuc.edu.day01.demo05; /** * @author Administrator * 用户类 */ public class User { private String name; private Double money; public User() { } //显示当前余额 public void show(){ System.out

  • Java实现简单邮件发送功能

    本文实例为大家分享了Java实现简单邮件发送的具体代码,供大家参考,具体内容如下 需要的jar包: activation-1.1.1.jar mail-1.4.7.jar QQ邮箱设置开启POP3/SMTP服务,并获得授权码 java实现简单邮件发送 import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax

随机推荐