Java实现ATM取款机程序

 更新时间:2019年01月29日 15:29:07   作者:码走江湖  
这篇文章主要为大家详细介绍了Java实现ATM取款机程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

对象说明:

功能:该程序的功能为实现模拟银行ATM自动取款机取款,存款,查询余额,转账等功能,只是完成了基本的功能。

思路:第一、登录判断,密码限制三次,使用for循环。第二、成功登录,选择相应的功能,使用switch语句。第四、实现功能的反复循环操作,因为次数不确定,使用while结构。第五、对每个功能模块进行填充完善。

代码展示:

import java.util.Scanner;

public class BankATM {
 public static void main(String[] args) {
 Scanner input = new Scanner(System.in);

 String cardNum = "6228123123"; // 卡号
 int pwd = 888888; // 密码
 boolean flag = true; // 声明布尔类型变量
 double surplus = 1000;// 余额

 // 界面
 System.out.println("---------欢迎使用工商银行ATM机---------");

 /** 用于进行登录的次数限制止 **/
 for (int i = 1; i <= 3; i++) {
 String inputCard = input.next();
 System.out.println("请输入您的密码:");
 int inputPwd = input.nextInt();

 // 验证账号和密码
 if (inputCard.equals(cardNum) && inputPwd == pwd) {
 flag = true;
 break;
 } else {
 if (i <= 2) {
  System.out.println("对不起,密码输入不正确,你还有" + (3 - i) + "次机会!");
 } else {
  System.out.println("对不起,您的卡已被锁定!");
  break;
 }
 flag = false;
 }
 }

 /** 登录成功后选择功能 */
 if (flag) {
 char answer = 'y';
 while (answer == 'y') {
 System.out.println("请选择功能:1.取款 2.存款 3.查询余额 4.转账 5.退出");
 int choice = input.nextInt();
 switch (choice) {
 case 1:
  // 执行取款操作
  System.out.println("--->取款");
  System.out.println("请输入取款金额:");
  double getMoney = input.nextDouble();
  if (getMoney > 0) {
  if (getMoney <= surplus) {
  if (getMoney % 100 == 0) {
  System.out.println("请取走您的钞票!余额为¥" + (surplus - getMoney));
  } else {
  System.out.println("对不起,不能取零钱!");
  }
  } else {
  System.out.println("对不起,余额不足!");
  }
  } else {
  System.out.println("请输入正确的金额:");
  }

  break;
 case 2:
  // 执行存款操作
  System.out.println("--->存款");
  System.out.println("请把钞票整理后放入存钞口:");
  double saveMoney = input.nextDouble();
  if (saveMoney > 0 && saveMoney <= 10000) {
  if (saveMoney % 100 == 0) {
  surplus += saveMoney;
  System.out.println("存款成功!余额为¥" + surplus);
  } else {

  double backMoney = saveMoney % 100;
  surplus = saveMoney + surplus - backMoney;
  System.out.println("存款成功!余额为¥" + surplus);
  System.out.println("请取走零钱¥" + backMoney);
  }
  } else if (saveMoney > 10000) {
  System.out.println("一次最多存入一万元,请分批存入!");
  } else {
  System.out.println("存入的钞票是假的,无效没收!");
  }
  break;
 case 3:
  // 执行查询余额
  System.out.println("--->查询余额");
  System.out.println("您卡上的余额是:" + surplus);
  break;
 case 4:
  // 执行转账操作
  System.out.println("--->转账");
  System.out.println("请输入转账金额:");
  double goMoney = input.nextDouble(); // 转账金额
  if (goMoney > 0) {
  if (goMoney <= surplus) {
  System.out.println("转账成功!余额为¥" + (surplus - goMoney));
  } else {
  System.out.println("对不起,请确保卡上有足够的余额!");
  }

  } else {
  System.out.println("转账失败!请输入正确的金额:");
  }
  break;
 case 5:
  // 执行退出操作
  // System.out.println("--->退出");
  System.out.println("谢谢您的使用!");
  return;
 default:
  System.out.println("对不起,您选择的功能有误!");
  break;
 }// switch end
 System.out.println("继续吗?y/n");
 answer = input.next().charAt(0);

 } // while end
 System.out.println("谢谢您的使用!");

 }

 }
}

效果截图:

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

相关文章

  • Java设计模式之策略模式原理与用法实例详解

    Java设计模式之策略模式原理与用法实例详解

    这篇文章主要介绍了Java设计模式之策略模式原理与用法,结合实例形式较为详细的分析了Java策略模式的概念、原理、定义及使用方法,并总结了相关的优缺点,具有一定参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • Java JDK动态代理的基本原理详细介绍

    Java JDK动态代理的基本原理详细介绍

    这篇文章主要介绍了Java JDK动态代理的基本原理详细介绍的相关资料,这里对动态代理进行了详解并附简单实例代码,需要的朋友可以参考下
    2017-01-01
  • Ubuntu快速安装jdk的教程

    Ubuntu快速安装jdk的教程

    这篇文章主要为大家详细介绍了Ubuntu快速安装jdk的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Spring框架中一个有用的小组件之Spring Retry组件详解

    Spring框架中一个有用的小组件之Spring Retry组件详解

    Spring Retry 是从 Spring batch 中独立出来的一个功能,主要实现了重试和熔断,对于那些重试后不会改变结果,毫无意义的操作,不建议使用重试,今天通过本文给大家介绍Spring Retry组件详解,感兴趣的朋友一起看看吧
    2021-07-07
  • Spring Cloud详解实现声明式微服务调用OpenFeign方法

    Spring Cloud详解实现声明式微服务调用OpenFeign方法

    这篇文章主要介绍了Spring Cloud实现声明式微服务调用OpenFeign方法,OpenFeign 是 Spring Cloud 家族的一个成员, 它最核心的作用是为 HTTP 形式的 Rest API 提供了非常简洁高效的 RPC 调用方式,希望对大家有所帮助。一起跟随小编过来看看吧
    2022-07-07
  • springboot使用hibernate validator校验方式

    springboot使用hibernate validator校验方式

    hibernate validator提供了一套比较完善、便捷的验证实现方式。下面小编给大家介绍下springboot使用hibernate validator校验方式,感兴趣的朋友一起看看吧
    2018-01-01
  • idea2020.2卡死在reading maven projects

    idea2020.2卡死在reading maven projects

    这篇文章主要介绍了idea2020.2卡死在reading maven projects,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringBoot自定义Starter及使用

    SpringBoot自定义Starter及使用

    这篇文章主要介绍了SpringBoot自定义Starter及使用,Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境进行自动配置,需要的朋友可以参考下
    2023-07-07
  • java8、jdk8日期转化成字符串详解

    java8、jdk8日期转化成字符串详解

    在本篇文章中小编给大家整理了关于java8、jdk8日期转化成字符串的相关知识点和代码,需要的朋友们学习下。
    2019-04-04
  • .NET程序员如何入门Spring Boot详解

    .NET程序员如何入门Spring Boot详解

    这篇文章主要介绍了.NET程序员如何快入门Spring Boot,微软给VS Code提供了编写Java的插件,你可以在VS Code上愉快地写Java。,需要的朋友可以参考下
    2019-06-06

最新评论