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

}

相关文章
|
29天前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
53 5
|
29天前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
112 1
|
9天前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
100 0
|
9天前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
86 7
|
1月前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
101 5
|
1月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
148 3
|
1月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
52 1
|
1月前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
98 1
|
1月前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
59 2
|
1月前
|
安全 Java 编译器
Java基础学习day06
本节学习Java继承与多态核心概念:继承通过extends实现,子类可复用父类非私有成员,支持单继承与多层继承,遵循就近原则并可用super调用父类成员;方法重写需满足权限与返回值约束,常用于重写toString等。多态基于继承,实现父类引用指向子类对象,提升扩展性但无法直接访问子类独有方法,可通过instanceof安全类型转换。
95 2