版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构与算法课程设计报告题 目:学 院:专业班级:学生姓名:指导教师:2016年06月2 9日目录一、课程设计目的 二、课程设计步骤 三、课程设计内容 四、课程设计报告 五、提交材料 3.3.5.错. 误 !未定义书签。6.7.六、考核方式与评分标准七、参考文献9.附录 1 齐齐哈尔大学软件工程系课程设计说明书(报告)撰写规范 10、课程设计目的及要求数据结构与算法分析 课程设计培养计算机专业的学生的算法程序设计能 力。通过上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、 合理、可读性好的系统程序的能力, 加深对数据结构课程和算法的理解。 使学生 更好地掌握数据结构的基本概念、
2、基本原理、及基本算法 ,具有分析算法、设计 算法、构造和开发较复杂算法的基本能力。要求学生能综合运用 数据结构与算法分析 的相关知识, 培养学生上机解 决一些与实际应用结合紧密的、 规模较大的问题的能力, 通过分析、设计、编码、 调试等各环节的训练, 使学生深刻理解、 牢固掌握数据结构和算法设计技术, 掌 握分析实际问题的能力并提高 C 语言编程技巧,培养良好的编程风格。课程设计要求独立完成, 题目自选(参考题目见三,也可自拟) ,但需要老 师确认(6 月 16 日前定题) ,一人一题,要求程序有能采用交互式工作方式的界 面进行功能的选择 , 只能用文件存储数据和处理数据不能使用数据库。要求在
3、教 学周的第 18 周前完成。课程设计步骤随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加。然而, 编制一个 10000行的程序的难度绝不仅仅是一个 5000行的程序的两倍,因此软件 开发需要系统的方法。一种常用的软件开发方法,是将软件开发过程分为 分析、 设计、实现和维护 四个阶段。虽然数据结构课程中的课程设计的复杂度远不如 (从 实际问题中提出来的 )一个“真正的”软件,但为了培养一个软件工作者所应具 备的科学工作的方法和作风,完成课程设计的应有如下的 5个步骤:1. 问题分析和任务定义 通常,课程设计题目的陈述比较简洁,或者说是有模棱两可的含义。因此, 在进行设计之前, 首先应
4、该充分地分析和理解问题, 明确问题要求做什么, 限制 条件是什么。注意:本步骤强调的是做什么,而不是怎么做。对问题的描述应避 开算法和所涉及的数据类型,而是对所需完 成的任务作出明确的回答。例如: 输入数据的类型、 值的范围以及输入的形式; 输出数据的类型、 值的范围及输出 的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法 输入的回答方式是什么等等。 这一步还应该为调试程序准备好测试数据, 包括合 法的输入数据和非法形式输入的数据。2. 数据类型和系统设计在设计这一步骤中需分 逻辑设计和详细设计 两步实现。逻辑设计指的是, 对 问题描述中涉及的操作对象定义相应的数据类型,
5、 并按照以数据结构为中心的原 则划分模块, 定义主程序模块和各抽象数据类型; 详细设计则为定义相应的存储 结构并写出各过程和函数的伪码算法。 在这个过程中, 要综合考虑系统功能, 使 得系统结构清晰、 合理、简单和易于调试, 抽象数据类型的实现尽可能做到数据 封装,基本操作的规格说明尽可能明确具体。 作为逻辑设计的结果, 应写出每个 抽象数据类型的定义 (包括数据结构的描述和每个基本操作的规格说明 ),各个主 要模块的算法, 并画出模块之间的调用关系图。 详细设汁的结果是对数据结构和 基本操作的规格说明作出进一步的求精, 写出数据存储结构的类型定义, 按照算 法书写规范用类C语言写出过程或函数
6、形式的算法框架。在求精的过程中,应尽 量避免陷入语言细节,不必过早表述辅助数据结构和局部变量。3. 编码实现和静态检查 编码是把详细设计的结果进一步求精为程序设计语言程序。 程序的每行不要 超过60个字符。每个过程 (函数)体,即不计首部和规格说明部分,一般不要超过 40行。最长不得超过 60 行,否则应该分割成较小的过程 (函数)。要控制语句连 续嵌套的深度。 如何编写程序才能较快地完成调试是特别要注意的问题。 对于编 程很熟练的读者,如果基于详细设计的伪码算法就能直接在键盘上输入程序的 话,则可以不必用笔在纸上写出编码, 而将这一步的工作放在上机准备之后进行, 即在上机调试之前直接用键盘输
7、入。 然而,不管你是否写出编码的程序, 在上机 之前,认真的静态检查却是必不可少的。 多数初学者在编好程序后处于以下两种 状态之一:一种是对自己的 “精心作品 ”的正确性确信不疑; 另一种是认为上机前 的任务已经完成,纠查错误是上机的工作。这两种态度是极为有害的。事实上, 非训练有素的程序设计者编写的程序长度超过 50 行时,极少不含有除语法错误 以外的错误。 上机动态调试决不能代替静态检查, 否则调试效率将是极低的。 静 态检查主要有两种方法,一是用一组测试数据手工执行程序 (通常应先分模块检 查);二是通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,在这 个过程中再加入一些注解和断
8、言。 如果程序中逻辑概念清楚, 后者将比前者有效。4. 上机准备和上机调试 上机准备包括以下几个方面:(1)高级语言文本 (体现与编译程序用户手册 )的扩充和限制。例如,有些 C 编译程序限制 for 语句的循环控制变量为局部简单变量等。(2)如果用C语言,要特别注意平时惯用的类C语言与标准C语言之间的细微 差别。(3)熟悉机器的操作系统和语言集成环境的用户手册,尤其是最常用的命令 操作,以便顺利进行上机的基本活动。(4)掌握调试工具, 考虑调试方案, 设计测试数据并手工得出正确结果。 “磨 刀不误砍柴工 ”。计算机各专业的学生应该能够熟练运用高级语言的程序调试器 DEBUG调试程序。上机调试
9、程序时要带一本高级语言教材或手册。调试最好分 模块进行, 自底向上, 即先调试低层过程或函数。 必要时可以另写一个调用驱动 程序。这种表面上麻烦的工作实际上可以大大降低调试所面临的复杂性, 提高调 试工作效率。在调试过程中可以不断借助 DEBUG的各种功能,提高调试效率。 调试中遇到的各种异常现象往往是预料不到的, 此时不应“苦思具想”,而应动手 确定疑点, 通过修改程序来证实它或绕过它。 调试正确后, 认真整理源程序及其 注释,印出带有完整注释的且格式良好的源程序清单和结果。5. 总结和整理实习报告 注意:在实践中,有时候可能想检验自己的想法,这时可以上机尝试一下, 看看自己的思路是否可行。
10、三、课程设计内容参考题目:1 二叉树的应用哈夫曼树(电文的编码和译码)2 运动会分数统计3 学生成绩管理系统4 简易客房管理系统5 其他类型管理系统的题目 人事档案管理系统图书管理系统进销存货物管理系统 职工工资管理系统6. 稀疏矩阵运算器7. 长整数的四则运算8. 校园导游咨询10停车场管理11其余题目:(必须事先 得到指导老师允许 )程序经常需要输入输出, 所以可以在考虑采用什么样的数据结构时, 考虑如 何进行数据的输入和输出,可以把输入和输出分别实现为一个函数。实现了输 入输出功能,也为以后程序的调试和测试带来方便。四、课程设计报告课程设计报告统一用A4纸打印,并装订成册,封面格式参见所
11、附文档,正文 格式要求参见附录 1。课程设计报告内容具体要求如下:1. 课程设计实验报告内容总体要求1)给出问题分析过程根据自身对课程的掌握程度, 充分分析和理解问题的设计要求, 给出较为明 确、简洁的设计思路。2)给出数据结构描述根据要解决的问题, 考虑各种可能的数据结构类型, 从中选择一种较为有效 的方法,并写出采用的数据结构描述及其功用。3)给出相应算法设计根据问题分析的结果, 并确立好所选的数据结构描述, 然后写出合理的算法 设计过程,特别要注意所使用函数间的调用与被调用关系。4)给出详细程序清单根据算法的内容,用计算机语言(如C语言)编写完整的程序,并将程序在 机器上反复调试, 直到
12、结果正确为止, 程序要求附上详细注解。 特别要注意算法 与程序的区别以及上下层模块间的接口处理。5)给出程序运行结果利用典型的测试用例, 将数据输入到程序执行过程中去, 记下执行过程中屏 幕显示情况与相应结果。2. 具体内容要求:报告包括以下 7个内容:1)以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确 规定:(1)输入的形式和输入值的范围;(2)输出的形式;(3)程序所能达到的功能;(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结 果。2)概要设计 说明本程序中用到的所有抽象数据类型的定义、 主程序的流程以及各程序模 块之间的层次 (调用 )关系。3)详细
13、设计 实现概要设计中定义的所有数据类型, 对每个操作只需要写出伪码算法; 对 主程序和其他模块也都需要写出伪码算法 (伪码算法达到的详细程度建议为:按 照伪码算法可以在计算机键盘直接输入高级程序设计语言程序 );画出函数和过 程的调用关系图。4)调试分析内容包括:(1)调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和 分析;(2)算法的时空分析 (包括基本操作和其他算法的时间复杂度和空间复杂度 的分析 )(3)改进设想;(4)经验和体会等。5)用户使用说明 说明如何使用你编写的程序,详细列出每一步的操作步骤。6)测试结果列出你的测试结果, 包括输入和输出。 这里的测试数据应该完整和
14、严格, 最 好多于需求分析中所列。7)附录 带注释的源程序,如果提交程序,可以只列出程序文件名的清单。五、提交材料课程设计完成后的下一周的周一上午,也就是 2012年 6月 28-29日,提交 如下资料并答辩:1 课程设计报告。课程设计报告总体上主要包括以下几个部分:1)封面2)考核方式与评分标准 (见六 )3)目录4)课程设计报告正文5)使用说明2.完整的软件系统最终必须向指导老师提交完整的程序源代码(.C和.cpp以及.h为后缀的文件)、数据文件以及使用说明文件等。源代码文件要特别注意编程规范、代码风格,关键 代码需有合理的注释,不含任何无用代码;数据文件内要求有一定数量的“真实” 数据(
15、如对于记录文件,需要有 8 条以上记录); 使用说明文件的第一行,需要给 出设计者的学号、姓名,后面为其它说明。课程设计项目源代码和相关数据, 放到一个目录下, 目录名以学号加姓名方式命名。六、考核方式与评分标准(下页单独打印)综合实践1评分表班级姓名指导教师题目评分标准评分标准分数权重评分的依据得分AC选题10选题符合大纲要求,题目较新颖,工作量大选题基本符合大纲要 求,工作量适中工作态度10态度端正,能主动认真 完成各个环节的工作, 不迟到早退,出勤好。能够完成各环节基本 工作,出勤较好。存储结构、算 法描述20能正确选择存储结构, 定义准确,算法流程图 或类C语言描述的算 法准确无误能正
16、确选择存储结构, 算法流程图或类C语 言描述的算法基本准 确独立解决问题 的能力10具有独立分析、解决问 题能力,有一定的创造 性,能够独立完成软件 的设计与调试工作,程 序结构清晰,逻辑严 谨,功能完善。有一定的分析、解决冋 题能力。能够在老师指 导下完成软件的设计 与调试工作,程序功能 较完善。答辨问题回答20能准确回答老师提出的问题能基本准确回答老师 提出的问题程序运行情况10程序运行正确、界面清 晰,测试数据设计合 理。程序运行正确、界面较 清晰,能给出合适的测 试数据。综合实践报告20格式规范,层次清晰, 设计思想明确,解决问 题方法合理,体会深 刻。格式较规范,设计思想 基本明确,
17、解决问题方 法较合理。总分指导教师(签字):注:介于A和C之间为B级,低于C为D级和E级。按各项指标打分后,总分 在90100为优,8089为良,7079为中,6069为及格,60分以下不及格。七、参考文献1 严蔚敏,吴伟民数据结构(C语言版)北京:清华大学出版社,1997.42 严蔚敏 , 吴伟民 , 米宁. 数据结构题集( C 语言版) . 北京: 清华大学出版社 ,1999.2附录 1 齐齐哈尔大学数据结构 课程设计说明书(报告)撰写规范(一)正文:汉字应采用简化汉字总表规定的简化字,并严格执行汉 字的规范。 所有文字字面清晰, 不得涂改。要求文字通顺, 语言流畅, 无错别字, 不得使用
18、铅笔书写。正文内容层次序号为:1、1.1、。 正文内容一般为:1 、选题背景: 说明本课题应解决的主要问题及应达到的技术要求;简述本设计 的指导思想。2、方案论证: 说明设计原理并进行方案选择,阐明为什么要选择这个设计方案 以及所采用方案的特点。3、过程(设计或实验)论述 :对设计工作的详细表述。要求层次分明、表达确 切。4、结果分析 :对研究过程中所获得的主要的数据、现象进行定性或定量分析, 得出结论和推论。5、结论或总结 :对整个研究工作进行归纳和综合。(二)表格说明书(报告)的表格可以统一编序 (如:表 15),也可以逐章单独编序 (如: 表 2.5 ),采用哪种方式应和插图及公式的编序
19、方式统一。表序必须连续,不得 重复或跳跃。表格的结构应简洁。表格中各栏都应标注量和相应的单位。 表格内数字须上下对齐, 相邻栏内的 数值相同时,不能用同上 、同左和其它类似用词,应一一重新标注。表序和表题置于表格上方中间位置, 无表题的表序置于表格的左上方或右上 方(同一篇论文位置应一致) 。(三)图插图要精选。图序可以连续编序(如 图 52),也可以逐章单独编序(如 图 6.8 ),采用哪种方式应与表格、公式的编序方式统一,图序必须连续,不得重复 或跳跃。仅有一图时,在图题前加附图字样。课程设计中的插图以及图中文字符号应打印,无法打印时一律用钢笔绘制和标出标出由若干个分图组成的插图,分图用
20、a,b,c,图序和图题置于图下方中间位置。(四)公式 说明书中重要的或者后文中须重新提及的公式应注序号并加圆括号, 序号一 律用阿拉伯数字连续编序(如: (45)或逐章编序(如( 6.10 ),序号排在版面 右侧,且距右边距离相等。公式与序号之间不加虚线。(五)数字用法 公历世纪、年代、年、月、日、时间和各种计数、计量,均用阿拉伯数字。年份不能简写,如 1999 年不能写成 99 年。数值的有效数字应全部写出,如: 0.50:2.00 不能写作 0.5:2 。(六)软件 软件流程图和原程序清单要按软件文档格式附在说明书 (报告) 后面,特殊 情况可在成绩评定时展示,不附在说明书(报告)内。(七
21、)工程图按国标规定装订图幅小于或等于 3#图幅时应装订在说明书(报告)内,大于3#图幅时按国标规定单独装订作为附图。(八)计量单位的定义和使用方法按国家计量局规定执行。(九)排版与封面要求1、排版用 word 排版,具体格式如下:版面要求:页边距:上 2.5cm,下2.5cm,左3cm,右2.5cm;字 体:正文宋体、小四,章节标题宋体、小三;行 距:固定值 20;页 码:居中、底部。2、封面附录 2 Visual C+ 6.0 简介考虑到目前大多数初学者使用的都是PC机和Windows操作系统,我们以 Visual C+作为推荐的C+编译器。1. Visual C+集成开发环境Visual
22、C+软件包包含了许多独立的组件,如编辑器、编译器、调试器,以及各种各样为开发Windows环境下的C/C+程序而设计的工具。其中最重要的是一个名为DeveloperStudio的集成开发环境。Developer Studio把所有的Visual C+工具结合在一起, 集成为一个 由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,通过该集成环境,程序员可 以观察和控制整个开发进程。1显示了一个典型的Developer Studio主窗口。它分为几个部分:窗口顶部是菜单和工具栏,左面的一个子窗口是工作区窗口,工作区的右面是编辑子窗口。最下面是输出子窗口。值得注意的是,上述各种部件,包括子窗口
23、、菜单栏和工具栏的位置不是一成不变的,可以根据个人的喜好重新安排。图 1 典型的 Developer Studio 窗口(1)菜单和工具栏Developer Studio中有一个 Menu Bar (菜单栏,通常停靠在开发环境窗口的顶部),其中的菜单项有 File (文件处理)、Edit (编辑功能)、View (查看)、Insert (插入)、Project (项目管理)、Built (编译)、Tools (工具)、Window (窗口)和 Help (帮助)等,分别对 应一个下拉子菜单。除菜单栏外,开发环境中还有几个工具栏,一般均放在开发环境的顶部,菜单栏的下方,如Standard (标准
24、工具栏,用于文件管理、编辑和查看等),Wizard Bar (向导工具栏)和Build Min iBar (建立工具栏,用于编译、连接等)。工具栏上有常用命令的图标。一般来说, 工具栏上的命令在菜单中均有对应选项,但工具栏使用更方便, 只要用鼠标左键点击工具栏中的相应图标即可调用相应的功能。开发环境的各种菜单栏和工具栏均为停靠式,可以用鼠标拖动改变它们的位置,除此之外,Developer Studio的所有部分几乎都可响应鼠标右键单击而弹出一个上下文相关菜单。 甚至当Developer Studio没有打开窗口时,在空白区右击鼠标也会弹出一个菜单,其中含有 使窗口可见和调整工具栏是否可见的命令
25、。在工具栏上除标题栏外的任何地方右击鼠标,同样可以弹出菜单。在使用集成环境工作时试一试鼠标右键,还会发现许多其他的快捷方式。(2)Developer Studio 窗口除了各种对话框外,Developer Studio显示两种类型的窗口,即文档窗口和停靠窗口。文档窗口是一般的带边框子窗口,其中含有源代码文本或图形文档。Window子菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。所有其他的Developer Studio窗口,包括工具栏和菜单栏,都是停靠式窗口。开发环境有两个主要的停靠窗 口Workspace (工作区)窗口和 Output (输出)窗口。另外还有一个Debug
26、ger (调试器)停靠窗口,只在调试过程中显示。图2新建一个项目停靠窗口可以固定在 Developer Studio用户区的顶端、底端或侧面,或者浮动在屏幕上 任何地方。停靠窗口,不论是浮动着的或是固定着的,总是出现在文档窗口的上面。这样, 就保证了当焦点从一个窗口移到另一个时,浮动的工具栏一直都是可见的。但这也意味着, 文档窗口偶尔会看起来像消失了似的。例如,如果正在文本编辑器中编辑源代码,此时打开一个占据整个Developer Studio用户区的停靠窗口,源代码文档就会消失,它隐藏在新窗口 之下。解决方法是要么关了覆盖的窗口,要么把它拖到不挡眼的地方去。(3)菜单选项、快捷键和工具栏De
27、veloper Studio的许多功能都有不只一种调用方法。例如,执行一个编译、连接成功 的可执行文件,既可通过选择菜单选项Build/Execute.exe完成,也可以直接使用快捷键Ctrl+F5,还可以用鼠标点击 Build MiniBar (编译工具栏)上的相应图标来完成。一般来说, 越是常用的功能,可以调用的方法越多、越方便。(4)用Developer Studio编写和调试简单 C+程序在Visual C+中,C+的程序是存放到以后缀名为.CPP的文件中,系统是通过Projects(工程项目)来管理这些文件的。 所以要编写和运行 C+程序,首先必须建立一个 Projects。下面以一
28、个简单的例子来说明如何在Visual集成开发环境编写和调试简单C+程序的步骤:(1)首先运行并打开 Developer Studio系统,选择菜单选项中的Projects选项卡。从卡中选择 Win 32 Con sole Applicati on (Win 32 控制台应用程序)。(2) 为应用项目取一个名字,填写在选项卡右上方的Project Name (项目名称)处,并检查下面的Location (位置)中列出的路径是否正确。注意使下面的单选框选择Create NewWorkspace (即要建立新工作区),然后按下0K按钮。如图2。(3) 这时会出现 Application Wizard
29、 (应用程序生成向导),提问要生成的项目类型。 选择An Empty Project (空项目),按下Finish (结束)键,会弹出一个窗口,显示新项目的 有关信息。检查无误后按 OK按钮。如图3及4pcoNEatam.* EmprcaHKata BpfArMwi.* N mr1 arill literulllW |Jl4*IA图3确定项目类型g I CUM图4项目相关信息(4)这时屏上会显示一个空项目,并生成一个工作区文件(后缀为.DSW)。再次选择File菜单的New选项,并选择 Files选项卡。从卡中选择 C+ Source源程序)。(5) 为程序取一个名字 (可与项目名相同,也可以
30、不同)填写在选项卡右边的 File处, 然后按下OK按钮。如图5图5建立文件(6)这时开发环境右侧的文件编辑窗口中出现了一个空文件,在此可以键入源程序代 码。如图6(7)程序输入后,应仔细检查一遍,然后就可以编译了。(8) 选择菜单选项 Build/Compile gravitation.cpp (其中gravitation为文件名)编译源 程序。稍候片刻,会在Output窗口(通常在屏幕下方)中显示编译结果,如出错信息等(编 译错误的处理在下一节介绍)。如果程序正确,编译结果会生成一个目标文件(后缀为.OBJ)。(9)目标文件还需通过连接才能生成可执行文件。选择菜单选项Build/Build
31、gravitation.exe连接目标文件。结果显示在Output窗口中。连接的结果为可执行文件(后缀为.exe)。以上两步也可以并为一步,即直接使用菜单选项Build/Build gravitation.exe 。-* 图6代码的编辑界面生成的可执行文件可以单独运行,也可以在开发环境中直接运行,后一种方法在程序需要反复调试时更加方便。在集成开发环境中直接运行程序的方法是选用菜单选项 Build/Excute.exe。程序运行结果如图7图7程序运行结果2. Visual C+帮助功能MSDN (Microsoft Developer Network)是使用 Microsoft 开发工具或是以
32、Windows 和 In ternet为开发平台的开发人员的基本参考资料。通过MSDN所提供的Help资料,可以对Visuan C+和Windows的工作机制有更全面的了解,可以帮助解决开发者遇到的大多数问 题。由于MSDN库为包括 Visual C+在内的所有的 Visual studio 6.0开发环境工具提供在线帮助,所以它在系统中作为一个应用程序独立运行,并没有同任何单个开发环境结合在一起。要从 Visual C+中访问 MSDN,种方法是从 Visual C+的Help菜单中选择 Contents、 Search或Index命令,另一种方法是在 Visual C+开发环境中直接按下F
33、1键,系统都会自动运行MSDN帮助程序。MSDN界面分为三个窗格,顶端的窗格包含有工具栏。左侧的窗格包含有各种信息定位方法,通过单击列表中的主题,即可浏览或查找所需的各种信息;右侧的窗格则显示所选择的主题的具体内容,这些内容是以超文本形式存在的,其中的相关内容可以通过超文本链接连接到其他的相关主题。图8 MSDN界面左边窗口中有四个选项卡:目录、索引、搜索和书签,用于提供四种不同的在线帮助浏览方式。(1) 目录。单击目录选项卡可浏览主题的标题。该目录是依照标题和副标题的排列方 式形成一个包含了 MSDN中所有可用信息的可扩充目录表。双击列表中的标题,就可在 MSDN窗口的右栏中打开该文章。(2
34、) 索弓|。单击索引选项卡可查看索引项的列表,然后可通过该栏左边的滚动条翻阅整个索引列表。也可通过在对话框顶部的编辑框中键人关键字来完成查找功能。找到所要的索引条目后双击,如果该条目仅对应一篇文章,MSDN就会立刻在其窗口右栏显示其内容;否则会出现已找到的主题对话框,其中列出了该条目可能指向的所有文章,这时可通过双击列表中所需要主题,打开相应的一篇文章。(3) 搜索。单击搜索选项卡可查找到包含在某个主题中的所有词组或短语。它是一个全文本搜索引擎,允许寻找包含指定词或短语的主题。和MSDN的索引选项比起来,全文本搜索所能覆盖范围更宽,它可以提供更多的文章以供选择。(4) 书签。单击书签选项卡可创
35、建或访问书签的列表。用户只需简单地标记书签中的某些主题,即可重新访问它们。3. Developer Studio 文本编辑器Developer Studio提供了一个优秀的程序文本编辑器,它使应用程序的编辑修改和调试工作混为一体,非常方便。该文本编辑器不仅可编辑程序文本,还可编辑一般的文本文件和HTML Page。启动文本编辑器非常简单,只要建立一个新文本文件,或打开一个已存在的文本文件, 文本编辑器就会自动出现。在文本编辑器中,用一闪烁的短竖线表示编辑位置,通过键盘输入的文字在此位置插入 文本。用鼠标左键点击文本中的某个字符可以改变编辑位置。文本编辑器的基本操作包括:T :光标向后移动一个字
36、符。J:光标向前移动一个字符。T:光标向上移动一行。J:光标向下移动一行。Home :光标移动到行首。End:光标移动到行尾。Ctrl+Home: 光标移动到文件头。Ctrl+End: 光标移动到文件尾。PgUp :光标向上滚动一屏。PgDn: 光标向下滚动一屏。Ctrl+Y :删除行。Del :删除光标右边字符。Backspace:删除光标左边字符。 Ins:插入/改写方式切换。Developer Studio 的 Edit 子菜单还提供了一批高级编辑功能,大致可分为以下几类:(1)Un do和Redo,用于反悔对文本文件所做的修改(2)剪贴Cut、复制Copy、粘贴Paste和删除Dele
37、te( 3)查找 Find 和替换 Replace( 4)书签( 5)高级选项( 6)断点设置( 7)编程指导信息4 Developer Studio 文件处理功能Developer Studio 提供了很完整的文件处理功能,可处理程序文本文件、项目文件、 WORD 文档和 EXCEL 文档等。Developer Studio 的 File 子菜单共有 14 项,分为 6 组,组与组之间用横线隔开。第 1 组用于建立、打开和关闭文件处理的对象,包括项目、文件、工作区和其他文档:(1)建立新对象(New,快捷键为CTRL+N )。选择该菜单项,可打开一个有若干卡 片的对话框,各卡片的内容分别为:
38、项目(Projects):用于建立项目。 项目即要开发的应用程序,Developer Studio可用于开发各种类型的应用程序,如控制台应用程序( Win32 Console Application )、 32 位 Windows 应用程序( Win32 Application )和 MFC 应用向导程序( MFC AppWizard )等。对于不同类 型的项目,建立的具体文件也不同。文件(Files):用于建立各种文件,包括源程序文件( Source File,文件名后缀为cpp )、 头文件(Header File,文件名后缀为 h)、文本文件(Text File,文件名后缀为txt )、
39、位图文 件(Bitmap File,文件名后缀为 bmp)等。工作区(Workspaces):每个正在开发的项目要占用一个工作区。一般来说,在建立项 目的同时即为其建立了工作区。但也可用本选项建立一个空的工作区。其他文档(Other Documents):用于建立一些文档文件,女口 MS Excel工作表,MS Excel图表, MS PowerPoint 演示文稿和 MS Word 排版文档等。(2) 打开已有对象(Open,快捷键为 CTRL+O )。用于打开一个已存在的项目文 件或文档。选择该菜单项,会弹出一个文件路径对话框,用于确定要打开的内容。(3) 关闭文件(Close)。用于关闭
40、当前打开并激活的文件。第 2 组用于处理工作区。包括:(1) 打开工作区(Open Workspace)。用于一个已存在的工作区。工作区的有关参数(包括应用程序的结构体系,特别是其类、资源、文件和帮助信息等的参数)存放在后缀名为 dsw 和 mdp 的文件中。(2) 保存工作区(Save Workspace) o用于保存当前打开的工作区文件。(3) 关闭工作区(Close Workspace) o用于关闭当前打开的工作区文件。第 3 组用于处理当前文件,包括:(1) 保存文件(Save,快捷键为CTRL+S )。用于保存当前正在使用的文件。(2) 另存文件(Save As)。将当前文件换一个名
41、字保存,原来的文件内容不变。(3) 保存所有文件(Save All)。保存当前打开的所有文件。第 4 组用于打印当前文件,包括:(1) 页面设置(Page Setup)。设置打印页面格式,为打印当前文件作准备。(2) 打印当前文件(Print 快捷键为CTRL+P )。用于打印当前文件。第 5 组用于快速打开或切换文件和工作区。包括:(1) 最近使用过的文件 (Recent Files)。用于直接打开最近几次在Developer Studio中 使用过的文件,可在弹出的下级菜单中直接选取。(2) 最近使用过的工作区( Recent Workspaces) o用于直接打开最近几次在Develop
42、er Studio 中打开过的工作区,可在弹出的下级菜单中直接选取。最后 1 组只有一个菜单项:(1)退出Developer Studio ( Exit )。选择该菜单项可以关闭当前打开的所有对象,包括 项目、工作区和文件等,退出 Developer Studio ,返回 Windows 操作系统界面。5Visual C+ 程序的编译、连接和运行用于编译、连接和运行应用程序的功能集中在创建(Build )子菜单中,但其中多数功能也可通过快捷键和工具条调用。Developer Studio 的 Build 子菜单共有 11 项,分为 4 组,组与组之间用横线隔开。 第1组包括编译、连接等功能:编
43、译当前项目(Compile,快捷键为 Ctrl+F7 )。用于将源程序编译为目标代码。编译结 果及编译错误信息在输出窗口( Output) 显示。编译、连接当前项目(Build,快捷键为 F7)。在对当前项目的源程序编译之后,还进 行连接( Link )操作,即将目标代码与系统或用户类库连接并生成可执行的程序(或动态连 接库 .DLL 等)。重新编译、连接当前项目(Rebuild All )。功能与Build基本相同,只是无论是否修改 过,对所有文件都重新进行编译和连接工作。以批处理方式编译、连接当前项目(Batch Build )。功能与Build基本相同,只是同时产生调试版和发行版执行程序
44、。清除临时文件(Clean)。用于清除上一次编译、连接时产生的临时文件和输出文件,以整理程序目录。第2组用于调试程序, 包括开始调试(Start Debug)和远程调试链接 (Debugger Remote Connect)。第3组用于执行当前项目的可执行程序(Execute,快捷键为Ctrl+F5 )。第 4 组用于设置编译和连接工作的参数。包括:设置项目的版本类型(Set Active Configuration)。Developer Studio生成的可执行文件有两种版本,一种是调试版本( Win32 Debug) ,内含调试代码,体积稍大,主要在编程调 试过程中使用。另一种是发放版本(
45、Win32 Release),其中不包含调试代码,体积小,用于在程序调试结束后提交用户。管理项目版本( Configuration 。)。用于管理项目的调试版本和发放版本。Profile 。设置、 Profile 程序和显示 Profile 数据。6查看和修改编译、连接错误刚编写好的程序含有错误是正常的, 即使是熟练的专业程序员也很难一次就编写出完全 没有错误的源程序来。 实际上, 重要的不是程序中是否有错误, 而是怎样将这些错误找出来 并改正之。一般来说,一段源程序从输入编辑到通过编译,往往要重复若干次编译-修改 -再编译的过程。如果在编译的过程中发现了错误,则进入编辑查错状态。这时在屏幕下
46、方的Output窗口中会显示出错误的类型、错误发生的位置以及错误的原因。错误信息的格式为:(行) : 错误有两种,一种是 Error,表示这是一个严重错误,非改不可。另一种是Warning ,表示源程序这里有可能是错误的, 也有可能不是错误,编译程序自己也拿不准。一般来说,如 果只出现警告信息, 还是可以继续连接、 运行程序, 建议在出现编译警告时最好还是仔细检 查一下,设法消除引起警告的原因。错误发生的位置包括源程序的路径和文件名以及错误所在行。必需说明的是C+编译程序的 “智力 ”并不十分高,虽然能够查出错误, 但对错误的说明可能并不十分准确,而且一 个实际错误往往会引出若干条错误说明,
47、使人不容易摸清到底错在什么地方。 错误的原因其 实可能很简单, 例如少写了一个括号、 分号或拼错了一个单词, 都可能引起一连串的错误提 示。真正的错误之处也可能在此之前的某个语句。 而且指出的错误条数可能偏多, 常常是由 于一处出错而引发了一系列错误提示信息。用鼠标双击一条错误信息可使文本编辑器作出反应, 其左框上显示一个箭头指出对应的 出错语句,以便修改源程序。在连接阶段也可能出现一些错误提示。 与编译错误提示信息不同的是连接错误不指出错 误发生的详细位置, 这是因为连接的对象是目标程序, 和源程序格式有很大差别, 不易确定 错误的准确位置。 连接阶段出现的错误一般比较少, 大多数是因为在程
48、序中调用了某个函数, 而连接程序却找不到该函数的定义。 这时最有可能的是函数名字拼写错误。 另外, 如果程序 的规模较大, 需要分为若干个源程序文件分别编译然后连接, 则也可能出现全局变量重复定 义或找不到等错误现象。在找到连接错误的原因并改正以后, 一定要重新编译后才能再次连接。 否则, 虽然源程 序已经修改, 但进行连接的目标程序还是以前有错误的目标程序, 再次连接仍然会产生同样 的错误。7运行错误的判断与调试通常所说的运行错误有两种 , 一种是逻辑错误 , 即程序的实际运行结果和编程者对程序 结果的期望不符 ; 另一种仍是程序设计上的错误 , 但是躲过了编译程序和连接程序的检查 , 通常
49、表现为突然死机、自行热启动或者输出信息混乱。相对于编译和连接错误来说 ,运行错误的查找和判断更为困难。编译和连接错误可以由编译程序和连接程序检查,而运行错误就不同了 ,很少或根本没有提示信息,只能靠程序员的经验来判断错误的性质和位置。下面简单地介绍一些常见运行错误的调试方法。逻辑错误:一种逻辑错误是由于在设计程序的算法时考虑欠周引起的,例如对边界和极端条件未作处理等。例如以下循环 :while(co unt)count = count 1;程序员的构思是进行 count次循环。但是,如果count中原来的值为负数时,此循环就成 了一个死循环”而导致无法停机,显然是错误的。但是编译程序无法查出这
50、类错误,只有到了程序运行之后才有可能发现。再如,在利用海伦公式计算三角型面积时,首先应该确认给出的三条边长确实可以构成一个三角形,否则计算结果是没有意义的;而在编写求解一般实系数一元二次方程的程序时,必须在程序中设计处理复根情况的程序段,以免对负数求平方根。另一种常见的逻辑错误是由于程序输入时的打字错误造成的,例如将判断条件中的“ =误输入为“”将相等判断“=误输入为赋值号 “=等。含有这类错误的程序在运行时出 现的现象多种多样,而且通常很难与错误的原因联系起来。数组下标越界错误:即使用了并不存在的数组元素。例如有程序段int a5;for(i nt i=1; i=5; i+)ai = 0;由
51、于5并不存在,而上述程序段试图将数据存放到一个并不存在的数组元素中,这会 引起包括死机在内的严重运行错误。类似错误还有指针和动态存储分配引起的一些运行错 误。&基本调试手段程序的基本调试手段有以下几种:标准数据检验、程序跟踪、边界检查和简化循环次数 等。标准数据检验:在程序编译、连接通过以后,就进入了运行调试阶段。运行调试的第一 步就是用若干组已知结果的标准数据对程序进行检验。标准数据的选择非常重要,一是要有代表性,接近实际数据;二是要比较简洁,容易对其结果的正确性进行分析。另外,对重要的临界数据也必须进行检验。程序跟踪:对于比较复杂的大型程序来说,上述标准数据检验一次就完全通过的可能性很小。
52、通常程序中总是存在许多各种各样的错误,还需要对程序进行细致的调试工作。程序跟踪则是最重要的调试手段。程序跟踪的基本原理是让程序一句一句地执行,通过观察和分析程序执行的过程中数据和程序执行流程的变化来查找错误。就Visual C+而言,程序跟踪可以采用两种方法,一种是直接利用Developer Studio中的分步执行、断点设置、变量内容显示等功能对程序进行跟踪,这种方法在后面的编程与调试部分介绍;另一种是传统的方法,通过在程序中直接设置断点、打印重要变量内容等来掌握程序的运行情况。例如,可以 在程序中的关键部位插入这样的代码段:/调试代码段cout 100 endl;cout Variable
53、 count =“ count “, x =“ x nd S um =“ sum e_getch ( ) ;/ 调试代码段结束其中的变量可以根据程序的实际情况进行设计。使用 _getch ( ) 函数的目的是要程序在 执行到这一行时暂时停下来 , 从而可以看清楚调试代码段所显示的信息, 然后选择是否让程 序继续执行,该函数的原型在头文件 conio.h 中。如果到这一断点时尚未发现错误 , 则可以 按下任何一个键让程序继续运行到下一个断点 ; 否则可以使用组合键 Ctrl+Break 键来中断程 序, 再使用编辑器对程序进行修改。在程序中的所有的问题都解决了之后 , 再将程序中所有 的调试代码段统统删去。边界检查 : 在设计检查用的数据时 , 要重点检查边界和特殊情况。例如 , 对于循环 : while(count a b c;这样的程序时,为了突出测试该段程序对某组输入数据(如a = 1, b = 2, c= 3 )的响应情况 , 同时避免每次输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 顶撞领导检讨书范文
- 投标财务状况承诺书
- 队长工作计划5篇
- 施工组织设计-宜川至瓦子街高速公路QL2合同段施工组织设计
- DB12-T 602-2023 城市轨道交通运营安全管理规范
- 甘肃省定西市(2024年-2025年小学五年级语文)统编版期中考试((上下)学期)试卷及答案
- 四川省凉山彝族自治州(2024年-2025年小学五年级语文)人教版小升初模拟(下学期)试卷及答案
- 2023年高效沼气脱硫设备投资申请报告
- 2024年医学诊断服务项目资金筹措计划书代可行性研究报告
- 高二体育课与健康教案集
- 四川省成都市2024-2025学年八年级上学期期中考试英语试卷(四)
- 大学生就业指导(第2版)教学课件10
- 2024-2025学年高一上学期期中考试动员主题班会课件
- 2022-2023学年北京市海淀区七年级(上)期中数学试卷【含解析】
- 220kV架空送电线路铁塔拆除施工方案
- 金属构件失效分析精简版
- 水闸工作桥计算说明书
- 钢结构夹层施工方案(完整版)
- 科教方案(范本)
- 浅谈针织物线密度的常用测试方法及检测标准
- 包装盒检测报告.doc
评论
0/150
提交评论