diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..b6510ba Binary files /dev/null and b/.DS_Store differ diff --git a/main_副本2.c b/main_副本2.c new file mode 100644 index 0000000..fde4e28 --- /dev/null +++ b/main_副本2.c @@ -0,0 +1,151 @@ +// +// 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 = Nums; + 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)