// // main.c // Lab_2 // // Created by theBao on 2023/11/4. // #include #include #include typedef struct{ char *id; char *class; char *name; double score1; double score2; double score3; double score; }Student; typedef struct{ Student* student; int nums; }ss; ss* init(int); void toMenu(ss*); void getCom(ss*); void Print(Student*); void allPrint(ss*); void input(ss*); void cancel(ss*); void Select(ss*); int main(int argc, const char * argv[]){ ss* stu = init(6); toMenu(stu); return 0; } ss* init(int Nums){ ss* stu = (ss*)malloc(sizeof(ss)); if(!stu) return NULL; stu->nums = 0; stu->student = (Student*)malloc(sizeof(Student)*Nums); if(!stu->student) return NULL; for(int i = 0; i < Nums; ++i){ stu->student[i].id = (char*)malloc(sizeof(char)*5); stu->student[i].class = (char*)malloc(sizeof(char)*2); stu->student[i].name = (char*)malloc(sizeof(char)*10); } return stu; } void toMenu(ss*stu){ 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"); getCom(stu); } void getCom(ss* stu){ int option; scanf("%d",&option); if(option == 1) input(stu); else if(option == 2) cancel(stu); else if(option == 3) Select(stu); //else if(option == 4) sort(stu); else if(option == 5) ; else return; } void Print(Student*student){ printf("%s,%s,%s,%.1lf,%.1lf,%.1lf,%.1lf\n",student->id,student->class,student->name,student->score1,student->score2,student->score3,student->score); } void allPrint(ss*stu){ for(int i = 0; i < stu->nums; ++i){ Print(&stu->student[i]); } } void input(ss*stu){ char *tmp = (char*)malloc(sizeof(char)*3); do{ printf("Id "); // get printf("\n"); printf("class "); // get printf("\n"); printf("name "); // get printf("\n"); printf("score1 "); // get printf("\n"); printf("score2 "); // get printf("\n"); printf("score3 "); // get printf("\n"); printf("continue?\n"); scanf("%s",tmp); }while(strcmp(tmp,"yes")); toMenu(stu); } void cancel(ss*stu){ char* tmp = (char*)malloc(sizeof(char)*3); do{ char*ID = (char*)malloc(sizeof(char)*5); scanf("%s",ID); for(int i = 0; i < stu->nums; ++i){ if(strcmp(stu->student[i].id,ID)){ for(int j = i; j < stu->nums-1; ++j){ stu->student[j] = stu->student[j+1]; } } } allPrint(stu); printf("continue?\n"); scanf("%s",tmp); }while(strcmp(tmp,"yes")); toMenu(stu); } void Select(ss*stu){ char* tmp = (char*)malloc(sizeof(char)*3); do{ ; }while(0); } //void insert(ss*stu)