建立链表存放学生成绩姓名和学号
时间: 2023-03-30 11:01:59 浏览: 155
好的,这是一个关于数据结构的问题,我可以回答。建立链表可以使用结构体来存储学生成绩、姓名和学号,然后通过指针将各个节点连接起来,形成链表结构。每个节点可以包含一个学生的信息,包括姓名、学号和成绩等。这样就可以方便地对学生信息进行添加、删除、修改和查询等操作。
相关问题
用C语言链表,输入学生姓名,学号,成绩,按姓名查找学生信息
好的,以下是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
typedef struct student {
char name[20];
int id;
float score;
struct student* next;
} Student;
// 插入学生信息
void insert(Student** head, char* name, int id, float score) {
// 创建新的学生节点
Student* new_student = (Student*)malloc(sizeof(Student));
strcpy(new_student->name, name);
new_student->id = id;
new_student->score = score;
new_student->next = NULL;
// 如果链表为空,直接将新节点作为头节点
if (*head == NULL) {
*head = new_student;
return;
}
// 找到链表尾部,将新节点插入尾部
Student* cur = *head;
while (cur->next != NULL) {
cur = cur->next;
}
cur->next = new_student;
}
// 按姓名查找学生信息
Student* find_by_name(Student* head, char* name) {
Student* cur = head;
while (cur != NULL) {
if (strcmp(cur->name, name) == 0) {
return cur;
}
cur = cur->next;
}
// 没有找到对应姓名的学生
return NULL;
}
int main() {
// 初始化链表
Student* head = NULL;
// 插入学生信息
insert(&head, "Tom", 1001, 90.5);
insert(&head, "Jerry", 1002, 85.0);
insert(&head, "Alice", 1003, 95.0);
insert(&head, "Bob", 1004, 88.5);
// 按姓名查找学生信息并输出
Student* found_student = find_by_name(head, "Alice");
if (found_student != NULL) {
printf("Name: %s\n", found_student->name);
printf("ID: %d\n", found_student->id);
printf("Score: %.1f\n", found_student->score);
} else {
printf("Student not found.\n");
}
return 0;
}
```
以上程序定义了一个 `Student` 结构体,包含学生的姓名、学号、成绩和下一个节点的指针。使用 `insert` 函数将学生信息插入链表中,使用 `find_by_name` 函数按姓名查找学生信息。在 `main` 函数中初始化链表并插入学生信息,然后查找名为 "Alice" 的学生信息并输出。
建立vector函数,储存学生的姓名,学号,成绩
好的,以下是一个建立vector函数来储存学生姓名、学号和成绩的示例代码:
```C++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
struct Student {
string name;
int id;
float score;
};
vector<Student> students;
void addStudent(string name, int id, float score) {
Student s;
s.name = name;
s.id = id;
s.score = score;
students.push_back(s);
}
int main() {
addStudent("Alice", 1001, 90.5);
addStudent("Bob", 1002, 87.5);
addStudent("Charlie", 1003, 92.0);
for (int i = 0; i < students.size(); i++) {
cout << students[i].name << " " << students[i].id << " " << students[i].score << endl;
}
return 0;
}
```
在这个示例代码中,我们使用了一个结构体 `Student` 来储存学生的姓名、学号和成绩。然后,我们定义了一个 `vector<Student>` 类型的全局变量 `students` 来储存所有学生的信息。接着,我们定义了一个名为 `addStudent` 的函数,用来向 `students` 中添加新的学生信息。最后,在主函数中,我们调用 `addStudent` 函数来添加三个学生信息,并使用循环遍历 `students` 中的所有学生信息,并将它们输出到控制台上。