Files
BankManager/README.md
T
2026-05-08 16:30:32 +08:00

140 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 简易银行账户管理系统
## 项目简介
这是一个基于C语言开发的简易银行账户管理系统,支持基本的银行账户操作功能,包括开户、登录、存款、取款、查询余额、账户管理等。系统采用模块化设计,代码结构清晰,易于维护和扩展。
## 功能特性
- **账户管理**
- 创建普通用户账户(权限2
- 创建管理员账户(权限1
- 删除账户(仅管理员可操作)
- 修改密码
- **账户操作**
- 存款
- 取款
- 查询余额
- **系统功能**
- 用户登录验证
- 权限分级(管理员/普通用户)
- 数据持久化(自动保存到文件)
- 交易流水查询(管理员)
- 自动初始化默认管理员账户
## 系统架构
### 核心模块
1. **主程序 (bank.c)**
- 程序入口点
- 菜单显示和用户交互
- 权限控制逻辑
2. **账户管理 (account.c)**
- 账户创建、删除
- 账户查找
- 登录验证
- 密码修改
- 显示所有账户信息
3. **交易处理 (transaction.c)**
- 存款功能
- 取款功能
- 余额查询
4. **数据持久化 (file_io.c)**
- 数据保存到文件(bank.dat
- 从文件加载数据
- 初始化默认管理员账户
5. **工具函数 (utils.c)**
- 输入验证和清理
- 安全的整数和浮点数输入
6. **头文件 (bank.h)**
- 全局常量定义
- 账户结构体定义
- 函数声明
7. **日志模块(log.c)**
- 日志记录和存储(循环链表)
### 数据结构
```c
typedef struct strAccount
{
int id; // 账户ID(从1000开始)
char name[31]; // 姓名(最多30字符)
double balance; // 账户余额
int password; // 6位数字密码
int quanxian; // 权限(1=管理员,2=普通用户)
} STACCOUNT;
```
## 使用说明
### 编译
```bash
gcc bank.c account.c transaction.c file_io.c utils.c -o bank_system
```
### 运行
```bash
./bank_system
```
### 操作流程
1. **初始界面**(未登录状态)
- 选项1:开户(创建普通用户账户)
- 选项2:登录
- 选项0:退出系统
2. **普通用户界面**(登录后)
- 选项1:存款
- 选项2:取款
- 选项3:查询余额
- 选项0:退出账户
3. **管理员界面**(登录后)
- 选项1:存款
- 选项2:取款
- 选项3:查询余额
- 选项4:显示所有账户
- 选项5:删除账户
- 选项6:创建管理员账户
- 选项7:查看交易流水
- 选项0:退出账户
### 默认账户
系统首次运行时会自动创建一个默认管理员账户:
- **账户ID**: 1000
- **姓名**: admin
- **密码**: 123456
- **权限**: 管理员
## 技术细节
- **最大账户数量**: 50个
- **密码规则**: 6位数字(100000-999999
- **数据存储**: 二进制文件(bank.dat
- **输入验证**: 所有数值输入都包含错误处理
- **内存管理**: 使用全局数组存储账户数据
## 文件说明
- `bank.c` - 主程序文件
- `account.c` - 账户管理功能实现
- `transaction.c` - 交易处理功能实现
- `file_io.c` - 文件读写功能实现
- `utils.c` - 工具函数实现
- `bank.h` - 头文件,包含结构体定义和函数声明
- `bank.dat` - 数据存储文件(运行时自动生成)
## 注意事项
1. 密码必须为6位数字
2. 存款和取款金额必须为正数
3. 取款时会检查账户余额是否充足
4. 删除账户功能仅管理员可用
5. 系统会自动保存所有操作到文件,确保数据持久化
## 扩展建议
- ~~添加交易记录功能~~
- 实现账户排序和搜索
- 增加更多权限级别
- 改进用户界面(如使用图形界面)
- 添加数据加密功能
- 实现多用户并发访问