帮我用c语言链表写一个会员管理系统
时间: 2023-05-19 14:00:57 浏览: 106
好的,以下是一个简单的会员管理系统的C语言链表实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct member {
char name[20];
int age;
char email[50];
struct member *next;
} Member;
Member *head = NULL;
void add_member() {
Member *new_member = (Member*) malloc(sizeof(Member));
printf("请输入会员姓名:");
scanf("%s", new_member->name);
printf("请输入会员年龄:");
scanf("%d", &new_member->age);
printf("请输入会员邮箱:");
scanf("%s", new_member->email);
new_member->next = NULL;
if (head == NULL) {
head = new_member;
} else {
Member *current = head;
while (current->next != NULL) {
current = current->next;
}
current->next = new_member;
}
printf("添加会员成功!\n");
}
void delete_member() {
if (head == NULL) {
printf("会员列表为空!\n");
return;
}
char name[20];
printf("请输入要删除的会员姓名:");
scanf("%s", name);
if (strcmp(head->name, name) == 0) {
Member *temp = head;
head = head->next;
free(temp);
printf("删除会员成功!\n");
return;
}
Member *current = head;
while (current->next != NULL) {
if (strcmp(current->next->name, name) == 0) {
Member *temp = current->next;
current->next = current->next->next;
free(temp);
printf("删除会员成功!\n");
return;
}
current = current->next;
}
printf("未找到该会员!\n");
}
void display_members() {
if (head == NULL) {
printf("会员列表为空!\n");
return;
}
printf("会员列表:\n");
Member *current = head;
while (current != NULL) {
printf("姓名:%s,年龄:%d,邮箱:%s\n", current->name, current->age, current->email);
current = current->next;
}
}
int main() {
int choice;
while (1) {
printf("1. 添加会员\n");
printf("2. 删除会员\n");
printf("3. 显示会员列表\n");
printf("4. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_member();
break;
case 2:
delete_member();
break;
case 3:
display_members();
break;
case 4:
return 0;
default:
printf("无效的选择!\n");
}
}
}
```
这个会员管理系统使用链表来存储会员信息,可以添加、删除和显示会员列表。