首页 > 编程语言 >基于Java的ATM机模拟程序设计与实现

基于Java的ATM机模拟程序设计与实现

时间:2024-10-13 11:46:33浏览次数:7  
标签:Java ATM System 用户 余额 println 程序设计 out

一、引言

随着金融行业的发展,ATM机已经成为人们日常生活中不可或缺的一部分。为了更好地理解ATM机的工作原理,本文设计并实现了一个基于Java的ATM机模拟程序。该程序通过模拟ATM机的操作流程,使用户能够体验到ATM机的基本功能。

二、系统设计与实现

1.用户登录模块

用户登录模块是系统的入口,用户需要输入正确的密码才能进入ATM机的操作界面。系统允许用户最多输入三次密码,如果三次均错误,则打印错误信息并退出系统。代码如下:

 public static boolean login(Scanner sc) {
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入密码:");
            String pwd = sc.next(); // 接收用户输入的密码  
            if ("123456".equals(pwd)) { // 判断密码是否正确  
                return true; // 密码正确,登录成功  
            } else {
                if (i == 2) {
                    System.out.println("密码3次输入错误,系统退出!");
                } else {
                    System.out.println("密码错误,请重新输入:");
                }
            }
        }
        return false; // 3次输入密码均错误,登录失败  
    }
2.查询余额模块

查询余额模块用于显示用户当前的账户余额。用户选择查询余额操作后,系统会显示当前余额。如果用户选择1,显示当前余额。

3.存款模块

存款模块用于实现用户的存款功能。用户选择存款操作后,系统会提示用户输入存款金额,并更新账户余额。

4.取款模块

取款模块用于实现用户的取款功能。用户选择取款操作后,系统会提示用户输入取款金额。如果取款金额大于账户余额,系统会打印错误信息并提示余额不足;否则,系统会更新账户余额。

5.退出模块 

退出模块用于实现用户的退出功能。用户选择退出操作后,系统会打印感谢信息并退出程序。

6.系统架构

本系统采用Java语言进行开发,主要包括用户登录模块、查询余额模块、存款模块、取款模块和退出模块。各个模块之间通过调用和返回实现数据的交互和功能的实现。程序代码如下:

import java.util.Scanner;

/**
 * ATM机模拟程序  
 */
public class ATM {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // 创建Scanner对象以接收用户输入  
        int sum = 1000; // 初始化账户余额  

        // 登录流程  
        System.out.println("**欢迎使用ATM机!**,登录成功后,您可以进行如下操作:");
        if (login(sc)) { // 调用login方法,如果登录成功则继续  
            System.out.println("登录成功,请操作:");

            // 主操作循环  
            while (true) {
                // 显示操作选项  
                System.out.println("1.查询余额");
                System.out.println("2.存款");
                System.out.println("3.取款");
                System.out.println("4.退出");
                // 接收用户选择的操作代码  
                int code = sc.nextInt();
                // 根据用户选择执行相应操作  
                switch (code) {
                    case 1:
                        System.out.println("当前余额:" + sum);
                        break;
                    case 2:
                        System.out.println("请输入存款数:");
                        sum = save(sum, sc.nextInt()); // 调用存款方法并更新余额  
                        break;
                    case 3:
                        System.out.println("请输入取款数:");
                        sum = del(sum, sc.nextInt()); // 调用取款方法并更新余额  
                        break;
                    case 4:
                        System.out.println("谢谢使用!");
                        return; // 退出程序  
                    default:
                        System.out.println("输入错误,请重新输入!");
                }
            }
        }
    }
    /**
     * 存款方法  
     * @param money 当前余额  
     * @param add 存款金额  
     * @return 更新后的余额
     */
    public static int save(int money, int add) {
        return money + add;
    }

    /**
     * 取款方法  
     * @param money 当前余额  
     * @param jian 取款金额  
     * @return 更新后的余额(如果取款金额大于余额,则返回原余额并提示余额不足)  
     */
    public static int del(int money, int jian) {
        if (jian > money) {
            System.out.println("余额不足,无法取款!");
            return money;
        }
        return money - jian;
    }

    /**
     * 登录方法  
     * @param sc Scanner对象,用于接收用户输入  
     * @return 如果登录成功返回true,否则返回false  
     */
    public static boolean login(Scanner sc) {
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入密码:");
            String pwd = sc.next(); // 接收用户输入的密码  
            if ("123456".equals(pwd)) { // 判断密码是否正确  
                return true; // 密码正确,登录成功  
            } else {
                if (i == 2) {
                    System.out.println("密码3次输入错误,系统退出!");
                } else {
                    System.out.println("密码错误,请重新输入:");
                }
            }
        }
        return false; // 3次输入密码均错误,登录失败  
    }
}

三、系统测试

在系统设计完成后,我们对系统进行了全面的测试。测试结果表明,系统能够正确地实现用户登录、查询余额、存款、取款和退出等功能。同时,系统也具有良好的稳定性和可靠性。

四、结论

本文设计并实现了一个基于Java的ATM机模拟程序。该程序通过模拟ATM机的操作流程,使用户能够体验到ATM机的基本功能。测试结果表明,系统能够正确地实现各项功能,并具有良好的稳定性和可靠性。通过本程序的设计和实现,我们进一步了解了Java编程在模拟现实系统中的应用。

标签:Java,ATM,System,用户,余额,println,程序设计,out
From: https://blog.csdn.net/yyhhh1/article/details/142891643

相关文章

  • 2024-2025-1学期 20241427 《计算机基础与程序设计》第3周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03)这个作业的目标学会数字分类与计数法,以及进制转化,数字化和门的应用作业正文https://i.cnblogs......
  • 基于Java+SSM的二手车交易网站
    项目说明网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此二手车交易信息的管理计算机化,系统化是必要的。设计开......
  • 基于Java+SSM的个性化美食推荐系统
    项目说明现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本个性化美食推荐系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提......
  • 基于Java的百货中心管理系统的设计与实现(源码+文档+部署讲解等)
    文章目录1.前言2.详细视频演示3.程序运行示例图4.文档参考5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue5.3程序操作流程6.选题推荐7.原创毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10.为什么选择我?11.获取源码1.前言......
  • 一个月学会Java 第11天 面向对象——多态
    Day11面向对象——多态我们来复习一下面向对象的三大特性分别是什么,面向对象拥有的三大特性分别为继承、封装、多态。继承我们也已经学过了,就是父类和子类、封装其实也学过了其实就是访问修饰符和包,主要的作用为更好的封装我们接下来要讲的多态则是面向对象的最难点,他......
  • 基于springboot的水果商城系统的设计与实现java+vue(源码+lw+部署文档+讲解等)
    背景及意义该校园水果自动售卖系统基于SpringBoot+Vue技术构建,旨在为四川旅游学院的师生提供便捷、高效的水果购买服务。对于学生和教师而言,系统提供了直观友好的用户界面。通过手机或校内的终端设备,用户可以轻松访问系统。在界面上,用户能够清晰地看到各类水果的展......
  • javascript学习——算术运算符
    算术运算符运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript提供了多种运算符,覆盖了所有主要的运算。概述JavaScript共提供10个算术运算符,用来完成基本的算术运算。加法运算符:x+y减法运算符:x-y乘法运算符:x*y除法运算符:x/y指数运算符:x**y......
  • 基于springboot的社团管理系统java+vue项目(源码+lw+部署文档+讲解等)
    背景及意义该社团管理系统基于SpringBoot+Vue技术构建,旨在为学校或组织的社团管理提供高效、便捷的解决方案。对于社团成员而言,系统提供了便捷的参与渠道。成员可以通过系统查看社团的详细信息,包括社团简介、宗旨、活动安排等,以便更好地了解社团文化和活动内容。在......
  • javascript学习——二进制位运算符
    二进制位运算符概述二进制位运算符用于直接对二进制位进行计算,一共有7个。二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1。二进制与运算符(and):符号为&,表示若两个二进制位都为1,则结果为1,否则为0。二进制否运算符(not):符号为~,表示对一个二进制位取反。异或......
  • 2024-2025-3-计算机基础与程序设计
    学期(如2024-2025-3)学号(20241404)《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13265这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)......