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,选择修改密码操作。用户输入原密码,再输入新密码,新密码符合要求。用户查询余额,余额不受影响,密码被成功修改。

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

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

相关文章

  • java8新特性 stream流的方式遍历集合和数组操作

    Java 8引入了Stream API,Stream是一种数据处理流程,可以进行筛选、排序、聚合等操作。相比于旧的集合遍历方式,Stream使得代码更加简洁、灵活并且易于并行处理大数据量。 1. Stream简介 1.1 什么是Stream Stream是Java 8引入的一个新API,它允许我们以声明式的方式遍历集合、数组等数据源,把复杂的操作串起来,形成…

    Java 2023年5月26日
    00
  • SpringBoot常用数据库开发技术汇总介绍

    下面我来详细讲解一下“SpringBoot常用数据库开发技术汇总介绍”的完整攻略: SpringBoot常用数据库开发技术汇总介绍 1. 数据库选择 Spring Boot 支持与多种数据库进行集成,包括但不限于 MySQL、PostgreSQL、Oracle、DB2、SQL Server、MongoDB 等。我们可以选择适合自己需求的数据库进行开发。 2.…

    Java 2023年5月15日
    00
  • Java 遍历 String 字符串所有字符的操作

    要遍历 Java 中的 String 字符串,我们可以使用以下两种方式: 1. 使用 charAt() 方法 Java 中的 String 是由一系列字符组成的,我们可以使用 charAt() 方法获取指定索引位置上的字符,从而可以遍历整个字符串。charCodeAt() 方法接收一个整数作为参数,返回该位置上的字符的 Unicode 编码。 具体代码如下:…

    Java 2023年5月26日
    00
  • Mybatis的特点及优点

    让我来详细讲解一下Mybatis的特点及优点。 Mybatis的特点 是一款基于Java的ORM框架,它跟Hibernate等ORM框架不同的是,它对数据库的操作都是通过sql语句进行的,不需要编写复杂的持久化逻辑。因此,Mybatis具有以下几个特点: 1. SQL控制能力强 Mybatis允许开发者自定义SQL语句,并提供了非常灵活的SQL执行方式。开发…

    Java 2023年5月20日
    00
  • Java NIO写大文件对比(win7和mac)

    Java NIO(New I/O,也就是非阻塞 I/O)是 Java 1.4 提供的一种新的 I/O API,使得 Java 的 I/O 操作更加高效灵活。在处理大文件时,Java NIO 也有着比传统的 I/O 更好的性能优势。本文将介绍如何使用 Java NIO 写大文件,并对比在 Windows 7 和 macOS 系统上的性能差异。 准备工作 在开始…

    Java 2023年5月20日
    00
  • Java如何获取字符串单词个数

    要获取一个字符串中的单词个数,可以使用Java的正则表达式和字符串操作。 具体步骤如下: 将字符串按照空格或标点符号进行分割,得到字符串数组(即每个元素为一个单词)。 统计字符串数组的长度,即为单词的个数。 下面是代码实现: public static int getWordCount(String str) { if (str == null || str…

    Java 2023年5月27日
    00
  • springMVC返回复杂的json格式数据方法

    为了返回复杂的json格式数据,我们可以在SpringMVC中使用Jackson库的ObjectMapper类,将java对象序列化为json字符串。下面是SpringMVC返回复杂的json格式数据的步骤。 1. 添加Jackson库依赖 在pom.xml文件中添加Jackson库的依赖。 <dependency> <groupId&gt…

    Java 2023年5月26日
    00
  • Java新手入门学习之正则表达式

    Java新手入门学习之正则表达式 什么是正则表达式? 正则表达式是一种描述字符串模式的语言,可以通过正则表达式来搜索、匹配、替换和分割文本。在Java中,可以使用Java的正则表达式API来完成对于字符串的处理。 Java中正则表达式的基本语法 Java中正则表达式的基本语法如下: pattern.matcher(str).method() 其中patter…

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