当前课程知识点:程序设计基础 > 第八章 非文本数据处理 > 程设论道 > 程设论道二
第二方面就跟我们生活中类似就是说你看你
这个可以长久的去存储
然后比如说备份的文件用来备份用
所以有的我们会说存档
日常生活中间有很多有什么需要翻出来去查找
文件可以做这个
有的地方就把文件翻译成档案或者翻译成文档卷宗
另外就是存信息就是有的时候跟你有些东西讲不清楚
写下来给你一份文字的材料
给你一份文件去弄
这跟我们日常生活中有些意义是比较一致的
所以计算机这个我觉得它发挥越来越大作用
其实跟这个文件能够永久存储其实关系度很大的
因为它能存储所以你看它可以长时间的保存
那于是很多信息我都可以把它用文件来存储
让计算机来管理
那如果计算机不具备这种能力的话
那人们想都不会想肯定把它淘汰了或者不去用它
因为你能存储所以我们相互之间交换的时候
我拿个优盘拷个东西给你
你拿个硬盘拷个电影给我
那它这个东西才成为可能
然后我觉得大家自己用电脑的时候也会有这个体会
你一旦这个数据存在硬盘上了我只要不去删它
它就一直在那然后这个数据可能越攒越多越攒越多
就形成了我们数据量越来越大
然后我们产生了各种不同的新问题
而且这种存储的话其实有时候有一种
很神奇的死而复生的效果
说机器崩溃了 他它以恢复
这个恢复我们第一次看到它觉得很神奇
其实现在想一想我们现在学完第七章第八章就会想到
它无非就是把在它死机之前在崩溃之前状态
放到硬盘上存起来了
所以它下次再起的时候把它读进来
然后它就没问题了所以这个永久存储
远非是说我把一个数据在硬盘上存着
然后拷给你拷给他这么简单
他其实背后体现一个怎么能够让信息不断地流转
然后不断的去做不同处理
到这个概念的时候就不仅限于存储了不仅限于硬盘了
然后我们就会发现其实就跟我们上课讲的那个例子
就把原来的cin cout直接改成一个文件fin fout
这个程序就对了就差不多 长得都一样
所以就是最后大家发现凡是我有这种一个
一个流一样的有输入有输出的的情况
这个东西我也可以当成文件一样的处理
所以就是实际上就是我们第一章讲过的
最早的c语言发明的时候的unix系统
以它为基础发展出的一大类的unix操作系统都是这样的
就是我们用文件的这种模式
来处理所有的各种各样的设备
就比如说大家平时上网
那么这种上网的需求最后是通过网卡来实现的
那么网卡最后大家发现其实对于我用户来说
也就是别人传给我的信息我能从网卡里读出来
然后我想告诉别人的信息我会写到网卡上去
那实际上我对网卡这个操作就是像文件一样一个读一个写
而且你数据是一个挨一个所以刚才说流嘛
就是一个挨一个这样的序列这样的情形
然后有进有出有读有写
那我们也会说有进有出
所以一旦把这个设备不局限在硬盘
扩展到更多的设备的时候
那我们这个文件的功能也就不仅限于存储了
或者说是把文件更本质的属性抽出来
其实就是一个不管它是什么东西
反正一个未知的东西在那放着
然后我能够用写入的方式
传递给它一些信息可以用
读取的方式从里头得到一些信息
也就我可以对它进行input和output操作的话
我们都可以用文件的思想去看待这个东西
所以这样的话你前面举得
那个cin cout实际上就是说
我能够从in这个计算机的外设
键盘和屏幕都可以是外设的组成部分
从它的外设可以读入 键盘 可以读入东西
那么它的cin跟课上我们举的例子
你比如说一般输入的文件名通常叫做fin
对吧其实故意就想这么取名
其实可以任意取名的对不对
故意就想这样去和那个cin对应
那么cout我们叫fout
当然也是一样还可以取别的名字
然后我可以往里头去输出东西
这时候输出它是输出到屏幕上去
打印机 只不过打印机很奇怪
他不能读入 不能产生新信息
我们对应的只读的一个文件它就只能读
只写的一个文件就只能告诉它一些事
所以说明就文件概念
其实就是说我们把它抽象起来去看
我们世界就不一样了
计算机访问的时候外设都是文件
其实我觉得这也是当时
unix操作系统为什么这么受重视
它其实是提了一个我觉得有点哲学层次的思考
最后它抽象成为了
everything is a file
就是所有的事情都是一个文件
然后它做一个统一的管理
然后在此之前设备就是设备
然后特别麻烦就是各种设备区分的管理特别麻烦
就到了unix所有东西都拿一个文件管理
那整个这个系统的架构就变得很清晰了
所以越是有思想的越能传承久远
文件因为它有思想所以很多地方都去用它
而且一直延续下来
所以我觉得确实是很重要的一个概念
-1.1 基础知识
-1.2 买菜问题
-1.3 数学运算
-1.4 补充说明
-1.5 总结
--1.5 总结
-程设论道
--程设论道
-师生问答
-第一章 编程初步--语法自测
-2.1 关于超级计算器的几点思考
-2.2 电子秤模拟 — 背景介绍及需求分析
-2.3 电子秤模拟 — 代码实现
-2.4 变量定义与变量类型
-2.5 猜数游戏与数据表示
-2.6 关于变量的讨论
--公告
-2.7 变量体现的计算思维
-程设论道
--程设论道
-师生问答
--师生问答
-第二章 变量与代数思维--语法自测
-3.1 谁做的好事——语义表示
-3.2 谁做的好事——真假检查
-3.3 谁做的好事——循环枚举
-3.4 谁是嫌疑犯——多重循环枚举
-3.5 谁是嫌疑犯——破案线索表示
-3.6 谁是嫌疑犯——用二进制枚举
-程设论道
--程设论道一
--程设论道二
--程设论道三
-师生问答
-第三章 逻辑推理与枚举解题--语法自测
-4.1 插花游戏
-4.2 筛法
-4.3 线性查找
-4.4 折半查找
--4.4.1 提问
-4.5 排序问题
-4.6 总结
--4.6.1 总结
-程设论道
--程设论道二:筛法
-师生问答
-第四章 筛法与查找--语法自测
-5.1 阶乘
-5.2 排序
-5.3 矩阵填充
-5.4 分书与八皇后
-5.5 青蛙过河
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答一
--师生问答二
-第五章 分治思想与递归--语法自测
-6.1 兔子数列问题
-6.2 分鱼问题
-6.3 橱窗的插花问题
-6.4 最长公共子序列问题
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第六章 递推与动态规划--语法自测
-7.1 统计记录总数
-7.2 统计活跃用户数
-7.3 统计在线时长
--7.3.2 结构
-7.4 总结
--7.4.1 总结
-程设论道
--程设论道
-师生问答
--师生问答
-第七章 文本数据处理--语法自测
-8.1 将数据组织成链表
-8.2 提高链表访问效率 —— 哈希链表
-8.3 以二进制文件存储链表
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第八章 非文本数据处理--语法自测
-9.1 自动售卖程序
-9.2 配制水果信息
-9.3 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测