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

📄 赵彦斌.cpp

📁 vc学生成绩管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	 cout<<"输入选项:";cin>>a;
     if(a==1)
	 {   
	  k=findnum(remember);
      if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
	 }  	 
 	 else if(a==2) 
	 {
		k=findname(remember);
		if (k==0) cout<<"无此人"<<endl; else print1(k,remember);
	 }   
	 else if(a==3) menu();
	 else {cout<<"错误选项!";goto loop;}
	 cout<<"学生资料修改输入:===>>"<<endl;
	 for(int i=0;i<k;i++)
	 {
	  cout<<"学号:"; cin>>people[remember[i]].number; cout<<endl; 
      cout<<"姓名:";	cin>>people[remember[i]].name;   cout<<endl;
      cout<<"数学:";   cin>>people[remember[i]].math;cout<<endl;
      cout<<"英语:";      cin>>people[remember[i]].e;   cout<<endl;
      cout<<"C++:";    cin>>people[remember[i]].c;   cout<<endl;
	 }
	 fstream outf;
	  outf.open(file,ios::out|ios::binary);
	  if(!outf)
	  {   
	   cout<<"File NO save;"<<endl;
	   abort();
	  }
		 for(i=0;i<n;i++)
		 {
		  if(i==k) continue;
		  else outf.write((char *)&people[i],sizeof(people[i]));
		 }
		outf.close();
	 cout<<"学生信息修改完成。"<<endl;
 }
 cin.get();
 menu();
}
void score()         //成绩统计
{
 double savg[3];
 int pnum[3][5],good,lgood,so,ok,notok;                  //3 科 1~5 优秀,良好,中,及格,不及格 的人数
 double sum[3]={0,0,0};
 for(int j=0;j<n;j++) {sum[0]+=people[j].math;sum[1]+=people[j].e;sum[2]+=people[j].c;}  //单科总成绩
 for(int i=0;i<3;i++) savg[i]=sum[i]/n;	                      //科目平均
 for(i=0;i<5;i++)
 {
  good=0;lgood=0;so=0;ok=0;notok=0;
  for(int j=0;j<n;j++)
  {
   if (people[j].math>=90) good++;else if(people[j].math>=80) lgood++;else if(people[j].math>=70) so++;else
   if (people[j].math>=60) ok++;else notok++;
  }
  pnum[0][0]=good;pnum[0][1]=lgood;pnum[0][2]=so;pnum[0][3]=ok;pnum[0][4]=notok;
  good=0;lgood=0;so=0;ok=0;notok=0;
  for(j=0;j<n;j++)
  {
   if (people[j].e>=90) good++;else if(people[j].e>=80) lgood++;else if(people[j].e>=70) so++;else
   if (people[j].e>=60) ok++;else notok++;
  }
  pnum[1][0]=good;pnum[1][1]=lgood;pnum[1][2]=so;pnum[1][3]=ok;pnum[1][4]=notok;
  good=0;lgood=0;so=0;ok=0;notok=0;
  for(j=0;j<n;j++)
  {
   if (people[j].c>=90) good++;else if(people[j].c>=80) lgood++;else if(people[j].c>=70) so++;else
   if (people[j].c>=60) ok++;else notok++;
  }
  pnum[2][0]=good;pnum[2][1]=lgood;pnum[2][2]=so;pnum[2][3]=ok;pnum[2][4]=notok;
 }
 cout<<"┌────┬─────┬────┬────┬────┬────┬────┐"<<endl;
 cout<<"│ 科目  │ 平均成绩 │ 优秀 │  良好 │ 中等 │ 及格 │ 不及格 │"<<endl;
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
 cout<<"│ 数学   │"<<setw(5)<<savg[0]<<"    │"<<setw(5)<<pnum[0][0]<<"   │"<<setw(5)<<pnum[0][1]<< "   │"
	                 <<setw(5)<<pnum[0][2]<<"   │"<<setw(5)<<pnum[0][3]<<"   │"<<setw(5)<<pnum[0][4]<<"  │"<<endl;		
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;	   
 cout<<"│ 英语  │"<<setw(5)<<savg[1]<<"    │"<<setw(5)<<pnum[1][0]<<"   │"<<setw(5)<<pnum[1][1]<< "   │"
	                 <<setw(5)<<pnum[1][2]<<"   │"<<setw(5)<<pnum[1][3]<<"   │"<<setw(5)<<pnum[1][4]<<"  │"<<endl;  
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
 cout<<"│ C++  │"<<setw(5)<<savg[2]<<"    │"<<setw(5)<<pnum[2][0]<<"   │"<<setw(5)<<pnum[2][1]<< "   │"
	                 <<setw(5)<<pnum[2][2]<<"   │"<<setw(5)<<pnum[2][3]<<"   │"<<setw(5)<<pnum[2][4]<<"  │"<<endl;
 cout<<"└────┴─────┴────┴────┴────┴────┴────┘"<<endl;
 cout<<"比例(%)"<<endl;
 cout<<"┌────┬─────┬────┬────┬────┬────┬────┐"<<endl;
 cout<<"│ 科目  │ 平均成绩 │ 优秀 │  良好 │ 中等 │ 及格 │ 不及格 │"<<endl;
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
 cout<<"│ 数学   │"<<setw(5)<<savg[0]<<"    │"<<setw(5)<<pnum[0][0]/n*100<<"   │"<<setw(5)<<pnum[0][1]/n*100<< "   │"
	                 <<setw(5)<<pnum[0][2]/n*100<<"   │"<<setw(5)<<pnum[0][3]/n*100<<"   │"<<setw(5)<<pnum[0][4]/n*100<<"  │"<<endl;		
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;	   
 cout<<"│ 英语  │"<<setw(5)<<savg[1]<<"    │"<<setw(5)<<pnum[1][0]/n*100<<"   │"<<setw(5)<<pnum[1][1]/n*100<< "   │"
	                 <<setw(5)<<pnum[1][2]/n*100<<"   │"<<setw(5)<<pnum[1][3]/n*100<<"   │"<<setw(5)<<pnum[1][4]/n*100<<"  │"<<endl;  
 cout<<"├────┼─────┼────┼────┼────┼────┼────┤"<<endl;
 cout<<"│ C++  │"<<setw(5)<<savg[2]<<"    │"<<setw(5)<<pnum[2][0]/n*100<<"   │"<<setw(5)<<pnum[2][1]/n*100<< "   │"
	                 <<setw(5)<<pnum[2][2]/n*100<<"   │"<<setw(5)<<pnum[2][3]/n*100<<"   │"<<setw(5)<<pnum[2][4]/n*100<<"  │"<<endl;
 cout<<"└────┴─────┴────┴────┴────┴────┴────┘"<<endl;
 menu();
}
void all()                       //总成绩统计
{
  int a[100],flag;
  if (n>=1) 
 {  
	 for(int j=0;j<n;j++)                    //单人成绩相加
	 {
	 people[j].all=people[j].math+people[j].e+people[j].c;
	 people[j].avg=people[j].all/3;
	 }
	 for(j=0;j<n;j++)
	 {
	   flag=0;
	   for(int s=0;s<n;s++) 
		  {
	        if (people[j].all<people[s].all) flag++;
		  }
	   a[j]=flag;
	 }
  cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
  cout<<"│ 排名  │  学号  │  姓名  │  平均分  │ 总成绩  │"<<endl;
  cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
  for(int i=0;i<n;i++)
  {
	 cout<<"│  "<<setw(3)<<i+1
     <<"     │  "<<setw(5)<<people[*(a+i)].number
	 <<"   │"<<setw(5)<<people[*(a+i)].name
	 <<"      │"<<setw(5)<<people[*(a+i)].avg
	 <<"      │"<<setw(5)<<people[*(a+i)].all
	 <<"     │"<<endl;
	 if(i==n-1) break;  
    cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
  }
    cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
} 
 else cout<<"ERROR OR no student file."<<endl;
 menu();
}
int findnum(int *r)
{
 int number,k(0);
 cout<<"输入学号:";cin>>number;
 for(int i=0;i<n;i++)
 if(number==people[i].number) {*(r+k)=i;k++;}
 return k;
}
int findname(int *r)
{
 int k(0);char name[20];
 cout<<"输入学生名字:";cin>>name;
 for(int i=0;i<n;i++)
 if (strcmp(name,people[i].name)==0) {*(r+k)=i;k++;}
 return k;
}
void countout()//个数记录
{
 fstream out;
 out.open("F:\\count.dat",ios::out);
 if(!out){cout<<"count error"<<endl;abort();}
 else out<<n<<endl;
 out.close();
}
void countin()//个数读取
{
 fstream in;
 in.open("F:\\count.dat",ios::in);
	 if(!in){cout<<"in error"<<endl;abort();}
	 in>>n;
 in.close();
}
void print(int l,int *p)     //输出删除后所剩学生的信息
{ 
 if(l==0) cout<<"NO student file."<<endl;
 int m(0);
 cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
 cout<<"│ 学号  │  姓名  │  数学  │  英语  │  C++    │"<<endl;
 cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 for(int i=0;i<l;i++)
 {
	 if(i==*(p+m)) {m++;continue;}
	 cout<<"│  "<<setw(5)<<people[i].number
     <<"   │    "<<setw(5)<<people[i].name
	 <<" │"<<setw(5)<<people[i].math
	 <<"      │"<<setw(5)<<people[i].e
	 <<"      │"<<setw(5)<<people[i].c
	 <<"     │"<<endl;
	 if(i==l-2) break;  
    cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 }
 cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
}
void print()    //通用查看学生信息
{ 
 if (n==0) cout<<"NO student file."<<endl;
 cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
 cout<<"│ 学号  │  姓名  │  数学  │  英语  │  C++    │"<<endl;
 cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 for(int i=1;i<n+1;i++)
 {
	 cout<<"│"<<setw(5)<<people[i-1].number
     <<"     │"<<setw(5)<<people[i-1].name
	 <<"     │ "<<setw(5)<<people[i-1].math
	 <<"     │"<<setw(5)<<people[i-1].e
	 <<"      │"<<setw(5)<<people[i-1].c
	 <<"     │"<<endl;
	 if(i==n) break;  
    cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 }
  cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
 cin.get();cin.get();
}
void print1(int l,int *p)             // 输出要删除的学生的信息
{ 
 if (l==0) cout<<"NO student file."<<endl;
 int m(0);
 cout<<"┌─────┬─────┬──────┬──────┬─────┐"<<endl;
 cout<<"│ 学号  │  姓名  │  数学  │  英语  │  C++    │"<<endl;
 cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 for(int i=1;i<l+1;i++)
 {
	 cout<<"│  "<<setw(5)<<people[*(p+m)].number
     <<"   │    "<<setw(5)<<people[*(p+m)].name
	 <<" │"<<setw(5)<<people[*(p+m)].math
	 <<"      │"<<setw(5)<<people[*(p+m)].e
	 <<"      │"<<setw(5)<<people[*(p+m)].c
	 <<"     │"<<endl;
	 if(i==l) break;  
    cout<<"├─────┼─────┼──────┼──────┼─────┤"<<endl;
 }
    cout<<"└─────┴─────┴──────┴──────┴─────┘"<<endl;
}

⌨️ 快捷键说明

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