银行转账p图软件,对公转账截图生成器,java版开发银行模拟器【仅供学习参考】

简介: 这是一套简单的银行账户管理系统代码,包含`BankAccount`和`BankSystem`两个核心类。`BankAccount`负责单个账户的管理

下载地址:https://www.pan38.com/share.php?code=bRtMK 提取码:8888 【仅供学习参考使用】

BankAccount类 - 核心账户管理模块
功能特点:
封装账户基本信息(账号、户名、余额)
提供存款/取款基础操作
记录完整的交易流水
支持账户信息查询和流水打印
BankSystem类 - 银行系统管理模块
功能特点:
使用HashMap管理所有账户
提供账户创建功能
实现账户间转账逻辑
支持全行账户查询

import java.util.ArrayList;
import java.util.List;

public class BankAccount {
private final String accountNumber;
private String accountName;
private double balance;
private List transactionHistory;

public BankAccount(String number, String name) {
    this.accountNumber = number;
    this.accountName = name;
    this.balance = 0.0;
    this.transactionHistory = new ArrayList<>();
}

public void deposit(double amount) {
    if(amount > 0) {
        balance += amount;
        transactionHistory.add("存款: +" + amount);
    }
}

public boolean withdraw(double amount) {
    if(amount > 0 && balance >= amount) {
        balance -= amount;
        transactionHistory.add("取款: -" + amount);
        return true;
    }
    return false;
}

public String getAccountInfo() {
    return String.format("账号: %s 户名: %s 余额: %.2f", 
           accountNumber, accountName, balance);
}

public void printStatement() {
    System.out.println("\n===== 账户流水 =====");
    System.out.println(getAccountInfo());
    System.out.println("交易记录:");
    for(String record : transactionHistory) {
        System.out.println(record);
    }
}

}

import java.util.HashMap;

public class BankSystem {
private HashMap accounts;

public BankSystem() {
    accounts = new HashMap<>();
}

public void createAccount(String number, String name) {
    if(!accounts.containsKey(number)) {
        accounts.put(number, new BankAccount(number, name));
    }
}

public boolean transfer(String from, String to, double amount) {
    BankAccount src = accounts.get(from);
    BankAccount dst = accounts.get(to);

    if(src != null && dst != null && src.withdraw(amount)) {
        dst.deposit(amount);
        return true;
    }
    return false;
}

public void displayAllAccounts() {
    System.out.println("\n===== 所有账户 =====");
    for(BankAccount account : accounts.values()) {
        System.out.println(account.getAccountInfo());
    }
}

}

java.util.Scanner;

public class MainApp {
public static void main(String[] args) {
BankSystem system = new BankSystem();
Scanner scanner = new Scanner(System.in);

    // 初始化测试数据
    system.createAccount("622202100001", "测试用户1");
    system.createAccount("622202100002", "测试用户2");

    while(true) {
        System.out.println("\n===== 银行模拟系统 =====");
        System.out.println("1. 创建账户");
        System.out.println("2. 账户转账");
        System.out.println("3. 查看所有账户");
        System.out.println("0. 退出");
        System.out.print("请选择操作: ");

        int choice = scanner.nextInt();
        scanner.nextLine();

        switch(choice) {
            case 1:
                System.out.print("输入账号: ");
                String num = scanner.nextLine();
                System.out.print("输入户名: ");
                String name = scanner.nextLine();
                system.createAccount(num, name);
                break;

            case 2:
                System.out.print("输入转出账号: ");
                String from = scanner.nextLine();
                System.out.print("输入转入账号: ");
                String to = scanner.nextLine();
                System.out.print("输入转账金额: ");
                double amount = scanner.nextDouble();
                if(system.transfer(from, to, amount)) {
                    System.out.println("转账成功");
                } else {
                    System.out.println("转账失败");
                }
                break;

            case 3:
                system.displayAllAccounts();
                break;

            case 0:
                System.out.println("感谢使用银行模拟系统");
                scanner.close();
                System.exit(0);

            default:
                System.out.println("无效选择");
        }
    }
}

}

相关文章
|
9月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
717 0
|
9月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
9月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
860 8
|
9月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
441 1
|
10月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
149 5
|
10月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
250 1
|
设计模式 Oracle Java
Java进阶专题(三) 软件架构设计原则(下)
今天开始我们专题的第二课了,本章节继续分享软件架构设计原则的下篇,将介绍:接口隔离原则、迪米特原则、里氏替换原则和合成复用原则。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)。
378 0
|
Java Go 数据安全/隐私保护
Java进阶专题(二) 软件架构设计原则(上)
今天开始我们专题的第一课了,也是我开始进阶学习的第一天,我们先从经典设计思想开始,看看大牛市如何写代码的,提升技术审美、提高核心竞争力。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)
5570 0
|
Java 关系型数据库 Go
Java进阶专题(二) 软件架构设计原则(上)
今天开始我们专题的第一课了,也是我开始进阶学习的第一天,我们先从经典设计思想开始,看看大牛市如何写代码的,提升技术审美、提高核心竞争力。本章节参考资料书籍《Spring 5核心原理》中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的)。
401 0
|
9月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
427 1