全站搜索未启用
跳到主要内容

上机实验

实验八:上机运行使用数据文件的程序
实验目的:
  会分析和运行带有数据文件访问操作的程序,并能够得到正确的运行结果。
实验要求:
  在做前7章的7个实验时,已经在一个逻辑磁盘(如D盘)上建立了一个文件夹,专门用做C语言课程的实验目录,名称定义为“C语言上机练习”;并且在其中建立了7个工作区文件夹。本实验八建立的项目工作区文件夹可命名为“实验八上机练习”。在这个工作区内再按照不同的程序建立相应的项目工程文件夹,如在“实验八上机练习”工作区内建立运行第1个实验程序的控制台项目工程文件夹为“程序1练习”。在项目工程内,再建立和命名程序文件和头文件,通常使程序主文件(即含有main函数的文件)与项目工程具有相同的名称,当然也允许使用不同的名称。
实验内容:

  #include<stdio.h>
  #include<stdlib.h>
  #include<string.h>
  void JA(char* fname)
  {
   FILE* fout=fopen(fname,"w");
    char a[20];
    printf("输入若干个字符串,串长小于20,字符串end作为结束标志\n");
    while(1) {
      scanf("%s",a);
      if(strcmp(a,"end")==0) break;
      fputs(a,fout);
      fputc('\n',fout);
    }
    fclose(fout);
  }
  void main()
  {
    char *p="d:\\xxk\\xuxk1.txt";
    JA(p);
  }

请输入运行结果:



  #include<stdio.h>
  int JB(char* fptr)
  {
     char a[20],*p;
     int c=0;
     FILE* fin=fopen(fptr,"r");
     while(!feof(fin)) {
     p=fgets(a,20,fin);
     if(p==NULL) break;
     else {printf("%s",a); c++;}
    }
    return c;
  }
  void main()
  {
    char *p="d:\\xxk\\xuxk1.txt";
    printf("文件内容的总行数: %d\n",JB(p));
  }

请输入运行结果:



  #include<stdio.h>
  struct Student {
    char num[6];    //学号
    char name[10];  //姓名
    int grade;     //分数
  };
  struct Student x,y;
  struct Student a[4]={{"100","xxk",85},{"102","wrong",83},
              {"103","xcong",88},{"104","bjuan",73}};
  void main()
  {
    int max=0;
    char *p="d:\\xxk\\xuxk2.bin";
    FILE* fio=fopen(p, "wb+");
    fwrite(a, sizeof(struct Student), 4, fio);
    fseek(fio,0,SEEK_SET);
    while(!feof(fio)) {
      fread(&x, sizeof(struct Student), 1, fio);
      if(feof(fio)) break;
      printf("%s %s %d\n", x.num, x.name, x.grade);
      if(x.grade>max) {max=x.grade; y=x;}
   }
   printf("\n具有最高分数的记录: %s %s %d\n",y.num,y.name,y.grade);
   fclose(fio);
  }

请输入运行结果: 



最后修改: 2014年09月24日 Wednesday 20:17