请结合数据结构devc++实现简单的学生信息管理,包括学生姓名,学号后四位,年龄,性别,三门课成绩,录入学生信息时能够不按照任何顺序进行录入,能够支持后续任意时刻的信息录入。成绩的录入要求能够按照学号顺序进行批量录入,并在录入时打印学生信息。要求按照链式结构实现。
时间: 2024-11-12 10:40:17 浏览: 19
在Dev-C++中,我们可以使用链表数据结构结合结构体来实现一个简单的学生信息管理系统。首先,我们需要创建一个`Student`结构体,包含学生的属性如姓名、后四位学号、年龄、性别以及成绩数组。由于成绩需要存储三门课程的成绩,我们可以定义一个包含三个元素的数组或者动态分配内存。
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义学生结构体
struct Student {
string name;
int id; // 学号后四位
int age;
char gender;
int scores[3]; // 三门课的成绩
};
// 链表节点
struct Node {
Student student;
Node* next;
};
class StudentManagement {
private:
Node* head;
public:
// 构造函数
StudentManagement() {
head = nullptr;
}
// 添加学生信息,支持无序添加
void addStudent(const Student& student) {
Node* newNode = new Node();
newNode->student = student;
newNode->next = head;
head = newNode;
cout << "学生信息已成功添加:" << endl;
printStudent(newNode->student);
}
// 批量录入成绩,按学号顺序
void inputScores(Node* node) {
for (int i = 0; i < 3; ++i) {
cout << "请输入学生" << node->student.id << "的第" << (i + 1) << "门课成绩:";
cin >> node->student.scores[i];
printStudent(node->student);
}
}
// 打印学生信息
void printStudent(const Student& student) {
cout << "姓名:" << student.name << ", 学号:" << student.id << ", 年龄:" << student.age << ", 性别:" << student.gender << ", 成绩:" << endl;
for (int i = 0; i < 3; ++i) {
cout << "第" << (i + 1) << "门课:" << student.scores[i] << endl;
}
cout << endl;
}
};
int main() {
StudentManagement system;
// 示例操作
Student s1;
s1.name = "张三";
s1.id = 1234;
// ... 继续设置其他属性
system.addStudent(s1);
// 如果有多名学生,可以继续添加
// system.addStudent(...);
// 按学号顺序输入成绩
if (system.head != nullptr) {
system.inputScores(system.head);
}
return 0;
}
```
在这个例子中,我们创建了一个`StudentManagement`类,它包含了添加学生、批量输入成绩和打印学生信息的方法。用户可以在`main`函数中根据需求操作这个系统。
阅读全文