zoukankan      html  css  js  c++  java
  • 实验七

    任务3:

    运行程序,观察在屏幕上正确输出了按分数由高→低排序的信息。同时,在当前路径下,生成了文本文件file3.dat。
    尝试用记事本程序打开文件file3.dat,打不开。最后创建了一个新的txt,并用google chrome打开file3.dat并将其中的内容转移到新txt中,才观察到里面的数据信息是正确的,并且是直观可读的。
     
    任务4:
    修改文件后,运行程序,在屏幕上正确输出了按分数由高到底排序的学生信息。同时,在当前路径下,生成了file4.dat.里面是乱码。
     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #define N 10
     4 
     5 
     6 typedef struct student {
     7     int num;
     8     char name[20];
     9     int score;
    10     }STU;
    11 
    12 int main(int argc, const char * argv[]) {
    13     FILE *fin;
    14     STU st[N];
    15     int i;
    16     fin = fopen("/Users/bzm/Desktop/Xcode成品/帅哥点进来/博客园/实验七/实验7相关源码及数据文件/file4.txt", "rb");
    17     if(!fin){
    18         printf("fail to open file4.txt");
    19         exit(0);
    20     }
    21                 for(i=0;i<N;i++){
    22     fread(st,sizeof(STU),N,fin);
    23     
    24     printf("%-6d%-10s%3d
    ", st[i].num, st[i].name, st[i].score);
    25     }
    26         fclose(fin);
    27     
    28     return 0;
    29 }

    任务5:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 const int N = 10;
     5 
     6 typedef struct student {
     7     long int id;
     8     char name[20];
     9     float objective;
    10     float subjective;
    11     float sum;
    12     char level[10];
    13 }STU;
    14 
    15 void input(STU s[], int n);
    16 void output(STU s[], int n);
    17 void process(STU s[], int n);
    18 int main() {
    19     STU stu[N];
    20     printf("录入%d个考生信息: 准考证号,姓名,客观题得分(<=40),操作题得分 (<=60)
    ", N);
    21     input(stu, N);
    22     printf("
    对考生信息进行处理: 计算总分,确定等级
    ");
    23     process(stu, N);
    24     printf("
    打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级 
    ");
    25     output(stu, N);
    26     return 0;
    27 }
    28 void input(STU s[], int n) {
    29     FILE *fin;
    30     fin = fopen("/Users/bzm/Desktop/Xcode成品/帅哥点进来/博客园/实验七/实验7相关源码及数据文件/examinee.txt", "r");
    31     if( !fin ) { // 如果打开失败,则输出错误提示信息,然后退出程序
    32         printf("fail to open file1.dat
    ");
    33         exit(0);
    34     }
    35     for(int i=0;i<n;i++){
    36         fscanf(fin, "%ld %s %f %f", &s[i].id, s[i].name, &s[i].objective,&s[i].subjective);
    37         s[i].sum=s[i].objective+s[i].subjective;
    38     }
    39     fclose(fin);
    40 }
    41 
    42 void output(STU s[], int n) {
    43     FILE *fout;
    44     
    45     
    46     printf("准考证号        姓名      客观题得分   操作题得分   总分     等级
    ");
    47     for(int i=0;i<n;i++){
    48         printf("%-14.ld%-15s%-10.2f%-10.2f%-8.2f%s
    ",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);
    49     }
    50     
    51     fout = fopen("/Users/bzm/Desktop/Xcode成品/帅哥点进来/博客园/实验七/实验7相关源码及数据文件/result.txt", "wb");
    52     if( !fout ) {
    53     printf("fail to open result.txt
    ");
    54         exit(0);
    55         
    56     }
    57     for(int i=0; i<N; i++)
    58     for(int i=0;i<n;i++)
    59     fwrite(s, sizeof(STU), N, fout);
    60         fclose(fout);
    61     
    62 }
    63 
    64 void process(STU s[], int n) {
    65     STU t;
    66     for(int i=n-1;i>0;i--){
    67         for(int j=i;j>=0;j--){
    68             if(s[j].sum<s[i].sum){
    69                 t=s[j];
    70                 s[j]=s[i];
    71                 s[i]=t;
    72             }
    73         }
    74     }
    75     for(int i=0;i<n;i++){
    76         if(i+1<=n/10)strcpy(s[i].level,"优秀");
    77         else if(i+1<=n/2)strcpy(s[i].level,"合格");
    78         else strcpy(s[i].level,"不合格");
    79     }
    80     
    81 }

    (名字乱打的)

    任务6:来不及写了

    总结:遇到超多问题,我以为实验七花二十分钟就能完成,结果花了几个小时。幸运的是,赶在截止时间前顺利完成了任务。

  • 相关阅读:
    oracle 失效对象自动重新编译
    Apache commons 工具集简介
    正则表达式 元字符
    LayUI之弹出层
    Js和JQuery基础
    单点登录
    java算法题
    SpringBoot自定义注解
    SpringBoot基础
    java面试题
  • 原文地址:https://www.cnblogs.com/HighHand-LadyKiller/p/14214754.html
Copyright © 2011-2022 走看看