java实现ATM机系统(2.0版)

Java实现ATM机系统(2.0版)攻略

1. 简介

本文主要介绍如何使用Java语言实现ATM机系统。ATM机系统是现代银行业务基础设施之一,而Java是一门优秀的编程语言,因此使用Java实现ATM机系统具有重要的现实意义和学习价值。

2. 功能需求

ATM机系统需要实现以下功能:

  1. 取款
  2. 存款
  3. 查询余额
  4. 修改密码
  5. 退出系统

3. 系统架构

ATM机系统的架构包括三部分:用户界面、业务逻辑和数据层。

用户界面

用户界面是ATM机系统与用户进行交互的界面。用户界面需要包含以下元素:

  1. 主菜单
  2. 输入输出框
  3. 提示信息

业务逻辑

业务逻辑是ATM机系统的核心部分,负责处理用户的操作请求。业务逻辑需要包含以下部分:

  1. 取款业务
  2. 存款业务
  3. 查询余额业务
  4. 修改密码业务

数据层

数据层负责存储ATM机系统的用户数据,包括账户、密码和余额等信息。数据层需要设计合理的数据结构和数据访问方式。

4. 代码实现

4.1 用户界面

用户界面代码实现如下(以命令行界面为例):

import java.util.Scanner;

public class ATMUI {
    private Scanner input = new Scanner(System.in); // 输入流
    private String userInput; // 用户输入

    public void mainMenu() {
        while (true) {
            System.out.println("====欢迎使用ATM机系统====");
            System.out.println("1. 取款");
            System.out.println("2. 存款");
            System.out.println("3. 查询余额");
            System.out.println("4. 修改密码");
            System.out.println("5. 退出系统");
            System.out.println("==========================");
            System.out.print("请选择操作: ");
            userInput = input.nextLine();

            switch (userInput) {
                case "1":
                    // 处理取款业务
                    break;
                case "2":
                    // 处理存款业务
                    break;
                case "3":
                    // 处理查询余额业务
                    break;
                case "4":
                    // 处理修改密码业务
                    break;
                case "5":
                    System.out.println("谢谢使用,再见!");
                    return;
                default:
                    System.out.println("输入有误,请重新输入!");
            }
        }
    }
}

4.2 业务逻辑

业务逻辑代码实现如下:

public class ATMService {
    private Account account; // 用户账户

    public ATMService(Account account) {
        this.account = account;
    }

    // 取款
    public boolean withdraw(int amount) {
        if (this.account.getBalance() >= amount) {
            this.account.setBalance(this.account.getBalance() - amount);
            return true;
        } else {
            return false;
        }
    }

    // 存款
    public void deposit(int amount) {
        this.account.setBalance(this.account.getBalance() + amount);
    }

    // 查询余额
    public int checkBalance() {
        return this.account.getBalance();
    }

    // 修改密码
    public void changePassword(String password) {
        this.account.setPassword(password);
    }
}

4.3 数据层

数据层代码实现如下:

public class Account {
    private String username; // 用户名
    private String password; // 密码
    private int balance; // 余额

    public Account(String username, String password, int balance) {
        this.username = username;
        this.password = password;
        this.balance = balance;
    }

    // getter和setter方法
    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

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

    public int getBalance() {
        return balance;
    }

    public void setBalance(int balance) {
        this.balance = balance;
    }
}

5. 示例说明

5.1 取款示例

用户输入1,选择取款操作。用户输入500元作为取款金额,系统判断余额充足,取款500元成功。用户查询余额,余额变为原来的余额减去500元。

5.2 修改密码示例

用户输入4,选择修改密码操作。用户输入原密码,再输入新密码,新密码符合要求。用户查询余额,余额不受影响,密码被成功修改。

阅读剩余 75%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现ATM机系统(2.0版) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Java8常用的新特性详解

    Java8常用的新特性详解 Java8是Java语言的一个重大升级,带来了很多新特性。本文将会详细讲解Java8中常用的新特性,方便读者更好地掌握和使用Java8。 Lambda表达式 Lambda表达式是Java8中引入的一项重要特性。它可以用来替代Java中的匿名内部类,并且更加简洁明了。Lambda表达式的语法非常简单,格式如下: (parameter…

    Java 2023年5月26日
    00
  • 深入理解Spring MVC概要与环境配置

    深入理解Spring MVC概要与环境配置 概述 Spring MVC是Spring Framework中的一个模块,用于构建Web应用程序。它提供了一种MVC(模型-视图-控制器)架构,用于实现Web应用程序的分层结构,将业务逻辑、表示层和请求处理逻辑分开,实现更高效、可扩展的Web应用程序。 环境配置 要使用Spring MVC,您需要完成以下几个步骤:…

    Java 2023年5月31日
    00
  • 编写线程安全的JSP程序

    编写线程安全的 JSP 程序需要注意以下几个方面: 避免使用 JavaBean、Session 和 Application 等共享对象作为局部变量。这些对象可能成为多个线程访问的共享资源,从而发生同步问题。 小心使用 JSP 默认的线程同步机制。JSP 的默认行为是重用已编译的页面实例,从而提高性能。但这会导致多个线程共享同一页面实例,如果在页面中使用了共享…

    Java 2023年6月15日
    00
  • Spring Jpa多数据源工程配置过程解析

    下面就详细讲解“Spring Jpa多数据源工程配置过程解析”的完整攻略。 一、Spring Jpa多数据源工程配置过程解析 1.1 背景 在实际开发中,有时候我们需要使用多个数据源,分别连接不同数据库进行数据库操作。Spring Jpa框架提供了配置多数据源的方法,本文将详细介绍配置过程。 1.2 配置步骤 添加Maven依赖 <dependency…

    Java 2023年6月3日
    00
  • Java中Mybatis分页查询的四种传参方式

    前言 在使用 Mybatis 进行分页查询时,我们需要传递分页参数给 Mybatis,以告知查询的起始位置和数量。这篇文章将会详细介绍 Java 中 Mybatis 分页查询的四种传参方式。 前置条件 在介绍 Mybatis 分页查询的传参方式之前,需要先完成如下准备工作: 导入 Mybatis 和 Mybatis-spring 的 jar 包 编写 Myb…

    Java 2023年5月20日
    00
  • 24基于java的宠物医院管理系统

    项目背景 随着互联网的普及,已经和我们的生活不可分割;宠物渐渐的已经成为了我们的好朋友,宠物医院管理系统可以帮助用户合理的管理宠物,呵护宠物的健康,对宠物起到了一个健康监控的作用; 项目介绍 系统总体分为3个角色:分别是系统管理员;医生和用户;不能的角色拥有不同的功能权限,下面详细介绍:系统管理员: 系统设置 宠物管理 预约管理 日常健康 宠物档案管理 医院…

    Java 2023年5月6日
    00
  • 详解springmvc常用5种注解

    让我们来详解一下SpringMVC常用的5种注解。 1. @RequestMapping @RequestMapping注解可以定义控制器方法的URL值。 一个控制器可以有多个方法,并且它们都可以映射到不同的URL值。 示例代码: @Controller @RequestMapping("/users") public class Use…

    Java 2023年6月15日
    00
  • javascript委托(Delegate)blur和focus用法实例分析

    JavaScript 委托(Delegate)blur和focus用法实例分析 在 JavaScript 中,我们常常需要对页面元素添加一些事件,比如 click、mouseover、keyup 等等。但是,如果页面中有很多元素,我们就需要对每个元素都添加事件,这样做会显得很麻烦。所以,JavaScript 委托(Delegate)blur和focus用法应…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部