C语言学生管理系统合并顺序表
时间: 2023-05-30 07:03:01 浏览: 101
以下是C语言学生管理系统合并顺序表的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
typedef struct {
char name[20];
int age;
float score;
} Student;
typedef struct {
Student students[MAX_STUDENT_NUM];
int length;
} SeqList;
void initList(SeqList *list) {
list->length = 0;
}
void addStudent(SeqList *list, Student student) {
if (list->length < MAX_STUDENT_NUM) {
list->students[list->length++] = student;
} else {
printf("The student list is full.\n");
}
}
void displayList(SeqList list) {
for (int i = 0; i < list.length; i++) {
printf("Name: %s, Age: %d, Score: %.2f\n", list.students[i].name, list.students[i].age, list.students[i].score);
}
}
void mergeList(SeqList *list1, SeqList list2) {
for (int i = 0; i < list2.length; i++) {
addStudent(list1, list2.students[i]);
}
}
int main() {
SeqList list1, list2;
initList(&list1);
initList(&list2);
Student student1 = {"Alice", 20, 90.0};
Student student2 = {"Bob", 21, 80.0};
Student student3 = {"Cathy", 19, 85.0};
addStudent(&list1, student1);
addStudent(&list1, student2);
addStudent(&list2, student3);
printf("List 1:\n");
displayList(list1);
printf("List 2:\n");
displayList(list2);
mergeList(&list1, list2);
printf("After merge:\n");
displayList(list1);
return 0;
}
```
在上述代码中,我们定义了两个结构体 `Student` 和 `SeqList`。其中,`Student` 表示学生的信息,包括姓名、年龄和分数,`SeqList` 表示学生列表,包括一个 `Student` 数组和列表长度。
在 `initList()` 函数中,我们将列表长度初始化为 0。在 `addStudent()` 函数中,我们将学生添加到列表中。在 `displayList()` 函数中,我们遍历列表并输出每个学生的信息。
在 `mergeList()` 函数中,我们将第二个列表中的学生添加到第一个列表中。具体实现是遍历第二个列表中的每个学生,将其添加到第一个列表中。
在 `main()` 函数中,我们首先创建两个空列表 `list1` 和 `list2`。然后,我们创建三个学生 `student1`、`student2` 和 `student3`,将前两个学生添加到 `list1` 中,将第三个学生添加到 `list2` 中。然后,我们输出 `list1` 和 `list2` 的内容,调用 `mergeList()` 函数将 `list2` 合并到 `list1` 中,并输出合并后的 `list1` 的内容。
在我们运行该程序时,输出如下:
```
List 1:
Name: Alice, Age: 20, Score: 90.00
Name: Bob, Age: 21, Score: 80.00
List 2:
Name: Cathy, Age: 19, Score: 85.00
After merge:
Name: Alice, Age: 20, Score: 90.00
Name: Bob, Age: 21, Score: 80.00
Name: Cathy, Age: 19, Score: 85.00
```
阅读全文