学生成绩管理系统链表c++
时间: 2023-11-24 14:50:42 浏览: 38
以下是一个基于链表的C++学生成绩管理系统的示例代码,它可以实现添加、删除、修改和查询学生信息的功能:
```c++
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
using namespace std;
class student {
public:
int num1;
long long num2;
string name;
double score1;
double score2;
double score3;
double score4;
double score5;
};
class list {
public:
student stu;
list *next;
};
list *head = new list;
void add() {
list *p = head;
while (p->next != NULL) {
p = p->next;
}
list *newnode = new list;
cout << "请输入学号:" << endl;
cin >> newnode->stu.num1;
cout << "请输入身份证号:" << endl; cin >> newnode->stu.num2;
cout << "请输入姓名:" << endl;
cin >> newnode->stu.name;
cout << "请输入语文成绩:" << endl;
cin >> newnode->stu.score1;
cout << "请输入数学成绩:" << endl;
cin >> newnode->stu.score2;
cout << "请输入英语成绩:" << endl;
cin >> newnode->stu.score3;
cout << "请输入物理成绩:" << endl;
cin >> newnode->stu.score4;
cout << "请输入化学成绩:" << endl;
cin >> newnode->stu.score5;
newnode->next = NULL;
p->next = newnode;
cout << "添加成功!" << endl;
}
void del() {
int num;
cout << "请输入要删除的学生学号:" << endl;
cin >> num;
list *p = head->next;
list *pre = head;
while (p != NULL) {
if (p->stu.num1 == num) {
pre->next = p->next;
delete p;
cout << "删除成功!" << endl;
return;
}
pre = p;
p = p->next;
}
cout << "未找到该学生!" << endl;
}
void modify() {
int num;
cout << "请输入要修改的学生学号:" << endl;
cin >> num;
list *p = head->next;
while (p != NULL) {
if (p->stu.num1 == num) {
cout << "请输入新的身份证号:" << endl;
cin >> p->stu.num2;
cout << "请输入新的姓名:" << endl;
cin >> p->stu.name;
cout << "请输入新的语文成绩:" << endl;
cin >> p->stu.score1;
cout << "请输入新的数学成绩:" << endl;
cin >> p->stu.score2;
cout << "请输入新的英语成绩:" << endl;
cin >> p->stu.score3;
cout << "请输入新的物理成绩:" << endl;
cin >> p->stu.score4;
cout << "请输入新的化学成绩:" << endl;
cin >> p->stu.score5;
cout << "修改成功!" << endl;
return;
}
p = p->next;
}
cout << "未找到该学生!" << endl;
}
void query() {
int num;
cout << "请输入要查询的学生学号:" << endl;
cin >> num;
list *p = head->next;
while (p != NULL) {
if (p->stu.num1 == num) {
cout << "学号:" << p->stu.num1 << endl;
cout << "身份证号:" << p->stu.num2 << endl;
cout << "姓名:" << p->stu.name << endl;
cout << "语文成绩:" << p->stu.score1 << endl;
cout << "数学成绩:" << p->stu.score2 << endl;
cout << "英语成绩:" << p->stu.score3 << endl;
cout << "物理成绩:" << p->stu.score4 << endl;
cout << "化学成绩:" << p->stu.score5 << endl;
return;
}
p = p->next;
}
cout << "未找到该学生!" << endl;
}
int main() {
head->next = NULL;
int choice;
while (true) {
cout << "请选择操作:" << endl;
cout << "1.添加学生信息" << endl;
cout << "2.删除学生信息" << endl;
cout << "3.修改学生信息" << endl;
cout << "4.查询学生信息" << endl;
cout << "5.退出程序" << endl;
cin >> choice;
switch (choice) {
case 1:
add();
break;
case 2:
del();
break;
case 3:
modify();
break;
case 4:
query();
break;
case 5:
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```