模拟银行ATM机存取款,实现单个帐户的查询、存款、取款、转帐、修改密码等功能。要求: 1、用模块化设计实现各功能; 2、检查用户名和密码匹配后进入菜单。的C语言程序
时间: 2023-12-28 07:16:09 浏览: 200
以下是一个简单的模拟银行ATM机的C语言程序,实现了单个账户的查询、存款、取款、转账和修改密码功能。程序中使用了模块化设计,将各个功能封装成了不同的函数。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义账户结构体
struct account {
char username[20];
char password[20];
float balance;
};
// 定义全局变量,存储当前登录账户信息
struct account curr_account;
// 函数声明
void login();
void menu();
void query();
void deposit();
void withdraw();
void transfer();
void change_password();
int main() {
login();
menu();
return 0;
}
// 登录函数
void login() {
printf("请输入用户名和密码:\n");
scanf("%s %s", curr_account.username, curr_account.password);
// TODO: 根据用户名和密码从数据库中查询账户信息,如果不存在或密码错误,则提示重新输入
curr_account.balance = 1000; // 假设账户初始余额为1000元
}
// 菜单函数
void menu() {
while (1) {
printf("\n请选择您要进行的操作:\n");
printf("1. 查询余额\n");
printf("2. 存款\n");
printf("3. 取款\n");
printf("4. 转账\n");
printf("5. 修改密码\n");
printf("6. 退出\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
query();
break;
case 2:
deposit();
break;
case 3:
withdraw();
break;
case 4:
transfer();
break;
case 5:
change_password();
break;
case 6:
printf("谢谢使用,再见!\n");
exit(0); // 退出程序
default:
printf("无效的选项,请重新输入!\n");
break;
}
}
}
// 查询余额函数
void query() {
printf("您的余额为%.2f元\n", curr_account.balance);
}
// 存款函数
void deposit() {
float amount;
printf("请输入存款金额:\n");
scanf("%f", &amount);
if (amount <= 0) {
printf("存款金额必须大于0!\n");
return;
}
curr_account.balance += amount;
printf("存款成功!您的余额为%.2f元\n", curr_account.balance);
}
// 取款函数
void withdraw() {
float amount;
printf("请输入取款金额:\n");
scanf("%f", &amount);
if (amount <= 0) {
printf("取款金额必须大于0!\n");
return;
}
if (amount > curr_account.balance) {
printf("余额不足,取款失败!\n");
return;
}
curr_account.balance -= amount;
printf("取款成功!您的余额为%.2f元\n", curr_account.balance);
}
// 转账函数
void transfer() {
char target_username[20];
float amount;
printf("请输入对方用户名和转账金额:\n");
scanf("%s %f", target_username, &amount);
if (strcmp(target_username, curr_account.username) == 0) {
printf("不能给自己转账!\n");
return;
}
if (amount <= 0) {
printf("转账金额必须大于0!\n");
return;
}
if (amount > curr_account.balance) {
printf("余额不足,转账失败!\n");
return;
}
// TODO: 根据目标用户名从数据库中查询账户信息,如果不存在,则提示重新输入
curr_account.balance -= amount;
printf("转账成功!您的余额为%.2f元\n", curr_account.balance);
}
// 修改密码函数
void change_password() {
char new_password[20];
printf("请输入新密码:\n");
scanf("%s", new_password);
// TODO: 将新密码更新到数据库中
strcpy(curr_account.password, new_password);
printf("密码修改成功!\n");
}
```
阅读全文