⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ak47.cpp

📁 用C++做的学生成绩管理系统,一般是软件专业新生的课设题目,虽然还存在一些不足,但是基本上让你拿A问题
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		int ab;
		cout<<"请输入要删除的学生的学号:";
		cin>>ab;
		panduan();
		for(int i=0;i<number;i++)
		{
			if(qq[i]==ab) {m=i;break;}
		}
		if(m!=521)
		{
	          for(int j=m;j<number-1;j++)//把后一个学生的资料赋给前一个
			  {
		        qq[j]=qq[j+1];
	         	strcpy(name[j].na,name[j+1].na);
	        	b[j][0]=b[j+1][0];
		        b[j][1]=b[j+1][1];
		        b[j][2]=b[j+1][2];
	            b[j][3]=b[j+1][3];
			  }
	           number--;a=0;cout<<"===========已删除成功============"<<endl;
		}
		else
		{cout<<"                ===========该生不存在============"<<endl;break;}
	}	
}
void score::print()//各科成绩的查询
{
	int x,a=2;
	cout<<"==================================================================="<<endl;
	cout<<"  1>体育               2>数学            3>英语              4>C++"<<endl;
	cout<<"==================================================================="<<endl;
	while(a)
	{	
		cout<<"请输入查询的科目(1~4):";
		cin>>x;
		panduan();
		if(x>0&&x<5) 
		{
			switch(x)
			{
			case 1:cout<<"体育:"<<endl;break;
			case 2:cout<<"数学:"<<endl;break;
			case 3:cout<<"英语:"<<endl;break;
			case 4:cout<<" C++:"<<endl;break;
			}
           for(int i=1;i<number;i++)//冒泡排序
			  {
               for(int j=0;j<number-i;j++)
			   { 
	 	        if(b[j][x-1]<b[j+1][x-1])
				{
		            double t=b[j][x-1];
		            b[j][x-1]=b[j+1][x-1];
		            b[j+1][x-1]=t;
				    int tt1=qq[j];
				    qq[j]=qq[j+1];
				    qq[j+1]=tt1;
		            strcpy(name1[j].na,name[j].na);
		            strcpy(name[j].na ,name[j+1].na);
		            strcpy(name[j+1].na,name1[j].na);
				}
			   }
			  }
		      int f=1;
	          cout<<"******************************************************************"<<endl;
	          cout<<"  学号"<<"   姓名"<<"    成绩"<<"   排名"<<endl;
	          for(int q=0;q<number;q++)
			  {
				  if(q!=0&&b[q][x-1]==b[q-1][x-1]) f--;//控制两个总分一样的学生排名一样
				  cout<<setw(4)<<qq[q]<<setw(8)<<name[q].na<<setw(8)<<b[q][x-1]<<setw(8)<<f++<<endl;
			  }
			  cout<<"******************************************************************"<<endl;
			  a=0;
		}
    	else
		    cout<<"                    ===============输入^v^错误================"<<endl;
	}
}
void score::aver()//各科平均成绩,各科成绩各等级人数及比例
{
	cout<<"====================================================================="<<endl;
	for(int j=0;j<4;j++)
	{
		double a=0,f=0,c=0,d=0,e=0;
		double s(0);
		switch(j)
		{
		case 0:cout<<"体育:"<<endl;break;
		case 1:cout<<"数学:"<<endl;break;
		case 2:cout<<"英语:"<<endl;break;
		case 3:cout<<"C++:"<<endl;break;
		}
		for(int i=0;i<number;i++)    
		{
	        s+=b[i][j];
		    if(b[i][j]>=90)a++;
		    else if(b[i][j]>=80)f++;
		    else if(b[i][j]>=70)c++;
		    else if(b[i][j]>=60)d++;
		    else e++;
		}
	    cout<<"平均成绩"<<"  优秀"<<"   良好"<<"  中等"<<"  及格"<<"  不及格"<<endl;
        cout<<setprecision(3)<<setw(6)<<s/number<<setw(6)<<a<<setw(9)<<f<<setw(6)<<c<<setw(6)<<d<<setw(6)<<e<<endl;
        cout<<setw(6)<<"比例"<<setprecision(3)<<setw(6)<<a/number*100<<"%"<<setw(6)<<f/number*100<<"%"<<setw(6)<<c/number*100<<"%"<<setw(6)<<d/number*100<<"%"<<setw(6)<<e/number*100<<"%"<<endl;
	    cout<<"==================================================================="<<endl;
	}
}	
void score::count()//总成绩统计,学生的总成绩,平均成绩及成绩排名
{
	double  sum[max];
     for(int w=0;w<number;w++)
	 {sum[w]=b[w][0]+b[w][1]+b[w][2]+b[w][3];}
	 for(int e=1;e<number;e++)//用冒泡进行排序
	 {
	    for(int k=0;k<number;k++)
		{
			if(sum[k]<sum[k+1])
			{
			   double t=sum[k];
			   sum[k]=sum[k+1];
			   sum[k+1]=t;
			   int tt=qq[k];
			   qq[k]=qq[k+1];
			   qq[k+1]=tt;
			   strcpy(name1[k].na,name[k].na);
			   strcpy(name[k].na,name[k+1].na);
			   strcpy(name[k+1].na,name1[k].na);
			}
		}
	 } 
	 int g=1;
	 cout<<"*****************************************************************"<<endl;
	 cout<<" 学号"<<"  姓名"<<"  总分"<<" 平均分"<<"  排名"<<endl;
	 for(int f=0;f<number;f++)
	 {
         if(f!=0&&sum[f]==sum[f-1]) g--;//控制两个总分一样的学生排名一样
		 cout<<setw(4)<<qq[f]<<setw(6)<<name[f].na<<setw(6)<<sum[f]<<setw(6)<<setprecision(3)<<sum[f]/4.0<<setw(6)<<g++<<endl;
	 }
	 cout<<"*****************************************************************"<<endl;
}
void score::zong()//成绩的统计结果显示
{
	double sum[max];
     for(int w=0;w<number;w++)
	 {sum[w]=b[w][0]+b[w][1]+b[w][2]+b[w][3];}
	 for(int e=1;e<number;e++)
	 {
	    for(int k=0;k<number;k++)
		{
			if(sum[k]<sum[k+1])
			{
			  double t=sum[k];
			   sum[k]=sum[k+1];
			   sum[k+1]=t;
			   int tt=qq[k];
			   qq[k]=qq[k+1];
			   qq[k+1]=tt;
			   strcpy(name1[k].na,name[k].na);
			   strcpy(name[k].na,name[k+1].na);
			   strcpy(name[k+1].na,name1[k].na);
			}
		}
	 }
	int f=1;
	cout<<"┌───┬───┬───┬───┬───┬───┬───┬───┬───┒"<<endl;
	cout<<"  学号"<<"    姓名"<<"    体育"<<"    数学"<<"    英语"<<"     C++"<<"    总分"<<"    平均分"<<"  排名"<<endl;
	for(int d=0;d<number;d++)
	{
		cout<<"├───┼───┼───┼───┼───┼───┼───┼───┼───┤"<<endl;
		if(d!=0&&sum[d]==sum[d-1]) f--;//控制两个总分一样的学生排名一样
		cout<<setw(8)<<qq[d]<<setw(8)<<name[d].na<<setw(8)<<b[d][0]<<setw(8)<<b[d][1]<<setw(8)<<b[d][2]<<setw(8)<<b[d][3]<<setw(8)<<sum[d]<<setw(8)<<sum[d]/4.0<<setw(8)<<f++<<endl;
	}
	cout<<"└───┴───┴───┴───┴───┴───┴───┴───┴───┘"<<endl;
}
void score::display()//扩展功能菜单
{
      cout<<"====================================================================="<<endl;
      cout<<endl;
      cout <<"扩展功能: 1:查询  2:添加   3:修改   4:删除  5:读取  6:存储   7:退出 ==>>>";
      cout<<endl;
      cout<<"====================================================================="<<endl;
      cout<<"请输入你的选择(0~5):";
}
void score::extend()//扩展功能实现
{
	 int flag=0,a=2;      
	   while(a)
	   {  
		   display();
		   cin>>flag;
		   panduan();
		   if(flag>0&&flag<8) a=0;
		   else 
			   cout<<"           ============输入^v^错误============"<<endl;
	   }      
  while(flag!=7)
  {
		switch(flag)
		{
		case 1:search();break;
		case 2:	addx();break;
		case 3:modify();break;
		case 4:dele();break;
		case 5:ifile();break;
		case 6:ofile();break;		
		default:cout<<"                ===============输入^v^错误================  "<<endl;
		}
	cout<<"*****************************************************************"<<endl;
    cout<<endl;
    display();
    cin>>flag;
	panduan();
  }
}
void meun()//主菜单
{
	cout<<"服务菜单如下:"<<endl;
	cout<<"1> 各科成绩的输入"<<endl;
	cout<<"2> 成绩的统计(各科平均成绩、各科成绩各等级的人数、及所占比例 )"<<endl;
	cout<<"3> 各科成绩排名查询;"<<endl;
	cout<<"4> 总成绩统计(学生的总成绩、平均成绩及成绩排名)"<<endl;
	cout<<"5> 成绩的统计结果显示;"<<endl;
	cout<<"6> 扩展功能"<<endl;
	cout<<"7> 退出系统"<<endl;
	cout<<"=*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*="<<endl;
    cout<<"请输入您的选择(1~7):";
}
void main()//主函数
{
	int flag=0,a=2;
	score abc;
	abc.number=0;     
	while(a)
	{  
		meun();
		cin>>flag;   
    	abc.panduan();
		if(flag>0&&flag<8&&flag!=2) a=0;
		  else 
			 cout<<"           ============输入^v^错误============"<<endl;
	}  	
    while(flag!=7)
	{
		switch(flag)
		{
		case 1:	abc.set();break;
		case 2:abc.aver();break;
		case 3:abc.print();break;
		case 4:abc.count();break;
		case 5:abc.zong();break;
		case 6:abc.extend();break;
		default:cout<<"              ============输入^v^错误==========="<<endl;
		}
	    cout<<"=*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*==*=*="<<endl;
        cout<<endl;
        meun();
        cin>>flag;
	    abc.panduan();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -