#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义会员结构体
typedef struct {
int memberId;
char name[50];
double balance;
int isActive; // 0: 停用, 1: 启用
} Member;
// 显示菜单
void showMenu() {
printf(“1. 添加会员\n”);
printf(“2. 充值\n”);
printf(“3. 消费\n”);
printf(“4. 查看会员信息\n”);
printf(“5. 停用/启用会员\n”);
printf(“6. 退出\n”);
}
// 添加会员
void addMember(Member *members, int *numMembers) {
Member newMember;
printf(“请输入会员 ID: “);
scanf(”%d”, &newMember.memberId);
printf(“请输入会员姓名: “);
scanf(”%s”, newMember.name);
newMember.balance = 0.0;
newMember.isActive = 1;
members[*numMembers] = newMember;
(*numMembers)++;
}
// 充值
void recharge(Member *members, int numMembers) {
int memberId;
printf(“请输入会员 ID: “);
scanf(”%d”, &memberId);
int found = 0;
for (int i = 0; i < numMembers; i++) {
if (members[i].memberId == memberId) {
double amount;
printf("请输入充值金额: ");
scanf("%lf", &amount);
members[i].balance += amount;
printf("充值成功,当前余额: %.2f\n", members[i].balance);
found = 1;
break;
}
}
if (!found) {
printf("未找到该会员!\n");
}
}
// 消费
void consume(Member *members, int numMembers) {
int memberId;
printf(“请输入会员 ID: “);
scanf(”%d”, &memberId);
int found = 0;
for (int i = 0; i < numMembers; i++) {
if (members[i].memberId == memberId) {
double amount;
printf("请输入消费金额: ");
scanf("%lf", &amount);
if (members[i].balance >= amount) {
members[i].balance -= amount;
printf("消费成功,当前余额: %.2f\n", members[i].balance);
found = 1;
break;
} else {
printf("余额不足,消费失败!\n");
found = 1;
break;
}
}
}
if (!found) {
printf("未找到该会员!\n");
}
}
// 查看会员信息
void viewMemberInfo(Member *members, int numMembers) {
int memberId;
printf(“请输入会员 ID: “);
scanf(”%d”, &memberId);
int found = 0;
for (int i = 0; i < numMembers; i++) {
if (members[i].memberId == memberId) {
printf("会员 ID: %d\n", members[i].memberId);
printf("会员姓名: %s\n", members[i].name);
printf("余额: %.2f\n", members[i].balance);
printf("状态: %s\n", members[i].isActive? "启用" : "停用");
found = 1;
break;
}
}
if (!found) {
printf("未找到该会员!\n");
}
}
// 停用/启用会员
void toggleMemberStatus(Member *members, int numMembers) {
int memberId;
printf(“请输入会员 ID: “);
scanf(”%d”, &memberId);
int found = 0;
for (int i = 0; i < numMembers; i++) {
if (members[i].memberId == memberId) {
members[i].isActive =!members[i].isActive;
printf("会员状态已更改!\n");
found = 1;
break;
}
}
if (!found) {
printf("未找到该会员!\n");
}
}
int main() {
Member members[100]; // 假设最多存储 100 个会员
int numMembers = 0;
int choice;
do {
showMenu();
printf("请选择操作: ");
scanf("%d", &choice);
switch (choice) {
case 1:
addMember(members, &numMembers);
break;
case 2:
recharge(members, numMembers);
break;
case 3:
consume(members, numMembers);
break;
case 4:
viewMemberInfo(members, numMembers);
break;
case 5:
toggleMemberStatus(members, numMembers);
break;
case 6:
printf("退出程序\n");
break;
default:
printf("无效的选择,请重新输入!\n");
}
} while (choice!= 6);
return 0;
}