银行回单生成器手机版, 银行转账回执单生成器, 银行转账回执单生成器在线制作

简介: 实现账户冻结/解冻功能添加交易限额检查

下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:8888

包含详细的代码实现和功能说明。这个生成器可以模拟银行转账系统的核心功能,包括账户验证、余额检查、转账处理等模块。
import random
import datetime
import hashlib
import json
from typing import Dict, List, Optional

class BankAccount:
def init(self, account_number: str, account_name: str, balance: float = 0.0):
self.account_number = account_number
self.account_name = account_name
self.balance = balance
self.transaction_history = []

def deposit(self, amount: float) -> bool:
    if amount <= 0:
        return False
    self.balance += amount
    self._record_transaction("DEPOSIT", amount)
    return True

def withdraw(self, amount: float) -> bool:
    if amount <= 0 or amount > self.balance:
        return False
    self.balance -= amount
    self._record_transaction("WITHDRAW", -amount)
    return True

def transfer(self, amount: float, recipient) -> bool:
    if amount <= 0 or amount > self.balance:
        return False
    if not isinstance(recipient, BankAccount):
        return False

    self.balance -= amount
    recipient.balance += amount

    self._record_transaction(f"TRANSFER_TO:{recipient.account_number}", -amount)
    recipient._record_transaction(f"TRANSFER_FROM:{self.account_number}", amount)
    return True

def _record_transaction(self, transaction_type: str, amount: float):
    transaction = {
        "timestamp": datetime.datetime.now().isoformat(),
        "type": transaction_type,
        "amount": amount,
        "balance": self.balance
    }
    self.transaction_history.append(transaction)

def get_transaction_history(self, limit: int = 10) -> List[Dict]:
    return self.transaction_history[-limit:]

def __str__(self):
    return f"Account {self.account_number} ({self.account_name}): Balance ${self.balance:.2f}"

class BankSystem:
def init(self):
self.accounts: Dict[str, BankAccount] = {}
self.transaction_id_counter = 0

def create_account(self, account_name: str, initial_balance: float = 0.0) -> BankAccount:
    account_number = self._generate_account_number()
    account = BankAccount(account_number, account_name, initial_balance)
    self.accounts[account_number] = account
    return account

def _generate_account_number(self) -> str:
    while True:
        account_number = f"{random.randint(10000000, 99999999)}"
        if account_number not in self.accounts:
            return account_number

def get_account(self, account_number: str) -> Optional[BankAccount]:
    return self.accounts.get(account_number)

def transfer(self, from_account: str, to_account: str, amount: float) -> bool:
    sender = self.get_account(from_account)
    receiver = self.get_account(to_account)

    if not sender or not receiver:
        return False

    if sender.account_number == receiver.account_number:
        return False

    return sender.transfer(amount, receiver)

def generate_transaction_id(self) -> str:
    self.transaction_id_counter += 1
    timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
    return f"TXN{timestamp}{self.transaction_id_counter:06d}"

def save_to_file(self, filename: str):
    data = {
        "accounts": [
            {
                "account_number": acc.account_number,
                "account_name": acc.account_name,
                "balance": acc.balance,
                "transactions": acc.transaction_history
            }
            for acc in self.accounts.values()
        ]
    }
    with open(filename, "w") as f:
        json.dump(data, f, indent=2)

@classmethod
def load_from_file(cls, filename: str):
    bank = cls()
    try:
        with open(filename, "r") as f:
            data = json.load(f)
            for acc_data in data["accounts"]:
                account = BankAccount(
                    acc_data["account_number"],
                    acc_data["account_name"],
                    acc_data["balance"]
                )
                account.transaction_history = acc_data["transactions"]
                bank.accounts[account.account_number] = account
    except FileNotFoundError:
        pass
    return bank

def generate_mock_data(bank: BankSystem, num_accounts: int = 10):
names = ["Alice", "Bob", "Charlie", "David", "Eve", "Frank", "Grace", "Henry", "Ivy", "Jack"]
for i in range(num_accounts):
name = f"{names[i % len(names)]} {chr(65 + (i // len(names)))}"
balance = random.uniform(100, 10000)
bank.create_account(name, balance)

def main():

# Initialize bank system
bank = BankSystem.load_from_file("bank_data.json")

if not bank.accounts:
    print("Generating mock data...")
    generate_mock_data(bank)
    bank.save_to_file("bank_data.json")

# Sample transactions
accounts = list(bank.accounts.values())
for _ in range(20):
    from_acc = random.choice(accounts)
    to_acc = random.choice(accounts)
    while to_acc == from_acc:
        to_acc = random.choice(accounts)
    amount = random.uniform(10, 500)
    if bank.transfer(from_acc.account_number, to_acc.account_number, amount):
        print(f"Transferred ${amount:.2f} from {from_acc.account_number} to {to_acc.account_number}")

# Save updated data
bank.save_to_file("bank_data.json")

# Display account info
print("\nAccount Balances:")
for account in accounts[:5]:  # Show first 5 accounts
    print(account)

# Show transaction history for first account
if accounts:
    print(f"\nTransaction history for {accounts[0].account_number}:")
    for tx in accounts[0].get_transaction_history(5):
        print(f"{tx['timestamp']} - {tx['type']}: {tx['amount']:.2f} (Balance: {tx['balance']:.2f})")

if name == "main":
main()

功能说明
账户管理:
创建银行账户
存储账户余额和交易记录
生成唯一的账户号码
交易功能:
存款和取款操作
账户间转账
交易记录保存
数据持久化:
将账户数据保存到JSON文件
从文件加载账户数据
工具函数:
生成模拟数据用于测试
生成唯一的交易ID
交易历史查询
扩展建议
添加用户认证系统
实现加密存储敏感数据
添加API接口供外部调用
实现多线程处理并发交易
添加易手续费计算
实现账户冻结/解冻功能
添加交易限额检查
实现国际转账功能
添加交易通知系统
实现账户报表生成

相关文章
手机号码段自动生成器
海豚号码生成器,是一个在电脑上常用的办公软件。但是有些对电脑不太会操作的朋友们还是不太明白它的操作方法。它具有多种手机号码生成功能、号码导入手机通讯录和对号码进行综合整理的功能。具体说有这七种功能:手机号码随机生成功能、手机豹子号靓号生成功能、自定义手机号段生成功能、手机号码批量导入手机通讯录功能、杂乱文本中提取手机号码功能、手机号码打印前排版功能、手机号码综合整理功能。 下面我详细讲解七大功能之一的自定义手机号段生成的操作方法,以便帮到更多不太会操作电脑软件的朋友们。 自导入号段生成的操作步骤: 第一步:导入号码段。你自己来输入某个前七位的号段,多个号段也可以批量导入,txt格式里面一个号段
手机号码段自动生成器
|
2月前
|
前端开发 数据安全/隐私保护
股票交易截图生成器, 股票持仓图生成器免费, 股票交割单生成器手机版
实现了完整的股票持仓截图生成功能,包含随机数据生成、表格绘制、汇总统计和水印添加。使用时只
|
2月前
|
存储 API 数据库
自动发短信的软件,批量自动群发短信,手机号电话号生成器【python框架】
这个短信群发系统包含以下核心功能: 随机手机号生成器(支持中国号码) 批量短信发送功能(使用Twilio API)
|
2月前
|
数据安全/隐私保护 计算机视觉 Python
人脸识别图片眨眼生成器,手机制作人脸眨眼张嘴, 代替真人刷脸软件
代码实现了基于面部特征点的人脸动画生成,包括眨眼和张嘴动作。它使用dlib进行人脸检测和特征点定位
|
2月前
|
前端开发 数据安全/隐私保护
股票持仓截图生成器手机版, 股票持仓图生成器免费,交割单生成器制作工具
代码实现了一个完整的股票持仓截图生成器,包含数据模拟、表格绘制、汇总计算和水印添加功能。
|
3月前
|
算法 前端开发 计算机视觉
在线照片眨眼生成器,一键生成眨眼照片, 手机制作人脸眨眼张嘴
本系统基于Flask、OpenCV和dlib实现,包含后端服务、前端界面和动画算法三大模块。支持上传照片实时检测人脸关键点,利用薄板样条变换生成自然眨眼动画效果
|
3月前
|
安全 测试技术 开发者
银行转账模拟器手机版app, 银行转账凭证生成器app,用autojs实现效果【逼真效果】
本内容展示了一套基于Auto.js的银行APP自动化测试脚本和框架,用于学习和研究移动应用测试技术。脚本涵盖登录、转账等功能测试
手机通话记录生成器在线,批量通话记录生成器,通话记录生成器app
铁牛通话记录生成器是可以批量自动生成通话记录的app软件。如何得到“铁牛通话记录生成器”?在手机上进去佰渡baidu浏览器输入,铁牛通话记录生成器,这几个字嗖嗦下就可以,其他的不用输入。也可以看下面的图片中间的绿色模块图标和字母,自己思考一下是什么,伽一下它。
|
移动开发 JSON 编解码
Vue3+Node写个免费在线图库生成器,三步将你的手机相册搬到线上
一个 Vue3 + Node 快速生成漂亮的在线相册的项目,纯前端的项目,不需要开发后端,没有数据库,只需要把照片丢进去,Git提交一下站点就出来了。
Vue3+Node写个免费在线图库生成器,三步将你的手机相册搬到线上
手机号码随机生成器
此功能的作用:我们工作中经常遇到一张表格里面有很多杂乱的文本,比如手机号码、座机号码、汉字、字母等混乱的文本在一起,但是我们只想要里面的手机号码,不要其他的文本,数量很大的时候,手动一个找挑出来复制粘贴,那简直是累死,那么我们的软件可以智能识别并提取里面的11位手机号码,也可以提取里面的扣扣号码,邮箱等。简直是解放双手的好工具。
手机号码随机生成器

热门文章

最新文章