第1章 计算机程序设计实验的一般步骤
1.1 计算机程序设计实验的目的
C语言程序设计是一门实践性很强的课程,该课程的学习有其自身的特点,学习者必须通过大量的编程训练,在实践中掌握程序设计语言,培养程序设计的基本能力,并逐步理解和掌握程序设计的思想和方法。具体的说,通过上机实践,应该达到以下几点要求:
1.使学习者能很好地掌握一种程序设计开发环境的基本操作方法(例如(Visual C++6.0),掌握应用程序开发的一般步骤。
2.在程序设计和调试程序的过程中,可以帮助学习者进一步理解教材中各章节的主要知识点,特别是一些语法规则的理解和运用,程序设计中的常用算法和构造及应用,也就是所谓“在编程中学习编程”。
3.通过上机实践,提高程序分析、程序设计和程序调试的能力。程序调试是一个程序员最基本的技能,不会调试程序的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。通过不断的积累经验,摸索各种比较常用的技巧,可以提高编程的效率和程序代码的质量。
下面介绍计算机程序设计实验的一般步骤:
1.2 计算机程序设计实验的准备
上机前需要做好如下准备工作,以提高上机编程的效率。
(1) 在计算机上安装一种程序设计开发工具,并学会基本的操作方法。 (2) 复习与本次实验相关的教学内容和主要知识点。
(3) 准备好编程题程序流程图和全部源程序代码,并且先进行人工检查。 (4) 对程序中有疑问的地方做出标记,充分估计程序运行中可能出现的问题,以便在程序调试过程中给予关注。
(5)准备好运行和调试程序所需的数据。
1.3 计算机程序设计实验的步骤
(1)运行程序设计开发工具,进入程序设计开发环境。 (2)新建一个文件,输入准备好的程序。
(3)不要立即进行编译和连接,应该首先仔细检查刚刚输入的程序,如有错误及时改正,保存文件后再进行编译和连接。
(4)如果在编译和连接的过程中发现错误,根据系统的提示找出出错语句的位置和原因,改正后再进行编译和连接。直到成功为止。
(5)运行程序,如果运行结果不正确,修改程序中的内容,直到结果正确为止。 (6)保存源程序和相关资源。
(7)实验后,应提交实验报告,主要内容应包括程序清单,调试数据和运行结果,还应该包括对运行结果的分析和评价等内容。
1
第2章 Visual C++ 6.0上机指南 2.1 Visual C++ 6.0概述
Visual C++6.0是微软公司推出的目前使用极为广泛的基于Windows平台的可视化集成开发环境,它和Visual Basic、Visual Foxpro、Visual J++等其它软件构成了Visual Studio(又名Developer Studio)程序设计软件包。Developer Studio是一个通用的应用程序集成开发环境,包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Visual Studio,可以完成创建、调试、修改应用程序等的各种操作。
VC++6.0提供面向对象技术的支持,它能够帮助使用MFC库的用户自动生成一个具有图形界面的应用程序框架。用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。
VC++6.0除了包含文本编辑器,C/C++混合编译器,连接器和调试器外,还提供了功能强大的资源编辑器和图形编辑器,利用“所见即所得”的方式完成程序界面的设计,大大减轻程序设计的劳动强度,提高程序设计的效率。
VC++的功能强大,用途广泛,不仅可以编写普通的应用程序,还能很好地进行系统软件设计及通信软件的开发。
2.2 使用Visual C++ 6.0建立C语言应用程序
利用VC++6.0提供的一种控制台操作方式,可以建立C语言应用程序, Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们将对使用Visual C++ 6.0编写简单的C语言应用程序作一个初步的介绍。
1.安装和启动
运行Visual Studio软件中的setup.exe程序,选择安装Visual C++ 6.0,然后按照安装程序的指导完成安装过程。
安装完成后,在开始菜单的程序选单中有Microsoft Visual Studio 6.0图标,选择其中的Microsoft Visual C++ 6.0即可运行(也可在Window桌面上建立一个快捷方式,以后双击即可运行)。
2.创建工程项目
用Visual C++6.0系统建立C语言应用程序,首先要创建一个工程项目(project),用来存放C程序的所有信息。创建一个工程项目的操作步骤如下:
(1)进入Visual C++6.0环境后,选择主菜单“文件(File)”中的“新建(New)”选项,在弹出的对话框中单击上方的选项卡“工程(Projects)”,选择“Win32 Console Application”工程类型,在“工程(Project name)”一栏中填写工程名,例如Myexam1,在“位置(Location)”一栏中填写工程路径(目录)例如:D:\\ MyProject,见图2-1,然后单击“确定(OK)”按钮继续。
2
图2-1 创建工程项目
(2)屏幕上出现如图2-2所示的“Win32 Console Application—Step 1 of 1”对话框后,选择“An empty project”项,然后单击“F完成(Finish)”按钮继续:
图2-2 Win32 Console Application—Step 1 of 1对话框
出现如图2-3所示的“新建工程信息(New Project Information)”对话框后,单击“确定(OK)”按钮完成工程创建。创建的工作区文件为myexam1.dsw和工程
3
项目文件myexam1.dsp。
图2-3 新建工程信息对话框
3. 新建C源程序文件
选择主菜单“工程(Project)”中的“添加工程(Add to Project)新建(New)”选项,为工程添加新的C源文件。
图2-4 加入新的C源程序文件
出现如图2-4所示的“新建”对话框后,选择“文件(File)”选项卡,选定“C++ Source File”项,在“文件(File Name)”栏填入新添加的源文件名,如myexam1.c,“C目录:(Location)”一栏指定文件路径,单击“确定(OK)”按钮完成C源程序的系统新建操作,如图2-4所示。
在文件编辑区输入源程序,然后保存工作区文件,如图2-5所示。 注意:填入C源文件名一定要加上扩展名“.c”,否则系统会为文件添加默认的C++源文件扩展名“.CPP”。
4
图2-5 建立c源程序
4.打开已存在的工程项目,编辑C源程序
进入Visual C++6.0环境后,选择主菜单“打开工作区(Open Workspace)”命令,在“Open Workspace”对话框内找到并选择要打开的工作区文件myexam1.dsw,单击“确定(OK)”按钮,打开工作区。
图2-6 打开myexam1.c源程序
在左侧的工作区窗口,单击下方的 “FileView” 选项卡,选择文件视图显示,打开“Source”文件夹,再打开要编辑的C源程序进行编辑和修改。如图2-6所示。
5.在工程项目中添加已经存在的C源程序文件
5
选择主菜单“打开工作区(Open Workspace)”命令,在“Open Workspace”对话框内找到并选择要打开的工作区文件“myexam.dsw”,单击“确定(OK)”按钮打开工作区。
将已经存在的C源程序文件添加工程到当前打开的工程区文件中,选择主菜单“工程(Project)”中的“添加工程(Add to Project) File”选项,在“Insert File into Project”对话框内找到已经存在的C源程序文件,单击“确定(OK)”按钮完成添加。
6.编译、连接和运行
(1)编译
选择主菜单“编译(Build)”中的“编译(Compile)”命令,或单击工具条上的图标
,系统只编译当前文件而不调用链接器或其它工具。输出(Output)窗
口将显示编译过程中检查出的错误或警告信息,在错误信息处单击鼠标右键或双击鼠标左键,可以使输入焦点跳转到引起错误的源代码处大致位置以进行修改。如图2-7所示,输出窗口中提示“Error C2146: syntax error : missing ';' before identifier 'sum2'”,提示在标识符sum2之前缺少分号,同时在程序窗口标注出出错语句的大致位置。在“sum1=b-a”语句的后面加一个分号后再编译一次即可。 (2)构建
选择主菜单“编译(Build)”中的“构建(Build)”命令,或单击工具条上的图标
,对最后修改过的源文件进行编译和连接。
选择主菜单“编译(Build)”中的“重建全部(Rebuild All)”命令,允许用户编译所有的源文件,而不管它们何时曾经被修改过。
选择主菜单“编译(Build)”中的“批构建(Batch Build)”命令,能单步重新建立多个工程文件,并允许用户指定要建立的项目类型。
程序构建完成后生成的目标文件(.obj),可执行文件(exe)存放在当前工程项目所在文件夹的“Debug” 子文件夹中。
6
图2-7 编译、连接和运行.C源程序
(3)运行
选择主菜单“编译(Build)”中的“执行(Build Execute)”命令,或单击工具条上的图标
,执行程序,将会出现一个新的用户窗口,按照程序输入要求正确
输入数据后,程序即正确执行,用户窗口显示运行的结果。
对于比较简单的程序,可以直接选择该项命令,编译、连接和运行一次完成。
7.调试程序
在编写较长的程序时,能够一次成功而不含有任何错误决非易事,对于程序中的错误,系统提供了易用且有效的调试手段。调试是一个程序员最基本的技能,不会调试的程序员就意味着即使学会了一门语言,却不能编制出任何好的软件。
(1)调试程序环境介绍 ① 进入调试程序环境
选择主菜单“编译(Build)”中的“开始调试(Start Debug)”命令,选择下一级提供的调试命令,或者在菜单区空白处单击鼠标右键,在弹出的菜单中选中“调试(Debug)”项。激活调试工具条,选择需要的调试命令,系统将会进入调试程序界面。同时提供多种窗口监视程序运行,通过单击“调试(Debug)”工具条上的按钮,可以打开/关闭这些窗口,参考图2-8。
② Watch(观察)窗口
单击调试(Debug)工具条上的Watch按钮,就出现一个Watch窗口,
系统支持查看程序运行到当前指令语句时变量、表达式和内存的值。所有这些观察都必须是在断点中断的情况下进行。
观看变量的值最简单,当断点到达时,把光标移动到这个变量上,停留一会就可以看到变量的值。
7
还可以采用系统提供一种被称为Watch的机制来观看变量和表达式的值。在断点中断状态下,在变量上单击右键,选择Quick Watch, 就弹出一个对话框,显示这个变量的值。
在该窗口中输入变量或者表达式,就可以观察变量或者表达式的值。注意:这个表达式不能有副作用,例如“++”和“- -”运算符绝对禁止用于这个表达式中,因为这个运算符将修改变量的值,导致程序的逻辑被破坏。
③ Variables(变量)窗口
单击调试(Debug)工具条上的“Variables“按钮弹出Variables窗口,显示所有当前执行上下文中可见的变量的值。特别是当前指令语句涉及的变量,以红色显示。
④ Memory(内存)
由于指针指向的数组,Watch窗口只能显示第一个元素的值。为了显示数组的后续内容,或者要显示一片内存的内容,可以使用memory功能。单击调试(Debug)工具条上的“memory“按钮,就弹出一个对话框,在其中输入地址,就可以显示该地址指向的内存的内容。
⑤ Registers(寄存器)
单击调试(Debug)工具条上的“Registers”按钮弹出一个对话框,显示当前的所有寄存器的值。
⑥ Call Stack(调用堆栈)
调用堆栈反映了当前断点处函数是被哪些函数按照什么顺序调用的。单击调试(Debug)工具条上的.“Call stack”显示Call Stack对话框。在Call Stack对话框中显示了一个调用系列,最上面的是当前函数,往下依次是调用函数的上级函数。单击这些函数名可以跳到对应的函数中去。.
图2-8 调试程序界面
(2) 单步执行调试程序
系统提供了多种单步执行调试程序的方法:可以通过单击调试(Debug)工具条上的按钮或按快捷键的方式选择多种单步执行命令。
8
① 单步跟踪进入子函数(Step Into,F11),每按一次F11键或按,程序
执行一条无法再进行分解的程序行,如果涉及到子函数,进入子函数内部; ② 单步跟踪跳过子函数(Step Over,F10),每按一次F10键,程序执行一行;Watch窗口可以显示变量名及其当前值,在单步执行的过程中,可以在Watch窗口中加入所需观察的变量,辅助加以进行监视,随时了解变量当前的情况,如果涉及到子函数,不进入子函数内部;
③ 单步跟踪跳出子函数(Step Out,Shift+F11),按键后,程序运行至当前函数的末尾,然后从当前子函数跳到上一级主调函数。
④ 运行到当前光标处
当按下CTRL+F10后。程序运行至当前光标处所在的语句。 表2-1 常用调试命令一览表 菜单 命令 Go Step Over Step Into Run to Cursor Step Out Stop Debugging 工具条按钮 快捷键 说 明 继续运行,直到断点处中断。 单步,如果涉及到子函数,不进入子函数内部 F5 F10 单步,如果涉及到子函数,进入子函数内部 F11 CTRL+F10 运行到当前光标处。 跳到上一级主调函数 Shift +F11 运行至当前函数的末尾。 F9 Shift+F5 设置/取消 断点 结束程序调试,返回程序编辑环境
图2-9 设置断点调试程序
9
(3)设置断点调试程序
为方便较大规模程序的跟踪,断点是最常用的技巧。断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。调试时,只有设置了断点并使程序回到调试器,才能对程序进行在线调试。参考图2-9。
① 设置断点的方法
可以通过下述方法设置一个断点。首先把光标移动到需要设置断点的代码行上,然后按F9快捷键或者单击“编译”工具条上的按钮
,断点处所在的程序行的左
侧会出现一个红色圆点。参考图2-9和表2-1。 还可以选择主菜单“编辑(Edit)”中的“断点(Breakpoints)”命令,弹出“Breakpoints”对话框,打开后点击“A分隔符在 (Break at)”编辑框的右侧的箭头,选择合适的位置信息。一般情况下,直接选择line xxx就足够了,如果想设置不是当前位置的断点,可以选择Advanced,然后填写函数、行号和可执行文件信息。
系统提供如下多种类型的断点:
条件断点:可以为断点设置一个条件,这样的断点称为条件断点。对于新加的断点,可以单击“C条件(Conditions)”按钮,为断点设置一个表达式。当这个表达式发生改变时,程序就被中断。
数据断点:数据断点只能在“Breakpoints”对话框中设置。选择“Data”选项卡,显示设置数据断点的对话框。在编辑框中输入一个表达式,当这个表达式的值发生变化时,到达数据断点。一般情况下,这个表达式应该由运算符和全局变量构成。
消息断点:VC也支持对Windows消息进行截获。有两种方式进行截获:即窗口消息处理函数和特定消息中断。在“Breakpoints”对话框中选择Messages选项卡,就可以设置消息断点。
② 程序运行到断点
选择主菜单“编译(Build)”中的“开始调试(Start Debug)”命令的下一级的“去(Go)”调试命令,或者单击“编译(Compile)”工具条上的 按钮,程序执行到第一个断点处程序将暂停执行,该断点处所在的程序行的左侧红色圆点上添加一个黄色箭头,此时,用户可方便地进行变量观察。继续执行该命令,程序运行到下一个相邻的断点。参考图2-9。
③ 取消断点
只需在代码处再次按F9或者单击“编译”工具条上的按钮
。也可以打开
“Breakpoints”对话框后,按照界面提示去掉断点。
(4) 结束程序调试,返回程序编辑环境。 选择主菜单“Debug”中的“Stop Debugging”命令,或者单击“调试(Debug)”工具条上的
10
按钮,或者单击Shift+F5键,可结束程序调试,返回程序编辑环境。
8.有关联机帮助
Visual C++6.0提供了详细的帮助信息,用户通过选择“帮助(Help)”菜单下的“帮助目录(Contents)”命令就可以进入帮助系统。在源文件编辑器中把光标定位在一个需要查询的单词处,然后按F1键也可以进入Visual C++6.0的帮助系统。用户要使用帮助必须首先安装MSDN。用户通过Visual C++6.0的帮助系统可以获得几乎所有的Visual C++6.0的技术信息,这也是Visual C++作为一个非常友好的开发环境所具有的特色之一。
11
第3章 Turbo C 2.0上机指南
Turbo C 2.0是Borland公司为PC系列微型计算机研制的C语言程序开发软件包,它集程序编辑、编译、连接、调试、运行于一体,功能齐全,使用方便。可在Turbo C2.0环境下进行全屏幕编辑,利用窗口功能进行编译、连接,调试、运行、环境设置等工作。系统文件占用的磁盘空间不大于3M,对显示器无特殊要求,因此,几乎在所有的微机上都可以使用。Turbo C2.0是早期微型计算机上最流行的C语言程序开发软件之一。
3.1 Turbo C 2.0的安装方法
(1)复制Tc2.0系统文件
利用Windows的下拉菜单中的建立文件夹选项命令中的建立子目录命令在硬盘上建立用户自己的子目录,如TC2.0,然后将装有Turbo C2.0的系统盘的全部内容拷贝到用户自己建立的子目录中,这就完成了Turbo C2.0的安装。
然后,需要进行系统环境的设置,详细操作参考第3.3节。 (2)从网络上下载Tc2.0系统软件
登录某网站,搜索到Tc2.0软件,下载到本机指定的目录即可。
3.2 Turbo C2.0的使用方法
1.
进入Turbo C2.0集成开发环境
如果在Windows操作系统下已经安装好了Turbo C2.0,则只要双击tc.exe文件名或者在DOS的行命令下,执行tc.exe文件就可进入Turbo C2.0的集成环境,屏幕显示出如图3-1所示的主菜单窗口。
主菜单
程序 编辑区
调试信息 显示区
图3-1 Turbo C 2.0用户界面
主菜单窗口共分四大部分,屏幕顶端是一个下拉式主菜单,用来选择集成环境
12
功能键 提示区
的各项主要功能。除了“编辑(Edit)”以外,主菜单的每一项都对应一个子菜单,子菜单的各选项对应于一项具体的操作。
第二部分是编辑程序区,用来编辑C语言的源程序。用户第一次进入Turbo C2.0集成环境,则会在主菜单窗口中显示C语言版本小窗口,在主菜单窗口中按任一键后,可去掉该窗口,以后再次进入Turbo C2.0集成环境时则不会显示了(程序运行的任何时间同时按Shift+F10键均可调出版本信息)。
第三部分是调试信息显示区,显示出错的位置及错误性质。
第四部分在屏幕的最下方,是一个提示行,列出了最常用的几个功能键及其作用。说明如下:
F1-Help联机帮助
F5-Zoom缩放已经激活的窗口
F6-Switch交替激活 编辑/信息 窗口
F7-Trace单步执行程序,可以跟踪到函数内部调用 F8-Step单步执行,不可以跟踪到函数内部 F9-Make编译和连接 F10-Menu激活主菜单项
调用Turbo C2.0中的某项功能可以使用两种方法:一种是通过上述菜单,另一种是直接使用与该项功能对应的功能键。使用菜单也有两种方法:一种是先按下功能键F10,使主菜单项出现光条,用左右移光标键“←”和“→”将光条移至要选用的菜单项上,然后按下回车键调出对应的子菜单,再用上下移光标键“↑”和“↓”在子菜单中选定需要的功能选项后按下回车键即可。此外,也可以直接使用Alt键和主菜单项目的首字母(在主菜单中用大写字母标出)组成的复合键调出主菜单,然后再用前述方法选用子菜单项目。
一些常用功能还可以通过使用功能键调用。例如,程序存盘功能既可以通过菜单调用,也可以通过按下功能键“F2”调用。集成环境中的各种编辑调试功能对应的功能键(如果有的话)可以在相应的菜单条目上查到。几个常用的功能键在屏幕的最下方的提示行中也有提示。 2. 编辑源程序
通过选择主菜单中的“Edit”项即可进入文件编辑状态,根据需要键入和修改源程序。集成环境的编辑命令读者可以参阅Turbo C2.0软件中自带的联机帮助(单击功能键F1调用)。 3.编译源程序
源文件编辑好后,可按F9键对源程序进行编译、连接,并在弹出的窗口上显示有无错误和有几个错误。按任一键后,弹出的窗口消失,屏幕显示源程序,光标停留在出错处,调试信息显示区显示有错误的行和错误的原因。按照此信息修改源程序,再按F9键进行编译,如此反复进行至不出现错误为止。
4.执行程序
按F10键进入主菜单,选择主菜单上“Run”项中的“Run”子菜单项,如果程序需要输入数据,则应在此时输入数据,然后计算机自动继续运行程序,并输出结
13
果。用主菜单上“Run”项中的“User screen”子菜单项查看程序的运行结果(也可以同时按Alt+F5键直接转到用户屏幕窗口),查看完毕按任一键即可返回到编辑状态。
5.退出Turbo C2.0集成开发环境
有两种退出Turbo C2.0集成开发环境的方法:一是同时按下ATL+X两个键退出集成开发环境。要再次进入集成开发环境必须再次执行TC.exe文件。二是选择主菜单“File项”中的“Os Shell”子菜单项退出集成开发环境,此法虽然退回DOS环境,但集成开发环境所占用的存储区并未释放。要返回集成开发环境,键入exit命令即可。
3.3 设置Turbo C 2.0系统运行环境
Turbo C 2.0的安装完成后。需要进行系统环境的设置,指出当前应用程序所在文件夹的路径和系统库文件和头文件所在文件夹的路径。为后面的源程序的编译和连接作好准备。如果Turbo C2.0安装后所在的文件夹路径是c:\\windows\\desktop\c2.0\\,需要完成的设置操作步骤如下:如图3-2所示。
①按F10键进入主菜单,选择主菜单上“Option”项中的“Directories”菜单项(或者按Alt+O组合键,然后再按D键) ,选择路径的设置。
②首先修改系统头文件的路径,选择“Include directories”子菜单项并按回车再将该路径改为:: c:\\windows\\desktop\c2.0\\include按回车键。
③再修改系统库文件的路径,选择“Library directories”子菜单项并按回车将该路径改为:“c:\\windows\\desktop\c2.0\\lib”并按回车键。
④最后修改Turbo C2.0安装后所在的文件夹路径,选择“Turbo C directories”子菜单项并按回车将该路径改为:将其改为:“c:\\windows\\desktop\c2.0”并按回车键。
图3-2 Turbo C 2.0环境设置
⑤ 单击Esc键,返回上层菜单。选择主菜单中“Option”项中的“Save Option”菜单项,将保存设置。
14
图3-3 Turbo C 2.0环境设置的保存
3.4 操作实例
编写程序求n!。上机操作过程如下: ①启动tc软件。
②按F10键进入主菜单,选择主菜单上“File”项中的“New”菜单项(或者按Alt+F,再按N ) 新建一个文件,(如果初次进入tc,也可以直接进入第③步)
③输入源程序如下: #include “stdio.h” main()
{ int i,n=1,m,k;
scanf(“%d”,&m); k=m;
for(i=1;i<=k;i++) n=n*i;
printf(“n=%d\\n”,n); }
④按ctrl+F9编译、连接然后运行该程序。 ⑤ 从键盘输入:4↙
(如果提示程序中有错误,按功能键F6,将光标切换到编辑区中,修改错误的语句,再进行Ctrl+F9重新编译、连接然后运行该程序。如果没有错误,继续执行下一步)。
⑥ 按Alt+F5切换到用户屏幕窗口,查看运行结果。 ⑦ 按任意键返回C编辑窗口,按功能键F2存盘。
⑧按Alt+X退出TC。(若想继续调试下一个新程序,需要执行步骤②)
15
因篇幅问题不能全部显示,请点此查看更多更全内容