1、定义账户信息
设计一个银行账户管理系统时,我们需要明确哪些信息是必不可少的。为了方便管理这些信息,我们可以使用C语言的结构体来定义一个账户。使用typedef struct
定义了一个BankAccount
结构体,包含账户号码、名字和余额。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account;
2、创建账户
将输入的账户信息,包括账户号码和账户持有人姓名。然后将这些信息存储到 Account
结构体的实例中,并初始化账户的余额为0
。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void createAccount(Account accounts[], int *accountCount) { if (*accountCount >= MAX_ACCOUNTS) { printf("无法创建更多账户,已达到最大账户数量。\n"); return; } Account *account = &accounts[*accountCount]; printf("请输入账户号码: "); scanf("%d", &account->accountNumber); printf("请输入账户持有人姓名: "); scanf("%s", account->name); account->balance = 0.0; (*accountCount)++; printf("账户创建成功!\n"); } int main() { printf("Hello, World!"); return 0; }
3、帐户存款
定义了一个deposit
函数,用于处理存款操作。用户输入需要存款的账户号。在已有的账户数组中查找与输入账户号匹配的账户,用户输入存款金额。将存款金额加到对应账户的余额中,显示存款成功的消息和新的账户余额。
#include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void deposit(Account accounts[], int accountCount) { int accountNumber; double amount; printf("请输入存款账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("请输入存款金额: "); scanf("%lf", &amount); accounts[i].balance += amount; printf("存款成功!当前余额为: %.2f\n", accounts[i].balance); return; } } printf("账户未找到。\n"); } int main() { printf("Hello, World!"); return 0; }
4、账户取款
用户输入需要取款的账户号,在已有的账户数组中查找与输入账户号匹配的账户。 用户输入取款金额,检查账户余额是否足够,如果余额充足,则从账户余额中扣除取款金额,显示取款成功或余额不足的消息。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void withdraw(Account accounts[], int accountCount) { int accountNumber; double amount; printf("请输入取款账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("请输入取款金额: "); scanf("%lf", &amount); if (accounts[i].balance >= amount) { accounts[i].balance -= amount; printf("取款成功!当前余额为: %.2f\n", accounts[i].balance); } else { printf("余额不足。\n"); } return; } } printf("账户未找到。\n"); } int main() { printf("Hello, World!"); return 0; }
5、查询余额
查询余额是银行账户管理系统中最基本的功能之一。用户可以通过输入账户号来查询对应的账户余额。 用户输入需要查询余额的账户号,在已有的账户数组中查找与输入账户号匹配的账户,如果找到账户,则输出该账户的余额。如果未找到账户,则提示“账户未找到”。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void checkBalance(Account accounts[], int accountCount) { int accountNumber; printf("请输入查询余额的账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("账户余额为: %.2f\n", accounts[i].balance); return; } } printf("账户未找到。\n"); } int main() { printf("Hello, World!"); return 0; }
6、显示帐户信息
displayAccounts
函数用于显示所有账户的信息,包括账户号码、账户持有人姓名和账户余额。如果没有任何账户信息,则输出提示信息。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void displayAccounts(Account accounts[], int accountCount) { if (accountCount == 0) { printf("没有账户信息。\n"); return; } printf("\n所有账户信息:\n"); for (int i = 0; i < accountCount; i++) { printf("账户号码: %d\n", accounts[i].accountNumber); printf("账户持有人姓名: %s\n", accounts[i].name); printf("账户余额: %.2f\n", accounts[i].balance); printf("----------------------------\n"); } } int main() { printf("Hello, World!"); return 0; }
7、完整代码
一个简易的银行账户管理系统,可以根据自己的需求进行扩展和完善。
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_ACCOUNTS 100 #define NAME_LENGTH 50 typedef struct { int accountNumber; char name[NAME_LENGTH]; double balance; } Account; void createAccount(Account accounts[], int *accountCount) { if (*accountCount >= MAX_ACCOUNTS) { printf("无法创建更多账户,已达到最大账户数量。\n"); return; } Account *account = &accounts[*accountCount]; printf("请输入账户号码: "); scanf("%d", &account->accountNumber); printf("请输入账户持有人姓名: "); scanf("%s", account->name); account->balance = 0.0; (*accountCount)++; printf("账户创建成功!\n"); } void deposit(Account accounts[], int accountCount) { int accountNumber; double amount; printf("请输入存款账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("请输入存款金额: "); scanf("%lf", &amount); accounts[i].balance += amount; printf("存款成功!当前余额为: %.2f\n", accounts[i].balance); return; } } printf("账户未找到。\n"); } void withdraw(Account accounts[], int accountCount) { int accountNumber; double amount; printf("请输入取款账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("请输入取款金额: "); scanf("%lf", &amount); if (accounts[i].balance >= amount) { accounts[i].balance -= amount; printf("取款成功!当前余额为: %.2f\n", accounts[i].balance); } else { printf("余额不足。\n"); } return; } } printf("账户未找到。\n"); } void checkBalance(Account accounts[], int accountCount) { int accountNumber; printf("请输入查询余额的账户号码: "); scanf("%d", &accountNumber); for (int i = 0; i < accountCount; i++) { if (accounts[i].accountNumber == accountNumber) { printf("账户余额为: %.2f\n", accounts[i].balance); return; } } printf("账户未找到。\n"); } void displayAccounts(Account accounts[], int accountCount) { if (accountCount == 0) { printf("没有账户信息。\n"); return; } printf("\n所有账户信息:\n"); for (int i = 0; i < accountCount; i++) { printf("账户号码: %d\n", accounts[i].accountNumber); printf("账户持有人姓名: %s\n", accounts[i].name); printf("账户余额: %.2f\n", accounts[i].balance); printf("----------------------------\n"); } } int main() { Account accounts[MAX_ACCOUNTS]; int accountCount = 0; int choice; while (1) { printf("\n银行账户管理系统菜单:\n"); printf("1. 创建账户\n"); printf("2. 存款\n"); printf("3. 取款\n"); printf("4. 查询余额\n"); printf("5. 显示所有账户\n"); printf("6. 退出\n"); printf("请选择操作: "); scanf("%d", &choice); switch (choice) { case 1: createAccount(accounts, &accountCount); break; case 2: deposit(accounts, accountCount); break; case 3: withdraw(accounts, accountCount); break; case 4: checkBalance(accounts, accountCount); break; case 5: displayAccounts(accounts, accountCount); break; case 6: printf("退出系统。\n"); exit(0); default: printf("无效的选择,请重试。\n"); } } return 0; }