第6章 错误处理 程序调试及文件操作
第6章 文件系统

• 目的: • (1)提高存储空间的利用率 • (2)提高文件的访问速度
6.3.1
连续分配
• 每个文件分配一组相邻接的盘块,也称物理 顺序文件。 • 主要问题:随着使用,磁盘碎片增多,性能 下降,需要磁盘整理。 • 优点:顺序访问速度快,定位容易,只需记 录第一个簇的位臵。可以通过紧缩 (compact)将外存空闲空间合并成连续的区 域。 • 缺点:需要连续的空间,当文件长度变化难 于处理,即必须事先知道文件的长度。
• (2) 假设索引表采用如下结构:第0~7字节 采用<起始块号,块数>格式表示文件创建 时预分配的连续存储空间,其中起始块号占 4B,块数占2B;剩余504B采用直接索引结 构,一个索引项占6B,则可支持的单个文件 最大长度是多少?为了使单个文件的长度达 到最大,请指出起始块号和块数分别占用字 节数的合理值并说明理由。 • 块数占2B,单个文件的最大长度 • 216×1KB + 504/6 ×1KB=65620KB • <4,4> <1,7> <2,6> <3,5> • 只要块数在4B以上就可以表示连续232个块, 使文件达到最大4TB。
• 关闭:将内存中对应的文件表目复制到外存 目录表中,从内存打开文件表中删除对应的 目录项。 • 3. 其它文件操作 • 以系统调用的形式提供给用户,有: • 1)关于文件属性的操作:改变文件名、改 变文件所有者、改变文件的访问权限等。 • 2)有关目录操作的:创建目录、删除目录 等。 • 3)实现文件共享的操作
索引分配
• 例:某文件系统的最大容量为4TB,以磁盘 块为基本分配单位,盘块大小为1KB。FCB 包含一个512B的索引表区。 • (1)假设索引表区采用直接索引,索引表 区存放文件占有的磁盘块号。索引表项中块 号最少占用多少字节?可支持的单个文件的 最大长度是多少字节? • 磁盘最多盘块数:4TB / 1KB =2 32 • 所以需要4字节存放盘块号。 • 文件最大长度 512/4 ×1KB = 128KB
第6章 MFC基础

MFC概述—MFC应用程序分析
➢ 无WinMain()函数 ➢ 应用程序对象:必须利用应用程序类实例化一个全局对象 ➢ InitInstance()函数:派生类中重写,用于初始化应用程序 ➢ MFC窗体:利用MFC已有的窗体类派生或实例化
-5-
MFC概述—MFC应用程序开发方法
创建项目 创建/编辑资源
函数功能 在数组的最后添加一个数组元素,在必要时扩展数组 将另一个数组添加到此数组,在必要时扩展数组 将另一数组复制给此数组,在必要时扩展数组 设定数组指定位置处的值,在必要时扩展数组 获得一个指向数组元素的指针 释放不用的数组内存 获取数组内指定位置处的值 获取数组中包含的元素个数 获取允许访问数组元素的值的指针 获取数组的上边界的值 在数组的指定位置插入一个元素,后面的元素下标加1 删除指定位置处的值 删除数组中的所有元素 设定数组指定位置处的值,数组不增长 设置数组的的初始大小 重载数组下标操作符
...... END_MESSAGE_MAP
- 10 -
MFC应用程序框架—消息映射
➢ 普通窗口消息
窗口消息 WM_CHAR WM_CLOSE
消息映射宏 ON_WM_CHAR ON_M_CLOSE
默认处理函数
afx_msg void OnChar (UINT, UINT, UINT); afx_msg void OnClose();
afx_msg void OnMouseMove( UINT, CPoint);
- 11 -
MFC应用程序框架—消息映射
➢ 命令消息
//命令消息使用ON_COMMAND宏对其进行映射响应,格式如下: ON_COMMAND(命令ID,响应函数)
//响应函数的原型如下: afx_msg void memberFxn();
《VB程序设计》课程标准

课程标准课程名称:Visual Basic程序设计学时学分:160(2)专业层次:微机制订日期:2012年9月归口单位:计算机工程系制订人:Visual Basic程序设计是一个理论和实际紧密相连的技术,上机实验是教学中的必要环节。
现提出一套可行的“Visual Basic程序设计”课程的课程标准。
1 课程概述●课程研究的对象和研究内容随着计算机的普及和以Internet为代表的信息高速公路的迅速发展,计算机应用已深入到社会的各行各业,这不仅要求当今的大学生要掌握好本专业知识,同时还要有用计算机技术为本专业服务的能力。
因此熟练掌握一种计算机应用软件开发工具是对大学生的基本要求,这将直接影响到计算机在其他专业领域中的应用。
本课程所讲授的Visual Basic即是一种易学实用、适用面广的面向对象的软件开发平台。
VB程序设计课程可以使学生掌握软件设计的基础知识和基本方法,培养学生具有利用软件开发环境解决实际问题的能力,为进一步学习其它计算机知识及今后使用或开发应用程序奠定基础。
●课程在整个课程体系中的地位“Visual Basic程序设计”属于计算机基础教育课程的三个层次“文化、技术、应用”中的第二层次,是微机高职专业学生必修的计算机技术基础课程。
它的先修课是《信息技术基础》。
2. 课程目标(1)使学生理解程序设计的基本概念,建立起程序设计的基本思路,提高学生的理论知识水平。
主要包括了算法的概念、程序设计中的基本技巧和一些常用算法;能够阅读、理解源程序和设计解题流程的能力;了解结构化程序设计和面向对象程序设计的思想,能编制出风格良好的程序;最后达到使用Visual Basic 建立一个小型的应用系统的目的。
(2)使学生掌握基本的程序设计的技术和方法,培养学生的实际动手能力。
这些技术和方法包括算法的设计,程序的实现,能够使用Visual Basic建立一个小型的应用系统。
(3)使学生了解程序设计在本专业的应用、发展及其趋势,培养学生的科研素质。
第6章 VisualDSP++

6.1.2 开发环境
(4) 调试窗口
VisualDSP++提供许多调试窗口来显示DSP程序的操作和 VisualDSP++提供许多调试窗口来显示DSP程序的操作和 结果。表6 结果。表6-5描述了这些窗口的功能。
调试窗口种类 编辑器 反汇编 表达式 跟踪 局部变量 线性性能分析结果 功 能 语法设置彩色,对不同文本的表达式求值,列状态图标,表示断 点,书签和当前的PC位置 提供反汇编形式的程序,该窗口还提供转存和填充功能 输入表达式的方法,以及单步执行程序时查看它的值 处理器在执行程序的活动经历,包括缓冲区深度(命令行),循 环计数,执行操作如内存存取,程序存储器写入 显示函数内的所有局部变量。在用户浏览程序时使用该窗口的 Step和Halt Halt命令可以显示变量 Step Halt (只适用于软件仿真)取出每条指令周期内目标PC寄存器所占用的 样本数,并给出了某条指令在什么地方执行的正确描述。线 性性能分析比统计性能分析慢得多
① ② ③ ④
显示标准的I/O文本信息,如文件的状态和错 显示标准的I/O文本信息,如文件的状态和错 误信息。 显示创建当前工程时的状态信息。 提供访问源文件中错误的方法。 作为一个用于脚本的工具命令语言(Tcl)的接 作为一个用于脚本的工具命令语言(Tcl1所示为包含了创建状态信息的输出窗口。 11所示为包含了创建状态信息的输出窗口。 点击输出窗口中的两个标签,Console和Build, 点击输出窗口中的两个标签,Console和Build, 将显示包含不同信息和性能的属性标签页。
6.1.2 开发环境
(3)工具栏和用户工具
表6-3显示了标准(默认)工具栏。 显示了标准(默认) 名 称 文件 编辑 帮助 工程 窗口 调试 用户工具 工作空间 工 具 栏
Fortran 95 程序设计-第六章—新

2、二进制文件
以二进制代码保存;读取速度快,节省空间
无格式文件由一系列物理块组成的记录组成,所存储的记录序列的存放方 式与其在内存中的存放非常相似,在输入输出时几乎不需作转化。由于去掉了 格式控制,与有格式文件相比,在使用数据信息时所做的处理更简洁更迅速; 同样的原因使得无格式文件中即使存放着数字,也不能用文本编辑软件打开并 看到它们。FORM= ’UNFORMATTED’ 3、FORM=’BINARY’?二进制文件,是处理最快、最简洁的一种文件,也是最 紧凑的存储格式,适合于大批量数据的存储。在程序中可以用带有选项的 OPEN语句来打开或建立二进制文件
2、直接存取,可以任意跳到文件的任何一个位置来读写
文件中的记录从1开始连续编号,记录的长度是通过OPEN语句中的RECL选 项来描述的。直接文件中的记录是通过指定要访问的记录号来实现的 ACCESS=’DIRECT’
两种文件的结构(存储格式): 1、文本文件
字符符号保存,直观;读取时需要转换,占存储空间大 格式化文件 ,记录数据内容的记录是以 ASCII字符的方式存在的 ,每一条 记录是以 ASCII码中的回车符CR(0D)加换行符LF(0A)来结束的,可以用文本编 辑软件打开格式文件并直接看懂其内容。即存放在文件中的数字就是平时所看 到的数字字符,字符串也就是平时所看到的字符串。FORM=‘FORMATTED’
较大的情况,便于同其它软件或程序交换数据信 息。
♦ 物理设备与逻辑设备
•
物理设备:计算机外部硬件设备,如:磁盘、磁带、键盘、 显示器等。文件中数据被存储在某个外部设备上。
逻辑设备:在程序中使用的设备描述符号。
• •
物理设备与逻辑设备之关系:一个物理设备可定义多个逻 辑设备,一个逻辑设备可与多个不同物理设备连接。
java斗兽棋课程设计

java斗兽棋课程设计一、课程目标知识目标:1. 让学生掌握Java编程语言的基本语法和结构,特别是面向对象编程思想。
2. 通过斗兽棋案例,使学生了解并运用数组、循环、判断等基本控制结构。
3. 使学生掌握Java中异常处理、文件操作等基本技能。
技能目标:1. 培养学生运用Java编程解决实际问题的能力,学会分析问题、设计算法和编写程序。
2. 培养学生独立思考和团队协作的能力,能在小组合作中发挥各自优势,共同完成斗兽棋项目。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们主动探索新知识的热情。
2. 培养学生面对困难和挑战时,保持积极的心态,勇于克服困难,不断进步。
3. 培养学生遵守编程规范,养成良好的编程习惯,注重代码质量和效率。
课程性质:本课程为实践性较强的Java编程课程,以斗兽棋项目为载体,培养学生编程能力和实际应用能力。
学生特点:学生已具备一定的计算机操作基础和编程知识,对Java编程有一定了解,但实际应用能力有待提高。
教学要求:教师应注重理论与实践相结合,引导学生主动参与,鼓励学生动手实践,培养他们分析问题和解决问题的能力。
同时,关注学生的情感态度,营造积极的学习氛围,提高学生的学习兴趣和自信心。
通过本课程的学习,使学生在知识、技能和情感态度方面均取得明显进步。
二、教学内容1. Java基本语法与结构复习:回顾Java的基本数据类型、变量、运算符、控制流程(循环、分支)等基础知识,确保学生具备扎实的编程基础。
教材章节:第一章至第三章2. 面向对象编程:讲解类与对象、继承、多态等概念,引导学生运用面向对象思想进行编程。
教材章节:第四章至第六章3. 数组与字符串操作:介绍数组和字符串的基本操作,为斗兽棋项目中棋盘和棋子表示打下基础。
教材章节:第七章4. 异常处理与文件操作:讲解异常处理机制,使学生学会处理程序中可能出现的错误;介绍文件操作,为保存和读取游戏状态提供支持。
教材章节:第十章、第十一章5. 斗兽棋项目实战:a. 分析斗兽棋游戏规则,设计游戏流程。
c程序设计第4版

c程序设计第4版C程序设计第4版C语言是一种通用的、过程式的计算机程序设计语言,广泛用于系统软件与应用软件的开发。
自从1972年由丹尼斯·里奇在贝尔实验室开发以来,C语言已经成为计算机编程领域的基石之一。
随着计算机科学的发展,C语言也在不断地更新和完善,其中《C程序设计》这本书就是学习C语言的重要教材之一。
第1章:C语言概述在第4版中,C语言概述部分会对C语言的历史、特点以及它在现代编程中的地位进行介绍。
C语言以其高效性、灵活性和广泛的应用领域而著称。
本章还会简要介绍C语言的基本语法结构和编程范式。
第2章:C语言基础本章将详细介绍C语言的基本元素,包括数据类型、变量声明、运算符和表达式。
此外,还会讲解控制语句,如if语句、switch语句、循环语句(for、while、do-while)等,这些都是编写C程序时不可或缺的基础。
第3章:函数函数是C语言中实现代码复用的重要手段。
本章将介绍函数的定义、声明、调用以及参数传递机制。
同时,也会探讨递归函数的概念和应用。
第4章:数组和字符串数组是存储固定大小同类型元素的集合,而字符串实际上是字符数组的一种特殊形式。
本章将深入讲解一维数组和多维数组的使用,以及字符串处理函数的应用。
第5章:指针指针是C语言中非常强大的一个特性,它允许程序员直接操作内存地址。
本章将介绍指针的基本概念、指针与数组的关系、指针的算术运算以及函数指针等高级主题。
第6章:结构体和联合体结构体和联合体是C语言中用于创建复杂数据类型的工具。
本章将讲解如何定义和使用结构体、联合体以及枚举类型,以及它们在实际编程中的应用。
第7章:预处理器预处理器是C语言编译过程中的一个阶段,它提供了宏定义、文件包含、条件编译等功能。
本章将详细介绍预处理器的使用方法和技巧。
第8章:文件操作文件操作是程序与外部世界交互的一种方式。
本章将介绍如何在C语言中打开、读取、写入和关闭文件,以及文件指针的概念。
第9章:动态内存分配动态内存分配允许程序在运行时申请和释放内存。
如何进行故障排除与调试

如何进行故障排除与调试故障排除与调试是在技术领域中非常重要的一项工作。
无论是在电子领域还是计算机领域,故障排除与调试的技巧都是必不可少的。
本文将介绍如何进行故障排除与调试,并提供一些实用的方法和技巧。
1.了解故障现象在进行故障排除与调试之前,首先需要对故障现象进行准确定义和了解。
通过与用户沟通或观察设备的异常行为,可以初步判断故障的性质和范围。
了解故障现象有助于确定进一步的排除方向和方法。
2.检查硬件连接故障往往是由于硬件连接问题引起的。
因此,检查和验证硬件连接是解决故障的第一步。
确保所有电缆、线路、插头等连接良好,排除可能的松动或腐蚀问题。
如果可能,可以使用测试仪器来验证连接是否正常。
3.查看错误日志在许多设备或系统中,都会有错误日志功能,记录了设备的运行状态和可能的错误信息。
查看错误日志可以提供有关故障原因的线索。
仔细分析错误日志,寻找与故障现象相关的错误代码或异常记录。
4.逐层排除当发现故障现象时,可以逐层排除来确定故障发生的具体位置。
从系统层逐步向下排查,检查各个组件和模块的正常性。
可以使用测试工具对各个模块进行单独测试,判断其是否正常工作。
5.分析代码或电路如果故障发生在程序或电路中,需要仔细分析代码或电路图,找出可能的异常或错误。
逐行或逐段进行代码或电路的检查和调试,注意可能的语法错误、逻辑错误或电路连接错误。
对于复杂的程序或电路,可以使用调试工具来辅助定位问题。
6.测试、验证与复现在对故障进行修复后,需要进行测试、验证与复现,确保故障已经解决。
使用合适的测试方法和测试工具,验证故障修复的有效性。
如果故障是偶发性的或依赖于特定条件发生的,需要尽可能复现故障,以便确认是否已完全解决。
7.记录与总结在完成故障排除与调试后,需要进行记录与总结。
记录故障原因、排除方法和结果,以供以后参考。
同时,进行总结和反思,从故障中汲取经验教训,以提高自身的排除与调试能力。
总结:故障排除与调试是一项需要耐心和经验的工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1.3 常用的错误处理的函数和过程
On Error GoTo 0 :如果在过程中想关闭错误跟踪,则可以使 用此语句 对象Err的属性Number:表示与当前错误相对应的错误号。
Err.Raise 错误号:模拟一个错误号,表示运行错误发生, 目的是为了测试过程的错误处理功能。
Err.Clear:将 Err 对象之数值属性重新设置为零,并将其
1. Sub SubExample() 2. . 3. . [Declare variables, ...] 4. . 5. On Error GoTo HandleErrors 6. . 7. . [Procedure code] 8. . 9. Exit Sub 10. HandleErrors: 11. Select Case MsgBox(Error(Err.Number), vbCritical + vbAbortRetryIgnore, "Error Number" + Str(Err.Number)) 12. Case vbAbort 13. Resume ExitLine 14. Case vbRetry 15. Resume 16. Case vbIgnore 17. Resume Next 18. End Select 19. ExitLine: 1. Exit Sub 20. End Sub
6.1.5 通常的错误处理过程:
1.
2.
HandleErrors:
向用户提供一个错误发生、错误描述并请用户选择处理错误方式 的对话框。
Select Case MsgBox(Error(Err.Number), vbCritical + vbAbortRetryIgnore, "Error Number" + Str(Err.Number))
除了没有数据类型或者数据项长度的含义以外,它与 随机访问很相似。
二进制访问模式是以字节数来定位数据,在程序中可 以按任何方式组织和访问数据,对文件中各字节数据直接 进行存取。
特点:灵活性很大; 相对的, 程序更复杂。
6.5 文件操作函数
1.FreeFile函数 : 功能: 使用FreeFile函数可以把一个未使用的文件号赋给指定变量。 当用Open语句打开文件时,使用代表文件号的变量,可以不必 考虑具体的文件号。当打开的文件较多,特别在一些通用过程 中访问文件时,可以避免打开正在使用的文件号。 格式: FreeFile[<区间号>] 其中:<区间号>等于0或1。 省略时(默认等于0),返回1~255之间的文件号: <区间号>等于1时,则返回256~511之间的文件号。
第6章 错误处理和文件操作
1. 错误处理
2. 程序调试
3. 文件操作
6.1 错误处理
1. 错误种类:语法错误、运行错误、逻辑错误 语法错误(Syntax errors ):不符合VB语法的错误,如关键字出 错、非法的参数等。 运行错误(Run-time errors ):超出了程序的控制范围,如变量 的范围范围溢出、文件没有找到等。VB允许你跟踪这样的错误, 并努力改正它们。 逻辑错误(Logic errors ):最难发现的,带有逻辑错误的程序 可以运行,但运行结果通常是错误的。VB的调试器有助于发现这 种错误。 2. 减少错误的方式: 仔细设计应用程序,设计时间越长,调试所需的时间就越少。 适度使用程序注释 对变量、对象及过程使用一致、有意义的名称。
写的文件,每个数据项(又称记录)的长度必须相同。结构体
数据经常以这种形式存储。在这种文件结构中,每个数据项 都有唯一的一个编号,所以在读取数据时,只要知道数据项 编号,便可以直接读取数据项。
特点:存取速度快,易更新;但占用空间大,设计程序较复杂
3.二进制文件
二进制文件(Binaryfile)是字节的集合,直接把二 进制码存放在文件中。
3.
4. 5. 6. 7.
Case vbAbort
Resume ExitLine Case vbRetry ‘实际应用程序中在这个位置需要添加修复错误的语句 Resume Case vbIgnore
8.
9.
Resume Next
End Select
10. ExitLine:
1.
如何使用这段代码?
Exit Sub
6.2 调试VB程序
针 对:逻辑错误 调度前提:程序进入中断模式 最常用的三个窗体:立即窗口、本地窗口和观察窗口。可 以通过“调试”工具栏调出这三个窗口
功能:测试一个变量的值、设置断点、观察变量和表达式的值、 手动控制程序执行、决定哪一个过程已经被调用、改变变量和属 性的值(在观察窗口中)
2. 关闭文件——Close 语句
格式:
Close [文件号列表 ] 其中: 文件号列表 :可选项,为文件号列表,如:#1, #2, #3, 如果省略,则将关闭Open语句打开的所有活动文件。 例如: Close #1,#2,#3
6.8 顺序文件的写操作
1.Print语句
格式:
PRINT #<文件号>,[<输出列表>]
Eof(文件号)
在应用中,一般使用以下格式检测是否到达文件尾: Do While Not EOF(文件号) Loop FileLen(文件名)
5. FileDateTime函数
功能:
返回文件被创建或最后修改的日期和时间。
格式:
FileDateTime(文件号)
6.FileLen函数
功能:
返回一个Long,代表一个文件的长度,单位是字节。
格式:
FileLen(文件号)
6.6 文件的操作
在程序中对文件的操作,通常按3个步骤进行:
打开文件
读出或写入
关闭文件
6.7 顺序文件的打开与关闭
1.打开顺序文件—— Open 语句 格式: Open FileName For [Input|Output| Append] As 文件号 [Len = 缓冲区长度] 例如:OPEN “C:\TEMP\A.TXT ” FOR Input AS #1 OPEN OPEN ‘读文件
“C:\TEMP\B.TXT ” FOR Output AS #2 ‘写文件 “C:\TEMP\C.TXT ” FOR Append AS #3 ‘追加内容
dim filenumber
filenumber=Freefile
Open “c:\a.dat” for output as # filenumber
格式: INPUT #文件号,变量列表
把读出的每个数据项分别存放到所对应的变量。
格式: LINE INPUT #文件号,字符串变量
读一行到变量中,读出的一行内容不包含回车、换行符。
格式: INPUT$(读取字符数, #文件号)
从文件中读取指定数目的字符。包括回车、换行符
6.1.1 跟踪运行错误并处理它
1. 针对:运行错误
2. 跟踪错误的方法:使用关键字On Error,语法如下:
On Error GoTo errlabel
含义:此行下面的语句段中如果出现运行时错误,将跳到errlabel 标签处执行。
6.1.2 错误处理框架
1. Sub SubExample() 2. . 3. . [Declare variables, ...] 4. . 5. On Error GoTo HandleErrors ‘错误跟踪开始 6. . 7. . [Procedure code] ‘在执行这段代码过程中出现任何错 误时,程序都将跳到HandleErrors处开始执行 8. . 9. Exit Sub 10.HandleErrors: 11. . 12. . [Error handling code] ‘根据错误类型,选择处理方法 13. . 14.End Sub
Private Sub Form_Click()
Dim Str As String, Anum As Integer Open "D:\Myfile.dat" For Output As #1 Str = "ABCDEFG" Anum = 12345 Print #1, Str, Anum Write #1, Str, Anum Close #1 End Sub ‘逗号作为格式符
2.Loc函数 功能: 返回文件中的当前记录号;对于二进制文件,它将返回最 近读写的一个字节的位置。 格式: Loc(文件号)
3.Lof 函数 功能:返回已打开文件的字节数
格式: Lof(文件号)
例如:
LOF(1):返回#1文件的长度,如果返回0值,则表示该
文件是一个空文件。
4. Eof 函数 功能: Eof 函数将返回一个表示文件指针是否到达文件末尾的 标志。如果到了文件末尾,Eof 函数返回TRUE(-1),否 则返回FALSE(0)。 格式:
Write
例2. 编程把一个文本框中的内容,以文件形式存入磁盘。假定文
本框的名称为myText1,文件名为Myfile.dat。 方法1: 把整个文本框的内容一次性地写入文件。 Open “test.txt" For Output As #1 Print #1, myText.Text Close #1
说明: 输出列表为用分号或逗号分隔的变量、常量、空格和定 位函数序列。 与窗体的Print方法功能一样。
2 WriteБайду номын сангаас句
格式: Write #<文件号>,[<输出列表>]
说明: 1)输出列表中的各数据项之间用“,”隔开 2)字符型数据用“ ”引住 3)每一输出行后自动加回车符