




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【精品】C+实验指导书 面向对象程序设计实验指导书(电子信息工程、信息科学与技术)上机实验软件环境Visual C+6.0或C Free目录说明实验报告的书写格式1实验1C+程序运行环境4实验2类及对象的封装性7实验3成员函数的重载9实验4构造函数与析构函数12实验5对象成员15实验6友元const对象和const成员17实验7静态成员19实验8继承21实验9综合实验23说明实验报告格式要求每次做好实验之后请认真填写实验报告,实验报告请用实验报告纸写,书写格式参考如下1实验目的xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2实验内容21分析程序指出程序运行的结果1)xxxxxxx(抄题,指出结果,简单分析*)2)xxxxxxxx(抄题,指出结果,简单分析*)22编写并调试程序1) (1)抄题 (2)编程分析 (3)源程序 (4)运行结果 (5)调试情况分析2) (1)抄题 (2)编程分析 (3)源程序 (4)运行结果 (5)调试情况分析实验一C+程序运行环境(2学时)1实习目的及要求1)掌握类及其成员的定义方法;2)掌握对象的创建方法;2预习C+数据类型、数组、常量、变量、引用类型、控制语句、函数等相关知识。 3Visual C+6.0编程环境简介11工程的概念用Visual C+6.0编写任何一个程序前都必须首先创建一个工程(project),一个工程就好象一个工作间,以后这个程序所牵扯到的所有的文件、资源等元素都将放入这个工程中,各个工程之间互不干扰。 工程的概念使得我们的编程工作更有条理,更具模块化。 12操作步骤 (1)运行Visual C+6.0,选择菜单“文件(file)”下的“新建(new)”项,会出现一个选择界面。 (2)在界面的属性标题中,选择“工程(projects)”标签。 (3)在工程下,选择“Win32Console Application”,在“工程”文本框(即Project Name文本框)中写入新建工程的名称-“sample”;在“C位置”文本框中,添入你要存放文件的位置;选择“R创建新工作区”选项。 Visual C+6.0会自动“工程”文本框的名字为你建一个同名目录。 按“确定”,进入下一个界面。 (4)该界面主要是询问用户想要构成一个什么类型的工程。 选择“An emptyproject”项,将生成一个空的工程,工程不包括任何东西。 按“完成”进入下一个界面。 (5)该界面,Visual C+6.0为你生成一个小型报告,报告的内容是刚才所有选项的总结,并询问你是否接受这些设置。 按“确定”后,进入“Visual C+6.0”的编程环境。 (6)界面的Workspace窗口中有两个标签,一个是Class View,一个是File View。 下端是Output窗口,程序编译、连接、调试等信息在此窗口显示。 如果看不到这两个窗口,可选择菜单“查看”(View)下的“工作区”(Workspace)和“输出”(Output)项即可。 (7)生成一个源文件。 选择菜单“工程”(Project)中的子菜单“添加工程”Add ToProject下的“新建”new项,在弹出的对话框中选择“文件”(Files)标签,在列表框中选种C+Source File项,在右侧,选中“A添加工程”Add toproject复选框,在下拉列表中选中sample,然后在“文件”文本框中为将要生成的文件取一个名字,我们为文件取名为main,并在“C目录”Location文本框中为文件选择一个存储目录。 按“确定”后,Visual C+6.0会为你生成相应的文件。 此时,可以在Workspace窗口的FileView标签中看到Source Files文件夹下,已经加有main.cpp文件。 双击main.cpp就可在视图区打开这个文件。 (8)在main.cpp中编写简单的应用程序,向屏幕输出一行字符串“一个简单的Visual C+6.0示例”#includevoid main()cout一个简单的Visual C+6.0示例 (9)编译、链接所有关于编译、链接的命令都在“编译”(Build)菜单中,第一项“编译”(Compile),是编译当前的项目。 若在编译中发现错误,将在“输出”窗口显示出错的行及出错的信息。 若编译通过,可以选择第二项“构件”(Build)来链接生成可执行程序。 完毕后,运行所编的程序,选择“执行”Execute项即可运行。 也可以“编译”(Build)菜单中,选择“重构全部”项,一次完成编译、链接。 (10)注意以上所说的编译、链接过程都是Debug类型,即加入了一些调试信息。 如果确信程序完美无缺或者要正式发布,应选择菜单中的“批构件”(Batch)项,在对话框中选择相应的选项,点击“B建造”或“R全部重建”按钮,可在工程的目录下,产生一个新目录release,在该目录可生成所要的代码,其规模小,执行效率高,是最后的产品。 4实验内容4.1分析下面的程序,并给出程序运行的结果#includeclass changechar c1,c2;public:void set(char a)c2=(c1=a)-32);void print()cout 根据实验的真实情况,进行分析,写出实验报告。 实验二类及对象的封装性(2学时)1实习目的及要求1)掌握类及其成员的定义方法;2)掌握对象的创建方法;2预习预习类及其成员定义,对象的创建和使用3实验内容31分析下面的程序,指出错误的地方class CSampleint a=2.5;public:int b;void Print()coutc&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);/A cout三角形面积= 根据实验的真实情况,进行分析,写出实验报告。 实验 三、成员函数的重载(2学时)1实验目的及要求 (1)掌握普通函数重载的方法; (2)掌握成员函数重载的方法;2预习1)预习普通函数重载的相关知识。 2)预习成员函数重载的相关知识。 3实验内容31试定义一个字符串类my_string,使其至少有内容(contents)和长度(length)两个数据成员,并具有显示字符串,求字符串长度,给原字符串后添加一个字符串等功能。 32定义一个时间类Time,该类有小时hour,分钟minute和秒second三个数据成员,另外还有设置时间,显示时间等的成员函数,并在main()函数中演示这个类。 4.写出实验报告。 根据实验的真实情况,进行分析,写出实验报告。 实验 四、构造函数与析构函数(2学时)1实习目的及要求1)掌握构造函数和析构函数定义方法;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 getheight()return height;double volume();double surface_area();private:double radius;double height;const doublePI=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*radius*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;/A cylinder2.setcylinder(12.3,18.7);coutthe radiusof cylinder1is:t#includeclass Sampleint i;public:int j;Sample(int x)i=x;3Sample()exit (1);cout撤消 (10),a2 (20);exit (1);cout撤消 4、写出实验报告。 根据实验的真实情况,进行分析,写出实验报告。 实验 五、对象成员(2学时)1实习目的及要求1)理解对象成员的概念;2)掌握对象成员的初始化方法。 2预习预习对象成员,对象的创建和使用,*this指针等相关知识。 3实验内容31分析调试程序指出程序运行的结果1)分析下面程序中的对象传递,写出输出结果。 #includeclass Aint i;public:A(int x)i=x;int get()return i;int cube(A a)return a.get()*a.get()*a.get();void main()A a1 (10),a2 (20);cout #include2class Bprivate:int a,b;public:B()B(int i,int j);void showb();class Aprivate:B c;public:A()A(int i,int j);void showa();A:A(int i,int j):c(i,j)void A:showa()c.showb();B:B(int i,int j)a=i;b=j;void B:showb()couta= 在此基础上编写一个表示三角形的类tria,顶点为其对象成员。 编写完整的程序输出三角形的面积。 4.写出实验报告。 根据实验的真实情况,进行分析,写出实验报告。 实验6友元const对象和const成员(2学时)1实习目的及要求1)掌握友元函数的定义和使用。 2)掌握coust对象、coust成员函数和coust成员数据的使用;2预习1)预习友元的概念、友元成员函数、友元类等相关知识。 2)预习coust对象及const成员的定义、使用等相关知识;3实验内容31观察下面的程序在编译时会出现什么样的错误,并用所学的理论知识进行分析。 #includeclass Sampleint n;public:Sample(int i)n=i;void setvalue(int i)n=i;void display()coutn= (5);s.setvalue (8);s.display();32编写一个程序求直角坐标中一个点到直线的距离。 要求设计一个点类point,含有两个公有成员数据x和y,代表点的坐标。 另一个类为直线类line,它有三个私有成员数据a,d,c。 分别代表直线方程ax+by+c=0的系数。 在类line中设计一个友元函数distance计算一个点到直线的距离。 点(x,y)到直线ax+by+c=0的距离distance的计算公式如下请根据下面给出的部分程序编写直线类line及其成员函数,以组成完整的程序。 #include#includeclass line;class pointpublic:float x,y;point(float i,float j)x=i;y=j;void main()point p1(2,4);line l1(1,2,3);coutdistance= 实验七静态成员(2学时)1实习目的及要求1)掌握静态成员数据的定义及使用。 2)掌握静态成员函数的定义及使用。 2预习预习静态成员数据、静态成员函数等相关知识。 3实验内容31分析下面的程序,指出程序运行的结果#includeclass Sampleint a,b;static intc;public:Sample()a=b=0;c+;void show()couta= (10);A B:c (5);A a1 (20);void main()coutmain()函数开始!n;B b;coutmain()函数结束!n;33编写并调试程序编写一个名为score的类,用于统计一个班的学生成绩。 其中使用一个静态成员数据totals来存储总分以及一个静态成员函数re_totals()返回该总分。 并编写相应的测试程序。 4、写出实验报告。 根据实验的真实情况,进行分析,写出实验报告。 实验 八、继承(2学时)1实习目的及要求1)掌握继承的实现方法;2)继承中常见问题的处理方法;2预习预习派生类的定义和使用、创建派生类对象时构造函数的调用次序、多重继承中的冲突、及虚基类。 3实验内容31分析下面的程序,指出程序运行的结果#includeclass CBase1int x;public:CBase1()x=0;cout调用构造函数CBase1()!n;CBase1(int a)x=1;cout调用构造函数CBase1(int)!n;CBase1()cout调用析构函数CBase1()!n;class CBase2int y;public:CBase2()y=0;cout调用构造函数CBase2()!n;CBase2(int a)y=a;cout调用构造函数CBase2(int)!n;CBase2()cout调用析造函数CBase2()!n;class Aint x;public:A()x=0;cout调用构造函数A()!n;A(int a)x=a;cout调用构造函数A(int)!n;A()cout调用析构函数A()!n;class CDerived:public CBase1,virtual publicCBase2Aa;public:3CDerived()cout调用构造函数CDerived()!n;CDerived(int x,int y,int z):a(x),CBase1(y),CBase2(z)cout调用构造函数CDerived(int,int)!n;CDerived()cout调用析造函数CDerived()!n;void main()CDerived*x=new CDerived;CDerived y(2,3,4);delete x;coutmain()函数结束!n;32编写并调试程序定义一个人员类CPeople,其属性有(保护类型)姓名、性别、年龄;从中派生出学生类CStudent,添加属性学号、入学时间和入学成绩;从CPeople类再派生出教师类CTeach
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机电缆盘箱工跨部门项目协调考核试卷及答案
- 电动机检修工语言能力考核试卷及答案
- 电切削工检验仪器校准实操考核试卷及答案
- 2025年台州天台县医疗卫生事业单位公开招聘卫技人员31人考前自测高频考点模拟试题及答案详解(易错题)
- 炼金工问题上报及时性考核试卷及答案
- 自动相关监视系统机务员组织能力考核试卷及答案
- 2025吉林松原经济技术开发区管理委员会招聘事业单位(含专项招聘高校毕业生)5人模拟试卷及答案详解(易错题)
- 2025年滁州市扬子工投集团子公司社会招聘2人考前自测高频考点模拟试题及答案详解(名师系列)
- 2025福建漳州职业技术学院考试招聘35人考前自测高频考点模拟试题及参考答案详解
- 2025年预付式餐饮配送服务合同范本
- 头颈部鳞癌治疗现状及免疫治疗进展
- 微信小程序开发-微信小程序云开发
- 书写板卫生安全要求
- 中成药合理使用
- GB/T 30193-2013工程机械轮胎耐久性试验方法
- GB/T 23260-2009带自粘层的防水卷材
- GA 1551.6-2021石油石化系统治安反恐防范要求第6部分:石油天然气管道企业
- GA 1732-2020警用无人驾驶航空器外观制式涂装规范
- CB/T 749-1997固定钢质百叶窗
- 一年级《劳动实践指导手册》《学习用品我整理》课件
- 水果拼盘拼盘课件
评论
0/150
提交评论