C++课程设计

#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
const int M=200;
class student
{
private:
	double math;
	double chinese;
	double English;
	double tal;
    double ave;
	static int m;//实际学生人数
	string name;
	string num;
	string classroom;
public:
	 void input();
      void show();	
	  void searchmath(student* p);
	void searchchinese(student* p);
	void searchEnglish(student* p);
	void math_greatrate(student* p);
 void chinese_greatrate(student* p);
 void English_greatrate(student* p);
 void search(student* p);
 void search1(student* p);
 void paixu_math(student* p);
 void paixu_English(student* p);
 void paixu_chinese(student* p);
 void paixu_num(student* p);
void paixu_tal(student* p);
 void insert();
 void cancel(student*p);
 void change(student*p);

};
	
	
	//实现信息录入功能
    void student::input()
	{
	cout<<"请输入学生的学号:"<<endl;
	cin>>num;
	cout<<"请输入学生的姓名:"<<endl;
     cin>>name;
     cout<<"请输入学生的班级:"<<endl;
	 cin>>classroom;
     cout<<"请输入学生的数学成绩:"<<endl;
    cin>>math;
    cout<<"请输入学生的语文成绩:"<<endl;
	cin>>chinese;
    cout<<"请输入学生的英语成绩:"<<endl;
	cin>>English;
	tal=math+chinese+English;
	ave=tal/3;
	m++;
	}
	//信息输出;
	void student::show()
	{
		cout<<"num:"<<num<<"  "<<"name:"<<name<<"  "<<"classroom:"<<classroom<<endl;
		cout<<"math:"<<math<<"  "<<"chinese:"<<chinese<<"  "<<"English:"<<English<<endl;
	}
	//找出数学,英语,语文成绩最好和最差的学生;
	void student::searchmath(student* p)
	{
	   int i,j=0; double big=p->math;
	       for(i=0;i<m;i++)
		   if(p[i].math>big)
		   {big=p[i].math;
		   j=i;}
		   cout<<"数学成绩最高的学生是:"<<endl;
		   cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		   cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
	       int d,n=0; double small=p->math;
	       for(d=0;d<m;d++)
		   if(p[d].math<small)
		   {small=p[d].math;
		   n=d;}
		   cout<<"数学成绩最低的学生是:"<<endl;
		   cout<<"num:"<<p[n].num<<"  "<<"name:"<<p[n].name<<"  "<<"classroom:"<<p[n].classroom<<endl;
		   cout<<"math:"<<p[n].math<<"  "<<"chinese:"<<p[n].chinese<<"  "<<"English:"<<p[n].English<<endl;
	}
	
	
	void student::searchchinese(student* p)
	{
	       int i,j=0; double big=p->chinese;
	       for(i=0;i<m;i++)
		   if(p[i].chinese>big)
		   {big=p[i].chinese;
		   j=i;}
		   cout<<"语文成绩最高的学生是:"<<endl;
		   cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		   cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
	       int d,n=0; double small=p->chinese;
	       for(d=0;d<m;d++)
		   if(p[d].chinese<small)
		   {small=p[d].chinese;
		   n=d;}
		   cout<<"语文成绩最低的学生是:"<<endl;
		   cout<<"num:"<<p[n].num<<"  "<<"name:"<<p[n].name<<"  "<<"classroom:"<<p[n].classroom<<endl;
		   cout<<"math:"<<p[n].math<<"  "<<"chinese:"<<p[n].chinese<<"  "<<"English:"<<p[n].English<<endl;
	}

		void student::searchEnglish(student* p)
		{
	      int i,j=0; double big=p->English;
	       for(i=0;i<m;i++)
		   if(p[i].English>big)
		   {big=p[i].English;
		   j=i;}
		   cout<<"英语成绩最高的学生是:"<<endl;
		   cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		   cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
	       int d,n=0; double small=p->English;
	       for(d=0;d<m;d++)
		   if(p[d].English<small)
		   {small=p[d].English;
		   n=d;}
		   cout<<"英语成绩最低的学生是:"<<endl;
		   cout<<"num:"<<p[n].num<<"  "<<"name:"<<p[n].name<<"  "<<"classroom:"<<p[n].classroom<<endl;
		   cout<<"math:"<<p[n].math<<"  "<<"chinese:"<<p[n].chinese<<"  "<<"English:"<<p[n].English<<endl;
	}
		 
		//算出数学,语文,英语的优秀率和及格率;
		void student::math_greatrate(student* p)
		{  
			 student* q=p;
			 double count=0.0,count1=0.0;
			 for(int i=0;i<m;i++,p++)
				 if(p->math>=90)
					 count++;
				 cout<<"该班数学优秀率为:"<<double(count/m)<<endl;

                 p=q;
                for(int j=0;j<m;j++,p++)
				 if(p->math<60)
					 count1++;
				 cout<<"该班数学不及格率为:"<<double(count1/m)<<endl;
				 p=q;
		}

	


	    void student::chinese_greatrate(student* p)
		{  
			 student* q=p;
			 double count=0.0,count1=0.0;
			 for(int i=0;i<m;i++,p++)
				 if(p->chinese>=90)
					 count++;
				 cout<<"该班语文优秀率为:"<<double(count/m)<<endl;

                 p=q;
                for(int j=0;j<m;j++,p++)
				 if(p->chinese<60)
					 count1++;
				 cout<<"该班语文不及格率为:"<<double(count1/m)<<endl;
				 p=q;
		}
	
      void student::English_greatrate(student* p)
		{  
			 student* q=p;
			 double count=0.0,count1=0.0;
			 for(int i=0;i<m;i++,p++)
				 if(p->English>=90)
					 count++;
				 cout<<"该班英语优秀率为:"<<double(count/m)<<endl;

                 p=q;
                for(int j=0;j<m;j++,p++)
				 if(p->English<60)
					 count1++;
				 cout<<"该班英语不及格率为:"<<double(count1/m)<<endl;
				 p=q;
		}
	     
	  //按照姓名或者学号查找学生;
	     void student::search(student*p)
		 {
			 string name1;
			 cout<<"你要查找学生的姓名:"<<endl;
			 cin>>name1;int j=100;
			 for(int i=0;i<m;i++)
                if(p[i].name==name1)
					j=i;
				if(j==100)
					cout<<"没有这个学生:"<<endl;
				else 
				{cout<<"你要查找的学生的所有信息:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
				cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;}
		 }


          void student::search1(student*p)
		 {
			 string num1;
			  cout<<"你要查找学生的学号:"<<endl;
			 cin>>num1;int j=100;
			 for(int i=0;i<m;i++)
                if(p[i].num==num1)
					j=i;
                    if(j==100)
					cout<<"没有这个学生:"<<endl;
			else	
			{cout<<"你要查找的学生的所有信息:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
				cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;}
		 }

     //按照单科成绩、总成绩、平均成绩、学号排序。
		  void student::paixu_math(student* p)
		  {  
			  int i,j;
			  double tem;
			  for(i=0;i<m-1;i++)
				  for(j=i;j<m-i-1;j++)
				if(p[j+1].math>p[j].math)
				{	tem=p[j].math;
				   p[j].math=p[j+1].math;
				    p[j+1].math=tem;
				}
				for(j=0;j<m;j++)
				{cout<<"输出第"<<j+1<<"个学生:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		        cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
				}
		  }
          void student::paixu_chinese(student* p)
		  {  
			  int i,j;
			  double tem;
			  for(i=0;i<m-1;i++)
				  for(j=i;j<m-i-1;j++)
				if(p[j+1].chinese>p[j].chinese)
				{	tem=p[j].chinese;
				   p[j].chinese=p[j+1].chinese;
				    p[j+1].chinese=tem;
				}
				for(j=0;j<m;j++)
				{cout<<"输出第"<<j+1<<"个学生:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		        cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
				}
		  }

          void student::paixu_English(student* p)
		  {  
			  int i,j;
			  double tem;
			  for(i=0;i<m-1;i++)
				  for(j=i;j<m-i-1;j++)
				if(p[j+1].English>p[j].English)
				{	tem=p[j].English;
				   p[j].English=p[j+1].English;
				    p[j+1].English=tem;
				}
				for(j=0;j<m;j++)
				{cout<<"输出第"<<j+1<<"个学生:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		        cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
				}
		  }

           void student::paixu_tal(student* p)
		  {  
			  int i,j;
			  double tem;
			  for(i=0;i<m-1;i++)
				  for(j=i;j<m-i-1;j++)
				if(p[j+1].tal>p[j].tal)
				{	tem=p[j].tal;
				   p[j].tal=p[j+1].tal;
				    p[j+1].tal=tem;
				}
				for(j=0;j<m;j++)
				{cout<<"输出第"<<j+1<<"个学生:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		        cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
				cout<<"tal:"<<p[j].tal<<"  "<<"ave:"<<p[j].ave<<endl;
				}
		  }

         void student::paixu_num(student* p)
		  {  
			  int i,j;
			  string tem;
			  for(i=0;i<m-1;i++)
				  for(j=i;j<m-i-1;j++)
				if(p[j+1].num<p[j].num)
				{	tem=p[j].num;
				   p[j].num=p[j+1].num;
				    p[j+1].num=tem;
				}
				for(j=0;j<m;j++)
				{cout<<"输出第"<<j+1<<"个学生:"<<endl;
				cout<<"num:"<<p[j].num<<"  "<<"name:"<<p[j].name<<"  "<<"classroom:"<<p[j].classroom<<endl;
		        cout<<"math:"<<p[j].math<<"  "<<"chinese:"<<p[j].chinese<<"  "<<"English:"<<p[j].English<<endl;
				}
		  }
		 //实现学生的插入,删除和修改;
		 void student::insert()
		 {
     cout<<"请输入学生的学号:"<<endl;
	 cin>>num;
     cout<<"请输入学生的姓名:"<<endl;
	 cin>>name;
     cout<<"请输入学生的班级:"<<endl;
	 cin>>classroom;
     cout<<"请输入学生的数学成绩:"<<endl;
     cin>>math;
     cout<<"请输入学生的语文成绩:"<<endl;
	 cin>>chinese;
     cout<<"请输入学生的英语成绩:"<<endl;
	 cin>>English;
 	 tal=math+chinese+English;
	 ave=tal/3;
	 m++;
		 }
		 void student::change(student*p)
		 {
			 string name1;
			 cout<<"输入你要修改学生的姓名:"<<endl;
			 cin>>name1;int j=100;
			 for(int i=0;i<m;i++)
				 if(p[i].name==name1)
					 j=i;
				 if(j==100)
					 cout<<"没有这个学生"<<endl;
                
				 else
				 {cout<<"去重新输入这个学生的信息:"<<endl;
				 
            cout<<"请输入学生的学号:"<<endl;
	        cin>>p[j].num;
	          cout<<"请输入学生的姓名:"<<endl;
             cin>>p[j].name;
            cout<<"请输入学生的班级:"<<endl;
	        cin>>p[j].classroom;
            cout<<"请输入学生的数学成绩:"<<endl;
            cin>>p[j].math;
           cout<<"请输入学生的语文成绩:"<<endl;
	      cin>>p[j].chinese;
          cout<<"请输入学生的英语成绩:"<<endl;
	      cin>>p[j].English;
	      p[j].tal=p[j].math+p[j].chinese+p[j].English;
	      p[j].ave=p[j].tal/3;
		  cout<<"修改完成:"<<endl;}
		 }
		 void student::cancel(student*p)
		 { 
			 string name1;
			 cout<<"输入你要删除学生的姓名:"<<endl;
			 cin>>name1;
			 int j=100;
			 for(int i=0;i<m;i++)
		     if(p[i].name==name1)
			j=i;
                 if(j==100)
				 	cout<<"没有这个学生:"<<endl;
			      else
				  { for(int n=j;n<m-1;n++)
				 p[n]=p[n+1];
		    cout<<"实行删除操作,已经删除该学生信息"<<endl;
			m--;}
		 }
			     
		 int student::m=0;

int main()
{
    
	student stu[M];
	
	
	int select;
	int b,y,i=0;
    
	while(1)
	{
		            system("cls");
                    cout<<"\t※※※※※※※※※※欢迎使用※※※※※※※※※※※※\n";
		            cout<<"\t***************学生学籍管理系统*********************\n";
                    cout<<"\t*--------------------------------------------------*\n";
					cout<<"\t*            1---录入学生信息                      *\n";
		            cout<<"\t*            2---查询学生信息                      *\n";
		            cout<<"\t*            3---修改学生信息                      *\n";
		            cout<<"\t*            4---删除学生信息                      *\n";
		            cout<<"\t*            5---插入学生信息                      *\n";
		            cout<<"\t*--------------------------------------------------*\n";
					
					cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※\n";
		            cout<<"\t***************学生最高低分平台*********************\n";
					cout<<"\t*--------------------------------------------------*\n";
					cout<<"\t*            6---数学最高低分                      *\n";
		            cout<<"\t*            7---语文最高低分                      *\n";
		            cout<<"\t*	     8---英语最高低分                      *\n";
		            cout<<"\t*--------------------------------------------------*\n";
					cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※\n";
		            cout<<"\t*****************学生成绩排列平台*********************\n";
				    cout<<"\t*--------------------------------------------------*\n";
				    cout<<"\t*	      9--数学高到低学生信息                *\n"; 
		            cout<<"\t*	     10--英语高到低学生信息                *\n";
		            cout<<"\t*            11--语文高到低学生信息                *\n";
		            cout<<"\t*	     12--成绩高到低学生信息                *\n";
		            cout<<"\t*	     13--学号从小到大学生信息              *\n";
		            cout<<"\t*--------------------------------------------------*\n";
				    cout<<"\t※※※※※※※※※※欢迎使用 ※※※※※※※※※※※※ \n";
		            cout<<"\t***************学生优秀率平台*********************\n";
				    cout<<"\t*--------------------------------------------------*\n";
					cout<<"\t*            14--数学优秀率和及格率                *\n";
                    cout<<"\t*            15--英语优秀率和及格率                *\n"; 
	                cout<<"\t*            16--语文优秀率和及格率                *\n"; 
		            cout<<"\t*            0--退出                               *\n";
		            cout<<"\t*--------------------------------------------------*\n";
					cout<<"\t*         请输入编号(0--16),选择对应功能:";	
        cin>>select;
		if(select==0) break;
		switch(select){
		case 1:
			do
			{
			    stu[i].input();
			    cout<<"如果要继续录入请输入1,否则输入0"<<endl;
				cin>>y;
		         i++;
			}while(i<M&&(y!=0));
			system("pause");
			break;
		case 2:
			cout<<"请选择查询方式:按姓名查询输入1,按学号查询输入2"<<endl;
			cin>>b;
			do{
				
				if(b==1)
				stu[0].search(stu);
			else 
				stu[0].search1(stu);
				cout<<"是否要继续查找:是的话输入1,否则输入0"<<endl;
				cin>>y;
			}while(y);
			system("pause");
			break;
		case 3:
			do{
			stu[0].change(stu);		
			cout<<"是否要继续修改:是的话输入1,否则输入0"<<endl;
				cin>>y;
			}while(y);
			 system("pause");
			break;
		case 4:
			do{
			stu[0].cancel(stu);		
			
             cout<<"是否要继续删除:是的话输入1,否则输入0"<<endl;
				cin>>y;
			}while(y);
                
			system("pause");
			break;
		case 5:
		   do{
			stu[i].insert();
			i++;
			
             cout<<"是否要继续插入:是的话输入1,否则输入0"<<endl;
				cin>>y;
			}while(y);
			system("pause");
			break;
		case 6:
			stu[0].searchmath(stu);
            	system("pause");
			break;
		case 7: 
			stu[0].searchchinese(stu);
	         system("pause");
			break;
	    case 8: 
			stu[0].searchEnglish(stu);
	         system("pause");
			break;
		case 9:
			stu[0].paixu_math(stu);
            system("pause");
			break;
	    case 10:
			stu[0].paixu_English(stu);
            system("pause");
			break;
	    case 11:
			stu[0].paixu_chinese(stu);
            system("pause");
			break;
          case 12:
			stu[0].paixu_tal(stu);
            system("pause");
			break;
          case 13:
			stu[0].paixu_num(stu);
            system("pause");
			break;
		  case 14:
			  stu[0].math_greatrate(stu);
             system("pause");
			break;
           case 15:
			  stu[0].English_greatrate(stu);
             system("pause");
			break;
           case 16:
			  stu[0].chinese_greatrate(stu);
             system("pause");
			break;
		  case 0: cout<<"wrong:"<<endl;
               system("pause");
			   break;
		}


	}

	return 0;
}
        /*cout<<"\t ******************欢迎使用******************\n";
		cout<<"\t **************职工信息管理系统**************\n";
		cout<<"\t ------------------------------------------*\n";
		cout<<"\t *         1——录入职工信息                *\n";
		cout<<"\t *         2——显示职工信息                *\n";
		cout<<"\t *         3——查询职工信息                *\n";
		cout<<"\t *         4——修改职工信息                *\n";
		cout<<"\t *         5——添加职工信息                *\n";
		cout<<"\t *         6——删除职工信息                *\n";
		cout<<"\t *         0——退出                        *\n";
		cout<<"\t *------------------------------------------*\n";
		cout<<"\t 你要输入的编号是(0--7):";*/
       

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值