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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

面向对象程序设计实验内容学生.docx

1、面向对象程序设计实验内容学生面 向 对 象 程 序 设 计实 验 报 告信息工程学院张永南昌航空大学实验报告二00七年 月 日课程名称:面向对象程序设计 实验名称:类与结构 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 1、实验目的学习掌握声明和定义类及成员。 学习掌握访问类对象成员。学习掌握保护数据如何屏蔽外部访问的原理,更好的认识类的封装2、实验内容(1) 定义一个满足下列要求的Date类: 用下面的格式输出日期:日/月/年可运行在日期上加一天操作设置日期/Date.h#include using namespace std;clas

2、s Datepublic: void Display(); void AddOneDay(); void SetDay(int y,int m,int d);protected: bool Legal(int y, int m, int d); bool IsLeapYear(int y); int year; int month; int day; (2) 定义一个时间类Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。并将类定义作为接口,用多文件结构实现之。/Time.hclass Timepublic: Time(); void

3、Print(); void Set(int,int,int);protected: int min; int sec; int hour;南昌航空大学实验报告二00七年 月 日课程名称:面向对象程序设计 实验名称:静态成员与友元 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 1、实验目的学习友元函数的定义和原理。学习静态数据成员和静态成员函数的使用。学习静态成员代替全局变量实现对象间的共享。2、实验内容(1)有如下类的定义。类成员函数copy用于实现两个对象的相互拷贝,请完成该函数的实现,然后再利用友元函数实现。include class

4、 Myclass public: Myclass (int a,int b) x=a;y=b; void copy(Myclass & my);void print( ) cout“x=”xendl; cout”y=”yendl; private:int x,y; void main() Myclass my(10,20),t(30,40); my.print( );my. Copy(t);my.print( );成员函数实现:#include class Myclass public: Myclass (int a,int b) x=a;y=b; void copy(Myclass & my

5、); void print( ) coutx=xendl; couty=yendl; private:int x,y;友员函数实现:#include class Myclass public: Myclass (int a,int b) x=a;y=b; friend void copy(Myclass &o,Myclass y); void print( ) coutx=xendl; couty=yendl; private:int x,y;(2)商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,单价不一样,因此商店需要记录下目前库存的货物的总重量和总价值

6、。编写一个程序,通过定义类Carlo来模拟商店货物购进和卖出的情况。(本题目主要练习静态数据成员的使用,定义私有变量存每件货物的价格和重量,用静态数据成员存货物的总重量和总价钱,定义构造函数和析构函数,当定义新的对象完成初始化的功能和删除对象时,从总重量和总价钱中减去对象的重量和价格)/Menu.h#ifndef MENU_H#define MENU_Hclass Menu public: int show();#endif;/ Carlo.hclass Carlopublic: Carlo(double Weight = 0,double Price = 0); virtual Carlo(

7、); void SetCarlo(double = 0,double = 0); const double &GetCurrentTotalWeight() const; const double &GetCurrentTotalPrice() const; void BuyBox(); void SellBox(); void ShowBoxInfor() const; protected: static double TotalWeight; static double TotalPrice; private: double BoxWeight; double BoxPrice;/Carl

8、o.cpp#include #include Carlo.husing namespace std;double Carlo:TotalPrice=0.0;double Carlo:TotalWeight=0.0;Carlo:Carlo(double Weight, double Price) void Carlo:BuyBox() const double &Carlo:GetCurrentTotalPrice() const return TotalPrice; const double &Carlo:GetCurrentTotalWeight() const return TotalWe

9、ight;void Carlo:SetCarlo(double Weight, double Price) void Carlo:SellBox() void Carlo:ShowBoxInfor() constCarlo:Carlo()/Menu.cpp#include #include #include Menu.husing namespace std;int Menu:show() /CarloDemo.cpp#include #include Menu.h#include Carlo.husing namespace std;void main() 南昌航空大学实验报告二00七年 月

10、 日课程名称:面向对象程序设计 实验名称:构造函数与析构函数 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 1、实验目的理解类与对象的区别。 学习掌握定义构造函数与析构函数的方法。 学习把握默认构造函数的意义。了解类成员初始化,掌握构造与析构类成员的方式。2、实验内容(1)创建一个Employee类,该类中用字符数组存放Employee的信息,如姓名、地址、市、省、及邮政编码;每个成员函数的定义放在类定义之外;成员函数包括改变姓名数据成员等;构造函数完成成员数据的初始化;用Display()函数将完整的对象数据打印出来;其中数据成员是保护

11、的,成员函数是公共的。 #include #include #include using namespace std;class Employeepublic: Employee(char n20,char a50,char s20,char sh20,char p6); void ChangeName(char ch_name20); void Display(); protected: char name20; char address50; char shi20; char sheng20; char post6; (2) 设计一个表示矩形的类Rect,其矩形成员长float * Len

12、gth ,宽float * Width为指针变量,设计相应成员函数,实现下列功能: 构造函数设置长和宽(默认为1)。 复制构造函数用老对象生成新对象。 set()函数设置长和宽(默认为0)。 计算并返回长方形的周长。 计算并返回长方形的面积。 析构函数释放动态分配的长和宽。编制主程序应用指针建立对象测试类。#include class Rect float *Length,*Width;public: Rect(float a=1,float b=1); Rect(Rect &); void set(float a=0,float b=0); float peri(); float area(

13、); Rect()delete Length;delete Width;南昌航空大学实验报告二00七 年 月 日课程名称:面向对象程序设计 实验名称:继承与多态性 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 1、实验目的了解类的两种使用方式学习从现有类派生出新类的方式了解在派生类中如何使用基类的成员了解基类成员在派生类中的访问控制了解虚函数对多态性的支持2、实验内容题目:应用多态设计学生类生成表示学生的类XS,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄,并将他们全部定义为纯虚函数;生成C

14、ZS类表示初中生,包含数据成员xm、xb和nl表示学生的姓名、性别和年龄,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄;再生成类GZS表示高中生和类DXS表示大学生,同样包含相同含义的数据成员xm、xb和nl,也包括成员函数dispXM()、dispXB()和dispNL()。实验要求 设计和实现基类XS。 设计和实现派生类CZS、GZS、DXS。 分别生成CZS、GZS、DXS类的对象。 将CZS、GZS、DXS类对象的地址赋给XS类的指针变量。 分别用XS类的指针和引用访问dispXM()、dispXB()和dispNL()函数。 观察程序结

15、果。#include #include using namespace std;/设计抽象类(XS)表示学生类,定义其中dispXM(),dispXB(),dispNL()三个函数为纯虚函数class XSpublic: virtual void dispXM()=0; virtual void dispXB()=0; virtual void dispNL()=0;/*定义CZS类,使其继承XS类,包含三个数据成员xm(4个以内汉字,默认名为张三), xb(int型,1表示男,0表示女,默认为1),nl(int型,默认为14);定义构造函数, 初始化各数据成员.另:实现基类的三个纯虚函数,显

16、示各数据成员.*/class CZS:public XSpublic: CZS(char * m=张三,int b=1,int n=14); void dispXM(); void dispXB(); void dispNL();protected: char xm9; int xb,nl;/仿照上面的写法,定义高中生类(GZS)和大学生类(DXS)class GZS:public XSpublic: GZS(char * m=张三,int b=1,int n=17); void dispXM(); void dispXB(); void dispNL();protected: char xm

17、9; int xb,nl;class DXS:public XSpublic: DXS(char * m=张三,int b=1,int n=20); void dispXM(); void dispXB(); void dispNL();protected: char xm9; int xb,nl;/主函数void main() CZS czs(赵一,1,12); GZS gzs(钱二,0,15); DXS dxs(孙三,1,18); XS *p;/定义抽象基类的指针变量p p=&czs;/将初中生对象czs的地址赋给p displayP(p); p=&gzs;/将高中生对象czs的地址赋给p

18、 displayP(p); p=&dxs;/将大学生对象czs的地址赋给p displayP(p); coutn-n; XS &r1=czs;/定义抽象基类的引用变量r1为czs的别名 displayR(r1); XS &r2=gzs;/定义抽象基类的引用变量r2为czs的别名 displayR(r2); XS &r3=dxs;/定义抽象基类的引用变量r3为czs的别名 displayR(r3); coutn-n;南昌航空大学实验报告二00七 年 月 日课程名称:面向对象程序设计 实验名称:运算符重载 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: X

19、XXXX 1、实验目的学习掌握重定义与类有关的运算符。把握重载运算符的时机。学习掌握把一个类对象转换为另一个类对象。学习掌握重载为成员与友元的区别及其带参数的情况。学习掌握值返回与引用返回的区别及应用时机。2、实验内容(1) 生成一个表示复数的类FS。复数的实部sb和虚部xb作为其数据成员。提供成员函数disp()显示复数(格式:-3+5i或6-2i),重载“+”、“-”为FS类的成员函数,用来计算两个复数的和、差。思路导航: 定义类,设计构造函数和显示函数print(); 重载运算符“+”、“-”为类FS的成员函数。 实例化FS类的2个对象,并利用重载的运算符对其进行计算。 另外,根据上述定

20、义,试将上述的运算符重载成员函数改写成友元函数。#include using namespace std;class FS double sb,xb;public: FS(double a=0,double b=0); FS & operator+ (FS&); FS & operator- (FS&); void print();void main()/主函数 FS a(-8,3),b(7,-4); FS c1;c1=a+b; a.print();cout+;b.print();cout=;c1.print(); coutendl; FS c2;c2=a-b; a.print();cout-

21、;b.print();cout=;c2.print(); coutendl;/运算符重载为友元函数#include using namespace std;class FS double sb,xb;public: FS(double a=0,double b=0); friend FS operator+ (FS &,FS &); friend FS operator- (FS &,FS &); void print();void main()/主函数 FS a(8,3),b(7,-14); FS c1;c1=a+b; a.print();cout+;b.print();cout=;c1.p

22、rint(); coutendl; FS c2;c2=a-b; a.print();cout-;b.print();cout=;c2.print(); coutendl;(2) 编写一个时间类,实现时间的加、减、读和输出: /class.hclass Timepublic: Time() void SetTime(); void Display(); Time operator + (Time &a); Time operator - (Time &a);private: int hour,minute,second;/function.cpp#include #include class.h

23、void Time:SetTime() void Time:Display() couthour:minute:secondendl;Time Time:operator + (Time &a) Time Time:operator - (Time &a) /overload.cpp#include #include class.husing namespace std;void main() Time a,b,c; cout请输入A的时间:endl; a.SetTime(); cout请输入B的时间:endl; b.SetTime(); coutA的时间为:; a.Display(); co

24、utB的时间为:; b.Display(); coutc=a+b=; c=a+b; c.Display(); coutendlc=a-b=; c=a-b; c.Display();南昌航空大学实验报告二00七年 月 日课程名称:面向对象程序设计 实验名称:动态链接库的制作与调用 班 级: XXXXXXX 学生姓名: XXXXXX 学号: 指导教师评定: XX 签名: XXXXX 一 用所学的内容编写一个动态链接库的文件1、实验目的(1)了解和掌握类和指向函数的指针的使用。(2)了解和掌握宏的使用,(3)掌握动态链接库文件创建的过程。2、实验要求 熟练掌握动态链接库文件的创建3、实验步骤与内容

25、题目:创建一个动态链接库,实现画一棵树。1).启动Visual C+6.0或者C+ Builder 5.0 .在WINDOWS98或WINDOWS 2000环境下,找到Visual C+6.0或者C+ Builder 5.0图标,双击之。为了不使Visual C+6.0或者C+ Builder 5.0的默认搜索路径与WINDOWS其他软件相冲突,清修改Visual C+6.0或者C+ Builder 5.0图标的属性。在属性|程序|批处理一栏中填上你自己的批处理程序名。以便启动时,首先运行你的批处理程序。然后在该批处理程序中,写上path.路径。2).设置用户程序子目录 设置用户程序子目录的目

26、的是,将所有编程时产生的中间文件和最终执行程序文件全部放在自己的目录中,以便管理。 3).创建和输入程序 Visual C+6.0启动后,要先建立一个project工程文件。方法为: 选择File|new 菜单项,将弹出New 对话框。 单击Projects 选项卡 在Location中填用户子目录路径 在Project name中填入工程名(如MyDll) 在列表中选择MFC AppWizard(dll),表示你编制的应用程序将生成动态链接库文件(.dll) 按照提示创建一个自己想要的工程 定位到mydll.h文件处,添加动态链接库的函数原型声明,下面为mydll.h的内容: / MyDll

27、.h : main header file for the MYDLL DLL#include resource.h / main symbols/ CMyDllApp/ See MyDll.cpp for the implementation of this class/int DrawTree(CPaintDC *dc,int xStart,int yStart,double length,double angle,int num);class CMyDllApp : public CWinApppublic: CMyDllApp();/ Overrides / ClassWizard generated virtual function overrides /AFX_VIRTUAL(CMyDllApp) public: virtual BOOL InitInstance(); /AFX_VIRTUAL

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

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