建一个顺序表,每个数据为学生信息,包括学号,性别,姓名,初始化顺序表,写一个函数,实现第i个位置插入学生信息:王一一,学号2303040406,数据结构成绩95,在main函数中调用该函数,并打印输出顺序表中各个学生信息
时间: 2025-01-05 14:39:33 浏览: 4
在C++中,我们可以创建一个简单的顺序表(也称为数组)来存储学生信息。首先,我们定义一个结构体`Student`表示学生的信息,然后创建一个动态数组`StudentList`来作为顺序表。
```cpp
#include <iostream>
using namespace std;
// 学生信息结构体
struct Student {
int id;
char gender;
string name;
int score; // 数据结构成绩
};
// 初始化顺序表
class SequenceList {
private:
Student *students;
size_t size;
size_t capacity;
public:
SequenceList(size_t initial_capacity = 5) {
students = new Student[initial_capacity];
size = 0;
capacity = initial_capacity;
}
// 插入第i个位置的学生信息
void insert(int i, const string &name, int id, char gender, int score) {
if (i >= size || i > capacity) {
resize(capacity * 2); // 如果已满,扩大容量
}
students[i] = {id, gender, name, score};
++size;
}
// 打印顺序表中的学生信息
void print() {
for (size_t j = 0; j < size; ++j) {
cout << "学生信息 (" << j+1 << "):"
<< "学号: " << students[j].id
<< ", 性别: " << students[j].gender
<< ", 姓名: " << students[j].name
<< ", 成绩: " << students[j].score
<< endl;
}
}
private:
void resize(size_t new_capacity) {
Student *new_students = new Student[new_capacity];
for (size_t k = 0; k < size; ++k) {
new_students[k] = students[k];
}
delete[] students;
students = new_students;
capacity = new_capacity;
}
};
int main() {
// 初始化顺序表并插入学生信息
SequenceList studentList(3);
studentList.insert(0, "王一一", 2303040406, 'M', 95);
// 打印顺序表
studentList.print();
return 0;
}
```
在这个示例中,我们在`SequenceList`类中定义了插入和打印功能。在`main`函数里,我们创建了一个大小为3的顺序表,并在第0个位置插入了王一一的信息。最后,我们打印出了整个顺序表的内容。
阅读全文