作业--学生成绩管理系统

学生成绩管理系统V5.0

某班最多有30人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。定义结构体类型,用结构体数组作函数参数,编程实现如下菜单驱动的学生成绩管理系统:

1.录入每个学生的学号、姓名和各科考试成绩;

2.计算每门课程的总分和平均分;

3.计算每个学生的总分和平均分;

4.按每个学生的总分由高到低排出名次表;

5.按每个学生的总分由低到高排出名次表;

6.按学号由小到大排出成绩表;

7.按姓名的字典顺序排出成绩表;

8.按学号查询学生排名及其考试成绩;

9.按姓名查询学生排名及其考试成绩;

10.按优秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)5个类别,对每门课程分别统计每个类别的人数及所占的百分比;

11.输出每个学生的学号、姓名、各科考试成绩,以及每门课程的总分和平均分。

要求程序运行后先显示如下菜单,并提示用户输入选项,根据用户输入的选项执行相应的操作。

1.Append record

2.Caculate total and average score of every course

3.Caculate total and average score of every student

4.Sort in descending order by total score of every student

5.Sort in ascending order by total score of every student

6.Sort in ascending order by number

7.Sort in dictionary order by name

8.Search by number

9.Search by name

10.Statistic analysis for every course

11.List record

0.Exit

Please enter your choice:

实验目的:在掌握基本编程结构、函数的基础上,通过增加任务要求,熟悉结构体类型、结构体数组作函数参数、模块化程序设计方法,体会用结构体类型代替普通数组类型实现数据库管理的优越性。

思考:

1.参考教材上的例题,用动态单向链表代替结构体数组,编程实现;

2.在1的基础上,增加“删除记录”和“插入记录”的功能,体会动态链表与结构体数组的不同点和优缺点。

第一次体验到因代码而产生的成就感,也让我更加确信了当初报考计算机专业的决心,心情澎湃,通过这次作业也算是初步了解到了程序猿工作的一部分,期待我成为程序员的那一天。

 #include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <stack>
#include <vector>
#include <string>
#include <cstring>
using namespace std;
int temp=0; //记录上一次结构体的位置 
typedef struct  //记录数据的结构体 
{
   
char a[30]; //学号
   char str[10];//姓名
   int MT;
   int  EN;
   int PH;
	
}STU;
STU stu[100]; 
void FirstPage(); //首页选项 
void Record();//记录成绩 
void ProAverage(); //每门课程的总分和平均分 
void StuAverage(); //计算每个学生的总分和平均分
void SortSumUp();//按每个学生的总分由高到低排出名次表
int cmpup(int a,int b); //自定义排序函数 由大到小 
void SortSumDown(); //按每个学生的总分由低到高排出名次表
void IdSortDown();//按学号由小到大排出成绩表
bool IdCmpDOWN(STU x,STU y); //自定义结构体排序学号从大到小 
void Dictionary();//字典序排序 
bool cmpdic(STU x,STU y);//字典序排序 
void CheckId();//按学号查询学生排名及其考试成绩
void CheckName(); //按姓名查询学生排名及其考试成绩
void Clear();//按优秀(90-100)、良好(80-89)、中等(70-79)、及格(60-69)、不及格(0-59)
void Show();//输出每个学生的学号、姓名、各科考试成绩,以及每门课程的总分和平均分
int main()
{
   
	int choice; //选项数字 
	

	while(1){
   
			
		FirstPage();
		cin>>choice;
			if(choice==1)
			Record();  
			if(choice==2)
			ProAverage();
			if(choice==3)
			 StuAverage();
			 if(choice==4)
			SortSumUp();
			 if(choice==5)
			 SortSumDown(); 
			 if(choice==6)
			 IdSortDown(); 
			 if(choice==7)
			 Dictionary();
			 if(choice==8)
			 CheckId();
			 if(choice==9)
			 CheckName();
			 if(choice
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值