编写一个学生成绩管理程序 c++ 链表

来源:百度知道 编辑:UC知道 时间:2024/06/07 19:32:34
设计一个程序,对某个班的学生成绩进行统计。
要求实现如下功能。
1) 从文件中读出每个学生的学号及五门课的成绩。
2) 计算每人的平均分及总分
3) 按总分从高到低排名次,并输出每个学生的学习情况。
4) 指定某门课程(键入课程号),输出成绩在85分以上(含85分),且总分在前10名的学生学习情况。
5) 输出含不及格(小于60分)成绩的学生的学习情况。
6) 建立链表,能够实现插入、删除、查询等功能。
具体要求如下:
(1) 每个功能为一个独立的函数。
(2) 输入之前要有提示。
(3) 程序尽量简明、规范。
方法提示:
要在主函数中定义一个结构体,建立一个链表head
head依次按学生学号存放学生的信息。
主函数可依次调用下面7个功能函数。
(1) input(file,head)
这个函数逐个从文件中读入学生的学号及五门课程的成绩,建立链表,输入过程直到学号为负或人数超过40人为止。
(2) count(head)
此函数计算每个学生的平均分及总分
(3) sort(head)
这个函数按总分从高到低排名次,并按名次输出每个学生的学习情况。
(4) serch1(head,order)
这个函数对指定的某门课程,输出85分以上且总分在前10名的学生学习情况。
(5)serch2(head)
这个函数输出不及格成绩的学生学习情况。
(6)delete(head,num)
删除学号为num的学生的信息。
a) insert(head,num)
插入学号为num的信息到head链表中。
b) output(head)
输出head链表中的学生的信息。

#include<iostream>
#include<string>
using namespace std;
//=============<开始定义结构体>===================================================
struct combox{

int num;
int mark;
string name;
combox *next;

};
//=============<结束定义结构体>===================================================

//=============<开始定义Commonbox类>==============================================

//-----类体开始------------------------
class Commonbox{

private:
combox *head;
void Swap(combox *,combox *); //交换两个combox变量的数据域
void Print(combox *); //输出一combox指定的记录
combox *Find(int); //查找条例条件的记录,并返回该记录的指针

public:
Commonbox(){head=NULL;}
int ListCount(); //统计当前链表的记录总数,返回一个整数
void AddItem(int num, string name, int mark); //添加一条记录到表尾
void RemoveItem(int); //删除一条指定的记录
void List(); //列出当前链表中的所有记录
void Sort(); //对当前链表进行排序
void