数据结构课程设计模板_第1页
数据结构课程设计模板_第2页
数据结构课程设计模板_第3页
数据结构课程设计模板_第4页
数据结构课程设计模板_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论