zoukankan      html  css  js  c++  java
  • 一个没有验证的学生文件存储代码(试验报告性质)

    #include<stdio.h>
    #include<stdlib.h>
    struct student
    {
     char ID[20];
     char name[30];
     int age;
     double score;
    }stu[50];
    int writeIn(FILE *fpw);
    void ReadOut(FILE *fpr,int n);
    void Sort(struct student* stu,int n);
    int main()
    {
        FILE *fpr;
        FILE *fpw;
        if(!(fpw=fopen("D:\Info.dat","w+")))
        {
            printf("false to open the file! ");
            exit(1);
        }
        if(!(fpr=fopen("D:\Info.dat","r+")))
        {
            printf("false to open the file! ");
            exit(1);
        }
        printf(" ");
     int n=writeIn(fpw);
     ReadOut(fpr,n);
     Sort(stu,n);
     n=writeIn(fpw);
     ReadOut(fpr,n);
        fclose(fpw);
        fclose(fpr);
        return 0;
    }
    int writeIn(FILE *fpw)
    {
     for(int i=0;i<50;i++)
     {
      scanf("%s%s%d%lf",&stu[i].ID,&stu[i].name,&stu[i].age,&stu[i].score);
      if(stu[i].ID==NULL)
      {
       break;
      }
      fwrite(&stu[i].ID,sizeof(stu[i].ID),1,fpw);
      fwrite(&stu[i].name,sizeof(stu[i].name),1,fpw);
      fwrite(&stu[i].age,sizeof(stu[i].age),1,fpw);
      fwrite(&stu[i].score,sizeof(stu[i].score),1,fpw);
     }
     return i;//返回学生个数
    }
    void ReadOut(FILE *fpr,int n)//这个代码是cc过来的所以。。这里设计不好
    {
     for(int i=0;i<n-1;i++)
     {
      fread(&stu[i].ID,sizeof(stu[i].ID),1,fpr);
      fread(&stu[i].name,sizeof(stu[i].name),1,fpr);
      fread(&stu[i].age,sizeof(stu[i].age),1,fpr);
      fread(&stu[i].score,sizeof(stu[i].score),1,fpr);
      printf("%s  %s  %d  %lf ",stu[i].ID,stu[i].name,stu[i].age,stu[i].score);
     }
    }
    void Sort(struct student* stu,int n)
    {
     int k;
     struct student tp;
     for(int i=0;i<n-2;i++)
     {
      k=i;
      for(int j=0;j<n-2;j++)
      {
       if(stu[j+1].score<stu[k].score)
       {
        k=j+1;
       }
      }
      tp=stu[i];
      stu[i]=stu[k];
      stu[k]=tp;
     }
    }

  • 相关阅读:
    用Jenkins构建Django持续集成环境
    DACLs and ACEs
    windows共享文件分析
    summary
    Mysql InnoDB行锁实现方式
    网关 整理 fastcgi wsgi
    Git提交代码规范 而且规范的Git提交历史,还可以直接生成项目发版的CHANGELOG(semantic-release)
    松本行弘:代码的未来(图灵访谈)
    “对外部(局部)变量的访问”是C语言函数指针的最大弱点
    CAP解决方案-BASE
  • 原文地址:https://www.cnblogs.com/zuoguangxing/p/3504206.html
Copyright © 2011-2022 走看看