本文包括学生成绩管理系统(链表实现)运行结果截图、自测数据、源代码、调试截图以及流程图(总体流程图和各个函数流程图)。
1. 问题描述
对班级学生的考试成绩进行统一管理,学生信息包括学号、姓名、数学成绩、英语成绩、物理成绩、总分。将数据存放到结构体中,用指针对节点进行操作处理。
2. 实现功能
- 根据用户输入的学号,对节点进行增删查改
- 根据学号遍历链表节点
- 根据数学、英语、物理成绩以及总分排序输出学生信息
3. 程序运行结果

4. 自测数据
1
2 lili 90 89 70
1
4 tici 98 79 86
1
3 wuxi 62 77 93
1
1 qiaz 87 78 84
1
5 ervi 79 81 95
5
4
5
2
1
qiaz 88 96 79
6
7
8
9
3
5
5
10
5. 程序代码
#include<iostream>
#include<string>
using namespace std;
typedef struct student {
int id;//学号
string name;//姓名
int math;//数学
int english;//英语
int physics;//物理
int sum;//总分
struct student *next;
}stu, *List;
stu *head;
void modify();//修改一个节点
void add();//插入一个节点
void delt();//删除一个节点
void print_id();//遍历链表节点
void find();//查找一个节点
void print_sum();//排序输出全班总分
void print_math(); //排序输出全班数学成绩
void print_english();//排序输出全班英语成绩
void print_physics();//排序输出全班物理成绩
void sort(int flag);
int main()
{
head = new stu;
head->next = NULL;
int choice;
cout << "学生成绩管理系统\n\n";
cout << "1.插入一个节点\n2.修改一个节点\n3.删除一个节点\n4.查找一个节点\n5.遍历链表节点\n6.排序输出全班总分\n7.排序输出全班数学成绩\n8.排序输出全班英语成绩\n9.排序输出全班物理成绩\n10.退出\n\n\n\n";
cout << "输入选择(1-10): ";
cin >> choice;
while (1)
{
switch (choice)
{
case 1: add(); break;
case 2: modify(); break;
case 3: delt(); break;
case 4: find(); break;
case 5: print_id(); break;
case 6: print_sum(); break;
case 7: print_math(); break;
case 8: print_english(); break;
case 9: print_physics(); break;
case 10: exit(0);
default: cout << "输入有误!\n"; break;
}
cout << "输入选择(1-10): ";
cin >> choice;
}
return 0;
}
void test() {
if (!head) {
cout << "head NULL\n";
exit(-1);
}
}
void find() {
cout << "输入要查找学生的学号: ";
int id;
cin >> id;
stu *p;
test(

本文介绍了一个使用C++编程的学生成绩管理系统,基于链表数据结构,实现了学生信息的增删查改功能,并提供了自测数据、程序代码、调试截图及流程图。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



