Visual Studio 2008上机操作指导_第1页
Visual Studio 2008上机操作指导_第2页
Visual Studio 2008上机操作指导_第3页
Visual Studio 2008上机操作指导_第4页
Visual Studio 2008上机操作指导_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、visual c+是目前使用的最多的c+编译系统之一。目前所使用的visual c+最新版本是visual c+ 2008(与实验室中安装的visual c+ 2005的运行界面基本相同)。虽然visual c+有多种版本,但上机操作方法却有着许多相仿之处,掌握其中一种,便可举一反三。本文以visual c+ 2008为背景来介绍visual c+的上机操作。一 visual c+的安装和启动如果你的计算机未安装visual c+,则应先安装visual c+的某个版本。visual c+是visual studio的一部分,因此使用visual studio安装光盘便可方便地安装visual

2、 c+(安装操作从略)。在已经安装了visual c+的windows平台上,从“开始”菜单的“程序”子菜单中便可发现visual studio(例如,microsoft visual studio 2008)运行菜单项如下:如果你在安装visual studio是选择了visual c+编译环境为默认的运行环境,单击visual studio(例如,microsoft visual studio 2008)运行菜单项,便可进入如下的visual c+编译运行环境:不难发现该运行环境的界面被分割成多个区域,用于提供编译过程中需要的不同操作窗口和信息显示窗口。根据提供的操作功能和显示的信息不同,

3、这些区域大致可以分为四类: 项目和解决方案工作区:用于选项提供 “解决方案资源管理器”、“类视图”、“资源视图”、“属性管理器”等窗口的相应信息和操作。 源文件编辑工作区:用于选项提供程序中各类源文件的显示和编辑窗口。 辅助编辑工作区:用于提供或选项提供程序项目和解决方案所需的其他常用辅助编辑窗口的相应信息和操作。例如,提供控件资源的“工具箱”、提供服务器和数据库资源的“服务器资源管理器”、提供程序属性显示和编辑的“属性”等窗口。 编译链接信息工作区:用于提供显示程序项目和解决方案在编译链接过程所产生的各种提示信息的“输出”窗口。源文件编辑工作区项目和解决方案工作区辅助编辑工作区编译链接信息工

4、作区注意,界面中所包含的区域,区域中所包含的可选项提供的常用操作窗口都可以由用户根据所创建的程序项目和解决方案的需要和用户的工作习惯,自行配置(添加或减少);各个区域的分布位置也可以根据用户布局习惯和爱好,自行安排。上图所显示的界面是适用于c+程序项目和解决方案创建的典型区域划分和安排,以及常用窗口配置。visual studio环境提供了用多种编程语言编写多种应用程序的能力和相应的编辑、编译、链接界面。不管使用哪种编程语言,编写哪种应用程序,visual studio环境所提供的界面、编写步骤和方法都有许多相同或相似之处。本文只涉及使用c+编程语言编写控制台应用程序的一般步骤和方法。二 输入

5、和编辑源程序在visual studio中,虽然也可以编写由单个c+源程序文件构成的应用程序,但更推荐通过创建应用程序项目和解决方案编写由多个c+源程序文件构成的应用程序。1 新建一个c+控制台程序项目和解决方案在visual studio的主菜单中选择“文件(f)”子菜单;在该子菜单中选择“新建(n)”子菜单;在在该子菜单中选择“项目(p)”菜单项。单击该菜单项弹出项目种类选择界面如下:在该界面中,首先在项目类型窗口中选择“visual c+”应用程序的“win32”项目类型;接下来,在创建项目的模板窗口中选择“win32控制台应用程序”。这样就确定了你将要创建项目是一个使用c+语言编写的,

6、可在windows平台运行的控制台应用程序项目。然后,在该界面下方提供界面中,输入由用户自行确定的项目“名称(n)”(例如,上图中的test);输入或通过“浏览(b)”确定的项目在磁盘上的创建“位置(l)”(例如,上图中的d:filesc+面向对象程序设计教案c+_examples);以及输入由用户自行确定的“解决方案名称(m)”(例如,上图中的test)。注意,缺省的解决方案名称与用户输入的项目名称相同,但可以修改成与项目名称不同的名称。因为,一个解决方案中可以包含为解决同一实际问题的多个相关项目。同一解决方案中的多个项目可以用相同的编程语言编写,也可以用不同的编程语言编写。确定了应用程序项

7、目和解决方案类型,以及项目的名称、位置、解决方案名称后,单击“确定”按钮,便弹出如下图所示的win32应用程序项目创建向导界面:在该界面中可以通过选择“应用程序设置”或单击“下一步”按钮进入应用程序设置窗口,在该窗口中可以修改项目所建立的应用程序的种类。由于缺省设置已经是控制台应用程序,符合用户的要求,所以可以直接单击“完成”按钮,完成所选应用程序项目和解决方案的创建操作。一个成功创建的c+控制台应用程序解决方案中一个c+控制台应用程序项目。在用户指定的磁盘位置创建了一个以指定的解决方案名称命名的解决方案子目录(例如,上述创建过程中创建的d:filesc+面向对象程序设计教案c+_exampl

8、estest)。该子目录中包含了如下图所示内容:其中test子目录用于保存以用户指定名称命名的应用程序项目的全部文件,test.sln和test.ncb文件用于管理该应用程序项目。test子目录中的文件如下:其中源文件test.cpp用于输入和编辑包含应用程序主函数在内的程序源代码,stdafx.h和stdafx.cpp用于产生预编译头文件(提供应用程序编译中所需要的系统库函数的预编译)。2 关闭和打开一个已经创建的应用程序项目和解决方案2.1关闭已经创建的应用程序项目和解决方案在visual studio的主菜单中选择“文件(f)”子菜单,在该子菜单中选择“关闭解决方案(t)”菜单项,即可关

9、闭当前在visual studio中打开的解决方案。2.2打开已经创建的应用程序项目和解决方案在visual studio的主菜单中选择“文件(f)”子菜单,在该子菜单中选择“打开(o)”子菜单,在该子菜单中选择“项目/解决方案(p)”。在弹出的“打开项目”对话框界面中查询到并打开包含在解决方案子目录中.sln文件(例如本例中的test.sln),即打开该文件管理的应用程序项目和解决方案。如果在visual studio “起始页”的最近项目列表中包含有你要打开的已经创建的应用程序项目和解决方案,则可以直接单击该项目名打开项目和解决方案。3 输入和编辑程序源代码3.1 输入和编辑主源代码文件项

10、目创建向导为用户自动创建的应用程序项目的主源代码文件(例如,本例中的test.cpp)的原始状态如下:显然该主源代码文件已经可以建立一个正确地在windows平台上运行的控制台应用程序。不过该应用程序的运行结果将不会显示任何信息,也不会提供任何操作。在该文件的缺省源代码的基础上用户可以根据设计要求添加相应的程序源代码。例如,用户希望程序运行时显示一条文字信息“this is a demonstration of c+ programming.”,则需要添加如下代码:3.2 输入和编辑预编译头文件项目创建向导为用户自动创建的预编译头文件stdafx.h的原始状态如下:从该文件的注解代码中不难看出

11、,文件的缺省预编译代码已经为应用程序提供了经常需要使用的系统函数库的预编译代码。如果程序中添加的新代码需要使用的系统函数库没有包含在缺省预编译代码中,则需要在该文件中添加相应的预编译代码。例如,本例的test.cpp中添加的源代码使用c+标准io流类库中的输出流cout和输出输出运算符,因此,需要在stdafx.h中添加如下代码:3.3 定义和编辑用户自定义类在面向对象的应用程序中,定义和实现用户自定义类的源代码是源程序的组成部分(这些自定义类都是根据应用程序的需求按照面向对象的思想和原则设计的)。在一个打开的应用程序项目中定义和编辑用户自定义类的步骤和方法如下:(例如,在本例的项目test中

12、定义和编辑一个自定义类student)按“添加按钮”用户要定义一个新的自定义类需要在上面所显示的c+类的创建向导界面中进行如下操作: 输入自定义类名称:在“类名(l)”处输入用户确定的自定义类名称,例如本例中的student。注意,新类名不能与已有类同名。 输入基类名称:如果新定义的类是派生类,则需要在“基类(b)”处输入基类名称否则不输入。例如本例定义的student就不是派生类。 选择继承访问属性:如果新定义的类是派生类,则需要选择派生类对基类的继承访问属性。缺省的继承访问属性为public。 确定“虚析构函数(v)”:推荐将类的析构函数声明为虚函数,以便通过基类指针动态创建的派生类对象被

13、撤消时能被完全析构。 确定新定义类“内联(i)”:如果新定义类不确定为“内联”,则新定义类的源代码将分成两个文件,头文件.h和实现文件.cpp。在头文件中只有类的全部数据成员定义和成员函数的原型声明,在实现文件中包含了类定义中声明了的成员函数的操作代码定义。这样有利于类定义实现细节的隐藏。如果新定义类确定为“内联”,则新定义类的源代码将只有一个头文件.h。在该文件的类定义源代码中包含了类的数据成员定义和成员函数实现定义。这样对定义类的内联成员函数,特别是定义类模板更为方便。例如,本例中自定义类student就是以“内联”方式定义,其全部定义代码都在文件student.h中。 确定保存类定义源代

14、码的文件名:向导会缺省推荐与类名同名的文件名,但允许用户修改,或选择保存在该项目的已有的相应源文件.h或.cpp。编辑新自定义类的工作包括修改由类定义向导缺省产生的源代码,为新类添加数据成员和成员函数。例如,本例中student类的缺省源代码如下:如果根据程序的需求,需要student类具有两个字符串类型私有数据成员name (姓名)和id(学号),能通过参数在类对象的创建过程中传递数据成员的数据信息和一个能显示这两个数据成员的公有成员函数show(),则需要对student类的缺省源代码进行如下添加和修改: 添加数据成员:添加方法可以是直接编辑student.h文件,也可以通过“添加成员变量

15、向导”添加。添加方法和步骤如下(以添加数据成员name为例):确定了数据成员的“访问(a)”,“变量类型(v)”和“变量名(n)”后,按“完成”按钮完成数据成员name的添加操作。按照同样的方法和步骤添加数据成员id。添加后student.h中源代码被修改为: 修改和添加构造函数:在student.h中直接修改缺省构造函数:添加构造函数可以在student.h中直接编辑添加,也可以通过“添加成员函数向导”实现。添加方法和步骤如下:在“添加成员函数向导”界面中定义一个成员函数需要做如下操作: 确定成员函数名:在“函数名(u)”处输入成员函数名(构造函数名必须与类名相同)。 确定成员函数类型:在“

16、返回类型(y)”处输入或选择成员函数类型(构造函数的类型只能选择void)。 确定成员函数的参数:每个参数都必须具有确定的类型(在“参数类型(t)”处输入或选择),名称(在“参数名(n)” 处输入),然后按“添加(a)”按钮将所添加的参数显示在“参数列表(l)”中。由于一个函数可以具有多个参数,所以上述参数添加操作可以重复多次,每次添加的参数被顺序添加显示在“参数列表(l)”中(例如,本例中的string name 和string id)。如果在“参数列表(l)”中选中一个参数时,按“移除(r)”按钮,则将选中的参数从成员函数的定义删除。如果成员函数无参数,则“参数列表(l)”为空。 确定成员

17、函数的访问属性:在“访问(e)”处选择成员函数的访问属性。 确定成员函数的其他属性:确定成员函数是否为“静态(s)”函数,“虚函数(v)”,“纯虚函数(p)”,和“内联(i)” 函数。 完成成员函数的定义:在上述操作完成并确认后(如果需要还可以添加必要的注解信息),按“完成”按钮完成成员函数的定义操作。 编辑成员函数的操作代码:在student.h中按照成员函数的设计功能,为成员函数添加操作代码。 添加成员函数show():添加方法和步骤同上。完成修改后的student.h中student类的定义代码如下所示:3.4编辑自定义类的应用源代码在应用程序中需要使用自定义类的地方,添加恰当的源代码。

18、例如,本例中在test.cpp文件中添加如下代码:注意,如果新自定义类需要的系统函数库没有被包含在stdafx.h文件中,则需要在stdafx.h文件中进行补充添加(也可以直接添加在自定义类的头文件中)。例如,本例中student类的数据成员类型string需要c+标准字符串模板库string的支持,因此,需要在stdafx.h中作如下添加:三 应用程序的编译、链接和调试1 应用程序的编译、链接选择visual studio的“生成(d)”子菜单:根据应用程序源代码的不同完成状态和不同的编译链接要求可以选择该子菜单中的不同菜单项完成对项目或解决方案的编译链接操作: 如果应用程序的源代码首次输入

19、编辑完成,则可以选择“生成解决方案(b)” 菜单项对应用程序的整个解决方案的所有源文件进行编译,然后将编译后生成的目标文件.obj链接成可执行文件.exe。也可以选择生成解决方案的当前项目,例如,本例中选择“生成test (u)” 菜单项,只对当前项目中的所有源文件进行编译,然后将编译生成的目标文件.obj链接成可执行文件.exe。如果解决方案只有一个项目,两种选择的结果相同。 当应用程序的源代码再次输入编辑完成,如果仍然按照 中选择,则只对整个解决方案或当前项目中源代码被修改过的源文件进行编译,然后将编译后生成的目标文件.obj链接成可执行文件.exe。特别需要指出是:如果此时预编译头文件.

20、pch已经存在,则对修改过的stdafx.h就不再编译,这可能引起对其他源文件编译的错误。因此,当应用程序的源代码再次输入编辑完成的状态下,建议选择“重新生成解决方案(r)”菜单项对应用程序的整个解决方案的所有源文件重新进行编译,然后将编译后生成的目标文件.obj链接成可执行文件.exe。也可以选择生成解决方案的当前项目,例如,本例中选择“重新生成test (e)” 菜单项,只对当前项目中的所有源文件重新进行编译,然后将编译后生成的目标文件.obj链接成可执行文件.exe。如果解决方案只有一个项目,两种选择的结果相同。 如果选择“清理解决方案(c)”菜单项,则整个解决方案中已经编译生成的目标文

21、件.obj和链接生成的可执行文件.exe以及编译链接生成的其他辅助中间文件被清除。也可以选择清理解决方案的当前项目,例如,本例中选择“清理test (n)” 菜单项,只将当前项目中已经编译生成的目标文件.obj和链接生成的可执行文件.exe以及编译链接生成的其他辅助中间文件被清除。如果解决方案只有一个项目,两种选择的结果相同。 如果选择“编译(m)” 菜单项,则只对当前在源文件编辑工作区打开可编译的源文件进行单独编译。例如,本例中只能对打开的test.cpp进行单独编译。注意,单独编译可编译源文件更方便的方法是在解决方案资源管理器窗口中显示的可编译源文件名处单击鼠标右键弹出菜单,选择“编译(m

22、)” 菜单项,而不必打开被编译的源文件。1.1 编译和链接错误在应用程序的编译和链接过程中,难免发生错误。这些可以分为编译错误和链接错误两大类。 编译错误顾名思义,该类错误是在源代码编译过程中发生的。有编译错误的源文件是不能生成目标文件.obj的。产生编译错误原因很多,常见的原因如下: 文本书写错误:例如,本例的test.cpp在编译中出现了如下错误:根据错误信息的内容可以清楚知道:产生错误的原因是将错误信息连接指示的语句:cuot this is a demonstration of c+ programming.n;应该修改为:cout this is a demonstration of

23、 c+ programming.n;注意,除去在字符串数据(英文双引号之间的部分)或注解中允许使用中文字符或其他图形符号,在源代码中出现的中文字符(包括中文标点符号)都会产生编译错误。 程序结构错误:程序结构的匹配错误,例如,嵌套分支结构,嵌套循环结构中失配产生的编译错误是最容易发生的。 使用了未声明的标识符:程序原代码中所有被引用的标识符(例如,变量名、函数名等)都必须是已经程序中或程序包含的库函数头文件中声明或定义了的,否则将产生编译错误。例如,本例的stdafx.h中没有添加包含c+标准io库的预编译命令语句:#include 则在编译过程中,遇到引用标识符cout时发生如下的错误信息:

24、 重复定义错误:程序中用户自定义的类、变量、函数等必须唯一。如果出现了重复定义,则会产生编译错误。例如,本例中student类的构造函数出现了重复定义,则会发生如下的编译错误: 链接错误顾名思义,该类错误是在目标文件.obj被链接定位的过程中发生的。有链接错误的目标文件.obj是不能被链接生成可执行文件.exe的。常见的链接错误发生在用户自定义的类或函数实现操作的源代码或不完全。例如,假如本例中student类的成员函数show()只有声明,而没有操作代码的定义,则编译时不会发生错误,而在链接时会发生如下链接错误:2 应用程序的调试应用程序项目和解决方案被成功编译和链接定位,就会在应用程序项目

25、子目录中创建一个命名为debug的子目录,用于保存编译过程产生的全部目标文件和其他辅助中间文件。同时在应用程序解决方案子目录也创建创建一个命名为debug的子目录,用于保存链接过程产生的全部可执行文件和其他辅助文件。2.1 不调试运行应用程序在visual studio的“调试(d)”子菜单中选择“开始执行(不调试)(h)”菜单项,开始在visual studio环境中运行应用程序。如果应用程序的可执行文件在执行过程中没有发生错误,则会在控制台窗口显示应用程序的运行结果。例如,本例中应用程序的可执行文件test.exe的执行结果如下:通过键盘,在输入信息提示处输入合法的信息(学生的姓名和学号)

26、后,程序继续执行输出所创建学生对象的数据信息后,结束运行。2.2 调试运行应用程序应用程序在运行中发生的错误称为运行错误,这类错误在应用程序的编译链接过程中是无法发现的。因此,应用程序的运行错误又可以称为动态错误,而编译错误和链接错误又可以称为静态错误。运行错误只有在调试状态下运行应用程序,才能找到错误发生的位置和原因。如果在不调试状态下运行一个会发生运行错误的应用程序,则会在错误发生时程序的运行被中断。常见的运行错误多发生在对非法内存的访问。例如,本例中如果在主函数_tmain中将student类对象的创建变为动态创建,但创建方法正确,则在程序从键盘接收到用户输入的学生姓名和学号后发生了错误

27、,程序被中断。在visual studio的“调试(d)”子菜单中选择“启动调试(s)”菜单项,开始在visual studio环境中调试运行应用程序。如果应用程序的可执行文件在执行过程中发生了错误,则会在visual studio自动激活的调试信息窗口中显示应用程序发生错误的位置和原因。例如,本例中应用程序的可执行文件test.exe在调试状态下的执行结果如下:分析所显示的信息,不难发现发生错误的原因是通过student类指针stu调用student的方法show时,由于stu未指向有效的student类对象实体,所以引起对非法内存访问的错误。在visual studio的“调试(d)”子菜

28、单中选择“停止调试(s)”菜单项,停止调试:将动态创建student类对象的源代码:student *stu;修改为:student *stu = new student(name, id);并在发生运行错误的位置设置一个调试运行的断点。设置断点的方法如下:将文本光标移动到要设置断点的语句处,在visual studio的“调试(d)”子菜单中选择“切换断点(g)”菜单项,或使用快捷键f9,即可完成调试断点的设置。在设置了断点的情况下,再次调试运行应用程序,则会显示如下的调试运行信息,从而便于了解修改后的应用程序发生了什么变化,是否解决了原来引起运行错误的问题。分析所显示的信息,不难发现此次通

29、过student类指针stu调用student的方法show时,stu已经指向一个有效的student类对象实体。这时将光标移至程序文本窗口中的断点语句处(程序运行的暂停点),按功能键f10,指示程序运行位置的箭头移至下一语句。这表明原来产生运行错误的语句已经成功地运行结束,继续执行下一语句。显示调试过程信息的窗口内的信息会随着当前执行语句的变化而变化,以便跟踪了解程序运行中的细节。调试运行结束后,应删除所设置的断点。删除断点的方法如下:在visual studio的“调试(d)”子菜单中选择“删除所有断点(d)”或使用快捷键ctrl+shift+f9,即可删除程序中所设置全部断点。如果选择“切换断点(g)”菜单项,或使用快捷键f9,只能删除当前光标位置处的一个断点。在visual studio中还提供了一个调试运行使用的工具栏:用于提供“调试(d)”子菜单中常用菜单项的快捷方式,使得调试运行的操作更加方便。四 帮助信息的使用msdn为系统提供了全面的,详尽的和可以联网动态提供的编程帮助信息。因此程序的设计编写人员学会使用msdn提供的信息是十分重要的。1 开始使用msdn选择vis

温馨提示

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

评论

0/150

提交评论