银行转账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("无效选择");
        }
    }
}

}

相关文章
|
26天前
|
Java API Maven
2025 Java 零基础到实战最新技术实操全攻略与学习指南
本教程涵盖Java从零基础到实战的全流程,基于2025年最新技术栈,包括JDK 21、IntelliJ IDEA 2025.1、Spring Boot 3.x、Maven 4及Docker容器化部署,帮助开发者快速掌握现代Java开发技能。
258 1
|
1月前
|
数据采集 搜索推荐 Java
Java 大视界 -- Java 大数据在智能教育虚拟学习环境构建与用户体验优化中的应用(221)
本文探讨 Java 大数据在智能教育虚拟学习环境中的应用,涵盖多源数据采集、个性化推荐、实时互动优化等核心技术,结合实际案例分析其在提升学习体验与教学质量中的成效,并展望未来发展方向与技术挑战。
|
1月前
|
安全 Oracle Java
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
150 0
JAVA高级开发必备·卓伊凡详细JDK、JRE、JVM与Java生态深度解析-形象比喻系统理解-优雅草卓伊凡
|
2月前
|
并行计算 Java API
Java List 集合结合 Java 17 新特性与现代开发实践的深度解析及实战指南 Java List 集合
本文深入解析Java 17中List集合的现代用法,结合函数式编程、Stream API、密封类、模式匹配等新特性,通过实操案例讲解数据处理、并行计算、响应式编程等场景下的高级应用,帮助开发者提升集合操作效率与代码质量。
124 1
|
1月前
|
存储 搜索推荐 安全
Java 大视界 --Java 大数据在智能教育学习效果评估与教学质量改进中的应用(209)
本文探讨了 Java 大数据在智能教育中的创新应用,涵盖学习效果评估、教学质量改进及个性化教学方案定制等内容,结合实战案例与代码解析,展现技术如何赋能教育智能化转型。
|
1月前
|
移动开发 Cloud Native 安全
Java:跨平台之魂,企业级开发的磐石
Java:跨平台之魂,企业级开发的磐石
|
2月前
|
安全 算法 Java
Java 多线程:线程安全与同步控制的深度解析
本文介绍了 Java 多线程开发的关键技术,涵盖线程的创建与启动、线程安全问题及其解决方案,包括 synchronized 关键字、原子类和线程间通信机制。通过示例代码讲解了多线程编程中的常见问题与优化方法,帮助开发者提升程序性能与稳定性。
117 0
|
2月前
|
Java API 调度
从阻塞到畅通:Java虚拟线程开启并发新纪元
从阻塞到畅通:Java虚拟线程开启并发新纪元
277 83
|
3月前
|
存储 SQL 安全
Java 无锁方式实现高性能线程实战操作指南
本文深入探讨了现代高并发Java应用中单例模式的实现方式,分析了传统单例(如DCL)的局限性,并提出了多种无锁实现方案。包括基于ThreadLocal的延迟初始化、VarHandle原子操作、Record不可变对象、响应式编程(Reactor)以及CDI依赖注入等实现方式。每种方案均附有代码示例及适用场景,同时通过JMH性能测试对比各实现的优劣。最后,结合实际案例设计了一个高性能配置中心,展示了无锁单例在实际开发中的应用。总结中提出根据场景选择合适的实现方式,并遵循现代单例设计原则以优化性能和安全性。文中还提供了代码获取链接,便于读者实践与学习。
90 0

热门文章

最新文章