c上机实验答案实验七_第1页
c上机实验答案实验七_第2页
c上机实验答案实验七_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国矿业大学计算机学院实验报告课程名称高级程序设计语言一 实验名称.七、面向对象一一实验报告要求:1.实验目的2.实验内容3.实验步骤4. 运行结果5.流程图6.实验体会一实验目的1. 掌握类的概念、类的定义、类与结构的关系、类的成员属性和类的封装性;2. 掌握对象的定义、初始化和赋值方法,熟悉构造函数、析构函数的编写;3. 理解类的成员的访问控制的含义,公有、私有和保护修饰符的区别;4. 初步掌握用类和对象编制基于对象的程序;5. 学会检查和调试基于对象的程序。二、实验内容1 .#in clude<iostream>using n amespace std;class Time(

2、public:void set_time();void show_time();private:int hour;int mi nute;int sec ond;void Time:set_time()(cin ?hour;ci n? mi nute;cin ?sec ond;void Time:show_time()(cout?hour?": "? minute?": "? second?endl;int mai n()(Time tl;tl.set_time();tl.show_time();return 0;2游泳池改造预算,Circle类一圆型游

3、泳池如下图所示,现在需要在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为 20元/平方米。过道宽度为 3米,游泳池半径由键盘输入。要求编程计算并输岀过道和栅栏的造价using n amespace std;const float pi=(float)3.1415926;const float fenceprice=35.;const float concreteprice=20.;class circle(public:circle(float r);float circumfere nce();float area();private:float radius;ci

4、rcle:circle(float r) (radius=r;float circle:circumfere nce()(retum(2*pi*radius);float circle:area() / III / / / / 这里少了 circle:retur n pi*radius*radius;int mai n()(float radius;float fen cecost,c on cretecost;cout?"E nter the radius of the pool:"cin? radius;circle pool(radius);circle poolri

5、m(radius+3);fen cecost=poolrim.circumfere nce()*fe nceprice;cout?"fencing cost is Y "? fencecost?endl;con cretecost=(poolrim.area()-pooLarea()*c on creteprice;cout?"concrete cost is Y "? concretecost?endl;return 0;3. 创建一个名为 Complex的类,进行复数的算术运算。复数的形式为:realpart+imag in arypart*i用浮点

6、变量表示类的private数据。提供构造函数,能够对所声明的该类对象进行初始化。在不提供初始化值的情况下,该构造函数应包含默认值。针对以下功能,分别提供一个 public成员函数。a) 两个复数相加;b) 两个复数相减用(a,b )的形式打印复数,其中 a为实部,b为虚部#in clude<iostream>complex cl,c2,c3,c4; cl.setQ;c2.set ();c3=cl.plus(c2);cout?"cl+c2="? endl;c3.pri nt ();c4=cl.m inus (c2);cout?"cl-c2="c

7、4.pri nt ();4. 设计一个整数集合类,具有置空、添加元素、判断元素是否在集合中、求交集、输出显示集合元素等功能。#in clude <iostream>using n amespace std;class in teger(public:void set();设置整数组数据void add();添加元素函数void del();置空函数friend void inter(integer &a,integer &b);/ 求交集的函数void decide();判断元素是否在集合中的函数void show();输岀显示集合元素的函数private:int

8、num50;整数集合in tk;整数集合的元素个数);void in teger: :set()intp;cout?n请输入整数集合的元素个数:";ci n?k;cout?n请输入集合的元素:fbr(p=O;p<k;p+)ci n? n ump;void in teger: :add()char d;do(in t z,q;bool leap=true;cout<"请输入要加入的元素:ci n?z;for(q=O;q<k;q+)if(n umq=z)leap=false; break;if(leap)(n umk=z;cout?"添加成功!&qu

9、ot;?e ndl;cout?H若继续,请输入 Y/y,否则输入N/n :” k+;cin ?d; if(!leap)Icout?n若继续,请输入丫/y,否则输入N/n :" cin?d;)while(d='y'|d=Y);)void in teger: :del()(int m;char x;docout?"请输入要置空的元素的序号:”;ci n?m;for(;m<k;m+)n umm-1 =n umm;if(m<k)k-;cout?n 置空成功! ” vvendl; elsecout?n集合中不包含此元素H?e ndl;cout?n若继续,请

10、输入Y/y,否则输入N/n: ”; cin?x;while(x='y'|x=Y);void in teger: :decide()int n,f;char y;do(bool flag=false;for(f=0;fvk;f+)if(n umf=n)flag=true;cout?"此数在集合里面 n?e ndl;break;)if(!flag)cout?"此数不在集合里面 "?e ndl;coutvv若继续,请输入 丫/y,否则输入N/n : H; cin?y;while(y='y'|y=Y);void in teger: show

11、()int l,loop=0;for(l=0;l<k;l+)cout?numl?"loop+;if(loop=5)cout?e ndl;cout?e ndl;void in ter(i nteger &a,i nteger &b)(int i,j,e=O;cout?n两集合的交集:"vve ndl;for(i=0;i<a.k;i+)for(j=0;j<b.k;j+)if(a. numi=b. numj) 一 cout? b.numj?" e+;if(e=5)cout?e ndl;cout?e ndl;int mai n()in t

12、eger tl,t2;cout?"请设置集合一"?e ndl;tl.set();cout?"请设置集合二"v Vendl;t2.set();cout?"在集合一中添加元素"? endl;tl.add();cout?"在集合二中添加元素"? endl;t2.add();cout?n在集合一置空元素H?e ndl;tl.del();cout?"在集合二置空元素"?e ndl;t2.del();cout?n求集合一和集合二的交集H?e ndl;in ter(tl,t2);cout?"判断元素是否在集合一中"?e ndl;tl.decideQ;cout?"判断元素是否在集合二中"?e ndl;t2.decide();cout?n显示集合一的所有元素:&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论