C语言模拟银行“自动存/取款机”系统,实现存款、取款、查询余额、转帐、修改密码功能。
时间: 2024-06-14 20:05:17 浏览: 261
ATM机模拟,可以实现存款,取款,修改密码等功能.zip
5星 · 资源好评率100%
对于C语言模拟银行“自动存/取款机”系统,可以通过以下步骤实现存款、取款、查询余额、转账和修改密码功能:
1. 帐户注册:用户输入帐户信息,包括帐户名和密码,将其保存到文件或数据库中。
2. 登录:用户输入帐户名和密码,系统验证输入的帐户名和密码是否匹配已注册的帐户信息。
3. 存款:用户输入存款金额,系统将存款金额加到用户的帐户余额中,并更新文件或数据库中的帐户信息。
4. 取款:用户输入取款金额,系统检查用户的帐户余额是否足够,如果足够则将取款金额从用户的帐户余额中扣除,并更新文件或数据库中的帐户信息。
5. 查询余额:系统显示用户的帐户余额。
6. 转账:用户输入转账金额和目标帐户名,系统检查用户的帐户余额是否足够,如果足够则将转账金额从用户的帐户余额中扣除,并将转账金额加到目标帐户的余额中,并更新文件或数据库中的帐户信息。
7. 修改密码:用户输入旧密码和新密码,系统验证旧密码是否正确,如果正确则将新密码更新到文件或数据库中的帐户信息。
以下是一个简单的C语言示例代码,演示了存款、取款、查询余额、转账和修改密码功能的实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义帐户结构体
typedef struct {
char username[20];
char password[20];
double balance;
} Account;
// 注册帐户
void registerAccount(Account *account) {
printf("请输入帐户名:");
scanf("%s", account->username);
printf("请输入密码:");
scanf("%s", account->password);
account->balance = 0;
printf("注册成功!\n");
}
// 登录
int login(Account *account) {
char username[20];
char password[20];
printf("请输入帐户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
if (strcmp(username, account->username) == 0 && strcmp(password, account->password) == 0) {
printf("登录成功!\n");
return 1;
} else {
printf("帐户名或密码错误!\n");
return 0;
}
}
// 存款
void deposit(Account *account) {
double amount;
printf("请输入存款金额:");
scanf("%lf", &amount);
account->balance += amount;
printf("存款成功!\n");
}
// 取款
void withdraw(Account *account) {
double amount;
printf("请输入取款金额:");
scanf("%lf", &amount);
if (amount <= account->balance) {
account->balance -= amount;
printf("取款成功!\n");
} else {
printf("余额不足!\n");
}
}
// 查询余额
void checkBalance(Account *account) {
printf("当前余额为:%.2lf\n", account->balance);
}
// 转账
void transfer(Account *account, Account *targetAccount) {
double amount;
printf("请输入转账金额:");
scanf("%lf", &amount);
if (amount <= account->balance) {
account->balance -= amount;
targetAccount->balance += amount;
printf("转账成功!\n");
} else {
printf("余额不足!\n");
}
}
// 修改密码
void changePassword(Account *account) {
char oldPassword[20];
char newPassword[20];
printf("请输入旧密码:");
scanf("%s", oldPassword);
if (strcmp(oldPassword, account->password) == 0) {
printf("请输入新密码:");
scanf("%s", newPassword);
strcpy(account->password, newPassword);
printf("密码修改成功!\n");
} else {
printf("旧密码错误!\n");
}
}
int main() {
Account account;
int loggedIn = 0;
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 注册帐户\n");
printf("2. 登录\n");
printf("3. 存款\n");
printf("4. 取款\n");
printf("5. 查询余额\n");
printf("6. 转账\n");
printf("7. 修改密码\n");
printf("8. 退出\n");
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
registerAccount(&account);
break;
case 2:
loggedIn = login(&account);
break;
case 3:
if (loggedIn) {
deposit(&account);
} else {
printf("请先登录!\n");
}
break;
case 4:
if (loggedIn) {
withdraw(&account);
} else {
printf("请先登录!\n");
}
break;
case 5:
if (loggedIn) {
checkBalance(&account);
} else {
printf("请先登录!\n");
}
break;
case 6:
if (loggedIn) {
Account targetAccount;
transfer(&account, &targetAccount);
} else {
printf("请先登录!\n");
}
break;
case 7:
if (loggedIn) {
changePassword(&account);
} else {
printf("请先登录!\n");
}
break;
case 8:
printf("退出程序!\n");
exit(0);
default:
printf("无效选项!\n");
break;
}
}
return 0;
}
```
阅读全文