ç´¯æ»äº...
ä¸è¦ä»¥0为å¦å·...
å¿
é¡»å¨è¯¥ç®å½ä¸æ°å»º"stud.dat",并è¾å
¥ä¸è¡ "0 test 0 0 0 0"
对äº"对å¦çåç§æ绩æåºï¼è¾åºå¦çå§åä¸è¯¥ç§æ绩",æ建äºä¸ä¸ªèå,以éæ©åªä¸ç§...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
ç´¯æ»äº...
ä¸è¦ä»¥0为å¦å·...
å¿
é¡»å¨è¯¥ç®å½ä¸æ°å»º"stud.dat",并è¾å
¥ä¸è¡ "0 test 0 0 0 0"
对äº"对å¦çåç§æ绩æåºï¼è¾åºå¦çå§åä¸è¯¥ç§æ绩",æ建äºä¸ä¸ªèå,以éæ©åªä¸ç§...
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
int num;
char name[20];
float score[4];
float average;
}stu[10000];
long t,max;
bool unpass[1000];
FILE *fstu=fopen("stud.dat","at+");
int init()
{
int no,i;
float s[4],ave;
char nam[20];
while (!feof(fstu))
{
fscanf(fstu,"%d",&no);
fscanf(fstu,"%s",nam);
fscanf(fstu,"%f%f%f%f",&s[1],&s[2],&s[3],&ave);
if (no>max) max=no;
stu[no].num=no;
strcpy(stu[no].name,nam);
unpass[no]=false;
for (i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
if (s[i]<60) unpass[no]=true;
}
stu[no].average=ave;
}
}
int stuinsert()
{
int no,i;
float s[3],sum;
char nam[20],cha;
loop:printf("请è¾å
¥å¦ççå¦å·ãå§ååä¸é¨è¯¾çæ绩 \n");
scanf("%d",&no);
scanf("%s",nam);
scanf("%f%f%f/n",&s[1],&s[2],&s[3]);
if (no>max) max=no;
stu[no].num=no;
sum=0.0;
strcpy(stu[no].name,nam);
unpass[no]=false;
for (i=1;i<=3;i++)
{
stu[no].score[i]=s[i];
sum=sum+s[i];
if (s[i]<60) unpass[no]=true;
}
stu[no].average=sum/3.0;
fprintf(fstu,"\n");
fprintf(fstu,"%d %s %f %f %f %f\n",stu[no].num,stu[no].name,stu[no].score[1],stu[no].score[2],stu[no].score[3],stu[no].average);
}
int find(int x)
{
long i,no;
switch (x)
{
case 1:printf("请è¾å
¥å¦å·ï¼");
scanf("%d",&no);
printf("%d %s %f %f %f %f\n",stu[no].num,stu[no].name,stu[no].score[1],
stu[no].score[2],stu[no].score[3],stu[no].average);
break;
case 2:for (i=1;i<=max;i++)
if (unpass[i]) printf("%d %s %f %f %f %f\n",stu[i].num,stu[i].name,stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].average);
break;
}
}
int sort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n;
switch (x)
{
case 1:for (i=1;i<=max;i++)
if (stu[i].num==i)
printf("%d %s %f\n",i,stu[i].name,stu[i].average);
break;
case 2:n=0;
for (i=1;i<=max;i++)
{
j=1;
if (stu[i].num==i)
while ((so[j].average>stu[i].average)&&(j<=n)) j++;
n++;
for (k=n;k>=j;k--) so[k]=so[k-1];
so[j]=stu[i];
}
for (i=1;i<=n;i++) printf("%d %s %f %f %f %f\n",so[i].num,so[i].name,so[i].score[1],so[i].score[2],so[i].score[3],so[i].average);
break;
case 3:headprint(4);
}
}
int othersort(int x)
{
extern int headprint(int x);
student so[1000];
int i,j,k,n,q;
q=0;
switch (x)
{
case 1:if (q==0) q=1;
case 2:if (q==0) q=2;
case 3:if (q==0) q=3;
n=0;
for (i=1;i<=max;i++)
{
j=1;
if (stu[i].num==i)
while ((so[j].score[q]>stu[i].score[q])&&(j<=n)) j++;
n++;
for (k=n;k>=j;k--) so[k]=so[k-1];
so[j]=stu[i];
}
for (i=1;i<=n;i++) printf("%d %s %f\n",so[i].num,so[i].name,so[i].score[q]);
break;
}
}
int select(int x)
{
extern int headprint(int x);
int p;
switch (x)
{
case 1:scanf("%d",&p);
switch (p)
{
case 1:stuinsert();break;
case 2:headprint(2);break;
case 3:headprint(3);break;
case 4:t=0;break;
}
break;
case 2:scanf("%d",&p);
find(p);break;
case 3:scanf("%d",&p);
sort(p);break;
case 4:scanf("%d",&p);
othersort(p);break;
}
}
int headprint(int x)
{
switch (x)
{
case 1:printf("å¦çæ绩管çç³»ç»\n");
printf("1ã æ绩å½å
¥\n");
printf("2ã æ绩æ¥è¯¢\n");
printf("3ã æ绩ç»è®¡\n");
printf("4ã éããåº\n");
select(x);
break;
case 2:printf("1ã æå¦å·æ¥è¯¢å¦çè®°å½\n");
printf("2ã æ¥è¯¢ä¸åæ ¼å¦ççè®°å½\n");
select(x);
break;
case 3:printf("1ã 计ç®å¦ççå¹³åå\n");
printf("2ã æ ¹æ®å¦ççå¹³ååé«ä½ï¼å¯¹å¦ççæ°æ®è¿è¡æåºåè¾åº\n");
printf("3ã 对å¦çåç§æ绩æåºï¼è¾åºå¦çå§åä¸è¯¥ç§æ绩\n");
select(x);
break;
case 4:printf("1ã 第ä¸ç§\n");
printf("2ã 第äºç§\n");
printf("3ã 第ä¸ç§\n");
select(x);
break;;
}
}
int main()
{
max=0;
t=1;
init();
loop:headprint(1);
if (t!=0) goto loop;
}
温馨提示:答案为网友推荐,仅供参考