parent
35c7bd042a
commit
eabee81951
@ -0,0 +1,231 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
#include<stdlib.h>
|
||||
int len=0;
|
||||
struct Student/*½á¹¹Ìå³¢ÊÔ*//*È«¾Ö±äÁ¿*/
|
||||
{
|
||||
char id[200];
|
||||
int clas;
|
||||
char name[200];
|
||||
double a;
|
||||
double b;
|
||||
double c;
|
||||
double d;
|
||||
}stu[10001];
|
||||
void print()/*´òÓ¡³ÌÐò*/
|
||||
{
|
||||
int i;
|
||||
for(i=1;i<=len;i++)
|
||||
printf("%s,%d,%s,%.1lf,%.1lf,%.1lf,%.1lf\n",stu[i].id,stu[i].clas,stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].d);
|
||||
}
|
||||
void input()/*ÊäÈë³ÌÐò*/
|
||||
{
|
||||
char e[1001];
|
||||
len++;
|
||||
printf("Id ");
|
||||
scanf("%s",&stu[len].id);
|
||||
|
||||
printf("class ");
|
||||
scanf("%d",&stu[len].clas);
|
||||
printf("name ");
|
||||
scanf("%s",&stu[len].name);
|
||||
printf("score1 ");
|
||||
scanf("%lf",&stu[len].a);
|
||||
printf("score2 ");
|
||||
scanf("%lf",&stu[len].b);
|
||||
printf("score3 ");
|
||||
scanf("%lf",&stu[len].c);
|
||||
stu[len].d=stu[len].a+stu[len].b+stu[len].c;
|
||||
printf("continue?\n");
|
||||
scanf("%s",&e);
|
||||
if(strcmp(e,"no")==0)
|
||||
menuprint();
|
||||
else if(strcmp(e,"yes")==0)
|
||||
input();
|
||||
|
||||
}
|
||||
void delet()/*ɾ³ý³ÌÐò*/
|
||||
{
|
||||
int i,j;
|
||||
int k;/*´¢´æ³¤¶È*/
|
||||
k=len;
|
||||
char e[1001],f[1001];
|
||||
scanf("%s",&e);
|
||||
if(len>1)
|
||||
{
|
||||
for(i=1;i<=len;i++)
|
||||
{
|
||||
if(strcmp(stu[i].id,e)==0||strcmp(stu[i].name,e)==0)
|
||||
{
|
||||
|
||||
k--;
|
||||
for(j=i;j<=len;j++)
|
||||
{
|
||||
strcpy(stu[j].id, stu[j+1].id);
|
||||
stu[j].clas=stu[j+1].clas;
|
||||
strcpy(stu[j].name,stu[j+1].name);
|
||||
stu[j].a=stu[j+1].a;
|
||||
stu[j].b=stu[j+1].b;
|
||||
stu[j].c=stu[j+1].c;
|
||||
stu[j].d=stu[j+1].d;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(k!=len)
|
||||
len=k;
|
||||
print();
|
||||
}
|
||||
else if(len<=1)
|
||||
printf("You can't delete this one because there is only one student in it!\n");
|
||||
printf("continue?\n");
|
||||
scanf("%s",&f);
|
||||
if(strcmp(f,"no")==0)
|
||||
menuprint();
|
||||
else if(strcmp(f,"yes")==0)
|
||||
select();
|
||||
}
|
||||
void select()
|
||||
{
|
||||
char e[1001],f[1001];
|
||||
scanf("%s",&e);
|
||||
int i,j;
|
||||
for(i=1;i<=len;i++)
|
||||
{
|
||||
if(strcmp(stu[i].id,e)==0||strcmp(stu[i].name,e)==0)
|
||||
{
|
||||
printf("%s,%d,%s,%.1lf,%.1lf,%.1lf,%.1lf\n",stu[i].id,stu[i].clas,stu[i].name,stu[i].a,stu[i].b,stu[i].c,stu[i].d);
|
||||
}
|
||||
}
|
||||
printf("continue?\n");
|
||||
scanf("%s",&f);
|
||||
if(strcmp(f,"no")==0)
|
||||
menuprint();
|
||||
else if(strcmp(f,"yes")==0)
|
||||
select();
|
||||
}
|
||||
void order()
|
||||
{
|
||||
int k=0;
|
||||
int i;
|
||||
sortclass();
|
||||
k=1;/*Ç°¶Ë*/
|
||||
for(i=1;i<=len;i++)
|
||||
{
|
||||
if(stu[i+1].clas!=stu[k].clas)
|
||||
{
|
||||
sortexam(k,i);
|
||||
k=i+1;
|
||||
}
|
||||
print();
|
||||
menuprint();
|
||||
}
|
||||
}
|
||||
void sortclass()/*°à¼¶ÅÅÐò³ÌÐò*/
|
||||
{
|
||||
int i,j;
|
||||
char e[1001]="0";
|
||||
int t=0;
|
||||
double k=0;
|
||||
for(i=1;i<=len;i++)/*ðÅÝ*/
|
||||
for(j=1;j<=len-i;j++)
|
||||
{
|
||||
if(stu[j].clas>stu[j+1].clas)
|
||||
{
|
||||
t=stu[j].clas;
|
||||
stu[j].clas=stu[j+1].clas;
|
||||
stu[j+1].clas=t;
|
||||
strcpy(e,stu[j].id);
|
||||
strcpy(stu[j].id, stu[j+1].id);
|
||||
strcpy(stu[j+1].id,e);
|
||||
strcpy(e,stu[j].name);
|
||||
strcpy(stu[j].name, stu[j+1].name);
|
||||
strcpy(stu[j+1].name,e);
|
||||
k=stu[j].a;
|
||||
stu[j].a=stu[j+1].a;
|
||||
stu[j+1].a=k;
|
||||
k=stu[j].b;
|
||||
stu[j].b=stu[j+1].b;
|
||||
stu[j+1].b=k;
|
||||
k=stu[j].c;
|
||||
stu[j].c=stu[j+1].c;
|
||||
stu[j+1].c=k;
|
||||
k=stu[j].d;
|
||||
stu[j].d=stu[j+1].d;
|
||||
stu[j+1].d=k;
|
||||
}
|
||||
}
|
||||
}
|
||||
void sortexam(int m,int h)/*°àÄÚÅÅÐò³ÌÐò*/
|
||||
{
|
||||
int i,j;
|
||||
char e[1001]="0";
|
||||
int t=0;
|
||||
double k=0;
|
||||
for(i=m;i<=h;i++)/*ðÅÝ*/
|
||||
for(j=m;j<=h-i;j++)
|
||||
{
|
||||
if(stu[j].d<stu[j+1].d)
|
||||
{
|
||||
t=stu[j].clas;
|
||||
stu[j].clas=stu[j+1].clas;
|
||||
stu[j+1].clas=t;
|
||||
strcpy(e,stu[j].id);
|
||||
strcpy(stu[j].id, stu[j+1].id);
|
||||
strcpy(stu[j+1].id,e);
|
||||
strcpy(e,stu[j].name);
|
||||
strcpy(stu[j].name, stu[j+1].name);
|
||||
strcpy(stu[j+1].name,e);
|
||||
k=stu[j].a;
|
||||
stu[j].a=stu[j+1].a;
|
||||
stu[j+1].a=k;
|
||||
k=stu[j].b;
|
||||
stu[j].b=stu[j+1].b;
|
||||
stu[j+1].b=k;
|
||||
k=stu[j].c;
|
||||
stu[j].c=stu[j+1].c;
|
||||
stu[j+1].c=k;
|
||||
k=stu[j].d;
|
||||
stu[j].d=stu[j+1].d;
|
||||
stu[j+1].d=k;
|
||||
}
|
||||
}
|
||||
}
|
||||
void judge()
|
||||
{
|
||||
int t;
|
||||
scanf("%d",&t);
|
||||
if(t==1)
|
||||
input();
|
||||
else if(t==2)
|
||||
delet();
|
||||
else if(t==3)
|
||||
select();
|
||||
else if(t==4)
|
||||
order();
|
||||
else if(t==5)
|
||||
{
|
||||
print();
|
||||
menuprint();
|
||||
}
|
||||
else if(t!=6)
|
||||
{
|
||||
printf("Wrong input\n");
|
||||
menuprint();
|
||||
}
|
||||
}
|
||||
void menuprint()
|
||||
{
|
||||
printf("1.input\n");
|
||||
printf("2.delet\n");
|
||||
printf("3.select\n");
|
||||
printf("4.order\n");
|
||||
printf("5.output\n");
|
||||
printf("6.quit\n");
|
||||
printf("please input your option\n");
|
||||
judge();
|
||||
}
|
||||
int main()
|
||||
{
|
||||
menuprint();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in new issue