python大作业(银行系统)
2025-7-28 11:6:37 浏览38次
1. 基础要求
创建一个完整的银行系统包(bank_system),包含以下功能:
账户管理
创建银行账户(BankAccount)
支持存款、取款、转账操作
计算利息功能
记录交易历史

银行管理
管理多个账户(Bank类)
支持账户间的转账
查找账户功能

异常处理
自定义银行相关异常
处理余额不足、无效账户等情况
数据持久化
将账户数据保存到文件
从文件加载账户数据

工具模块
验证工具(账号、金额验证)
日志记录工具

2. 包结构要求
bank_system/

├── __init__.py             # 包初始化文件
├── exceptions.py           # 异常模块
├── models/                 # 模型子包
│   ├── __init__.py
│   ├── account.py          # 账户模型
│   └── transaction.py      # 交易模型
├── services/               # 服务子包
│   ├── __init__.py
│   ├── account_service.py  # 账户服务
│   ├── bank_service.py     # 银行服务
│   └── file_service.py     # 文件服务
├── utils/                  # 工具子包
│   ├── __init__.py
│   ├── validator.py        # 验证工具
│   └── logger.py           # 日志工具
└── main.py                 # 主程序入口

3. 代码质量要求
为所有公共方法和类添加文档字符串
合理的异常处理
使用__all__控制导入行为

详细功能说明
1. BankAccount 类 (models/account.py)
属性:
account_number: 账号(10位数字字符串)
owner_name: 户主姓名
balance: 余额
created_at: 创建时间
transactions: 交易记录列表

方法:
deposit(amount): 存款
withdraw(amount): 取款
apply_interest(): 应用利息
_add_transaction(): 添加交易记录(内部方法)

2. Transaction 类 (models/transaction.py)
属性:
type: 交易类型
amount: 金额
datetime: 时间

3. AccountService 类 (services/account_service.py)
方法:
create_account(): 创建新账户
transfer(): 执行转账

4. Bank 类 (services/bank_service.py)
方法:
add_account(): 添加账户
get_account(): 获取账户
transfer(): 银行内转账

5. FileService 类 (services/file_service.py)
方法:
save_account(): 保存账户到JSON文件
load_account(): 从JSON文件加载账户

6. 工具模块 (utils/)
validator.py: 验证账号、金额格式
logger.py: 配置日志系统

实现提示
包结构组织:
使用__init__.py文件标记包目录
在包初始化文件中定义__all__
使用相对导入(如from ..models import BankAccount)

异常处理:
创建自定义异常继承体系
在关键操作中添加异常处理

数据持久化:
使用JSON格式保存账户数据
处理datetime对象的序列化/反序列化

日志记录:
为重要操作添加日志
区分不同日志级别(INFO, ERROR等)

测试要求
编写主程序(main.py)测试所有功能:
创建银行和账户
执行存款、取款、转账操作
保存和加载账户数据
处理各种异常情况

验证功能:
账户余额计算是否正确
交易记录是否完整
文件操作是否正常
异常处理是否合理