C++第1次实验及部分答案_第1页
C++第1次实验及部分答案_第2页
C++第1次实验及部分答案_第3页
C++第1次实验及部分答案_第4页
C++第1次实验及部分答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、 (一)Visual C+6.0 的上机操作一、 实验目的1熟悉VC+6.0集成开发环境。2掌握在VC+集成开发环境下编辑、编译、连接和运行一个C+程序的步骤。3通过运行简单的C+程序,初步了解C+源程序的结构和特点。二、实验内容1. 启动Visual C+ 6.0集成开发环境Visual C+ 6.0是微软公司1998年推出的visual studio系列产品之一,它提供了强大的编译能力以及良好的界面操作性。能够对Windows下的C+程序设计提供完善的编程环境。同时它对网络、数据库等方面的编程也提供相应的环境支持。使用Visual C+ 6.0编制并运行程序也是编辑(把程序代码输入)、编译

2、(成目标程序文件)、连接(成可执行程序文件)、运行(可执行程序文件)四个步骤,其中第一步的编辑工作是最繁杂而又必须细致地由人工在计算机上来完成,其余几个步骤则相对简单,基本上由系统自动完成。确认你所使用的计算机是否已经安装Visual C+6.0,若已经安装,则执行“开始”“程序”“Microsoft Visual Studio” “Visual C+6.0”命令即可启动Visual C+ 6.0,否则,则应先安装Visual C+ 6.0。启动Visual C+ 6.0,进入到它的集成开发环境窗口,其具体窗口式样如图2-1 所示。图1-1 Visual C+ 6.0集成开发环境式样图中所示V

3、isual C+ 6.0的窗口从大体上可分为四部分。上部是菜单和工具条;左边是工作区显示窗口,这里将显示处理过程中与项目相关的各种文件种类等信息;右边是视图区,这里显示和编辑程序文件的操作区;下边是输出窗口区,程序调试过程中,进行编译、链接、运行时输出的相关信息将在此处显示。2创建工程使用Visual C+ 6.0编制并处理C+程序时要创建工程,因此必须先要了解Visual C+ 6.0的工程(有的资料也翻译成项目)的概念,而工程又与工程工作区相关联。实际上,Visual C+ 6.0 是通过工程工作区来组织工程及其各相关元素的,就好像是一个工作间,以后程序所牵扯到的所有的文件、资源等元素都将

4、放入到这一工作间中,从而使得各个工程之间互不干扰,使编程工作更有条理。这种思想反应到实现上就是一个工作区对应于一个独立的文件夹。简单的情况下,一个工作区中用来存放一个工程,代表着某一个要进行处理的程序。如果需要,一个工作区中也可以用来存放多个工程,其中可以包含该工程的子工程或者与其有依赖关系的其他工程。创建工程工作区之后,系统将创建出一个相应的工作区文件,后缀为“.dsw”,用来存放与该工作区相关的信息;另外还将创建出的其他几个相关文件是:工程文件(后缀是“.dsp”)以及选择信息文件(后缀是“.opt”)等。在Windows环境下通过双击工作区文件或工程文件都可以打开相应的工程。Visual

5、 C+ 6.0 已经预先为用户准备好了近种不同的工程类型以供选择,选定不同的类型意味着让Visual C+ 6.0系统帮着提前做某些不同的准备以及初始化工作(例如,事先为用户自动生成一个所谓的底层程序框架,并进行某些隐含设置,如隐含位置、预定义常量、输出结果类型等)。工程类型中,其中有一个为“Win32 Console Application”的类型,称之为控制台应用,它是我们首先要掌握的、用来编制运行C+程序方法中最简单的一种。此种类型的程序运行时,将出现并使用一个类似于DOS的窗口,这个类似于DOS的窗口就是控制台,通过它提供对字符模式的各种处理与支持。实际上,用此种类型的工程开发的应用程

6、序是具有字符界面的应用程序。此种类型的工程小巧而简单,并且足以解决并支持本课程中涉及到的面向对象编程内容与技术,使我们把重点放在面向对象思想的理解及程序的设计,而并非界面处理等方面,至于Visual C+ 6.0支持的其他工程类型,我们在今后的学习和工作中遇到再逐渐了解、掌握与使用。创建工程的步骤为:首先,选择“File”“New”“Projects”命令,会弹出如图2-2所示的对话框,从左侧选项中选择“Win32 Console Application”项,在右侧“Location”文本框中填入存放与工程工作区相关的所有文件及其相关信息的文件夹的路径及名称,当然也可通过点击其右部的“”按钮去

7、选择并指定这一文件夹即子目录位置。在 “Project name”文本框中填入工程名,注意,此时Visual C+ 6.0会自动在其下的Location文本框中用该工程名建立一个同名的子目录,随后的工程文件以及其他相关文件都将存放在这个目录下。图1-2 Visual C+ 6.0新建工程对话框然后,单击OK进入下一个对话框,如图2-3所示。图1-3新建控制台工程类型选择对话框从图中可以看到有四种类型的控制台工程可供选择:若选择“An empty project”项将生成一个空的工程,工程内不包括任何东西。若选择“A simple application”项将生成包含一个空的main 函数和一个

8、空的头文件的工程。若选“A Hello World! application”项将生成包含一个有显示出“Hello World!”字符串的输出语句的main 函数和一个空的头文件的工程。若选择“An application that supports MFC”项的话,可以利用Visual C+ 6.0所提供的基础类库来进行编程。选择“Finish”,系统自动建立一个基于控制台的工程。建立好工程的Visual C+ 6.0系统界面如图2-4所示。图1-4建立控制台工程后的系统界面3. 编辑源程序工程建好之后,下一步要做的工作就是在工程中建立一个源程序并编辑它。选择时“Project”“Add T

9、o Project”“New”命令,打开新建对话框,在“Files”标签下选择“C+ Source File”类型,在右边的“File”文本框中填入源程序的文件名,单击“OK”按钮完成源程序的创建。界面如图2-5所示。图1-5新建源程序的对话框界面建立好源程序后会在Visual C+ 6.0右边的视图区打开并显示该源程序,在这里我们可以键入代码,编辑源程序,如图2-6所示。图1-6编辑源程序的界面4. 编译、连接、运行程序源程序编辑完成后,首先选择执行“Build”菜单中的“Compile”项,对源程序进行编译。若编译中发现错误或警告,将在Output窗口中显示出它们具体的出错或警告信息以及所

10、在的行,可以通过这些信息的提示来修改程序中的错误或警告。编译通过后,可以选择菜单的第二项Build 来进行链接生成可执行程序。在链接中出现的错误也将显示到Output窗口中。最后就可以运行程序,选择Execute项,Visual C+ 6.0将运行已经编好的程序,执行后将出现一个结果界面,如图2-7所示。其中的“press any key to continue”是由系统产生的,使得用户可以浏览输出结果,直到按下了任一个键盘按键时再返回到编辑界面。图1-7程序运行的界面这些编译、生成、执行这些操作也可以通过单击工具条上的相应的命令按钮来快捷的完成。另外,如果源程序编辑后没有编译就单击了“执行”

11、按钮,系统会自动的进行编译、连接和执行操作;如果源程序已经编译过了,即上次运行后没有编辑源程序,这时单击“执行”按钮,系统就不再编译和连接而是直接执行上次生成的可执行程序了。三、思考题(1)设计一个C+程序,输出以下信息: *Hello! *(2)设计一个程序,从键盘输入一个矩形的长与宽,求其周长和面积。 实验数据:50,40(3)从键盘输入一个四位整数n=abcd,从左到右用a、b、c、d表示各位的数字,现要求依次输出从右到左的各位数字,即输出另一个三位数m=dcba,试设计程序。 实验数据:1234(二)简单C+程序运行一、实验目的1了解C+对C语言的扩充与增强,并善于在编写程序过程中应用

12、这些新的功能。2进一步熟悉在所用的VC+集成开发环境下编辑、编译、连接和运行C+程序的方法。3进一步熟悉C+程序的结构和编程方法;掌握类及其成员的定义方法;掌握对象的创建方法。4预习:C+数据类型、数组、常量、变量、引用类型、控制语句、函数等相关知识。二、实验内容1请先阅读下面的程序,写出程序运行的结果。 #include /包含头文件命令using namespace std;/使用名字空间stdint main()coutThis is ;couta C+ ;cout program.endl;return 0;2输入以下程序,进行编译,观察编译结果,如果有错误,请修改程序,再进行编译,直

13、到没有错误,然后进行连接和运行,并分析运行结果。#include /包含头文件命令using namespace std;/使用名字空间stdint max(int x, int y) return (x y) ?x:y; /求两个数中的大者的函数int main()int a,b; /定义两个变量a和b coutPlease input to a and b: ab;/等待用户从键盘输入数据cout Max= max(a,b)endl;/输出结果信息至屏幕return 0;/主函数返回0至操作系统3.分析并写出下列程序的运行结果,然后上机运行验证。#includeint func2(int

14、a,int b) int c; c=a*b%3; return(c);int func1(int a,int b) int c; a+=a; b+=b; c=func2(a,b);return(c*c);void main() int x=7,y=17; coutfunc1(x,y)endl;答案44程序分析:4.1 分析下面的程序,并给出程序运行的结果:#includeclass changechar c1 , c2 ;public :void set(char a)c2=(c1=a)-32);void print ()coutc1 can be written as c2endl;void

15、 main ( )change a ,b ;a.set(a);b.set(b);a.print();b.print();4.2 按下面的要求编写并调试程序:下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88+32=12088-32=56给定的主函数为:#includeusing namespace std;class Tstint a,b;public:int init(int x1,int x2)a=x1;b=x2;return 0;void print()coutthe answer is:88+32=a+bendl;coutthe ans

16、wer is:88-32=a-bendl;int main()Tst t;t.init(88,32);t.print();return 0;三、思考题1.某班第1组有10个学生,进行了C+考试,编写程序将考试成绩输入一维数组,并将C+成绩用冒泡法、选择法两种排序算法,由低到高的顺序排序后输出。实验数据:90、85、80、75、70、65、60、55、50、452.输入一个5行5列的二维数组,编程实现:求出其中的最大值和最小值及其对应的行列位置;求出对角线上各元素之和。实验数据:1234523456345674567856789四按要求写出实验报告根据实验的真实情况,进行分析,写出实验报告。(三

17、)类及对象的封装性1实习目的及要求:1)掌握类及其成员的定义方法;2)掌握对象的创建方法;2预习:预习类及其成员定义,对象的创建和使用3实验内容:31 分析下面的程序,指出错误的地方#includeusing namespace std;class CSample public: int a ; int b ; void CSample:Print( ) couta+bn ; void CSample:Set(int x , int y) a=x; b=y; ;int main( )CSample Sam1,Sam2 ; Sam1.Set(2,3); Sam2.Set(5,6); Sam1.P

18、rint() ; Sam2.Print() ; coutSam1.a+Sam2.aendl; coutSam1.b+Sam2.bendl; return 0;32 编写并调试程序:定义一个描述学生基本情况的类,数据成员包括姓名、学号、英语、数学、计算机成绩。成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求平均值。设计主函数,在主函数里调用设置“姓名、学号和三门课程的成绩”的成员函数设置各数据;调用输出数据成员函数,实现各数据的输出;调用求平均值的成员函数,求三门课的平均成绩,并输出显示。#include#includeclass Student int a; int b; int

19、c; int d; public: void ave() d=a+b+c; cout平均分=d/3endl; void msn(char i10,int j,int eng,int math,int com) a=eng; b=math; c=com; cout姓名i;学号j;endl; ;int main() Student stu1; stu1.msn(nanhan,10010,90,95,97); stu1.ave(); return 0;33 调试下列程序,指出程序实现的功能及程序输出结果。进一步理解类的定义和使用。#include#includeclass CTriafloat x

20、, y, z;public:void SetData(float a ,float b, float c)if(a+bc&a+cb&b+ca)x=a ; y=b ; z=c; else x=y=z=0;float Area()float t=(x+y+z)/2;return sqrt(t*(t-x)*(t-y)*(t-z);void main()CTria a1;a1.SetData(3,4,5); /Acout三角形面积=a1.Area()n ; /B4. 写出实验报告。根据实验的真实情况,进行分析,写出实验报告。(四)构造函数与析构函数1实习目的及要求:1)掌握构造函数和析构函数定义方法;

21、2)掌握构造函数的重载、具有默认值的构造函数的使用方法;3)加深对构造函数的特殊用途的理解。2预习:预习构造函数和析构函数的定义、构造函数的重载、具有默认值的构造函数以及构造函数的特殊用途等相关知识。3实验内容:31 分析下面的程序,指出程序运行的结果:1) 分析下面的程序,指出程序运行的结果:#includeclass Cylinderpublic:Cylinder() Cylinder(double r , double h);void setcylinder(double r ,double h);double getradius()return radius;double gethei

22、ght()return height;double volume();double surface_area();private:double radius;double height ;const double PI=3.1415926;Cylinder: Cylinder(double r , double h)radius=r ;2height=h ;void Cylinder:setcylinder(double r ,double h)radius=r ;height=h ;double Cylinder:volume()double vol ;vol=PI*radius*radiu

23、s*height ;return vol ;double Cylinder:surface_area()double area ;area=2*PI*radius*height+2*PI*radius*radius ;return area ;void main()Cylinder cylinder1(7.0 , 12.0) , cylinder2 ; /Acylinder2.setcylinder(12.3 ,18.7);coutthe radius of cylinder1 is :t cylinder1.getradius()endl ;coutthe height of cylinde

24、r1 is :t cylinder1.getheight()endl ;coutthe volume of cylinder1 is :t cylinder1.volume()endl ;coutthe surface area of cylinder1 is :t cylinder1.surface_area()endl ;coutthe radius of cylinder2 is :t cylinder2.getradius()endl ;coutthe height of cylinder2 is :t cylinder2.getheight()endl ;coutthe volume

25、 of cylinder2 is :t cylinder2.volume()endl ;coutthe surface area of cylinder2 is :t cylinder2.surface_area()endl ;2) 分析下面的程序,指出程序的错误:#include#includeclass Sampleint i ;public:int j;Sample (int x)i=x ;3Sample()exit(1) ;cout撤消endl;void main()Sample a1(10) , a2(20);exit(1) ;cout撤消endl;3)将下面的程序补充完整:# includeclass testprivate:int num ;float f1

温馨提示

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

评论

0/150

提交评论