有大神吗?求解一道C语言题目

(一)、学校现状分析
1、某学校有本科生和研究生两类学生。
A. 本科生信息:学号、姓名、性别、专业、班级、高数成绩、英语成绩、C语言、总成绩、班级排名、校级排名。其中:学号、姓名、性别、专业、班级、高数成绩、英语成绩、C语言成绩为输入项,总成绩是计算项,班级排名是总成绩在班内的名次,校级排名是总成绩在校内的名次。
B. 研究生信息:学号、姓名、性别、专业、班级、课程综合成绩、论文成绩、总成绩、班级排名、校级排名。其中:学号、姓名、性别、专业、班级、课程综合成绩、论文成绩为输入项,总成绩是计算项,班级排名是总成绩在班内的名次,校级排名是总成绩在校内的名次。
2、学生总成绩计算方法。
A.本科生:总成绩=高数成绩+英语成绩+C语言成绩;
B.研究生:总成绩=课程综合成绩+论文成绩;
请使用结构化的程序设计方法,开发一个学生成绩管理系统对学生成绩进行有效管理。
(二)、系统的功能要求
1.添加功能:分本科生和研究生两类人员,实现下列添加功能。
A.本科生:能够添加学生信息,如果高数成绩、英语成绩、C语言成绩都输入,则系统自动计算总成绩。
B.研究生:能够添加学生信息,如果课程综合成绩、论文成绩都输入,则系统自动计算总成绩。
2.修改功能:分本科生和研究生两类人员,实现下列修改功能。
A.本科生:根据学号来修改任意学生的除学号外的信息。如果高数成绩、英语成绩、c语言成绩都存在,则系统自动计算总成绩。
B.研究生:根据学号来修改任意学生的除学号外的信息。如果课程综合成绩、论文成绩都存在,则系统自动计算总成绩
3.删除功能:分本科生和研究生两类人员,能够根据学号删除一个学生。
4.查询功能:分本科生和研究生两类人员,实现下列查询功能。
1)分页显示全部学生的信息。分页功能:每页显示10条学生的信息,有上一页、下一页、首页和最后一页的功能。
2)能够按班级显示本班全部学生信息。
3)能够根据学号或者姓名查询学生信息。
4)能够在某个班级中查询某门课成绩不及格学生信息。
5.排序功能:分本科生和研究生两类人员,实现下列排序功能。
1)所有学生信息按总成绩从高到低排序并显示。
2)某个班学生信息按总成绩从高到低排序并显示。
6.统计功能:分本科生和研究生两类人员,实现下列统计与显示功能。
1)统计某班级某课程的平均成绩、最高成绩、最低成绩。如果学生该门课没有成绩,统计平均成绩时忽略该生。
2)统计某班级某课程超过课程平均成绩的学生名单及人数。
3)统计某班级某课程不及格学生名单及人数。
4)统计某班级某课程不同等级的学生人数。等级标准:优—大于等于90;良—大于等于80且小于90;中:大于等于70且小于80;及格:大于等于60且小于70;不及格:小于60。
(三)、系统的实现技术要求
1.学生用结构体表示,全体学生用一个链表来表示。某一类别的学生,可以只使用学生结构体的部分成员,比如:本科生只使用属于本科生的信息成员,研究生只使用属于研究生的信息成员。
2.必须用文件来存储学生信息:开始运行程序时从文件中读取学生信息到链表,退出程序时将学生信息保存到文件中。
3.数据约束:
1)学号:整型、不能重复、从1开始依次递增、由软件自动计算产生,不能修改。
2)姓名、专业、班级:不能为空。
3)类别:枚举类型,分别表示本科生、研究生。
4)性别:男或女。
5)各种成绩:整型,取值范围为0-100。-1表示未有此项成绩。
4.其他:至少有两层菜单。
(四)、建议定义如下的主要数据结构
1、枚举型学生类别:本科生、研究生
enum studentcategory { UNDERGRADUATE,POSTGRADUATE };

2、学生类型:链表结点
typedef struct node{
int id; //学号:主键,唯一
char name[10]; //姓名
char sex[3]; //性别:男或女
char specialty[20]; //专业
char classes[20]; //班级:唯一,不同班级不同
enum studentcategory category; //枚举型学生类别;本科生、研究生
int math; //高数
int english; //英语
int clanguage; //C语言
int comprehensive; //课程综合
int thesis; //毕业论文
int totalscore; //总成绩
int classrank; //班级排名
int schoolrank; //校级排名
struct node * next;
}Student;

我需要第五个排序功能,有大神能帮我解决吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值