ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:23.64KB ,
资源ID:19806952      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19806952.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象上机实验文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象上机实验文档格式.docx

1、1.2.1 创建控制台工程. 运行 VC+6.0 运行环境. 创建基于控制台的应用程序工程. 选择“Hello World!”程序. 直接运行,产生结果. 退出运行环境。1.2.2 修改控制台程序. 打开运行环境. 打开上次创建的工程. 找出源文件. 加入头文件 iostream.h. 将程序中的 printf(Hello World!n);修改成cout”Hello 你自己的名字!”endl;. 运行并产生结果。. 关闭当前工作空间1.2.3 创建windows 工程. 新建一个 MFC AppWizard(EXE)工程。. 创建的应用程序类型选择基本对话框(Base Dialog). 完成

2、之后,双击窗口上的“确定”(OK)按钮,进入源程序. 将 OnOK 函数修改成以下代码段(屏蔽CDialog:OnOK();语句):MessageBox(”Hello 你的名字!”, “实验1”);. 运行,单击确定(OK)按钮,观察结果。. 单击取消按钮(Cancel),退出运行。. 在界面上增加感兴趣的控件,并编程实现之(选)。第 2 页1.3 实验报告. Hello World 程序的源代码和运行结果. 修改后的控制台程序源代码和运行结果. Windows 程序OnOK 函数源代码及运行结果界面截图. 其它的程序修改和运行结果(选). 结果分析及实验感受第 3 页实验2 C+基础2.1

3、目的和要求. 掌握 C+函数重载及缺省参数的使用. 掌握 new 和delete 的用法. 掌握引用数据类型及其用法2.2 实验内容及参考过程2.2.1 函数. 打开控制台工程(或创建新的控制台工程). 确保头文件中包含了 iostream.h. 编写以下四个函数:void MyFunc( ) cout”无参数函数调用”void MyFunc( int a) cout”1 个整型参数函数调用”avoid MyFunc( int a, int b) cout”2 个整型参数函数调用”,”b;long MyCaculate(long a=10,long b=20)cout return a*a+b

4、*b;. 在主函数 main 中加入以下调用语句:MyFunc( );MyFunc( 10 );MyFunc( 10, 20 );coutMyCaculate( )MyCaculate( 1 )MyCaculate( 1, 2 )分析结果。2.2.2 new/delete. 再增加一个函数:void TestNew( )int *p;p=new int2000;if(p) for(int i=0;i1000;+i) pi=i;delete p;第 4 页. 在主函数的最后增加以下循环语句:for (int i=0;100000;+i) TestNew();. 运行,观察机器内存和 CPU 占用

5、率变化情况(在任务管理器中查看)。. 退出运行,屏蔽 TestNew 函数中的delete p;语句。. 再次运行程序,观察机器内存和 CPU 占用率变化情况。. 退出运行。. 对比有无 delete p 语句的机器资源占用情况,分析。2.2.3 引用. 再增加一个结构和函数定义:struct S_Bigint a20000;char c80000;void TestRef(S_Big x). 将主函数修改成以下内容(原有内容屏蔽,但不要删除):S_Big a;200000;+i) TestRef(a);. 运行(注意记录大致运行时间)。. 将 TestRef 函数的形式参数x 修改成&x.

6、再次运行程序,记录运行时间。. 退出程序,分析两者时间差。2.3 实验报告. 函数实验的源代码和运行结果分析. new/delete 实验的源代码和运行结果对比分析. 引用实验的源代码和运行结果对比分析第 5 页实验3 类封装3.1 目的和要求. 掌握类定义方法,包括数据成员和函数成员的定义方法. 掌握对象的创建及其使用. 掌握构造函数和析构函数的定义与使用. 掌握 this 指针、static 成员和友元的定义与使用. 简单的运算符重载函数定义与使用3.2 实验内容3.2.1 基础定义及函数定义一个 PERSON 类,包括:私有数据成员:姓名指针,年龄,身高,性别,人数(static),外部

7、函数友元一般函数成员:修改与获取数据成员的函数赋值运算符重载成员函数:实现对象赋值构造函数与析构函数:缺省构造函数、一般构造函数、拷贝构造函数、析构函数外部函数:PERSON 对象加法运算符重载函数3.2.2 定义要求姓名成员为指针类型。在构造函数中分配相应的空间,在析构函数中释放该空间。采用两种方式定义成员函数(内联方式和非内联方式)加法运算符重载函数为对象和整数相加,更新年龄。赋值运算符成员函数返回当前对象。每个成员函数和加法运算符重载函数均需要输出相应的信息,以确定其调用情况。3.2.3 主函数确保每个函数(包括构造函数、析构函数和外部函数)都至少被调用一次。采用不同方式创建对象(静态有

8、名对象和动态无名对象)。每次创建或释放对象之后都应及时输出当前已创建的 PERSON 对象的个数。第 6 页3.2.4 运行程序分析结果给出完整的程序代码、运行结果。每个输出结果产生的原因(代码段)。3.3 实验报告. 检查以下要求完整性:. 类定义. 私有成员的数量和要求. 函数成员的数量和要求. 类内定义成员函数(内联). 类外定义成员函数(非内联). static 成员. 友元. this 指针. 外部加法运算符重载函数. 创建静态有名对象(调用不同的构造函数). 创建动态无名对象(调用不同的构造函数). 释放动态无名对象. 每个函数的输出. 构造函数中的动态存储分配和 static 成

9、员的处理. 析构函数中的动态存储释放和 static 成员的处理. 完整的源程序代码和运行结果. 每个运行结果与源程序代码的对应关系. 访问对象私有成员所产生的错误信息. 创建对象时提供的参数与构造函数不匹配时所产生的错误信息. 实验结果分析报告3.4 代码样例. 下面给出实验 3 的代码样例,以供参考。#include stdafx.hiostream.hstring.hclass PERSONchar *name;int age;int height;bool gender;第 7 页static int counter;public:friend PERSON operator+(con

10、st PERSON &a,int b);PERSON()name=0;age=0;height=0;counter+; coutPERSON()PERSON(char *n,int a,int h,bool g);PERSON(const PERSON &p);PERSON operator=(const PERSON &PERSON()PERSONif(name) delete name;if(counter) counter-;void setname(char *n)setnamename=new charstrlen(n)+1;if(name)strcpy(name,n);namest

11、rlen(n)=0;void setage(int a)coutsetageage=a;void setgender(bool g)coutsetgendergender=g;void setheight(int h)coutsetheightheight=h;char *getname()getnameif(name)return name;elsereturn NONAME;int getage()coutgetagereturn age;int getheight()coutgetheightreturn height;bool getgender()coutgetgenderretur

12、n gender;static int getcounter()coutgetcounterreturn counter;PERSON:PERSON(char *n,int a,int h,bool g)PERSON(char *n,int a,int h,bool g)第 8 页p)p)if(p.name)name=new charstrlen(p.name)+1;strcpy(name,p.name);namestrlen(p.name)=0; else name=0;age=p.age;height=p.height;gender=p.gender;PERSON PERSON:opera

13、tor=(const PERSON &operator=else name=0;return *this;PERSON operator+(const PERSON &a,int b)operator+PERSON result;result.age=a.age+b;return result;第 9 页int PERSON:counter=0;void main()counter:getcounter()PERSON a1;PERSON a2(zhangsan,18,175,true);PERSON a3=a2;PERSON a4(a2);PERSON *p1,*p2,*p3;a1=a2;a

14、1.setname(zhangsia1.setage(19);a3.setgender(false);a4.setheight(182);p1=new PERSON;p2=new PERSON(Lisi,20,150,false);p3=new PERSON(*p2);*p3=*p3+2;*p2=*p1+1;a1.getname()a2.getage()a3.getheight()getgender()MaleFemaledelete p1;delete p2;delete p3;第 10 页实验4 单继承4.1 目的和要求. 掌握继承类别和继承方式. 掌握单继承中的成员属性变化及使用方法.

15、掌握继承中的同名问题处理、函数覆盖4.2 实验内容4.2.1 创建子类. 在实验 3 的基础上生成EMPLOYEE 子类,增加角色ROLE 描述。. 子类缺省构造函数、子类一般构造函数、子类析构函数定义。. 子类赋值运算符重载函数定义。. 角色的修改和获取函数。. 覆盖父类的一般成员函数。4.2.2 定义要求. 子类成员函数的信息输出。4.2.3 主函数. 创建及使用子类对象. 通过子类对象访问父类的同名成员4.2.4 运行程序分析结果. 给出子类及主函数完整的程序代码、运行结果。. 每个输出结果产生的原因(代码段)。4.3 实验报告. 子类定义完整代码. 主函数完整代码. 运行结果及结果分析

16、(信息输出与源代码的对应关系)第 11 页实验5 多继承5.1 目的和要求. 掌握多继承与单继承的异同. 掌握重复继承和虚继承的概念和使用方法5.2 实验内容5.2.1 创建子类. 在实验 3 的基础上生成STUDENT 子类,增加年级GRADE 描述。. STUDENT 子类缺省构造函数、子类一般构造函数、子类析构函数定义。. 用 STUDENT 类和实验4 生成的EPMLOYEE 联合派生子类GRADEROLE,增加系别DEPARTMENT 和专业SPECIALTY 属性。. 建立相应的构造函数、析构函数和新增数据成员的成员函数。5.2.2 定义要求. STUDENT 子类成员函数的信息输

17、出。. GRADEROLE 子类成员函数的信息输出。5.2.3 主函数. 创建及使用 GRADEROLE 对象5.2.4 运行程序分析结果. 子类 STUDENT、GRADEROLE 及主函数完整的程序代码. 程序运行结果。5.2.5 虚继承. 将 PERSON 类设置为EMPLOYEE 和STUDENT 子类的虚基类. 相应修改子类 GRADEROLE 构造函数定义第 12 页5.3 实验报告. 虚继承情况下的子类 EMPLOYEE、STUDENT 和GRADEROLE 定义. 虚继承情况下的程序运行结果及其分析。第 13 页实验6 组合6.1 目的和要求. 掌握组合机制. 掌握整体类的定义

18、. 掌握通过整体类对象访问部分类对象成员的方法6.2 实验内容6.2.1 创建部分类和整体类. 创建一个具有三维坐标和颜色特征的 POINT 类,包括相应的成员函数。. 创建一个画任意折线的整体类,其中的数据成员是一个POINT 对象数组(以100个点为界),同时记录有效点数(说明:如果只有一个点有效,则为点。如果只有两个点有效,则为一条直线,以此类推。两两相邻点互连)。. 创建整体类的 DRAW 函数(以文字形式输出起点坐标、终点坐标和颜色值)。. 创建整体类的有效点设置方法(缺省构造函数为清空有效点),包括增加点、减少点和插入点。. 创建能够获取有效点坐标和颜色值的整体类方法。6.2.2

19、主函数. 创建整体类。. 循环增加有效点。. 输出折线表示。. 反复修改有效点数并输出折线表示。6.3 实验报告. 部分类定义源代码. 整体类定义源代码. 主程序源代码. 历次有效点数及其输出的折线表示结果。第 14 页实验7 多态与虚函数7.1 目的和要求. 掌握父类指针和子类对象的关系. 认识静态联编和动态联编的区别. 掌握虚函数的定义及使用. 掌握多态的机制使用. 抽象类的概念及其使用7.2 实验内容7.2.1 定义父类和子类. 定义一个 SHAPE 类,其中只有一个公有成员函数DRAW,函数体输出个性化信息。. 通过 SHAPE 派生子类POINT,其中包括三维坐标数据和颜色数据,同时

20、还有函数DRAW,输出相应的结果。. 通过 SHAPE 派生子类LINE,其中包括两个POINT 对象和一个DRAW 函数。. SHAPE、POINT 和LINE 类中的DRAW 函数具有相同的原型,但定义和输出的个性化信息不同。. 除了 SHAPE 类之外的POINT 类和LINE 类都需要有相应的构造函数。7.2.2 主函数. 创建 SHAPE 对象和SHAPE 指针。. 创建 POINT 对象和LINE 对象。. 分别用 SHAPE 对象、POINT 对象和LINE 对象调用DRAW 方法,记录结果。. 分别用 SHAPE 指针指向SHAPE 对象、POINT 对象和LINE 对象,以指

21、针形式调用DRAW 方法,记录结果。. 将 SHAPE 类中的DRAW函数修改成虚函数。再次用SHAPE 指针指向SHAPE 对象、POINT 对象和LINE 对象,以指针形式调用DRAW 方法,记录结果。. 将 SHAPE 类中的DRAW 函数修改成纯虚函数。重新运行,记录出现的问题。. 修改问题,重新运行。7.3 实验报告. 按照实验内容所进行的每次修改后的源代码及其运行结果。. 实验过程中遇到的问题及其解决方法。第 15 页实验8 运算符重载8.1 目的和要求. 深度掌握运算符重载的各种用法。. 以教材上的 MyComplex 类为原形进行本实验。8.2 实验内容. 完整输入教材上的 MyComplex 类定义及其主函数。. 成功调试运行并产生一致的结果。. 分析结果。8.3 实验报告. 每条输出结果与源代码之间的对应关系. 从中分析函数调用、参数传递、实参创建和释放等相关问题的运行机理。第 16 页实验9 DLL 组件9.1 目的和要求. 掌握 C+创建DLL 组件的过程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1