C语言实现银行日常模拟系统包含开户叫号等包含代码
时间: 2024-11-19 12:39:30 浏览: 17
C语言编写一个简单的银行日常模拟系统可能涉及到基本的数据结构、控制流程和用户交互。这里提供一个简化的示例,仅涵盖部分功能,如开户、取款、存款以及简单叫号系统:
```c
#include <stdio.h>
#include <stdlib.h>
#define QUEUE_SIZE 50
typedef struct {
int account_number;
float balance;
} Account;
typedef struct {
Account accounts[QUEUE_SIZE];
int front, rear;
} Bank;
void open_account(Bank *bank) {
if (bank->rear == bank->front) {
printf("银行已满,无法开户。\n");
return;
}
int account_number = ++bank->front % QUEUE_SIZE;
Account new_acc = {account_number, 0};
bank->accounts[account_number] = new_acc;
printf("恭喜您,新账号 %d 开户成功,初始余额为 0 元。\n", account_number);
}
int main() {
Bank bank;
bank.front = bank.rear = -1; // 初始化队列
while (1) {
printf("请输入操作选择(1:开户, 2:存钱, 3:取钱, 4:退出): ");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
open_account(&bank);
break;
case 2:
int account_number, amount;
printf("请输入账户号码及存入金额: ");
scanf("%d %f", &account_number, &amount);
if (find_account(bank, account_number)) {
bank.accounts[account_number].balance += amount;
printf("存入成功,当前余额 %.2f 元\n", bank.accounts[account_number].balance);
} else {
printf("无效的账户号码。\n");
}
break;
case 3:
// 存储取款逻辑...
break;
case 4:
return 0; // 退出程序
default:
printf("非法操作,请重新输入。\n");
}
}
return 0;
}
// 检查指定账户是否存在
int find_account(const Bank *bank, int account_number) {
if (bank->front == bank->rear) return 0;
for (int i = (bank->front + 1) % QUEUE_SIZE; i != bank->rear; i = (i + 1) % QUEUE_SIZE) {
if (bank->accounts[i].account_number == account_number) return 1;
}
return 0;
}
```
这个示例包含了基本的开户和存钱操作,取款和更复杂的叫号系统没有在这里实现。实际应用中,可能会需要考虑更多细节,例如错误处理、并发控制等。
阅读全文