chenxie95 / SJTU_C-_Cource

上交2022小学期 程序设计思想 答疑论坛
1 stars 0 forks source link

求助 管理学生档案题不能编译 #26

Open piaoliubc opened 2 years ago

piaoliubc commented 2 years ago

include

using namespace std; int k=0;//数据总数

struct student { char xh[13]={0}; char xm[50]={" "}; int clas1=0; int clas2=0; int clas3=0; int sum=0; };

int findxh(); void inputstu(student &s);//1 void correctstu(student &s);//2 void deletestu(student &s);//3 void xhprint(student &s);//4 void findxm(char mz[]);//5 void disp();//6 void disscore();//7

int main() { student magstu[1000]; int a=-1; cin>>a; while(a!=0) { if(a==1) { inputstu(magstu[k]); } if(a==2) {
int m=-1; m=findxh(); //m就是要找的第几个学生 if(m!=-1)correctstu(magstu[m]); } if(a==3) {
int m=-1; m=findxh();//根据学号查找被删除的是第几个学生 if(m!=-1) { deletestu(magstu[m]); k--; } } if(a==4) { int m=findxh(); xhprint(magstu[m]); } if(a==5) { char mz[50]=" "; cin>>mz; findxm(mz); } if(a==6) { disp(); } if(a==7) { disscore(); } cin>>a; }

return 0;        

}

int findxh(student magstu[])//通过学号查找出是第i个学生 { char xh[13]; cin>>xh; for(int i=0;i<k;i++) { if(magstu[i].xh==xh) { return i; } } } void inputstu(student &s)//代号1 { cin>>s.xh; cin>>s.clas1>>s.clas2>>s.clas3; cin>>s.xm; s.sum=s.clas1+s.clas2+s.clas3; k++; } void correctstu(student &s)//代号2//通过另一个函数的查找得知是第几个学生,接受成绩和姓名并修改 { cin>>s.clas1>>s.clas2>>s.clas3; cin>>s.xm; s.sum=s.clas1+s.clas2+s.clas3; } void deletestu(student &s,student magstu[])//代号3 { s=magstu[k-1]; } void xhprint(student &s)//代号4 {

cout<<s.xh<<' '<<s.xm<<' '<<s.clas1<<' '<<s.clas2<<' '<<s.clas3<<endl;

} void findxm(char mz[],student magstu[])//代号5 { for(int i=0;i<k;i++) { int p=0; bool flag[1000]={0}; if(mz=magstu[i].xm) { flag[i]=true; p++; } if(p!=0) { for(int i=0;i<p;i++) { for(int j=i;j<k;j++) { if((flag[i]==0&&flag[j]==1)||(flag[i]==1&&flag[j]==1&&magstu[i].xh<magstu[j].xh)) { student t1=magstu[j]; magstu[j]=magstu[j+1]; magstu[j+1]=t1; } } } for(int i=0;i<p;i++) { cout<<magstu[i].xh<<' '<<magstu[i].xm<<' '<<magstu[i].clas1<<' '<<magstu[i].clas2<<' '<<magstu[i].clas3<<endl; } } } } void disp(student magstu[])//代号6 { for(int i=0;i<k;i++) { for(int j=0;j<i;j++) { if(magstu[j].xh>magstu[j+1].xh) { student t2=magstu[j]; magstu[j]=magstu[j+1]; magstu[j+1]=t2; } } } for(int i=0;i<k;i++) { cout<<magstu[i].xh<<' '<<magstu[i].xm<<' '<<magstu[i].clas1<<' '<<magstu[i].clas2<<' '<<magstu[i].clas3<<endl; } } void disscore(student magstu[])//代号7 { for(int i=0;i<k;i++) { for(int j=0;j<i;j++) { if(magstu[j].sum<magstu[j+1].sum) { student t2=magstu[j]; magstu[j]=magstu[j+1]; magstu[j+1]=t2; } } } for(int i=0;i<k;i++) { cout<<magstu[i].xh<<' '<<magstu[i].xm<<' '<<magstu[i].clas1<<' '<<magstu[i].clas2<<' '<<magstu[i].clas3<<endl; } }

chenxie95 commented 2 years ago

如果编译错误的话需要根据错误信息修改后再提交运行,建议在vscode中先确认通过的