




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二 类与对象 一、实验目的 1、学习类与对象的定义,掌握类与对象的使用方法。 2、学习数据成员与成员函数的访问方式,理解构造函数和析构函数的定义 与执行过程,学会构造函数的重载方法。 3、掌握数组与指针的定义与使用方法, 理解数组与指针的存储分配与表示 4、掌握用指针和引用向函数传递参数。 5、掌握静态数据成员和静态成员函数的使用。 6、理解友元与友元函数的作用与使用方法。 二、实验内容 1、下面是一个计算器类的定义,请完成该类成员函数的实现 class Counter public: Counter(int number); void increment(); / 给原值加 1 void
2、 decrement(); /给原值减 1 int getValue(); /取得计数器值 int print(); /显示计数 private: int value; ; #include class count public: counter(int number); void increment(); void decrement(); int getvalue(int); int print(); private: int value; ; void count:increment() int a=value+1; void count:decrement() int b=value-
3、1; int count:getvalue(int s) value=s; return 0; int count:print() coutvalue+1=value+1endl; coutvalue-1=value-1endl; return 0; void mai n() cou nt s; (5); (); 2、根据注释语句的提示,实现类 Date的成员函数。 #in clude class Date public: void prin tDate();显示日期 void setDay(i nt d); 设置日的值 void setMo nth(i nt m);设置月的值 void se
4、tYear(i nt y);设置年的值 private: int day,month,year; ; void Date:printDate() coutvvyearvv年month月day日 void Date:setDay(int d) day=d; void Date:setMonth(int m) month=m; void Date:setYear(int y) year=y; int main() Date testDay; (5); (10); (2014); (); return 0; 3、建立类cylinder , cylinder的构造函数被传递了两个 double值,分别
5、 表示圆柱体的半径和高度。用类cyli nder计算圆柱体的体积,并存储在一个 double变量中。在类 cylinder中包含一个成员函数vol(),用来显示每个 cyli nder 对象的体积。 #in clude class cyli nder private: double r; double h; double v; public: cyli nder(); double vol(); cylinder(double,double); ; cylinder:cylinder(double m,double n):r(m),h(n) cylinder:cylinder() coutCo
6、nstructor calledendl; double cylinder:vol() double v; v=*r*r*h; return v; double main() cylinder a,; cout 体积 =()endl; return 0; 4、构建一个类book,其中含有两个私有数据成员qu和price ,建立一个有 5个元素的数组对象,将qu初始化为15,将price初始化为qu的10倍。显示 每个对象的qu*price值。 #in clude class book private: int qu; int price; int s; public: book(i nt p,
7、i nt q):qu(p),price(q) void prin t() coutqu*pricee ndl; ; int mai n() book a(1,10); (); book b(2,20); (); book c(3,30); (); book d(4,40); (); book e(5,50); (); return 0; 5、修改上题,通过对象指针访问对象数组,使程序以相反的顺序显示对象 数组的 qu*price 值。 #include class book private: int qu; int price; int s; public: book(int p) qu=p;
8、 price=qu*10; int print() return(qu*price); ; int main() book a5=1,2,3,4,5; book *p; p= for(int i=4;i=0;i-) coutp-pri nt()e ndl; P-; return 0; 6 构建一个类Stock,含字符数组stockcode及整型数据成员quan、双 精度型数据成员price。构造函数含3个参数:字符数组na及q、p。当定义 Stock的类对象时,将对象的第一个字符串参数赋给数据成员stockcode,第2 个和第3个参数分别赋给quan和price。未设置第2个和第3个参数时,
9、quan 的值为1000, price的值为。成员函数print()使用this指针,显示对象内容。 #in clude #in clude class Stock char stockcode10; int qua n; double price; public: Stock(char na10,int q=1000,double p=; void print(); ; Stock:Stock(char na10,int q,double p) strcpy(stockcode,na); quan=q; price=p; void Stock:print() coutstockcode,qu
10、an,priceendl void main() Stock m(sdgjgj,798,; (); Stock n(sljf); cout 默认: (); .JIAe gi e d七卧 is黒 B anyto 99 outxnue 7、参考课本例子,建立一个源程序文件,在此文件中建立一个新的类,将 新建的类命名为Rect。 class Rect public: int Areant(); double Area_double(); Rect(double length ,double width); Rect(int length ,int width); virtual Rect(); pr
11、ivate : int nLen gth; int nWidth; double dLe ngth; double dWidth; 【要求】 (1) 向 Rect 类中添加数据成员及成员函数, 并完善成员函数的功能。 如设计 一个 Area_int() 函数,计算边长为整型的长方形的面积; 设计一个 Area_double() 函数,计算边长为 double 型的长方形的面积。 (2) 重载构造函数。一种构造函数用整型变量记录长方形的长和宽,另一种 构造函数用 double 型记录。 (3) 体现对象的构造和析构过程。例如,在构造函数中用cout”I am the constructor! ”
12、 endl ; 在 析 构 函 数 中 输 出cout ”I am the destructo r ” endl 。 (4) 在 main() 函数中定义两个 Rect 类的对象,一个对象用实例实现 ( 就像定 义普通的变量一样),另一个对象用指针实现(利用关键字new,给指针分配内存 空间)。并用不同的参数,以调用不同的构造函数体现构造函数的重载。 #include class Rect public: int Area_int(); double Area_double(); Rect(double length,double width); Rect(int length,int wid
13、th); virtual Rect(); private: int nLength; int nWidth; double dLength; double dWidth; ; int Rect:Area_int() int s; s=nLength*nWidth; coutint 的长方形的面积 :sendl; return 0; double Rect:Area_double() double k; k=dLength*dWidth; coutdouble 型的长方形的面积 : kendl; return 0; Rect:Rect(int length,int width) nLength=
14、length; nWidth=width; coutI am the constructor!endl; Rect:Rect() coutI am the destructorendl; Rect:Rect(double length,double width) dLength=length; dWidth=width; coutvl am the con structor!vArea_i nt(); delete p; Rect *q=new Rect,; q-Area_double(); delete q; 8、声明一个 Student ,在该类中包括一个数据成员 score (分数)、两
15、个静 态数据成员 total_score (总分)和 count( 学生人数 ) ;还包括一个成员函数 account() 用于设置分数、累计学生的成绩之和、累计学生人数,一个静态成员 函数 sum() 用于返回学生的成绩之和,另一个静态成员函数 average() 用于求全 班成绩的平均值。在 main() 函数中,输入某班学生的成绩,并调用上述函数求 出全班学生的成绩之和和平均分。 #include class student double score; static double tatal_score; static int count; static double ave; publ
16、ic: void account(double); static double sum(); static double average(); void print(); ; void student:account(double m) score=m; tatal_score=tatal_score+m; +count; double student:sum() return(tatal_score); double student:average() ave=tatal_score/count; return ave; void student:print() cout 人数为: coun
17、tendl; aveendl; cout 总成绩为 : tatal_score 平均成绩为: int student:count=0; double student:tatal_score=; double student:ave=; void main() student a; (97); (); (); student b; (87); (); (); (); 9、设计一个用来表示直角坐标系的Locatio n类,在主程序中创建类 Location的两个对象A和B,要求A的坐标点在第3象限,B的坐标点在第2象 限,分别采用成员函数和友元函数计算给定两个坐标点之间的距离,要求按如下 格式输出
18、结果: A(x1,y1),B(x2,y2) Dista nce=d 其中:x1、y1、x2、y2为指定的坐标值,d为两个坐标点之间的距离。 #in clude #in clude class locati on double x; double y; public: locati on (double,double); void print(location m); friend void print(location ; location:location(double m,double n) x=m; y=n; void location:print(location m) double
19、dx=; double dy=; double d=sqrt(dx*dx+dy*dy); coutAB 的 distance :dendl; void print(location coutAB 的 distance :dendl; void main() location A,; location B,; (B); print(A,B); 10、使用C+啲string类,将5个字符串按逆转后的顺序显示出来。例如, 逆转前的 5 个字符串是: Germany Japan、American、British 、France 按逆转后的顺序输出字符串为: France、British 、American、Japan、Germany #in clude #in clude using n amespace std; void mai n() stri ng s5=Germa ny, Jap a n,America n,Brit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年农艺师考试重要知识点归纳试题及答案
- 2024年微生物检验技师考试难究试题及答案
- 2025年注会统计数据分析试题及答案
- 2024年项目管理专业人士资格认证考试题型分析试题及答案
- 2024年项目管理资格的考前须知试题及答案
- 股票分析与投资判断技巧的考题及答案
- 2025年证券从业资格证凭证试题及答案
- 室内地下吊装口施工方案
- 2024年项目管理专业知识扩展试题及答案
- 皮肤养生保健与天然护肤法考核试卷
- 家长会课件:七年级家长会班主任优质课件
- 人工智能导论智慧树知到课后章节答案2023年下哈尔滨工程大学
- 脑中风病人病情观察
- 第14课 背影 课件(共26张ppt)
- 汽车维修工(三级)技能理论考试题库(浓缩300题)
- 石景山区行政事业单位资产清查业务培训
- 《今天怎样做教师-点评100个教育案例》读书分享会PPT模板
- 高效节水灌溉技术与灌溉排水工程设计及案例分析
- 《将军胡同》阅读试题及答案
- 2022年常德市汉寿县社区工作者招聘考试试题
- 福建土楼介绍
评论
0/150
提交评论