#include #include #include int N=0; void menu(); struct stu_info { int cls,flag; char name[10],num[10]; float maths,physics,english; } stu[20]; void output() { int i; for(i=0;icls>(stu+j+1)->cls)||((stu+j)->cls==(stu+j+1)->cls)&&((stu+j)->num>(stu+j+1)->num)) { tmp = *(stu+j); *(stu+j) = *(stu+j+1); *(stu+j+1) = tmp; } } } return; } void input() { int i; char y[5]; for(i=0;;i++) { printf("Id ");scanf("%s",stu[i].num); printf("class ");scanf("%d",&stu[i].cls); printf("name ");scanf("%s",stu[i].name); printf("score1 ");scanf("%f",&stu[i].maths); printf("score2 ");scanf("%f",&stu[i].physics); printf("score3 ");scanf("%f",&stu[i].english); printf("Continue?\n"); again1: scanf("%s",y); if(strcmp(y,"yes")==0) continue; else if(strcmp(y,"no")==0) { N=i+1; menu(); break; } else { printf("wrong input\n"); goto again1; } } } void del(struct stu_info* stu) { char key[10];char y[5]; scanf("%s",key); int i; for (i=0;inum,key)==0||strcmp((stu+i)->name,key)==0) { N--; for(int j=i;jnum,key)==0||strcmp((stu+i)->name,key)==0) { e=0; printf("%s %d %s %.1f %.1f %.1f\n",stu[i].num,stu[i].cls,stu[i].name,stu[i].maths,stu[i].physics,stu[i].english); } } if(e) printf("there is no eligible student\n"); printf("Continue?\n"); again3: scanf("%s",y); if(strcmp(y,"yes")==0) sel(stu); else if(strcmp(y,"no")==0) { menu(); } else { printf("wrong input\n"); goto again3; } } void order() { sort(stu,N); output(); menu(); } void menu() { int in; printf("1.input\n"); printf("2.delete\n"); printf("3.select\n"); printf("4.order\n"); printf("5.output\n"); printf("6.quit\n"); printf("please input your option\n"); scanf("%d",&in); switch(in) { case(1): input(); break; case(2): del(stu); break; case(3): sel(stu); break; case(4): order(); break; case(5): output(); menu(); break; case(6): exit(0); default: printf("Wrong input\n"); } } int main() { menu(); return 0; }