




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 类与对象一、实验目的1、学习类与对象的定义,掌握类与对象的使用方法。2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义与执行过程,学会构造函数的重载方法。3、掌握数组与指针的定义与使用方法,理解数组与指针的存储分配与表示。4、掌握用指针和引用向函数传递参数。5、掌握静态数据成员和静态成员函数的使用。6、理解友元与友元函数的作用与使用方法。二、实验内容1、下面是一个计算器类的定义,请完成该类成员函数的实现。#includeclass Counter public: Counter(int number); void increment(); /给原值加1 void decrement(); /给原值减1 int getValue(); /取得计数器值 int print(); /显示计数 private: int value;Counter:Counter(int number)value=number;void Counter:increment()value+=1;void Counter:decrement()value-=1;int Counter:getValue()return value;int Counter:print()cout计数器的值为:valueendl;return 0;void main()Counter p(10);p.print();p.increment(); /给原值加1p.print();p.decrement(); /给原值减1p.getValue(); /取得计数器值p.print();2、根据注释语句的提示,实现类Date的成员函数。#includeclass Date public: void printDate();/显示日期 void setDay(int d);/设置日的值 void setMonth(int m);/设置月的值 void setYear(int y);/设置年的值 private: int day,month,year;void Date:setDay(int d)day=d;void Date:setMonth(int m)month=m;void Date:setYear(int y)year=y;void Date:printDate()cout日期是:year年month月day日endl;int main()Date testDay;testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2014);testDay.printDate();return 0;3、建立类cylinder,cylinder的构造函数被传递了两个double值,分别表示圆柱体的半径和高度。用类cylinder计算圆柱体的体积,并存储在一个double变量中。在类cylinder中包含一个成员函数vol(),用来显示每个cylinder对象的体积。#includeclass cylinderpublic:cylinder(double x,double y)r=x;hight=y;void Area()area=3.14*r*r*hight;void vol()cout体积是:areaendl;private:double area,r,hight;void main()cylinder p1(1,2);p1.Area();cylinder p2(2,2);p2.Area();p1.vol();p2.vol();4、构建一个类book,其中含有两个私有数据成员qu和price,建立一个有5个元素的数组对象,将qu初始化为15,将price初始化为qu的10倍。显示每个对象的qu*price值。#includeclass bookprivate:int qu,price;public:book(int x)qu=x;price=10*x;int get()return qu*price;void main()book ob5=1,2,3,4,5; int i;for(i=0;i5;i+)coutobi.get()endl;5、修改上题,通过对象指针访问对象数组,使程序以相反的顺序显示对象数组的qu*price值。#includeclass bookprivate:int qu,price;public:book(int x)qu=x;price=10*x;int get()return qu*price;void main()book ob5=1,2,3,4,5; book *p;p=ob;int i;for(i=4;i=0;i-)coutget()endl;6、构建一个类Stock,含字符数组stockcode及整型数据成员quan、双精度型数据成员price。构造函数含3个参数:字符数组na及q、p。当定义Stock的类对象时,将对象的第一个字符串参数赋给数据成员stockcode,第2个和第3个参数分别赋给quan和price。未设置第2个和第3个参数时,quan的值为1000,price的值为8.98。成员函数print()使用this指针,显示对象内容。#include#includeclass Stockpublic:Stock(char na,int q=1000,double p=8.98)strcpy(stockcode,na);quan=q;price=p;void print()coutstockcode quan priceendl;private:char stockcode 10;int quan;double price;void main()Stock p(djkgd,10,21.12);p.print();Stock s1(ajfdka);s1.print();Stock s2(aaa,200);s2.print();7、参考课本例子,建立一个源程序文件,在此文件中建立一个新的类,将新建的类命名为Rect。【要求】(1)向Rect类中添加数据成员及成员函数,并完善成员函数的功能。如设计一个Area_int()函数,计算边长为整型的长方形的面积;设计一个Area_double()函数,计算边长为double型的长方形的面积。(2)重载构造函数。一种构造函数用整型变量记录长方形的长和宽,另一种构造函数用double型记录。(3)体现对象的构造和析构过程。例如,在构造函数中用cout”I am the constructor!”endl;在析构函数中输出cout”I am the destructor”endl。(4)在main()函数中定义两个Rect类的对象,一个对象用实例实现(就像定义普通的变量一样),另一个对象用指针实现(利用关键字new,给指针分配内存空间)。并用不同的参数,以调用不同的构造函数体现构造函数的重载。#includeclass Rectpublic: int Area_int(); double Area_double(); Rect(double length,double width); Rect(int length,int width); virtual Rect();private: int nLength; int nWidth; double dLength; double dWidth;Rect: Rect()coutI am the destructorendl;Rect:Rect(int length,int width)nLength= length;nWidth= width;coutI am the constructor!endl; int Rect: Area_int()return nLength* nWidth; Rect:Rect(double length,double width)dLength= length;dWidth= width; coutI am the constructor!endl; double Rect:Area_double()return dLength* dWidth; void main()int a=2,b=3;double c=4,d=5;Rect r1(a,b); Rect r2(c,d);coutr1=r1.Area_int()endl;coutr2=r2.Area_double()endl;Rect *p=new Rect(a,b),*q=new Rect(c,d);coutr3=Area_int()endl;coutr4=Area_double()endl;8、声明一个Student,在该类中包括一个数据成员score(分数)、两个静态数据成员total_score(总分)和count(学生人数);还包括一个成员函数account()用于设置分数、累计学生的成绩之和、累计学生人数,一个静态成员函数sum()用于返回学生的成绩之和,另一个静态成员函数average()用于求全班成绩的平均值。在main()函数中,输入某班学生的成绩,并调用上述函数求出全班学生的成绩之和和平均分。#includeclass Studentpublic:void account();static double average(),sum();private:double score;static double total_score,count;double Student:count=0;double Student:total_score=0;void Student:account()int i;for(i=0;i+)cinscore;if(score!=00)total_score+=score;count+;if(score=00)break;double Student:sum()return total_score;double Student:average()return total_score/count;void main()Student a;a.account();Student:sum();Student:average();cout总成绩:Student:sum() 平均成绩:Student:average()endl;运行结果:9、设计一个用来表示直角坐标系的Location类,在主程序中创建类Location的两个对象A和B,要求A的坐标点在第3象限,B的坐标点在第2象限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下格式输出结果:A(x1,y1),B(x2,y2)Distance=d其中:x1、y1、x2、y2为指定的坐标值,d为两个坐标点之间的距离。#include#includeclass Locationpublic:Location(int i,int j)x=i;y=j;int getx()return x;int gety()return y;double longth(Location &a,Location &b)int dx=a.x-b.x;int dy=a.y-b.y;return double(sqrt(dx*dx+dy*dy);friend double Longth(Location &a,Location &b);private:int x,y;double Longth(Location &a,Location &b) int dx=a.x-b.x;int dy=a.y-b.y;return double(sqrt(dx*dx+dy*dy);void main()Location p1(-2,-3),p2(-4,5);p1.getx();p1.gety();p2.getx();p2.gety();cout(p1.getx(),p1.gety(),(p2.getx(),p2.gety()endl;cout(成员函数)Distance=p1.longth(p1,p2)endl;cout(友元函数)Distance=Longth(p1,p2)endl;运行结果:10、使用C+的string类,将5个字符串按逆转后的顺序显示出来。例如,逆转前的5个字符串是:Germany、Japan、American、British、France按逆转后的顺序输出字符串为:France、British、American、Japan、Germany#include #include using namespace std;class chapublic:cha(char *a,char *b,char *c,char *d,char *e)str0=a;str1=b;str2=c;str3=d;str4=e;string str5;void main() cha p(Germ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初识火电运行值班员工作职责与考试要点解析
- 阳光版小学一班级下册 跳跃类游戏
- 【教案版】小学一班级上册 跳绳
- 17水平二技巧《前滚翻1》教案
- 2025年农村水源保护及治理工作面试题集及答案解析
- 2025年软件测试工程师技能进阶教程及实战经验
- 2025年网络安全工程师专业模拟题与答案解析
- 电信运营行业知识培训课件
- 2025年炼钢原理及实践应用面试题解析
- 2025年高级营养师专业能力提升考试模拟题与答案解析
- DB61T1730-2023公路路面煤矸石基层施工技术规范
- 第四章 土地估价方法-成本法
- GB/T 43198-2023食品包装用聚乙烯吹塑容器
- 从力的做功到平面向量数量积说课稿省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件
- 骨科常见体位和摆放课件
- 中国传统文化概论绪论
- 这么写网约车事故索赔误工费的起诉状更容易胜诉
- 固体废物污染环境防治法课件
- 2022年高校教师资格证(高等教育学)考试题库评估300题有解析答案(四川省专用)
- 精装修安全文明施工方案
- 肺结核共45张课件
评论
0/150
提交评论