实验七作业

Part 1:验证性实验

将line29:for(i=0;i<N;i++)改为while(!feof(fp))

// 从文本文件file1.dat中读取数据,找出最高分和最低分学生信息,并输出在屏幕上
#include <stdio.h> 
#include <stdlib.h>#define N 10// 定义一个结构体类型STU 
typedef struct student {int num;char name[20];int score;
}STU;int main() {STU st, stmax, stmin;int i;FILE *fp;// 以只读文本方式打开文件file1.dat fp = fopen("file1.dat", "r");if( !fp ) {  // 如果打开失败,则输出错误提示信息,然后退出程序 printf("fail to open file1.dat\n");exit(0);}stmax.score = 0;    // 先假定最高分是0,后面如发现比当前最高分还高的分数,就更新最高分 stmin.score = 100;    // 先假定最低分是100分,后面如发现比当前最低分更低的分数,就更新最低分 while( !feof(fp) ) {fscanf(fp, "%d %s %d", &st.num, st.name, &st.score);  // 从fp指定的文件中格式化读取一个学生信息if(st.score > stmax.score)stmax = st;else if(st.score < stmin.score)stmin = st; } fclose(fp);printf("最高分学生信息: %5d%15s%5d\n", stmax.num, stmax.name, stmax.score);printf("最低分学生信息: %5d%15s%5d\n", stmin.num, stmin.name, stmin.score);return 0;
}

修改后,结果一致。

// 从文本数据文件file1.dat中读入数据,按成绩从高到低排序,将排序结果输出到屏幕上,同时以文本方式存入文件file3.dat中。
#include <stdio.h>
#include <stdlib.h>#define N 10// 定义一个结构体类型STU
typedef struct student {int num;char name[20];int score;
}STU;void sort(STU *pst, int n);  // 函数声明int main() {FILE *fin, *fout;STU st[N];int i;// 以只读文本方式打开文件file1.datfin = fopen("file1.dat", "r");if( !fin ) {  // 如果打开失败,则输出错误提示信息,然后退出程序printf("fail to open file1.dat\n");exit(0);}// 从fin指向的数据文件file1.dat中读取数据到结构体数组stfor(i=0; i<N; i++)fscanf(fin, "%d %s %d", &st[i].num, st[i].name, &st[i].score);fclose(fin);  // 关闭fin指向的文件file1.dat// 调用函数sort()对数组st中数据,按分数又高到低排序
    sort(st, N);// 以写方式打开/创建文本文件file3.datfout = fopen("file3.dat", "w");if( !fout ) {  // 如果打开失败,则输出错误提示信息,然后退出程序printf("fail to open file1.dat\n");exit(0);}// 将排序后的数组st中数据输出到屏幕,同时,也写入文件file3.datfor(i=0; i<N; i++) {printf("%-6d%-10s%3d\n", st[i].num, st[i].name, st[i].score);fprintf(fout, "%-6d%-10s%3d\n", st[i].num, st[i].name, st[i].score);}fclose(fout);  // 关闭fout指向的文件file3.datreturn 0;
}// 函数功能描述:对pst指向的n个STU结构体数据进行排序,按成绩数据项由高到底排序
// 排序算法:冒泡法
void sort(STU *pst, int n) {STU *pi, *pj, t;for(pi = pst; pi < pst+n-1; pi++)for(pj = pi+1; pj < pst+n; pj++)if(pi->score < pj->score) {t = *pi;*pi = *pj;*pj = t;}}

验证性实验3

4:

二进制文件与文本文件的区别:

文本文件:数据以ASCⅡ码形式存储,也称ASCⅡ码文件 每个字节存放一个字符的ASCII码。

特点:存储量大、速度慢; 直观,便于对字符操作。

二进制文件:数据按其在内存中的存储形式原样存放。

特点:存储量小、速度快、便于存放中间结果;不直观。

Part 2:

#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", N); input(stu, N);printf("\n对考生信息进行处理: 计算总分,确定等级\n");process(stu, N);printf("\n打印考生完整信息: 准考证号,姓名,客观题得分,操作题得分,总分,等级\n");output(stu, N); return 0;
} // 从文本文件examinee.txt读入考生信息:准考证号,姓名,客观题得分,操作题得分
void input(STU s[], int n) {FILE *fin;int i;if((fin=fopen("examinee.txt","r"))==NULL){printf("cannot open file");exit(0);}for(i=0;i<n;i++)fscanf(fin,"%d %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) {FILE *fout;int i;if((fout=fopen("result.txt","w"))==NULL){printf("cannot open file");exit(0);}for(i=0;i<n;i++){printf("%5d %10s   %5.1f %5.1f %5.1f %5s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);fprintf(fout,"%5d %10s   %5.1f %5.1f %5.1f %5s\n",s[i].id,s[i].name,s[i].objective,s[i].subjective,s[i].sum,s[i].level);}fclose(fout);
}
// 对考生信息进行处理:计算总分,排序,确定等级
void process(STU s[], int n) {int i,j;STU temp;for(i=0;i<n;i++){s[i].sum=0.4*s[i].objective+0.6*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<0.1*n)strcpy(s[i].level,"");else if(i<0.5*n&&i>=0.1*n)strcpy(s[i].level,"");else if(i>=0.5*n)strcpy(s[i].level,"不合格"); }
}

 

 

实验总结与体会:

复习期间突然想起来作业还没做,脑子不太清醒做了很久,所以编程中还有插入过程中可能有不少错误,欢迎指出。

 

也祝大家期末取得好成绩!

 

转载于:https://www.cnblogs.com/Zhangxw999/p/11079694.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/362237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

块级格式化上下文(Block Formatting Context)

CSS块级格式化上下文是块级盒子的一种能力&#xff0c;这种能力并不是直接通过css属性声明而获得的&#xff0c;而是添加css的一部分相关属性之后自动获得的能力&#xff0c;也就是说没有一个明确的属性就是生成块级格式化上下文的。 块级格式化上下文的能力就是让具有该能力的…

这是最后的讨论!

Pun打算……让我们讨论Java final 。 最近&#xff0c;我们广受欢迎的博客文章“编码Java时的十个微妙的最佳实践”在JavaWorld的摘要和链接中有了很大的复兴&#xff0c;并提出了一组新的评论。 尤其是&#xff0c;JavaWorld编辑对我们对Java关键字“ final ”的观点提出了质…

前端性能优化方法总结

一个网站前端性能的好坏很大程度上影响了用户愿不愿意使用访问这个网站&#xff0c;因此对前端进行性能优化是个很重要的事情。  对于前端性能优化这个问题&#xff0c;主要学习自yahoo前端性能团队总结的35条黄金定律总结&#xff0c;觉得很全很赞&#xff0c;做个学习总结和…

JS中的数据类型转换

ES5中一共有6种数据类型&#xff0c;其中5种基本类型&#xff08;String、Number、Boolean、Null、Undefined&#xff09;&#xff0c;1种引用类型&#xff08;Object&#xff09;。基本类型值可以相互换转换&#xff0c;并且引用类型值也可以通过某种方式转换成基本类型值。 …

拯救我的操作系统

最近公司新装操作系统image都强制装win7&#xff0c;公司电脑一直拖着没有升级&#xff0c;家里也一直是用番茄花园版的xp&#xff0c;突然心血来潮去买了个win7的碟&#xff0c;心想最好是破解版的&#xff0c;回来一装&#xff0c;发现是所谓的旗舰版的&#xff0c;可恶的是这…

Hazelcast的MapLoader陷阱

Hazelcast提供的核心数据结构之一是IMap<K, V> &#xff0c;它扩展了java.util.concurrent.ConcurrentMap它基本上是一个分布式地图&#xff0c;通常用作缓存。 您可以将此类地图配置为使用自定义MapLoader<K, V> -每次尝试从该地图&#xff08;通过键&#xff09;…

《Android开发从零开始》——22.数据存储(1)

本节课的主要内容有&#xff1a;1.介绍Android中数据存储方式2.介绍SQLite3.讲解SQLite数据类型4.讲解基本SQL命令 课程下载地址&#xff1a;http://u.115.com/file/clc4te8w课件及源码下载地址&#xff1a;http://u.115.com/file/clc41tt5转载于:https://www.cnblogs.com/cool…

计划Java EE 7批处理作业

Java EE 7添加了使用JSR 352以标准方式执行批处理作业的功能。 <job id"myJob" xmlns"http://xmlns.jcp.org/xml/ns/javaee" version"1.0"><step id"myStep"><chunk item-count"3"><reader ref"…

webpack配置说明

webpack是一个现代JavaScript应用程序的静态模块打包器。 它有几个核心概念&#xff1a; 一、entry&#xff08;入口&#xff09; 指示webpack应该使用哪个模块&#xff0c;来作为构建其内部依赖图的开始&#xff0c; 可以在webpack.config.js中配置entry属性&#xff0c;来指…

poj 2137

题目大意&#xff1a; 农夫FJ想把他所有的牛在它们吃草的时候用一根绳子连起来&#xff08;就是1-2-3-1按顺序连接起来&#xff09;&#xff0c;每头牛有若干个吃草的位置&#xff0c;它们必须要在这些位置吃草。 用绳子连接两头牛需要绳子的长度公式为 Sqrt( Sqr( x1-x2 ) Sq…

JS中捉摸不透的==(宽松等于)

首先来看一个有意思的面试题&#xff1a; if(a 3 && a 4){//... }第一眼看到这个面试题我是拒绝的&#xff0c;这个等式根本不会成立&#xff0c;怎么会存在一个值既等于3并且还同时等于4呢&#xff1f;根本不可能。 但是在神奇的javascript中这个a是存在的。&…

vue脚手架的使用

安装&#xff1a;1.全局安装脚手架&#xff1a;cnpm install -g vue/cli 使用&#xff1a;2.新建文件夹,在当前目录执行命令 vue create "项目名称"3.配置&#xff1a;选择Manually select feautures--》空格选择Babel和CSS Pre-procesors--》选择Sass/SCSS(with dar…

Akka笔记–演员介绍

过去做过多线程的任何人都不会否认管理多线程应用程序有多么艰辛和痛苦。 我说管理是因为它一开始很简单&#xff0c;一旦您开始看到性能改进&#xff0c;它就会变得非常有趣。 但是&#xff0c;当您发现没有一种简单的方法可以从子任务中的错误或难以发现的僵尸错误中恢复时&a…

浏览器的同源策略与跨域

本文所有案例在本地址都可找到&#xff1a;https://github.com/dancingZhou/sameOrigin/tree/dev 什么是同源策略 两个页面地址中的协议、域名和端口号一致&#xff0c;则表示同源。 例如该地址 https://www.google.com 和以下地址对比 地址同源原因http://www.google.com否…

poj 1185

经典状态dp 代码&#xff1a; #include<iostream> #include<fstream> #include<cmath>using namespace std;int n,m;char map[101][11];int state[101][1024]; int num[101]; int value[1024]; int maxx;int ok(int s,int t){int i,j,k;for(i0;i<m;){jt&…

day03 爬虫

今日内容&#xff1a;一 爬虫原理二 Requests请求库一 爬虫原理1.什么是互联网&#xff1f;指的是由一堆网络设备&#xff0c;把一台台的计算机互联网到一起称之为互联网。2.互联网建立的目的&#xff1f;互联网建立的目的是为了数据的传递以及数据的共享。3.什么是数据&#x…

Java英雄:丹·艾伦

“ Java英雄 ”系列休息了很长时间。 老实说&#xff0c;我想即使有很多人想在这里收录&#xff0c;它也可能会以虚无收场。 其中之一是丹。 我第一次要求他捐款已经将近一年半了&#xff0c;与此同时发生的一切&#xff0c;让我不再有任何答案就让我安心了。 但是以下内容在Ja…

yearProgress.vue

1 <template>2 <div class"progressbar">3 <el-progress :text-inside"true" :soke-width"18" :percentage"percent" status"exception"></el-progress>4 <p>{{year}}年已经过去了…

group by rollup

首先引用ITPUB上的总结&#xff1a; rollup(a,b,c)----------------> 从右到底递减汇总>group by a,b,c (减0次)UNION ALL>group by a,b (减1次)UNION ALL>group by a (减2次)UNION ALL>group by null(全部汇总) (全部减掉)移动了4次&#xff0c;所…

Java-Class-I:java.util.List

ylbtech-Java-Class-I&#xff1a;java.util.List1.返回顶部 1.1、import java.util.ArrayList;import java.util.List; 1.2、List<Integer> newList new ArrayList<Integer>();newList.add(3); 2、 2.返回顶部1.1、import java.util.*;public class Test{public …