zoukankan      html  css  js  c++  java
  • 实验7 文件

    三.实验3

    1.运行程序,屏幕上正确输出了按分数高→低排序的信息,同时,在当前路径下,生成了文本文件file3.dat。

    2.用记事本程序打开文件file3.dat,里面的数据信息正确,并且是直观可读的。

    四.实验4

    子任务1

    运行程序,屏幕上正确输出了按分数由高到底排序的学生信息。同时,在当前路径下,生成了二进制文件file4.dat。用记事本程序打开file4.dat,里面的数据信息不能直观可读。

    子任务2

    #include <stdio.h> 
    #include <stdlib.h>
    #define N 10
    
    typedef struct student {
        int num;
        char name[20];
        int score;
    }STU;
    
    int main() 
    {
        FILE *fin;
        STU st[N];
        int i;
        fin = fopen("file4.dat", "rb");
        if(!fin) 
        { 
            printf("fail to open file1.dat
    ");
            exit(0);
        }
        for(i=0; i<N; i++) 
        fread(st,sizeof(STU),10,fin);    
        fclose(fin);
        for(i=0; i<N; i++) 
        printf("%-6d%-10s%3d
    ", st[i].num, st[i].name, st[i].score);
        return 0;
    }

    五.实验5

    #include <stdio.h>
    #include <string.h>
    #include<stdlib.h>
    const int N = 10;
    
    // 定义结构体类型struct student,并定义其别名为STU 
    typedef struct student {
        long int id;
        char name[20];
        float objective;    /*客观题得分*/
        float subjective;    /*操作题得分*/
        float sum;
        char level[10];    
    }STU; 
    
    // 函数声明
    void input(STU s[], int n);
    void output(STU s[], int n);
    void process(STU s[], int n);
    
    int main() {
        STU stu[N];
        
        printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分(<=60)
    ", N); 
        input(stu, N);
        
        printf("
    对考生信息进行处理: 计算总分,确定等级
    ");
        process(stu, N);
        
        printf("
    打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级
    ");
        output(stu, N); 
        
        return 0;
    } 
    
    // 从文本文件examinee.txt读入考生信息:准考证号,姓名,客观题得分,操作题得分
    void input(STU s[], int n) {
        FILE *fin;
        int i;
        fin=fopen("examinee.txt","r");
        if(!fin)
        {
            printf("fail to open examinee.txt
    ");
            exit(0);
        }
        for(i=0;i<n;i++)
          fscanf(fin,"%ld %s %f %f",&s[i].id,s[i].name,&s[i].objective,&s[i].subjective);
        fclose(fin);  
    }
    
    // 输出考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级
    // 不仅输出到屏幕上,还写到文本文件result.txt中 
    void output(STU s[], int n) {
        int i;
        FILE *fat;
        printf("准考证号       姓名   客观题得分      操作题得分       总分          等级
    ");
        for(i=0;i<n;i++)
         printf("%-13d %-9s %-13.3f %-15.3f %-14.3f %-5s
    ", s[i].id, s[i].name, s[i].objective, s[i].subjective, s[i].sum, s[i].level);
         fat=fopen("result.txt","w");
         if(!fat)
        {
            printf("fail to open result.txt
    ");
            exit(0);
        }
        for(i=0;i<n;i++)
        fprintf(fat,"%ld      %s    %.2f       %.2f      %.2f   %s
    ",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);
        fclose(fat);
    }   
    
    // 对考生信息进行处理:计算总分,排序,确定等级
    void process(STU s[], int n) {
    int i,j;
        STU temp;
        for(i=0;i<n;i++){
            s[i].sum=s[i].objective+s[i].subjective;
        }
        for(i=0;i<n-1;i++)
        for(j=0;j<n-i-1;j++){
             if(s[j].sum<s[j+1].sum){
                 temp=s[j];
                 s[j]=s[j+1];
                 s[j+1]=temp;
                 } 
        }
        for(i=0;i<n;i++){
            if((i+1)<=(n*0.1))
            strcpy(s[i].level,"优秀");
            else if((i+1)>(n*0.1)&&(i+1)<=(n*0.5))
            strcpy(s[i].level,"合格");
            else
            strcpy(s[i].level,"不合格");
        }  
        
    }

  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/qiansen/p/14204458.html
Copyright © 2011-2022 走看看