天天看點

C語言檔案程式設計題目(一)

1.有五個學生,每個學生有 3 門課的成績,從鍵盤輸入以上資料(包括學生 号,姓名,三門課成績),

計算出平均成績,将原有的資料和計算出的平均分數 存放在磁盤檔案"stud"中。

#include<stdio.h>
#include<stdlib.h>
struct student {//定義一個結構體,裡面包含的成員屬性有學号、姓名、成績、平均分
  char num[10];
  char name[5];
  int score[3];
  float avg;
} stu[5];
int main() {
  int i,j,sum;
  FILE *fp;
  for(i=0; i<5; i++) {//通過循環輸入每個學生的學号、姓名、成績
    printf("請輸入第%d位學生學号:\n",(i+1));
    scanf("%s",stu[i].num);
    printf("請輸入學生姓名:\n");
    scanf("%s",stu[i].name);
    sum = 0;
    for(j=0; j<3; j++) {
      printf("請輸入第%d門科目成績:\n",(j+1));
      scanf("%d",&stu[i].score[j]);
      sum +=stu[i].score[j];
    }
    stu[i].avg = sum / 3.0;
  }
  fp = fopen("E:\\stud.txt","w");
  for(i=0; i<5; i++) {//在控制台上顯示結果
    printf("姓名:%s 學号:%s:",stu[i].name,stu[i].num);
    for(j=0; j<3; j++) {
      printf("學科%d成績%d:",(j+1),stu[i].score[j]);
    }
    printf("平均分%.2f\n",stu[i].avg);
  }
  for(i=0; i<5; i++) { //将輸入的資料以及平均分寫入檔案
    fprintf(fp,"姓名:%s 學号:%s ",stu[i].name,stu[i].num);
    for(j=0; j<3; j++) {
      fprintf(fp,"學科%d成績:%d ",(j+1),stu[i].score[j]);
    }
    fprintf(fp,"平均分%.2f\n",stu[i].avg);
    fputc('\n',fp);//換行
  }

  fclose(fp);
}      

運作結果如下:

(1)在控制台顯示結果

C語言檔案程式設計題目(一)