面向对象程序设计C++实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1《C++开发技术》实验指导书上机实验软件环境VisualC++6.02目录说明实验报告的书写格式……………………………………………………1实验1C++程序运行环境………………………………………………………4实验2类及对象的封装性……………………………………………………7实验3成员函数的重载…………………………………………………………9实验4构造函数与析构函数………………………………………………12实验5对象成员………………………………………………………………15实验6友元const对象和const成员…………………………………17实验7静态成员………………………………………………………………19实验8继承………………………………………………………………………21实验9综合实验………………………………………………………………233说明:实验报告格式要求每次做好实验之后请认真填写实验报告,实验报告请用实验报告纸写,书写格式参考如下:1.实验目的:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2.实验内容:1).xxxxxxx(抄题)2).xxxxxxxx(抄题)3.编写并调试程序1).(1)编程分析(2)源程序(3)运行结果(4)调试情况分析2).(1)编程分析(2)源程序(3)运行结果(4)调试情况分析4.实验总结4实验一C++程序运行环境(2学时)1.实习目的及要求:1)掌握类及其成员的定义方法;2)掌握对象的创建方法;2.预习:C++数据类型、数组、常量、变量、引用类型、控制语句、函数等相关知识。3.VisualC++6.0编程环境简介1.1工程的概念用VisualC++6.0编写任何一个程序前都必须首先创建一个工程(project),一个工程就好象一个工作间,以后这个程序所牵扯到的所有的文件、资源等元素都将放入这个工程中,各个工程之间互不干扰。工程的概念使得我们的编程工作更有条理,更具模块化。1.2操作步骤:(1)运行VisualC++6.0,选择菜单“文件(file)”下的“新建(new)”项,会出现一个选择界面。(2)在界面的属性标题中,选择“工程(projects)”标签。(3)在工程下,选择“Win32ConsoleApplication”,在“工程”文本框(即ProjectName文本框)中写入新建工程的名称---“sample”;在“C位置”文本框中,添入你要存放文件的位置;选择“R创建新工作区”选项。VisualC++6.0会自动“工程”文本框的名字为你建一个同名目录。按“确定”,进入下一个界面。(4)该界面主要是询问用户想要构成一个什么类型的工程。选择“Anemptyproject”项,将生成一个空的工程,工程不包括任何东西。按“完成”进入下一个界面。(5)该界面,VisualC++6.0为你生成一个小型报告,报告的内容是刚才所有选项的总结,并询问你是否接受这些设置。按“确定”后,进入“VisualC++6.0”的编程环境。(6)界面的Workspace窗口中有两个标签,一个是ClassView,一个是FileView。下端是Output窗口,程序编译、连接、调试等信息在此窗口显示。如果看不到这两个窗口,可选择菜单“查看”(View)下的“工作区”(Workspace)和“输出”(Output)项即可。(7)生成一个源文件。选择菜单“工程”(Project)中的子菜单“添加工程”AddToProject下的“新建”new项,在弹出的对话框中选择“文件”(Files)标签,在列表框中选种C++SourceFile项,在右侧,选中“A添加工程”Addto5project复选框,在下拉列表中选中sample,然后在“文件”文本框中为将要生成的文件取一个名字,我们为文件取名为main,并在“C目录”Location文本框中为文件选择一个存储目录。按“确定”后,VisualC++6.0会为你生成相应的文件。此时,可以在Workspace窗口的FileView标签中看到SourceFiles文件夹下,已经加有main.cpp文件。双击main.cpp就可在视图区打开这个文件。(8)在main.cpp中编写简单的应用程序,向屏幕输出一行字符串“一个简单的VisualC++6.0示例”#includeiostream.hvoidmain(){cout一个简单的VisualC++6.0示例endl;}此时,在Workspace窗口的ClassView标签中的Globals文件夹下,可以看见刚才键入的main函数。(9)编译、链接所有关于编译、链接的命令都在“编译”(Build)菜单中,第一项“编译”(Compile),是编译当前的项目。若在编译中发现错误,将在“输出”窗口显示出错的行及出错的信息。若编译通过,可以选择第二项“构件”(Build)来链接生成可执行程序。完毕后,运行所编的程序,选择“执行”Execute项即可运行。也可以“编译”(Build)菜单中,选择“重构全部”项,一次完成编译、链接。(10)注意:以上所说的编译、链接过程都是Debug类型,即加入了一些调试信息。如果确信程序完美无缺或者要正式发布,应选择菜单中的“批构件”(Batch)项,在对话框中选择相应的选项,点击“B建造”或“R全部重建”按钮,可在工程的目录下,产生一个新目录release,在该目录可生成所要的代码,其规模小,执行效率高,是最后的产品。4.实验内容:4.1分析下面的程序,并给出程序运行的结果:#includeiostream.hclasschange{charc1,c2;public:voidset(chara){c2=((c1=a)-32);}voidprint(){coutc1canbeupwrittenasc2endl;}};voidmain(){changea,b;a.set('a');b.set('b');a.print();6b.print();}4.2按下面的要求编写并调试程序:下面是一个类的测试程序,给定主函数,请写出类的定义,构成一个完整的程序,使执行程序后输出结果为:88+32=12088-32=56给定的主函数为:voidmain(){Tstt;t.init(88,32);t.print();}5.按要求写出实验报告。根据实验的真实情况,进行分析,写出实验报告。7实验二类及对象的封装性(2学时)1.实习目的及要求:1)掌握类及其成员的定义方法;2)掌握对象的创建方法;2.预习:预习类及其成员定义,对象的创建和使用3.实验内容:3.1分析下面的程序,指出错误的地方classCSample{inta=2.5;public:intb;voidPrint(){couta+b'\n';}voidSet(int,int);}voidSet(intx,inty){a=x;y=b;}voidmain(){CSampleSam1,Sam2;Sam1.Set(2,3);Sam2.Set(5,6);Sam1.Print();Sam2.Print();Coutsam1.a+sam2.aendl;Coutsam1.b+sam2.bendl;}3.2编写并调试程序:定义一个描述学生基本情况的类,数据成员包括姓名、学号、英语、数学、计算8机成绩。成员函数包括设置姓名、学号和三门课程的成绩、输出数据、以及求平均值。设计主函数,在主函数里调用设置“姓名、学号和三门课程的成绩”的成员函数设置各数据;调用输出数据成员函数,实现各数据的输出;调用求平均值的成员函数,求三门课的平均成绩,并输出显示。3.3调试下列程序,指出程序实现的功能及程序输出结果。进一步理解类的定义和使用。#includeiostream.h#includemath.hclassCTria{floatx,y,z;public:voidSetData(floata,floatb,floatc){if(a+bc&&a+cb&&b+ca){x=a;y=b;z=c;}elsex=y=z=0;}floatArea(){floatt=(x+y+z)/2;returnsqrt(t*(t-x)*(t-y)*(t-z));}};voidmain(){CTriaa1;a1.SetData(3,4,5);//Acout三角形面积=a1.Area()'\n';//B}4.写出实验报告。根据实验的真实情况,进行分析,写出实验报告。9实验三、成员函数的重载(2学时)1.实验目的及要求:(1)掌握普通函数重载的方法;(2)掌握成员函数重载的方法;2.预习:1)预习普通函数重载的相关知识。2)预习成员函数重载的相关知识。3.实验内容:3.1试定义一个字符串类my_string,使其至少有内容(contents)和长度(length)两个数据成员,并具有显示字符串,求字符串长度,给原字符串后添加一个字符串等功能。3.2定义一个时间类Time,该类有小时hour,分钟minute和秒second三个数据成员,另外还有设置时间,显示时间等的成员函数,并在main()函数中演示这个类。4.写出实验报告。根据实验的真实情况,进行分析,写出实验报告。10实验四、构造函数与析构函数(2学时)1.实习目的及要求:1)掌握构造函数和析构函数定义方法;2)掌握构造函数的重载、具有默认值的构造函数的使用方法;3)加深对构造函数的特殊用途的理解。2.预习:预习构造函数和析构函数的定义、构造函数的重载、具有默认值的构造函数以及构造函数的特殊用途等相关知识。3.实验内容:3.1分析下面的程序,指出程序运行的结果:1)分析下面的程序,指出程序运行的结果:#includeiostream.hclassCylinder{public:Cylinder(){}Cylinder(doubler,doubleh);voidsetcylinder(doubler,doubleh);doublegetradius(){returnradius;}doublegetheight(){returnheight;}doublevolume();doublesurface_area();private:doubleradius;doubleheight;};constdoublePI=3.1415926;Cylinder::Cylinder(doubler,doubleh){radius=r;height=h;}voidCylinder::setcylinder(doubler,doubleh){radius=r;11height=h;}doubleCylinder::volume(){doublevol;vol=PI*radius*radius*height;returnvol;}doubleCylinder::surface_area(){doublearea;area=2*PI*radius*height+2*PI*radius*radius;returnarea;}voidmain(){Cylindercylinder1(7.0,12.0),cylinder2;//Acylinder2.setcylinder(12.3,18.7);couttheradiusofcylinder1is:\tcylinder1.getradius()endl;couttheheightofcylinder1is:\tcylinder1.getheight()endl;coutthevolumeofcylinder1is:\tcylinder1.volume()endl;coutthesurfaceareaofcylinder1is:\tcylinder1.surface_area()endl;couttheradiusofcyli

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功