码迷,mamicode.com
首页 > 其他好文 > 详细

学生成绩管理系统

时间:2014-08-13 01:00:54      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   os   io   for   ar   div   amp   

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

使用技术: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;
}

 

学生成绩管理系统,布布扣,bubuko.com

学生成绩管理系统

标签:blog   使用   os   io   for   ar   div   amp   

原文地址:http://www.cnblogs.com/forerve/p/3908716.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!