银行转账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天前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
36 5
|
9天前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
55 1
|
10天前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
91 5
|
10天前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
110 3
|
10天前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
35 1
|
10天前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
68 1
|
15天前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
47 2
|
18天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
54 0
|
1月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
82 16