#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义会员结构体
typedef struct {
char name[50];
int memberId;
int membershipType; // 1: 月卡, 2: 季卡, 3: 年卡
int expirationDate; // 以天为单位的到期日期
} Member;
// 显示菜单
void showMenu() {
printf(“1. 添加会员\n”);
printf(“2. 查看会员信息\n”);
printf(“3. 更新会员信息\n”);
printf(“4. 会员续费\n”);
printf(“5. 退出\n”);
}
// 添加会员
void addMember(Member *members, int *numMembers) {
Member newMember;
printf(“请输入会员姓名: “);
scanf(”%s”, newMember.name);
printf(“请输入会员 ID: “);
scanf(”%d”, &newMember.memberId);
printf(“请选择会员类型(1: 月卡, 2: 季卡, 3: 年卡): “);
scanf(”%d”, &newMember.membershipType);
int currentDay = 0; // 假设当前日期为 0,实际应用中应获取真实日期
switch (newMember.membershipType) {
case 1:
newMember.expirationDate = currentDay + 30;
break;
case 2:
newMember.expirationDate = currentDay + 90;
break;
case 3:
newMember.expirationDate = currentDay + 365;
break;
default:
printf("无效的会员类型\n");
return;
}
members[*numMembers] = newMember;
(*numMembers)++;
}
// 查看会员信息
void viewMember(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("会员姓名: %s\n", members[i].name);
printf("会员 ID: %d\n", members[i].memberId);
printf("会员类型: ");
switch (members[i].membershipType) {
case 1:
printf("月卡\n");
break;
case 2:
printf("季卡\n");
break;
case 3:
printf("年卡\n");
break;
}
printf("到期日期: %d\n", members[i].expirationDate);
found = 1;
break;
}
}
if (!found) {
printf("未找到该会员\n");
}
}
// 更新会员信息
void updateMember(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("请输入新的会员姓名: ");
scanf("%s", members[i].name);
printf("请选择新的会员类型(1: 月卡, 2: 季卡, 3: 年卡): ");
scanf("%d", &members[i].membershipType);
int currentDay = 0; // 假设当前日期为 0,实际应用中应获取真实日期
switch (members[i].membershipType) {
case 1:
members[i].expirationDate = currentDay + 30;
break;
case 2:
members[i].expirationDate = currentDay + 90;
break;
case 3:
members[i].expirationDate = currentDay + 365;
break;
default:
printf("无效的会员类型\n");
return;
}
found = 1;
printf("更新成功\n");
break;
}
}
if (!found) {
printf("未找到该会员\n");
}
}
// 会员续费
void renewMembership(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("请选择续费类型(1: 月卡, 2: 季卡, 3: 年卡): ");
int renewalType;
scanf("%d", &renewalType);
int currentDay = 0; // 假设当前日期为 0,实际应用中应获取真实日期
switch (renewalType) {
case 1:
members[i].expirationDate = currentDay + 30;
break;
case 2:
members[i].expirationDate = currentDay + 90;
break;
case 3:
members[i].expirationDate = currentDay + 365;
break;
default:
printf("无效的续费类型\n");
return;
}
found = 1;
printf("续费成功\n");
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:
viewMember(members, numMembers);
break;
case 3:
updateMember(members, numMembers);
break;
case 4:
renewMembership(members, numMembers);
break;
case 5:
printf("退出程序\n");
break;
default:
printf("无效的选择,请重新输入\n");
}
} while (choice!= 5);
return 0;
}