面向对象程序设计实验报告.pdf
《面向对象程序设计实验报告.pdf》由会员分享,可在线阅读,更多相关《面向对象程序设计实验报告.pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、南昌航空高校试验报告二年 月 日课程名称:面对对象程序设计B 试验名称:类与结构班 级:XXXXXXX 同学姓名:XXXXXX 学号:指导老师评定:XX 签名:XXXXX1、试验目的 学习把握声明和定义类及成员。学习把握访问类对象成员。学习把握爱护数据如何屏蔽外部访问的原理,更好的熟悉类的封装2、试验内容(1)定义一个满意下列要求的D a te 类:用下面的格式输出日期:日/月/年可运行在日期上加一天操作设置日期/D a te,h#i nc l ud e c l a ss D a te pub l i c:voi d D i spl a y();voi d A d d O ne D a y()
2、;voi d S e tD a y(i nt y,i nt m,i nt d);prote c te d:b ool Le g a l (i nt y,i nt m,i nt d);b ool I sLe a pY e a r(i nt y);i nt ye a r;i nt month;i nt d a y;;voi d D a te:D i spl a y()c out d a y /“month /9 9 9 9|y l|d l|m 1 2)re turn f a l se;i nt d a yLi mi t=3 1;swi tc h(m)c a se 4:c a se 6:c a se
3、 9:c a se 1 1:d a yLi mi t;i f(m=2)d a yLi mi t=I sLe a pY e a r(y)?2 9 :2 8;re turn(d d a yLi mi t)?f a l se :true;b ool D a te:I sLe a pY e a r(i nt y)re turn!(y%4)&(y%1 0 0)I!(y%4 0 0);)(2)定义一个时间类T i me,能供应和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象供应的时间。并将类定义作为接口,用多文件结构实现之。/T i me,hc l a ss T i me(
4、pub l i c:T i me O ;voi d P ri nt();voi d S e t(i nt,i nt,i nt);prote c te d:i nt mi n;i nt se c;i nt h our;/ti me,c pp i nc l ud e i nc l ud e T i me.h T i me:T i me()mi n=2 3;se c=2 0;h our=1 8;)voi d T i me:P ri nt()cout hour min,z:,z sec endl;)void Time:Set(int s,int m,int h)min=m;sec=s;hour=h;)
5、/te s t,cpp#include#include Time.hvoid main()int m,s,h;Time time;cout z,Now the time is:m h;while(s=60 I|m=60|h24)(cout Please input a g a in:s m h;)time.Set(s,m,h);cout z,The time of being changed is:e n d l;time.Print();)南昌航空高校试验报告二年 月 日课程名称:面对对象程序设计B 试验名称:静态成员与友元班 级:XXXXXXX 同学姓名:XXXXXX 学号:指导老师评定:
6、XX 签名:XXXXX1、试验目的 学习友元函数的定义和原理。学习静态数据成员和静态成员函数的使用。学习静态成员代替全局变量实现对象间的共享。2、试验内容(1)有如下类的定义。类成员函数copy用于实现两个对象的相互拷贝,请完成该函数的实现。(有两种方法即不用th is指针和用this指针),并采用友员函数实现copy.#include class Myclasspublic:Myclass(int a,int b)x=a;y=b;void copy(Myclass&my);void print()cout u x=,x en d l;cout,y=,y en d l;)private:int
7、 x,y;);void main()Myclass my(10,20)4(30,40);my.print();my.Copy(t);my.print();)成员函数实现:#include class Myclasspublic:Myclass(int a,int b)x=a;y=b;void copy(Myclass&my);void print()coutux=n x en d l;coutx=my.x;y=my.y;/this-y=my.y;)void main()Myclass my(10,20)4(30,40);my.print();my.copy(t);my.print();)友员函
8、数实现:#include class Myclasspublic:Myclass(int a,int b)x=a;y=b;friend void copy(Myclass&o,Myclass y);void print()coutHx=xendl;coutMy=n y e n d l;)private:int x,y;void copy(Myclass&o,Myclass y)o.x=y.x;oy=yy;)void main()Myclass my(10,20),1(30,40);my.print();copy(my,t);my.print();(2)商店经销一种货物,货物成箱购进,成箱卖出,
9、购进和卖出时以重量为单位,各箱的重量不一样,单价不一样,因此商店需要纪录下目前库存的货物的总重量和总价值。编写一个程序,通过定义类Carlo来模拟商店货物购进和卖出的状况。(本题目主要练习静态数据成员的使用,定义私有变量存每件货物的价格和重量,用静态数据成员存货物的总重量和总价钱,定义构造函数和析构函数,当定义新的对象完成初始化的功能和删除对象时,从总重量和总价钱中减去对象的重量和价格)/Menu,httifndef MENUttdefine MENU_Hclass Menu public:int show(););#endif;/Carlo.hclass Carlo public:Carlo
10、(double Weight=0,double Price=0);virtualvoidconst doubleconst doublevoidvoidvoidprotected:Carlo();SetCarlo(double=0,double=0);&GetCurrentTotalWeight()const;&GetCurrentTotalPrice()const;BuyBox();SellBox();Show BoxInfor()const;static doublestatic doubleTotalWeight;TotalPrice;private:double BoxWeight;d
11、ouble BoxPrice;);/Carlo,cpp#include#include Carlo.hdouble Carlo:TotalPrice=0.0;double Carlo:TotalWeight=0.0;Carlo:Carlo(double Weight,double Price)BoxWeight=Weight;BoxPrice=Price;TotalPrice+=Weight*Price;TotalWeight+=Weight;void Carlo:BuyBox()system(cls);Carlo carlo;double Weight,Price;cout Weight P
12、rice;carlo.SetCarlo(Weight,Price);const double&Carlo:GetCurrentTotalPrice()const return TotalPrice;const double&Carlo:GetCurrentTotalWeight()const return TotalWeight;)void Carlo:SetCarlo(double Weight,double Price)BoxWeight=Weight;BoxPrice=Price;TotalPrice+=Weight*Price;TotalWeight+=Weight;)void Car
13、lo:SellBox()system(cls);double Weight,Price;cout Weight Price;w hile(Weight 0|i Price TotalPrice)i I Weight TotalWeight|TotalPrice 0)cout 存货不够!;cin.get();cin.get();)else TotalPrice-=Weight*Price;TotalWeight-=Weight;cout 出货完成!;cin.get();cin.get();)void Carlo:Show BoxInfor()const system(cls);cout 库中的存
14、货总重量为:;cout.precision(6);cout.setf(ios_base:show point);cout GetCurrentTotalWeight()endl;cout。库中的存货总价钱为:;cout.precision(6);cout GetCurrentTotalPrice();cin.get();cin.get();)Carlo:Carlo()()/Menu,cppttinclude#include ttinclude Menu.hint Menu:show ()system(cls);int chioce;cout nnnnnttt ”;徵1 1 1 进出货演示 “0
15、 1 1(1 1 6 1 1(1 1;cout ttt L 进货登记.“endl endl;cout ttt ”2.出货登记.endl endl;cout,zttt z/3.猎取库存信息.endl endl;cout ttt 4.退出,endl endl;cout ttt chioce;return(chioce);)/CarloDemo.cpp#include 4 include Menu.hinclude Carlo.hvoid main()Menu menu;Carlo carlo;int chioce;w hile(chioce=menu.show O)-4)sw itch(chioc
16、e)case 1:carlo.BuyBox();break;case 2:carlo.SellBox();break;case 3:carlo.Show BoxInfor();break;)南昌航空高校试验报告二年 月 日课程名称:面对对象程序设计B 试验名称:构造函数与析构函数班 级:XXXXXXX 同学姓名:XXXXXX 学号:指导老师评定:XX 签名:XXXXX1、试验目的 理解类与对象的区分。学习把握定义构造函数与析构函数的方法。学习把握默认构造函数的意义。了解类成员初始化,把握构造与析构类成员的方式。2、试验内容(1)创建一个Employee类,该类中用字符数组存放Employee的
17、信息,如姓名、地址、市、省、及邮政编码;每个成员函数的定义放在类定义之外;成员函数包括转变姓名数据成员等;构造函数完成成员数据的初始化;用Display。函数将完整的对象数据打印出来;其中数据成员是爱护的,成员函数是公共的。#i n c l u d e#i n c l u d e#i n c l u d e c l a s s Em p l o y e e(p u b l i c:Em p l o y e e(c h a r n 20,c h a r a 50,c h a r s 20,c h a r s h 20,c h a r p 6 );v o i d Ch a n g e N a m
18、e(c h a r c h _ n a m e 20);v o i d Di s p l a y();p r o t e c t e d:c h a r n a m e 20;c h a r a d d r e s s 50;c h a r s h i 20;c h a r s h e n g 20;c h a r p o s t 6 ;);Em p l o y e e:Em p l o y e e(c h a r n 20,c h a r a 50,c h a r s 20,c h a r s h 20,c h a r p 6 )s t r c p y(n a m e,n);s t r c
19、p y (a d d r e s s,a);s t r c p y(s h i,s);s t r c p y(s h e n g,s h);s t r c p y (p o s t,p);)v o i d Em p l o y e e:Ch a n g e N a m e(c h a r c h _ n a m e 20)(s t r c p y(n a m e,c h n a m e);)v o i d Em p l o y e e:Di s p l a y()(c o u t n a m e:n a m e e n d l,za d d r e s s:/z a d d r e s s e
20、 n d l z,s h i :/z s h i e n d l/s h e n g:z,s h e n g e n d l z/p o s t:,z p o s t e n d l;)v o i d m a i n ()(Em p l o y e e e m(,zr e r r 34t 3,“5 W e s t S t.,R e v e r e,CA,12290);e m.Di s p l a y ();e m.Ch a n g e N a m e Cs d f e s f e f e );e m.Di s p l a y ();)(2)设计一个表示矩形的类R e e l,其矩形成员长f l
21、 o a t*L e n g t h,宽f l o a t*W i d t h 为指针变量,设计相应成员函数,实现下列功能:构造函数设置长和宽(默认为1)。复制构造函数用老对象生成新对象。s e t()函数设置长和宽(默认为0)。计算并返回长方形的周长。计算并返回长方形的面积。析构函数释放动态安排的长和宽。编制主程序应用指针建立对象测试类。#i n c l u d e c l a s s R e c t f l o a t *L e n g t h,*W i d t h;p u b l i c:R e c t(f l o a t a=l,f l o a t b=l);R e c t (R e
22、c t&);v o i d s e t(f l o a t a=0,f l o a t b=0);f l o a t p e r i ();f l o a t a r e a O ;R e c t()d e l e t e L e n g t h;d e l e t e W i d t h;);R e c t:R e c t(f l o a t a,f l o a t b)L e n g t h=n e w f l o a t;W i d t h=n e w f l o a t;L e n g t h=a;*W i d t h=b;)R e c t:R e c t(R e c t&x)L e
23、n g t h=n e w f l o a t;W i d t h=n e w f l o a t;*L e n g t h=*x.L e n g t h ;*W i d t h=*x.W i d t h ;c o u t “执行复制构造函数 6 n d l;)v o i d R e c t:s e t(f l o a t a,f l o a t b)L e n g t h=a;*W i d t h 二 b;f l o a t R e c t:p e r i()r e t u r n (L e n g t h +W i d t h)*2;f l o a t R e c t:a r e a()r
24、 e t u r n (*L e n g t h)*(*W i d t h);主函数v o i d m a i n()R e c t r l (55.5,40);c o u t 周长为:p e r i ()面积为:a r e a O e n d l;c o u t -n ;R e c t *p=n e w R e c t(r l);思索:此处改为 R e c t *p=n e w R e c t;下一行的输出会是什么结果c o u t ”周长为:p e r i ()面积为:a r e a()e n d l;p-s e t (20.5,13);c o u t 周长为:p e r i ()面积为:
25、a r e a()e n d l;南昌航空高校试验报告二年 月 日课程名称:面对对象程序设计B 试验名称:继承与多态性班 级:XXXXXXX 同学姓名:XXXXXX 学号:指导老师评定:XX 签名:XXXXX1、试验目的了解类的两种使用方式学习从现有类派生出新类的方式了解在派生类中如何使用基类的成员了解基类成员在派生类中的访问掌握了解虚函数对多态性的支持2、试验内容题目:应用多态设计同学类生成表示同学的类X S,供应成员函数d i s p X M O、d i s p X BO 和 d i s p N L O 分别用来显示姓名、性别和年龄,并将他们全部定义为纯虚函数;生成CZ S 类表示学校生,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 实验 报告
限制150内