【程序设计实践】实验报告_2007011801_试验六.doc

【程序设计实践】实验报告_2007011801_试验六.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【程序设计实践】实验报告_2007011801_试验六

实验六 代码调试和代码调整 一、实验目的 1.???掌握C++代码的调试方法和技巧; 2.了解程序性能和代码调整的关系,掌握主要的代码调整策略和方法。 二、实验要求 1.通过实际调试,学习C++代码的调试方法和技巧。 2.通过实际编程,了解程序性能和代码调整的关系,学习主要的代码调整策略和方法。 三、实验内容和结果 1.简单调试 (1)修正语法错误:包括未定义或不合法的标识符,如函数名、变量名和类名等;数据类型或参数类型及个数不匹配等。 程序生成后,在“输出”窗口中双击错误信息项,定位到相应代码;按Ctrl+Shift+F12显示下一个错误,并定位到相应的源代码行。 (2)使用断点: 快捷方式:在欲设断点的代码行按快捷键F9,或在需要设置断点的位置上右击鼠标,在弹出的快捷菜单中选择“断点”——〉“插入断点”。(取消断点:在该代码行按F9,或者在该行右击鼠标,选择“删除断点”) 使用“断点”窗口 选择“调试”——〉“窗口”——〉“断点”——〉选中断点,点击鼠标右键,可以设置断点的“命中次数”(当到达断点位置并且满足条件时,断点被命中。命中次数是指断点被命中的次数) 选择“调试”——〉“窗口”——〉“断点”——〉选中断点,点击鼠标右键,可以设置“条件” 说明:“调试”——〉“窗口”——〉“断点”菜单命令,显示窗口。该窗口列出了程序中用户设置的所有断点。可以在此删除断点或设置断点属性。 (3)控制程序运行 选择“调试”——〉“启动调试”菜单或按快捷键F5,调试器启动后会由于断点而停顿下来,接下来 选择“调试”——〉“逐语句”或按快捷键F11,逐语句执行。 选择“调试”——〉“逐过程”或按快捷键F10,不进入函数调用内部。 在源代码文档窗口中右击鼠标,从弹出的快捷菜单中选择“运行到光标处”,则程序执行到光标所指的代码位置处中断。如果光标位置前有断点,则程序执行首先会在断点处中断。 说明:调试过程中,可以选择“调试”——〉“停止调试”或单击工具栏上的“停止”按钮停止调试或用快捷键Shift+F5。 (4)查看变量的值。 调试器提供一些窗口,来显示各种不同的调试信息。 “自动窗口”和“调用堆栈”在调试启动后自动在开发环境底部显示。 用递归进行阶乘的计算程序如下(尚未调试) #include stdafx.h using namespace System; int Factorial(int number) { if(number==1) { return 1; } else { return number*Factorial(number-1); } } int main(arraySystem::String ^ ^args) { n= Int32::Parse(Console::ReadLine()); fac=Factorial(n); Console::WriteLine(fac); Console::ReadLine(); return 0; } 对上述程序,生成解决方案,在输出窗口中双击错误信息项,定位到相应代码,修改程序;定位到下一个错误的源代码行,修改程序;令编译通过没有错误。 分别用两种方式在fac=Factorial(n);语句前插入断点; 按快捷键F5启动程序; 遇到断点后,按F11逐语句执行程序;在自动窗口中查看number值的变化,以及调用堆栈处看堆栈的情况,直到程序运行结束。观察整个过程。 按快捷键重新F5启动程序; 遇到断点后,按F10,观察程序运行情况。 删除断点后,在源代码文档窗口中右击鼠标,从弹出的快捷菜单中选择“运行到光标处”,观察程序运行情况。 用循环进行阶乘计算 #include stdafx.h using namespace System; int Factorial(int number) { int mResult=1; for(int i=2;i=number;i++) { mResult=mResult*i; } return mResult; } int main(arraySystem::String ^ ^args) { int n,fac; n= Int32::Parse(Console::ReadLine()); fac=Factorial(n); Console::WriteLine(fac); Console::ReadLine(); return 0; } 对上述程序,将断点设置在mResult=mResult*i;语句行,将条件设置为mResult==6。开始运行程序,从界面输入5,观察程序运行情况。 结论:当程序运行结果为m

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档