数据结构实现简单的学生信息管理,包括学生姓名,学号后四位,年龄,性别,三门课成绩,录入学生信息时能够不按照任何顺序进行录入,能够支持后续任意时刻的信息录入。成绩的录入要求能够按照学号顺序进行批量录入,并在录入时打印学生信息。要求按照链式结构实现。C语言代码
时间: 2024-11-06 18:24:27 浏览: 17
学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。
5星 · 资源好评率100%
在C语言中,我们可以使用链表数据结构来实现这个需求,因为链表结构非常适合插入和删除元素无需考虑存储位置,同时也可以方便地按需添加学生信息。这里是一个简单的示例,展示了如何使用链表结构来管理学生信息:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char name[50];
char id[6];
int age;
char gender;
float score[3]; // 三门课程的成绩
} Student;
typedef struct Node {
Student info;
struct Node* next;
} Node;
// 初始化一个新的学生节点
Node* createStudent(char* name, char* id, int age, char gender, float scores[]) {
Node* newNode = (Node*) malloc(sizeof(Node));
if(newNode == NULL) {
printf("Memory allocation failed.\n");
return NULL;
}
strcpy(newNode->info.name, name);
strcpy(newNode->info.id, id);
newNode->info.age = age;
newNode->info.gender = gender;
for(int i = 0; i < 3; i++) {
newNode->info.score[i] = scores[i];
}
newNode->next = NULL;
return newNode;
}
// 添加学生到链表末尾
void addStudent(Node** head, char* name, char* id, int age, char gender, float scores[]) {
Node* newNode = createStudent(name, id, age, gender, scores);
if(*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while(temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 打印当前链表中的所有学生信息
void printStudents(Node* head) {
Node* temp = head;
while(temp != NULL) {
printf("Name: %s, ID: %s, Age: %d, Gender: %c, Scores: %.2f, %.2f, %.2f\n",
temp->info.name, temp->info.id, temp->info.age, temp->info.gender,
temp->info.score[0], temp->info.score[1], temp->info.score[2]);
temp = temp->next;
}
}
int main() {
Node* head = NULL;
// 随机输入并添加学生信息
char name[50];
char id[6];
int age;
char gender;
float scores[3];
printf("Enter student information:\n");
scanf("%s %s %d %c", name, id, &age, &gender);
for(int i = 0; i < 3; i++) {
scanf("%f", &scores[i]);
}
addStudent(&head, name, id, age, gender, scores);
// 打印初始信息
printStudents(head);
return 0;
}
```
这个例子演示了如何创建一个链表来存储学生的姓名、学号后四位、年龄、性别和成绩,并且可以在主函数中添加新学生,或者随时更新已有学生的信息。请注意,实际项目中还需要处理用户输入的有效性以及链表管理的其他细节。
阅读全文