當前位置:編程學習大全網 - 源碼下載 - 大作業:設計壹個實用的小型學生成績管理程序.發我youxiang裏

大作業:設計壹個實用的小型學生成績管理程序.發我youxiang裏

#include<stdio.h>

#include<stdlib.h>

typedef?struct?Student

{

double?score[4];

double?sum;

double?avg;

}stu;

void?save(int?n)

{

FILE?*w?=?fopen("score.dat","w");

printf("Please?input?%d?students'?4?scores:\n",n);

int?i;

double?score[4];

double?sum;

for(i=0;i<n;i++)

{

sum?=?0;

scanf("%lf%lf%lf%lf"?,&score[0],&score[1],&score[2],&score[3]);

sum?=?score[0]+score[1]+score[2]+score[3];

fprintf(w,"%lf\t%lf\t%lf\t%lf\t%lf\t%lf\n"?,score[0],score[1],score[2],score[3],sum,sum/4);

}

fclose(w);

return;

}

void?read(stu?a[])

{

FILE?*r?=?fopen("score.dat","r");

int?i=0;

while(fscanf(r,"%lf%lf%lf%lf%lf%lf"?,&a[i].score[0],&a[i].score[1],&a[i].score[2],&a[i].score[3],&a[i].sum,&a[i].avg)!=?EOF)

{

i?=?i+1;

}

fclose(r);

return;

}

void?sort(stu?a[],int?n)

{

int?i;

int?j;

stu?tmp;

for(i=n-1;i>0;i--){

for(j=0;j<i;j++){

if(a[j].sum?<?a[j+1].sum){

tmp?=?a[j];

a[j]?=?a[j+1];

a[j+1]?=?tmp;

}

}

}

return;

}

void?output(stu?a[],int?n)

{

FILE?*w?=?fopen("score.dat","w");

int?i;

for(i=0;i<n;i++)

{

fprintf(w,"%lf\t%lf\t%lf\t%lf\t%lf\t%lf\n"?,a[i].score[0],a[i].score[1],a[i].score[2],a[i].score[3],a[i].sum,a[i].avg);

}

fclose(w);

}

int?main()

{

stu?a[128];

int?n;

while(scanf("%d",&n)?!=?EOF)

{

if(n?<=?0)?break;

save(n);

read(a);

sort(a,n);

output(a,n);

}

return?0;

}

  • 上一篇:有人能教教我linux中的線程嗎?
  • 下一篇:sort code是什麽意思?
  • copyright 2024編程學習大全網