银行atm存取款机系统c语言,有菜单界面,登录账户密码,存取钱,并且有余额检查,输入验证
时间: 2024-10-16 22:08:48 浏览: 46
在C语言中设计一个银行ATM存取款机模拟系统,通常会包含以下几个主要部分:
1. **用户界面**:使用循环结构创建一个命令驱动的菜单,如选择存款、取款、查询余额等操作。
```c
void display_menu() {
printf("欢迎使用ATM\n");
printf("1. 存款\n2. 取款\n3. 查询余额\n4. 退出\n请选择操作:");
}
```
2. **登录验证**:用户需要输入账户名和密码进行身份验证。
```c
bool login(char username[], char password[]) {
// ... 实现用户名和密码的数据库查找
return compare_passwords(username, password);
}
```
3. **存取款功能**:
- 存款:接受金额,更新账户余额。
- 取款:检查余额是否足够,然后扣减。
```c
void deposit(double amount) {
if (login_success) {
account_balance += amount;
printf("存款成功,当前余额:%.2f\n", account_balance);
} else {
printf("无效登录,请重新输入。\n");
}
}
void withdraw(double amount) {
if (login_success && amount <= account_balance) {
account_balance -= amount;
printf("取款成功,当前余额:%.2f\n", account_balance);
} else {
printf("取款失败,余额不足或登录失败。\n");
}
}
```
4. **余额检查**:在存取款操作前后显示用户的当前余额。
5. **错误处理**:对用户的输入进行有效性检查,例如非数字输入或超出余额范围。
6. **退出程序**:用户选择退出时,结束整个程序。
为了保持代码整洁,你可以将上述功能封装成单独的函数,比如`handle_transaction()`,并添加循环来控制用户交互,直到用户选择退出。
```c
while (!exit_program) {
display_menu();
int choice = get_user_input(); // 获取用户的选择
switch (choice) {
case 1:
double amount = get_deposit_amount();
deposit(amount);
break;
// ... 其他分支...
case 4:
exit_program = true;
break;
default:
printf("无效选择,请重试。\n");
}
}
printf("感谢使用,再见!\n");
```
阅读全文