基于结构体链表,编写一个简易的“学生电子通讯录管理系统”。该系统要实现的主要功能说明如下。 [1] 创建功能 [2] 显示通讯录 [3] 查找功能:学生个人通讯信息结构体数组上实现查找功能,可以根据学号或姓名查找;然后输出查找到的学生信息。
时间: 2023-12-18 15:02:54 浏览: 45
好的,基于结构体链表,我可以为您提供一个简易的“学生电子通讯录管理系统”的代码示例,实现您所需的主要功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 学生个人通讯信息结构体
typedef struct student {
char name[20]; // 姓名
int id; // 学号
char phone[20]; // 电话
char email[30]; // 邮箱
struct student *next; // 指向下一个学生信息的指针
} Student;
// 创建学生信息
Student *create() {
Student *head, *p, *q;
head = (Student *)malloc(sizeof(Student)); // 创建头结点
q = head;
int n;
printf("请输入学生数量:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
p = (Student *)malloc(sizeof(Student));
printf("请输入第%d个学生的姓名、学号、电话、邮箱:", i + 1);
scanf("%s %d %s %s", p->name, &(p->id), p->phone, p->email);
q->next = p;
q = p;
}
q->next = NULL;
return head;
}
// 显示学生信息
void display(Student *head) {
Student *p = head->next;
printf("姓名\t学号\t电话\t\t邮箱\n");
while(p) {
printf("%s\t%d\t%s\t%s\n", p->name, p->id, p->phone, p->email);
p = p->next;
}
}
// 根据学号或姓名查找学生信息
void search(Student *head) {
int choice;
printf("请选择查找方式:1.按学号查找 2.按姓名查找\n");
scanf("%d", &choice);
if (choice == 1) {
int id;
printf("请输入要查找的学号:");
scanf("%d", &id);
Student *p = head->next;
while (p) {
if (p->id == id) {
printf("姓名\t学号\t电话\t\t邮箱\n");
printf("%s\t%d\t%s\t%s\n", p->name, p->id, p->phone, p->email);
return;
}
p = p->next;
}
printf("未找到该学生\n");
} else if (choice == 2) {
char name[20];
printf("请输入要查找的姓名:");
scanf("%s", name);
Student *p = head->next;
while (p) {
if (strcmp(p->name, name) == 0) {
printf("姓名\t学号\t电话\t\t邮箱\n");
printf("%s\t%d\t%s\t%s\n", p->name, p->id, p->phone, p->email);
return;
}
p = p->next;
}
printf("未找到该学生\n");
} else {
printf("输入错误,请重新选择\n");
}
}
int main() {
Student *head = create(); // 创建学生信息链表
int choice;
while (1) {
printf("\n请选择要进行的操作:\n");
printf("1.创建 2.显示 3.查找 0.退出\n");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("系统已退出\n");
return 0;
case 1:
head = create();
break;
case 2:
display(head);
break;
case 3:
search(head);
break;
default:
printf("输入错误,请重新选择\n");
}
}
return 0;
}
```
以上代码实现了创建学生信息、显示学生信息和根据学号或姓名查找学生信息的功能,您可以根据您的需要进行修改和完善。希望能够对您有所帮助!