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.

312 lines
6.8 KiB

6 years ago
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct //<EFBFBD><EFBFBD><EFBFBD>
{
double no;
char name[30];
float cscore;
}Student;
FILE *fp;
int i=0;
Student s[50];
void input(); /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼*/
void output(); /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼*/
void modify(); /*<2A>޸ļ<DEB8>¼*/
void lookat(); /*ѧ<><D1A7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ѯ*/
void section(); /*ѧ<><D1A7><EFBFBD>ɼ<EFBFBD><C9BC>ֶ<EFBFBD>*/
void rank(); /*<2A>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
int fun(); /*Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD>*/
void choose(int n); /*Ŀ¼<C4BF><C2BC>ѡ<EFBFBD><D1A1>*/
int main(void) /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
{
int n;
system("cls");
n=fun();
choose(n);
}
int fun() //Ŀ¼<C4BF><C2BC><EFBFBD><EFBFBD>
{
int n;
system("cls");
printf("\n\n\t\t\t\t <20>ɼ<EFBFBD><C9BC><EFBFBD>¼<EFBFBD><C2BC>");
printf("\n\n\t\t\t");
for(int i=0;i<33;i++)
printf("*");
printf("\n");
printf("\t\t\t ************<2A>˵<EFBFBD>*************\n");
printf("\t\t\t* 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> \t*\n");
printf("\t\t\t* 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> \t*\n");
printf("\t\t\t* 3<><33><EFBFBD>޸ijɼ<C4B3><C9BC><EFBFBD> \t*\n");
printf("\t\t\t* 4<><34><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF> \t*\n");
printf("\t\t\t* 5<><35><EFBFBD><EFBFBD>ʾ<EFBFBD>ɼ<EFBFBD><C9BC>ֶε<D6B6>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>\t*\n");
printf("\t\t\t* 6<><36>ѧ<EFBFBD><D1A7><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> \t*\n");
printf("\t\t\t* 7<><37><EFBFBD>˳<EFBFBD><CBB3>ɼ<EFBFBD><C9BC><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD> \t*\n");
printf("\t\t\t ****<2A><><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>****\n");
printf("\t\t\t");
for(int i=0;i<33;i++)
printf("*");
printf("\n\n");
printf("\n\t\t\t <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>");
scanf("%d",&n);
return n;
}
void input() //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
{
Student s[50];
system("cls");
int i=0;
FILE *fp;
fp=fopen("a.txt","a");
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
do
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD>ţ<EFBFBD>");
scanf("%lf",&s[i].no);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
scanf("%s",s[i].name);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>C<EFBFBD><EFBFBD><EFBFBD>Գɼ<EFBFBD><EFBFBD><EFBFBD>");
scanf("%f",&s[i].cscore);
if(s[i].no!=0)
fprintf(fp,"%.0lf %-4s %.1f\n",s[i].no,s[i].name,s[i].cscore);
}while(s[i].no!=0);
fclose(fp);
}
void output() //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
{
if((fp=fopen("a.txt","r"))==NULL)
{
printf("Cannot open the file!\n");
}
printf("\t\t\tȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
int k=0;
while(fscanf(fp,"%lf%s%f",&s[k].no,s[k].name,&s[k].cscore)!=EOF)
{
printf("\t\t\t%.0lf\t%s\t%.1f\n",s[k].no,s[k].name,s[k].cscore);
k++;
}
fclose(fp);
}
void modify() //<2F>ɼ<EFBFBD><C9BC>޸<EFBFBD>
{
char st[30];
double x,num;
float nu;
int k=0;
system("cls");
if((fp=fopen("a.txt","r"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
while(fscanf(fp,"%lf%s%f",&s[k].no,s[k].name,&s[k].cscore)!=EOF)
{
k++;
}
fclose(fp);
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ѧ<EFBFBD><EFBFBD><EFBFBD>޸ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%lf",&x);
if(x==1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ijɼ<EFBFBD><EFBFBD>˵<EFBFBD>ѧ<EFBFBD>ţ<EFBFBD>");
scanf("%lf",&num);
for(int i=0;i<k;i++)
if(num==s[i].no)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵijɼ<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%f",&nu);
s[i].cscore=nu;
fp=fopen("a.txt","w");
for(i=0;i<k;i++)
fprintf(fp,"%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
fclose(fp);
printf("<EFBFBD>޸ijɹ<EFBFBD>\n");
return;
}
printf("û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
return;
}
if(x==2)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ijɼ<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
scanf("%s",st);
for(int i=0;i<k;i++)
if(strcmp(s[i].name,st)==0)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ĵijɼ<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%f",&nu);
s[i].cscore=nu;
fp=fopen("a.txt","w");
for(i=0;i<k;i++)
fprintf(fp,"%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
fclose(fp);
printf("<EFBFBD>޸ijɹ<EFBFBD>\n");
return;
}
printf("û<EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>\n");
return;
}
}
void lookat() //<2F>ɼ<EFBFBD><C9BC><EFBFBD>ѯ
{
char st[30];
double x,num;
int k=0;
system("cls");
if((fp=fopen("a.txt","r"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
while(fscanf(fp,"%lf%s%fd",&s[k].no,s[k].name,&s[k].cscore)!=EOF)
{
k++;
}
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ѧ<EFBFBD>Ų<EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%lf",&x);
if(x==1)
{
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD>ѧ<EFBFBD>ţ<EFBFBD>");
scanf("%lf",&num);
for(i=0;i<k;i++)
if(num==s[i].no)
{
printf("%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
return;
}
printf("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
return;
}
if(x==2)
{printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
scanf("%s",st);
for(i=0;i<k;i++)
if(strcmp(s[i].name,st)==0)
{
printf("%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
return;
}
printf("<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
}
}
void section() //ѧ<><D1A7><EFBFBD>ɼ<EFBFBD><C9BC>ֶ<EFBFBD>
{
system("cls");
int k=0;
double c;
if((fp=fopen("a.txt","r"))==NULL)
{
printf("Cannot open the file!\n");
}
while(fscanf(fp,"%lf%s%f",&s[k].no,s[k].name,&s[k].cscore)!=EOF)
{
k++;
}
printf("\t\t\t 90<39><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!\n");
for(i=0;i<k;i++)
if(s[i].cscore>=90)
printf("\t\t\t%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
printf("\n\n");
printf("\t\t\t 80<38><30>89<38><39>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!\n");
for(i=0;i<k;i++)
if(s[i].cscore<90&&s[i].cscore>=80)
printf("\t\t\t%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
printf("\n\n");
printf("\t\t\t 60<36><30>79<37><39>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!\n");
for(i=0;i<k;i++)
if(s[i].cscore>=60&&s[i].cscore<80)
printf("\t\t\t%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
printf("\n\n");
printf("\t\t\t 60<36><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѧ<EFBFBD><D1A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ!\n");
for(i=0;i<k;i++)
if(s[i].cscore<60)
printf("\t\t\t%.0lf %s %.1f\n",s[i].no,s[i].name,s[i].cscore);
printf("\n\n");
}
void rank() //<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
Student t;
int k=0;
double sum=0,j=0;
system("cls");
if((fp=fopen("a.txt","r"))==NULL)
{
printf("Cannot open the file!\n");
}
while(fscanf(fp,"%lf%s%f",&s[k].no,s[k].name,&s[k].cscore)!=EOF)
{
k++;
}
for(i=0;i<k;i++)
for(int j=i+1;j<k+1;j++)
if(s[i].cscore<s[j].cscore)
{t=s[i];s[i]=s[j];s[j]=t;}
for(i=0;i<k;i++)
{
if(s[i].cscore>=60)
j++;
}
for(i=0;i<k;i++)
sum=sum+s[i].cscore;
for(i=0;i<k;i++)
printf("\t\t\t<EFBFBD><EFBFBD>%d<><64>:%.0lf %-4s %.1f\n",i+1,s[i].no,s[i].name,s[i].cscore);
printf("\t\t\t<EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD>:%.1lf\n",s[0].cscore);
printf("\t\t\t<EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>:%.1lf\n",s[k-1].cscore);
printf("\t\t\t<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%.2lf\n",j/k);
printf("\t\t\tƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:%.2lf\n",sum/k);
}
void choose(int n) //Ŀ¼<C4BF><C2BC>ѡ<EFBFBD><D1A1>
{
system("cls");
int y;
switch(n)
{
case 1:input();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 2:output();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 3:modify();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 4:lookat();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 5:section();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 6:rank();
printf("\n\n\n\n\t\t\t<EFBFBD>Ƿ񷵻أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>\n");
scanf("%d",&y);
if(y==1)
choose(fun());break;
case 7:exit(0);break;
default:printf("\n\n\t\t\t <20><><EFBFBD><EFBFBD>û<EFBFBD>е<EFBFBD>ѡ<EFBFBD><EFBFBD><EEA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n");
choose(fun());
}
}