第11章 文件处理
- 格式:pptx
- 大小:426.78 KB
- 文档页数:62
第11章异常处理 (1)11.1 C++的异常处理机制 (1)11.2 异常处理的实现 (2)第7章第11章异常处理异常处理(exception handling)机制是用于管理程序运行期间出现非正常情况的一种结构化方法。
C++的异常处理将异常的检测与异常处理分离,增加了程序的可读性。
异常处理常用于大型软件的开发中。
本章介绍异常处理的基本概念,以及异常处理程序的构造。
11.1 C++的异常处理机制软件开发不但要保证逻辑上的正确性,还必须具有容错能力。
即要求应用程序不但在正常情况下能够正确运行,发生意外时也可以做出适当处理,不会导致丢失数据或破坏系统运行等灾难性的后果。
这些意外可能由用户误操作、外部设备或文件的不正确连接,或者内存空间不足等原因所造成。
异常包括错误,也可能是某些很少出现的特殊事件。
为了处理可以预料的异常,传统的程序设计中,经常使用中断指令。
例如:abortassertexitreturn典型的方法是被调用函数运行发生错误时,返回一个特定的值,让调用函数检测到错误标志后做出处理。
或者当错误发生时,释放所有资源,结束程序执行。
这些处理方法使得异常处理代码分布在系统可能出错的各个地方。
优点是处理直接,运行开销小,适用于处理简单的局部错误。
缺点是错误处理代码掺杂于系统功能实现的代码主线,降低了程序的可读性和可维护性,不适用于组件式的大型软件开发。
如果设计的类是提供给其他程序员重用,使用传统的异常处理方式,虽然可以检测到异常条件的存在,但无法确定其他程序员如何处理这些异常;另一方面,这些程序员想按照自己的意愿处理异常,但又无法检测到异常条件是否存在。
异常处理的基本思想是将异常检测与处理分离。
出现异常的函数不需具备处理异常的能力。
当一个函数发生异常时,它抛出一个异常信息,希望它的调用者捕获并处理这个异常。
如果调用者不能处理,还可以报告(抛出)给上一级调用者处理。
一直到运行系统,若仍不能处理,将简单终止程序。
第11章场地、链接文件和共享坐标概述:通过本章节的学习,我们将了解场地的相关设置与地形表面、场地构件的创建与编辑的基本方法和相关应用技巧。
随后我们将了解到如何应用和管理链接文件,最后是共享坐标的应用和管理。
11.1场地的设置单击“体量与场地”选项卡,“场地建模”面板下按钮,设置等高线间隔值、经过高程、添加自定义等高线、剖面填充样式、基础土层高程、角度显示等项目全局场地设置。
(如图11.1-1所示)。
图11.1-111.2地形表面的创建11.2.1拾取点创建打开“场地”平面视图,选项栏“体量与场地”“场地建模”面板下,“地形表面”命令,进入绘制模式。
单击“工具”面板下“放置点”命令,选项栏设置高程值,单击鼠标放置点,连续放置生成等高线。
修改高程值,放置其它点。
点“表面属性”命令设置材质,单击“完成表面”(如图11.2-1所示)。
图11.2-111.2.2导入地形表面打开“场地”平面视图,单击“插入”选项卡,“导入”面板下“导入CAD”命令,导入三维等高线数据。
单击“体量与场地”选项卡,“场地建模”面板下“地形表面”命令,进入绘制模式。
用“使用导入的”命令,选择已导入的三维等高线数据。
系统会自动生成选择绘图区域中已导入的三维等高线数据。
此时出现“从所选图层添加点”对话框,选择要将高程点应用于到的图层,并单击“确定”。
Revit Architecture 会分析已导入的三维等高线数据,并根据沿等高线放置的高程点来生成一个地形表面。
单击“地形属性”设置材质,完成表面。
11.2.3地形表面子面域单击“体量与场地”选项卡“修改场地”面板下“子面域”命令,进入绘制模式。
用“线”绘制工具,绘制子面域边界轮廓线。
点“子面域属性”设置子面域材质,完成绘制。
11.3 地形的编辑11.3.1拆分表面打开“场地”平面视图或三维视图,“体量与场地”选项卡“修改场地”面板下“子拆分表面”命令,选择要拆分的地形表面进入绘制模式。
第十一章文件一、选择题1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。
【哈尔滨工业大学 2001二、5 (2分)】A. 散列函数B. 除余法中的质数C. 冲突处理D. 散列函数和冲突处理2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。
【北京邮电大学 2000 二、8 (20/8分)】A. 附加文件B. 按关键字大小排序C. 按记录输入先后排序D. 连续排序3. 用ISAM组织文件适合于()。
【中科院软件所 1998】A.磁带 B.磁盘4.下述文件中适合于磁带存储的是()。
【中科院计算所 2000 一、7(2分)】A. 顺序文件B. 索引文件C. 散列文件D. 多关键字文件5. 用ISAM和VSAM组织文件属于()。
A. 顺序文件B. 索引文件C. 散列文件【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】6. ISAM文件和VASM文件属于()。
【山东大学 2001 二、5 (1分)】A. 索引非顺序文件B. 索引顺序文件C. 顺序文件D. 散列文件7. B+树应用在()文件系统中。
【北京邮电大学 2001 一、1(2分)】A. ISAMB. VSAM二、判断题1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。
【长沙铁道学院 1998 一、5 (1分)】2. 倒排文件是对次关键字建立索引。
【南京航空航天大学 1997 一、10(1分)】3. 倒排序文件的优点是维护简单。
【南京航空航天大学 1995 五、10(1分)】4. 倒排文件与多重表文件的次关键字索引结构是不同的。
【西安交通大学 1996 二、6 (3分)】5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。
第十一章文件二1.操作系统文件数据库 2.单关键字文件多关键字文件3.(1)数据库(2)文本(3)顺序组织(4)随机组织(5)链组织(6)随机组织(7)m (8)⎡m/2⎤(9)2 (10) k 4.记录数据项 5.串联文件 6.第I-1 7.随机8.提高查找速度 9.树 10.检索记录快11.(1)关键字(2)记录号(3)记录号(4)顺序(5)直接12.构造散列函数解决冲突的方法 13.索引集顺序集数据集14.分配和释放存储空间重组对插入的记录四.应用题1.文件是由大量性质相同的记录组成的集合,按记录类型不同可分为操作系统文件和数据库文件。
2.文件的基本组织方式有顺序组织、索引组织、散列组织和链组织。
文件的存储结构可以采用将基本组织结合的方法,常用的结构有顺序结构、索引结构、散列结构。
(1)顺序结构,相应文件为顺序文件,其记录按存入文件的先后次序顺序存放。
顺序文件本质上就是顺序表。
若逻辑上相邻的两个记录在存储位置上相邻,则为连续文件;若记录之间以指针相链接,则称为串联文件。
顺序文件只能顺序存取,要更新某个记录,必须复制整个文件。
顺序文件连续存取的速度快,主要适用于顺序存取,批量修改的情况。
(2)带索引的结构,相应文件为索引文件。
索引文件包括索引表和数据表,索引表中的索引项包括数据表中数据的关键字和相应地址,索引表有序,其物理顺序体现了文件的逻辑次序,实现了文件的线性结构。
索引文件只能是磁盘文件,既能顺序存取,又能隋机存取。
(3)散列结构,也称计算寻址结构,相应文件称为散列文件,其记录是根据关键字值经散列函数计算确定其地址,存取速度快,不需索引,节省存储空间。
不能顺序存取,只能随机存取。
其它文件均由以上文件派生而得。
文件采用何种存储结构应综合考虑各种因素,如:存储介质类型、记录的类型、大小和关键字的数目以及对文件作何种操作。
3.在主文件外,再建立索引表指示关键字及其物理记录的地址间一一对应关系。
第十一章 文件一、 C 文件概述1、文件:文件指存储在外部介质(如磁盘磁带)上数据的集合。
2、文件的分类按数据的组织形式:ASCII 文件(文本文件):每一个字节放一个ASCII 代码二进制文件:把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。
例:整数10000在内存中的存储形式以及分别按ASCII 码形式和二进制形式输出如下图所示:ASCII 文件和二进制文件的比较:ASCII 文件便于对字符进行逐个处理,也便于输出字符。
但一般占存储空间较多,而且要花费转换时间。
二进制文件可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。
一般中间结果数据需要暂时保存在外存上,以后又需要输入内存的,常用二进制文件保存。
3、 C 语言对文件的处理方法:缓冲文件系统:系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。
用缓冲文件系统进行的输入输出又称为高级磁盘输入输出。
非缓冲文件系统:系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。
用非缓冲文件系统进行的输入输出又称为低级输入输出系统。
二、文件的打开与关闭1、文件的打开(fopen函数)函数调用:FILE *fp;fp=fopen(文件名,使用文件方式);①需要打开的文件名,也就是准备访问的文件的名字;②使用文件的方式(“读”还是“写”等);③让哪一个指针变量指向被打开的文件。
④打开文件的方式:r:以只读方式打开一个已存在的文本文件,w:以只写的方式打开一个文本文件,若文件存在则删除之,然后重新建立,a:以在文件末尾追加的方式打开一个文本文件,(属于只写方式)rb: 以只读方式打开一个已存在的二进制文件wb: 以只写的方式打开一个二进制文件,若文件存在则删除之,然后重新建立ab: 以在文件末尾追加的方式打开一个二进制文件,(属于只写方式)r+:以读写方式打开一个已存在的文本文件(可读可写)w+:以读写方式打开一个文本文件(可读可写),若文件存在则删除之,然后重新建立a+:以在文件末尾追加的方式打开一个文本文件,(可读可写)rb+:以读写方式打开一个已存在的二进制文件(可读可写)wb+:以读写方式打开一个二进制文件(可读可写),若文件存在则删除之,然后重新建立ab+:以在文件末尾追加的方式打开一个二进制文件,(可读可写)2、文件的关闭(fclose函数)fclose( 文件指针);返回值:关闭成功返回值为0;否则返回EOF(-1) 。