定义一个成绩数据的链表,读入相应的成绩数据来完成学生成绩信息表的创建,并实现成绩的输出、查找、插入、删除等基本操作。编程实现如下模块内容:1.定义链表结点数据类型 LNode、结点指针类型LinkLi
时间: 2024-09-27 15:09:12 浏览: 47
在编程中,为了实现学生成绩信息的管理,你可以首先定义一个名为`LNode`的链表节点结构,用于存储学生的姓名、学号以及对应的成绩。这里是一个简单的示例:
```cpp
// C++ 示例
struct LNode {
string name;
int student_id;
float score;
LNode* next; // 指向下一个节点的指针
};
```
接下来,你需要定义一个`LinkList`类来表示整个成绩链表,包括插入、删除、查找和输出操作:
```cpp
class LinkList {
private:
LNode* head; // 链表头节点
public:
// 构造函数
LinkList() : head(nullptr) {}
// 插入操作
void insert(string name, int id, float score) {
LNode* newNode = new LNode();
newNode->name = name;
newNode->student_id = id;
newNode->score = score;
newNode->next = nullptr;
if (head == nullptr) {
head = newNode;
} else {
LNode* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newNode;
}
}
// 删除操作
void deleteStudent(int id) {
if (head == nullptr) return;
if (head->student_id == id) {
LNode* temp = head;
head = head->next;
delete temp;
return;
}
LNode* current = head;
while (current->next != nullptr && current->next->student_id != id) {
current = current->next;
}
if (current->next != nullptr) {
LNode* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
// 查找操作
bool searchStudent(int id) {
LNode* temp = head;
while (temp != nullptr) {
if (temp->student_id == id) {
return true;
}
temp = temp->next;
}
return false;
}
// 输出操作
void output() {
LNode* temp = head;
while (temp != nullptr) {
cout << "学生ID: " << temp->student_id << ", 姓名: " << temp->name << ", 成绩: " << temp->score << endl;
temp = temp->next;
}
}
};
```
现在,你可以实例化一个`LinkList`对象并使用上述方法来操作学生成绩数据。例如:
```cpp
int main() {
LinkList students;
// 插入成绩
students.insert("张三", 1001, 90);
students.insert("李四", 1002, 85);
// 输出成绩
students.output();
// 查找和删除成绩
if (students.searchStudent(1001)) {
cout << "找到学生1001" << endl;
students.deleteStudent(1001); // 删除张三的成绩
}
return 0;
}
```
阅读全文