You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
152 lines
3.2 KiB
152 lines
3.2 KiB
//
|
|
// main.c
|
|
// Lab_2
|
|
//
|
|
// Created by theBao on 2023/11/4.
|
|
//
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
|
|
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)
|