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.0
 */
public class Atm {
 /**注:cardNos为卡号,passwords为对应的密码
  * userNames为对应的用户名,moneys为对应的余额
  * time用于限制输入账号和密码的次数
  * userIndex(下标)若为10则表示登陆失败,用于判断输入的账号是数组中的第几个,便于接下来的操作
   */
  public Scanner scanner  = new Scanner(System.in);
       public  String[] cardNos= {"123","456","111"};
       public  String[] passwords= {"112","223","121"};
       public  String[] userNames= {"小张","小小","张晓"};
       public  double[] moneys = {1000,2000,3000};
   public int userIndex = 10;
   public int time=3;

       /**主程序*/
    public static void main(String[] args) {
      Atm atm = new  Atm();
      /**执行启动atm  */
      atm.atmRun();
    }

    /**启动atm  */
    public void atmRun() {
     while(time>0) {
      System.out.println("请输入卡号:");
      String cardNo = scanner.nextLine();
      System.out.println("请输入密码:");
      String pwd = scanner.nextLine();
      /**执行登录*/
      int userIndex= this.login(cardNo, pwd);
      /**判断是否登陆成功*/
      if(userIndex!=10) {
      /**执行功能菜单*/
           this.showMenu();
      }else {
       time --;
       System.out.println("您输入的账号或密码有误");
       System.out.println("你还有"+time+"次机会");
      }
      /**次数用完退出系统*/
      if(time==0) {
       System.exit(0);
      }
     }

     }
    /**
    *
    * @param cardNo 卡号
    * @param pwd  密码
    * @return 整数 userIndex   userIndex:10 表示登录失败  否则为成功
    */
   public int login(String cardNo,String pwd) {
    /**循环判断账号是否存在*/
    for(int i=0;i<cardNos.length;i++) {
     if(cardNo.equals(cardNos[i])) {
      userIndex=i;
      break;
     }
    }
    /**继续判断密码是正确*/
    if(userIndex!=10) {
     /**正确*/
     if(pwd.equals(passwords[userIndex])) {
       return userIndex;
     }else {
      userIndex=10;
     }
    }
    return userIndex;
   }
  /**功能菜单*/
    public void showMenu() {
     time=0;
     int out=10;
     System.out.println("欢迎尊敬的VIP用户:  "+userNames[userIndex]);
     while(out==10) {
      System.out.println("请选择你的操作: 1 查询  2 取款 3 存款 4 转账 5 退出");
      int getNum=scanner.nextInt();
      switch (getNum) {
      case 1:System.out.println("您当前余额为:"+moneys[userIndex]);
     break;
     /**执行取款功能*/
      case 2:this.getMoneys();
       break;
     /**执行存款功能*/
      case 3:this.savaMoney();
      break;
      /**执行转账功能*/
      case 4:this.transMoneys();
      break;
      case 5:  System.out.println("退出成功!");
       out=0;
    }
     } 

    }   

  /**取款功能*/
  public void getMoneys() {
   System.out.println("请输入您的取款金额:");
   int getMoney=scanner.nextInt();
   if(getMoney>moneys[userIndex]) {
    System.out.println("亲亲您的余额不足哦!!!");
    System.out.println("您的余额为:"+moneys[userIndex]);
   }else {
    moneys[userIndex]-=getMoney;
    System.out.println("亲恭喜您成功取款"+getMoney+"     您的余额为:  "+moneys[userIndex]);
   }
  }
  /**存款功能*/
  public void savaMoney() {
   System.out.println("请输入您的存款金额:");
   int savaMoney=scanner.nextInt();
    moneys[userIndex]+=savaMoney;
    System.out.println("亲恭喜您成功存款"+savaMoney+"    您的余额为:  "+moneys[userIndex]);
   }
  /**转账功能*/
  public void transMoneys() {
   /**注:hasUser用于判断转账用户是否存在,若为10则不存在
    * transIndex用于获取转账账号的下标
    */
   int hasUser=10;
   int transIndex=0;
   System.out.println("请输入转账的账号:");
   String transCard=scanner.next();
   for(int i=0;i<cardNos.length;i++) {
    if(transCard.equals(cardNos[i])) {
     hasUser=5;
     transIndex=i;
     break;
    }
   }
   if(hasUser==10) {
    System.out.println("亲亲,此账号不纯在哦!!");
   }else {
    System.out.println("请输入转账金额:");
    double transMoney=scanner.nextDouble();
    if(transMoney>moneys[userIndex]) {
     System.out.println("转账失败!!");
     System.out.println("失败原因:转账金额大于余额,您的余额为:"+moneys[userIndex]);
    }else {
     transCard+=transMoney;
     moneys[userIndex]-=transMoney;
     System.out.println("成功向:"+userNames[transIndex]+"转账:"+transMoney);
     System.out.println("您剩余金额为:"+moneys[userIndex]);
    }
   }
  } 

 }

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

(0)

相关推荐

  • Java实现ATM取款机程序

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

  • 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机系统(2.0版)

    java实现银行ATM自助取款机,实现功能:用户登录.余额查询.存钱.取钱.转账.修改密码.退出系统. 用java实现一个ATM机系统(2.0版) 设计思路 设计五个类包括测试类: 1.ATM类也是主要的类,负责实现用户一系列的操作: 2.Data类,作为ATM类的一个属性,主要实现从java文件user中获取用户全部信息,并返回要找的用户,再将修改完之后的用户信息写入文件中. 这个类是ATM机与文件之间的桥梁: 3.Bank类,有ATM机(has-a),欢迎用户来使用ATM机: 4.User类

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

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

  • js实现简易ATM功能

    本文实例为大家分享了js实现简易ATM功能的具体代码,供大家参考,具体内容如下 案例描述 程序根据输入的序号执行相应的业务处理逻辑 : 1.存款 2.取款 3.查看余额 4.取卡 如果不输入或者错误输入则弹窗提示:你的输入的业务序号有误,请重新输入! 里面现存金额 123 元. 如果存款,就用输入的存款金额加现存的金额, 之后弹出现有余额的提示框 如果取款,就减去取的钱数,之后弹出现有余额的提示框, 如果取款的金额大于剩余金额,则提示余额不足,如果小于等于则可进行取款操作 如果存取款的金额输入款

  • Java实现简易HashMap功能详解

    本文实例讲述了Java实现简易HashMap功能.分享给大家供大家参考,具体如下: 创建节点类 节点类含有的属性:键值对(value,key)以及指向下一节点的next: 这些属性的get以及set方法 代码如下: /** * 节点类 * @author HP * */ public class Node { private Object value; private Object key; private Node next; /** * 空节点 */ public Node() { } /*

  • Java多线程实现简易微信发红包的方法实例

    一. 首先我们先大致了解一下什么是多线程.(书上的解释) 程序是一段静态的代码,它是应用软件的蓝本.进程是程序的一次动态执行过程,对应了从代码加载执行,执行到执行完毕的一个完整的过程. 线程不是进程,线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程形成多条执行线索,每条线索即每个线程也有它自身的产生,存在,消亡的过程,和进程共享操作系统的资源类似,线程间也可以共享进程中的某些内存单元,并利用这些共享单元来实现数据交换,实时通信与必要的同步操作,但与进程不同的是线程的中断和恢复

  • Java实现一个简易版的多级菜单功能

    一:前言 最近老师布置了给多级菜单的作业,感觉蛮有意思的,可以提升自己的逻辑!下面我写个简易版的多级菜单,本人还是菜鸟,欢迎各位给予宝贵的建议! 二:正文 由于是给各位演示,所有我把涉及的其他条件全省略了,只做了给最简单的,以便大家能更好的理解我的思路 1,首先是数据库的设计 DROP TABLE IF EXISTS `t_category`; CREATE TABLE `t_category` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '标识

  • Java模拟QQ桌面截图功能实现方法

    本文实例讲述了Java模拟QQ桌面截图功能实现方法.分享给大家供大家参考.具体如下: QQ的桌面截图功能非常方便,去年曾用Java模拟过一个,现整理出来. 本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏. import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import

  • java web中图片验证码功能的简单实现方法

    用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

  • Java编程调用微信支付功能的方法详解

    本文实例讲述了Java编程调用微信支付功能的方法.分享给大家供大家参考,具体如下: 微信开发文档地址:https://mp.weixin.qq.com/wiki/home/ 从调用处开始 我的流程: 1.点击"支付"按钮,去后台 --> 2.后台生成支付所需数据返回页面 --> 3.页面点击"确认支付"调用微信支付js.完成支付功能. 支付按钮 <div class="button" id="pay" onc

  • java实现简易计算器功能

    本文为大家分享了java实现简易计算器功能,具体内容如下 题目: 编写一个模拟计算器的程序.在面板中添加一个文本框(显示按键及运算结果). 10个数字按钮(0~9).4个运算按钮(加.减.乘.除).一个等号按钮.一个清除按钮, 要求将按键和结果显示在文本框中. 代码过程展示: import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.Action

随机推荐