首页 > 代码库 > 学生成绩管理系统

学生成绩管理系统

基于控制台的学生成绩信息管理系统,实现学生的成绩管理,实现学生的增加,删除,查询和总分的计算,并可查看总分排名;

使用技术:C++,STL;后续还会继续完善,包括添加注释,把增加学生功能封装成一个方法,完善输出格式等一些细节的改善

#include<iostream>#include<string>#include<list>#include<algorithm>using namespace std;class student{private:    int No;    string Name;    double Math;    double Eng;    double Chn;    double Cpro;    double Sum;public:        student(int no,string name,double math,double eng,                double chn,double cpro){                No=no;                Name=name;                Math=math;                Eng=eng;                Chn=chn;                Cpro=cpro;                Sum=math+eng+chn+cpro;                }        void print()        {            cout<<No<<"  "<<Name<<"  "<<Math<<"  "<<Eng<<"  "                <<Chn<<"  "<<Cpro<<"  "<<Sum<<endl;        }        int getno()        {        	return No;        }        double getsum()        {        	return Sum;        }         ~student(){         	         }};void print(list<student> lst);void print_no(list<student> &lst);void cmp_no(student& st1,student& st2);void print_sum(list<student> &lst);void find(list<student> &lst);int del(list<student> &lst);void main_remid();void score_remind();int main(){    int No;    string Name;    double Math;    double Eng;    double Chn;    double Cpro;        list<student> lst;	char op=‘ ‘;	main_remid();	while(op!=‘q‘)	{				cin>>op;		switch(op)		{			case ‘1‘:				score_remind();				print_no(lst);	  			break; 			case ‘3‘: 				find(lst); 				break;			case ‘4‘:				del(lst);				break; 			case ‘5‘: 				score_remind(); 				print_sum(lst); 				break;			case ‘6‘:				main_remid();				break;			case ‘2‘:    				cout<<"请输入要增加学生的学号:"<<endl;   				cin>>No;    			bool flag=false;			   	for(list<student>::iterator it=lst.begin(); it!=lst.end();it++)					if(No==it->getno()){						cout<<"添加失败,此学号已存在,请重新操作"<<endl;						flag=true;					}				if(flag) break;														 		cout<<"请输入要增加学生的姓名"<<endl;    			cin>>Name;    			cout<<"请输入要增加学生的数学成绩:"<<endl;    			cin>>Math;    			cout<<"请输入要增加学生的英语成绩:"<<endl;    			cin>>Eng;    			cout<<"请输入要增加学生的语文成绩:"<<endl;    			cin>>Chn;    			cout<<"请输入要增加学生的C语言成绩:"<<endl;    			cin>>Cpro;    			student st(No,Name,Math,Eng,Chn,Cpro);    			lst.push_back(st);    			break;								}			if(op!=‘q‘)				cout<<"请继续选择您想要的操作:"<<endl;		}		return 0;}void addst(){}void print(list<student> lst){    for(list<student>::iterator it=lst.begin();it!=lst.end();it++)       it->print();}void print_no(list<student> &lst){	int j,i=0;	int a[1024]={0};	for(list<student>::iterator it=lst.begin();it!=lst.end();it++)		a[i++]=it->getno();	sort(a,a+i);		for(j=0;j<i;j++)	for(list<student>::iterator jt=lst.begin();jt!=lst.end();jt++)		if(a[j]==jt->getno())			jt->print();}void print_sum(list<student> &lst){	int i=0;	double a[1024]={0};	for(list<student>::iterator it=lst.begin();it!=lst.end();it++)		a[i++]=it->getsum();	sort(a,a+i);			while(i--)	for(list<student>::iterator jt=lst.begin();jt!=lst.end();jt++)		if(a[i]==jt->getsum())			jt->print();}void find(list<student> &lst){		cout<<"请输入要查询学生的学号:"<<endl;	int no;	cin>>no; 	for(list<student>::iterator it=lst.begin();it!=lst.end();it++)	{		if(no==it->getno())			it->print();		if(it==lst.end())			cout<<"不存在此学号,请重新选择操作"<<endl;	}		}int del(list<student> &lst){	cout<<"请输入要删除学生的学号:"<<endl; 	int no;	cin>>no;	for(list<student>::iterator it=lst.begin();it!=lst.end();it++)		if(no==it->getno())		{			lst.erase(it);			return 0;		}	cout<<"删除失败,不存在此学号"<<endl;				}void main_remid(){	cout<<"请选择要执行的操作"<<endl;	cout<<"1.查询所有学生的成绩信息"<<endl;	cout<<"2.增加学生"<<endl;	cout<<"3.查找学生"<<endl;	cout<<"4.删除学生"<<endl;	cout<<"5.查看总分排名"<<endl; 	cout<<"6.查看此提示"<<endl;	cout<<"q.退出系统" <<endl;}void score_remind(){	cout<<"学号  "<<"姓名  "<<"数学  "<<"英语"	<<"C语言 "<<"总成绩"<<endl;}