利用线性链表实现学生通信录管理系统,具体功能:输入、输出、插入、删除、查找、追加、读入、显示、拷贝、排序、退出,并能在屏幕上输出操作前后的结果,加入文件操作
时间: 2023-07-04 18:07:45 浏览: 70
好的,我可以为您介绍一个基于线性链表的简单学生通信录管理系统。
首先,我们需要定义一个学生结构体,包含学生的姓名、年龄、性别、电话以及地址等信息:
```c
typedef struct student {
char name[20];
int age;
char gender[10];
char tel[20];
char address[50];
struct student *next;
} Student;
```
然后,我们可以定义一个包含各种操作的函数,比如输入、输出、插入、删除、查找、追加、读入、显示、拷贝、排序等:
```c
// 输入学生信息
void input(Student *stu);
// 输出学生信息
void output(Student *stu);
// 插入学生信息
void insert(Student **head);
// 删除学生信息
void del(Student **head);
// 查找学生信息
void search(Student *head);
// 追加学生信息
void append(Student *head);
// 读入学生信息
void read(Student **head);
// 显示学生信息
void display(Student *head);
// 拷贝学生信息
Student *copy(Student *head);
// 排序学生信息
void sort(Student *head);
// 退出程序
void quit(Student *head);
```
最后,我们可以在 `main` 函数中调用这些函数来实现完整的通信录管理系统,并且可以加入文件操作来保存和读取学生信息:
```c
int main() {
Student *head = NULL;
int choice;
while (1) {
printf("\n");
printf("1. 输入学生信息\n");
printf("2. 输出学生信息\n");
printf("3. 插入学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 查找学生信息\n");
printf("6. 追加学生信息\n");
printf("7. 读入学生信息\n");
printf("8. 显示学生信息\n");
printf("9. 拷贝学生信息\n");
printf("10. 排序学生信息\n");
printf("11. 退出程序\n");
printf("\n");
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
input(head);
break;
case 2:
output(head);
break;
case 3:
insert(&head);
break;
case 4:
del(&head);
break;
case 5:
search(head);
break;
case 6:
append(head);
break;
case 7:
read(&head);
break;
case 8:
display(head);
break;
case 9:
copy(head);
break;
case 10:
sort(head);
break;
case 11:
quit(head);
return 0;
default:
printf("输入错误,请重新输入!\n");
break;
}
}
return 0;
}
```
这样,我们就实现了一个基于线性链表的简单学生通信录管理系统,并且可以通过文件操作来保存和读取学生信息,方便以后的使用。
阅读全文