博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验七
阅读量:4708 次
发布时间:2019-06-10

本文共 2658 字,大约阅读时间需要 8 分钟。

实验七  文件

◊实验结论

Part1: 验证性实验

♦ 验证性实验2

•  如果事先不知道学生人数,尝试对line29做如下修改后,程序运行结果正确,运行结果截图如下↓

 

• 对比验证性实验3和验证性实验4的程序源码及运行结果,总结比较二进制文件与文本文件的区别。

(1) 定义区别:

 文本文件:文本文件是一种计算机文件,它是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。文本文件是基于字符编码的文件,

                常见的编码有ASCII编码,UNICODE编码等等。

二进制文件:是基于值编码的文件,可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码)。

                 用户一般不能直接读懂它们,只有通过相应的软件才能将其显示出来。二进制文件一般是可执行程序、图形、图像、声音等等。

(2) 存储方式的区别:

二进制文件就是把内存中的数据按其在内存中存储的形式原样输出到磁盘中存放,即存放的是数据的原形式。

文本文件是把数据的终端形式的二进制数据输出到磁盘上存放,即存放的是数据的终端形式

文本文件的存储与其读取基本上是个逆过程。而二进制文件的存取与文本文件的存取差不多,只是编码解码方式不同而已。

如果存储的是字符数据,无论采用文本文件还是二进制文件都是没有任何区别的。

如果存储的是非字符数据,又要看我们使用的情况来决定:

¹如果是需要频繁的保存和访问数据,那么应该采取二进制文件进行存放,这样可以节省存储空间和转换时间。

²如果需要频繁的向终端显示数据或从终端读入数据,那么应该采用文本文件进行存放,这样可以节省转换时间。

 

• 写一个简单的程序,尝试从二进制文件file4.dat中读出数据,并在屏幕上显示,以此查看文件file4.dat的内容。

程序源码↓

#include
#include
const int n=10; typedef struct student { int num; char name[20]; int score; }STU; int main() { int i; STU st[n]; FILE *hp; hp=fopen("file4.dat","r"); if(hp==NULL) { printf("fail to open file4.dat\n"); } for(i=0;i

运行截图↓

 

 

Part2: 编程练习

♦ 修改examinee.txt中测试数据,给出程序运行源码及运行结果截图。

程序源码↓ 

#include 
#include
#include
const int N = 10;// 定义结构体类型struct student,并定义其别名为STUtypedef 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; fin = fopen("examinee.txt","r") ; if( !fin ) { printf("fail to open file\n"); exit(0); } for(i=0;i

运行截图↓

  

 ◊实验总结与体会

结课期末复习周的实验作业没有按时提交真的感觉蛮糟糕的,最后一节课的自我评价表格上才写过,也对自己这一个学期的学习进行了反思,但又发生了这个事情_(:_」∠)_

从这次实验运行的截图可以看出本次实验之前有些不同,由于个人对macOS系统的不熟悉,初始运行不成功,便打算去机房电脑做完本次试验,结果就延误了...

昨晚想起来没有提交实验但机房也关门了,便借了一个电脑开始做这个实验但还是没有赶上最后的截止时间,临近考试心情很浮躁,本次实验质量也很不足

学期最后的报告弄成这个样子,感觉挺不好的 =( 

 

互评地址:

https://www.cnblogs.com/yzxazj/p/11079071.html

https://www.cnblogs.com/gundongtiao/p/11079914.html

https://www.cnblogs.com/Baeky/p/11080131.html

 

转载于:https://www.cnblogs.com/Anna0708/p/11085356.html

你可能感兴趣的文章
关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
查看>>
adb shell am 的用法
查看>>
iOS10 UI教程视图和子视图的可见性
查看>>
FindChildControl与FindComponent
查看>>
中国城市json
查看>>
android下载手动下载Android SDK
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
leetcode133 - Clone Graph - medium
查看>>
UNET学习笔记2 - 高级API(HLAPI)
查看>>
"ORA-00942: 表或视图不存在 "的原因和解决方法[转]
查看>>
Oauth支持的5类 grant_type 及说明
查看>>
C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)
查看>>
W3100SM-S 短信猫代码发送 上
查看>>
netty接收大文件的方法
查看>>
软件工程设计之四则运算
查看>>
SpringMVC @ResponseBody 406
查看>>
Partial Tree UVALive - 7190(完全背包)
查看>>
Ubuntu安装搜狗拼音教程
查看>>
Happy Number
查看>>
Sqlserver 系统视图简单说明
查看>>