版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计与应用基础第二章类和对象习题答案1、请完成下列填空题1)在c语言中,编程的单位是函数_:在C+语言中,编程的单位是类_O2)在下面程序的横线处填上适当的语句,使类型该程序执行结果为10o#include class MyClasspublic:- MyClass (int a)x=a; /为x置值- int GetNumO return x;/取x值private:int x;void main()Myclass my(10);Coutmy. Get Num () end;3)在类中定义和实现的函数称为_内联函数_。4)对类中的成员函数和属性的访问是通过_ublic_、_rotec
2、ted_和_rivate_这3个关键字来控制的。5) _new运算符对指定类型对象动态分配内存并返回该类型的指针6)假定用户没有给一个名MyClass的类定义构造函数,则系统对其定义的默认构造函数形式为_MyClassO_。2、编程题1)定义一个复数类imaginaryo用友元函数实现该类的加、减、乘和除运算。答案:class Imaginarypublic:Imaginary(float a, float b);private:float x, y;Imaginary:Imaginary(float a, float b)y=b;Imaginary Add(Imaginary& imgl,
3、Imaginary& img2) float a, b;a=img 1. x+img2 x;friendImaginary Add(Imaginary&imgl, Imaginary&img2);friendImaginary Sub(Imaginary&imgl, Imaginary&img2);friendImaginary Mui(Imaginary&imgl, Imaginary&img2);friendImaginary Div(Imaginary&imgl, Imaginary&img2);b=img1. y+img2 y;return Imaginary(a, b):Imagin
4、ary Sub(Imaginaryft imgl, Imaginaryft img2) float a, b;a=img 1. ximg2 x;b=img 1 y-img2 y;return Imaginary(a, b):Imaginary Mui(Imaginaryft imgl, Imaginaryft img2) float a, b;a=img 1. x*img2 x-img 1. y*img2 y;b=img 1. x*img2 y+img 1 y*img2 x;return Imaginary(a, b):Imaginary Div(Imaginary& imgl, Imagin
5、aryft img2) float a, b;辻(img2 x*img2. x+img2. y*img2. y) !=0)a=(img 1. x*img2 x+img 1. y*img2 y)/ (img2 x*img2 x+img2 y*img2 y); b=(img1. y*img2 x-img 1. x*img2 y)/ (img2 x*img2 x+img2 y*img2 y); returnImaginary(a, b):elsereturn Imaginary (0. 0, 0. 0);2)定义类Rationale该类存放分数形式的有理数。要求如下所述。(1)定义带默认参数值的构造
6、函数,默认分数为lo(2)定义私有变量X和Y分别存放分子和分母。同时分子分母要以最简形式存 放。例如:分数3/9应该以1/3形式存放。(3)定义成员函数Add、sub、Mui和Div。计算结果仍然以最简形式存放。(4)以X/Y的形式打印分数。(5)以浮点数形式打印分数。3)定义整数集合intset,该类包括以下函数成员答案:include include class Rationalpublic:Rational(int a=l,int b二1)int c;c=Common_Divisor(a, b);X=a/c;Y二b/c;Rational Add(Rational& r);Rational
7、 Sub(Rational& r);Rational Mui(Rational& r):Rational Div(Rational& r):void Print () cout,X/Y=,X,/,/Yendl;void PrintPoint () if (Y=0) exit (0) : cout,X/Y=,double (X) /Yendl;int Common_Divisor(int a, int b) ; private:int X, Y;;Rational Rational:Add(Rational& r) int a, b, c;a=X*r. Y +Y*r. X;b=Y*r. Y;c=
8、Common_Divisor(a, b);return Rational(a/c, b/c);Rational Rational:Sub(Rational& r) int a, b, c;a=X*r. Y-Y*r. X;b=Y*r. Y;c=Common_Divisor(a, b);return Rational(a/c, b/c);Rational Rational:Mui(Rational& r)int a, b, c;a=X*r X;b=Y*r. Y;c=Common_Divisor(a, b);return Rational(a/c, b/c): Rational Rational:D
9、iv(Rational& r)int a, b, c;a=X*r. Y;b二Y*r. X;c=Common_Divisor(a, b);return Rational(a/c, b/c);int Rational:Common_Divisor(int a, int b)int t, c;if(ab)t=a;ab;b二t;doc=a%b;a=b;b二c;while (c!=0);return a;#include class intSetpublic:intSet ();intSet(int a, int size):void Empty ();bool IsEmpty ():bool IsMe
10、mberOf(int a):bool Add(int a);bool Sub(int a):bool IsEqual(intSet& Set);intSet Intersection(intSet& Set);intSet Merge(intSet& set);void Copy (intSet& Set);void Print ();private:int elementE100:public:int EndPosition;intSet:intSet ()/初始化整数集合元素for (int I=0;I=100)EndPosition=99;elseEndPosition二sizeT;fo
11、r(int I二0;I二EndPosition;I+)elementIj=aI;for(I=size;K100;I+)element L=0;void intSet:Empty()清空整数集合元素for (int I=0;I100;I+)element I =0;EndPosition二 T;bool intSet:IsEmpty() 判断整数集合是否为空if(EndPo s i t i on=-1)return true;elsereturn false;bool intSet:IsMemberOf(int a) for(int 1=0;I=EndPosition;I+)if(element
12、I=a)return true;return false;bool intSet:Add(int a) /能否增加一个元素,需要知道:1.该元素是否已经存在:2.整数集合是否已经 存满辻(IsMemberOf (a)return true;else辻(EndPosition=99)return false;elseEndPosition+;e1ementEndPosition=a;return true;bool intSet:Sub(int a) 能否删除一个元素,需要知道整数集合是否已存在该元素int pos;if (!IsMemberOf(a)return false;for (int
13、1=0;I=EndPosition;I+)if(elementI=a)pos二1;break;for (I=pos; KEndPosition; I+)element匸二element 1+1;EndPosition一一;return true;bool intSet:IsEqual(intSet& set)/判断两个整数集合是否相等bool Equal;if(EndPosition!=set EndPosition)return false;for (int 1=0;I=EndPosition;I+)Equal二false;for (int j=0;j=set EndPosition;j+)
14、if(elementI=set elementj)Equal二true;break;if (!Equal)return false;return true;intSet intSet:Intersection(intSetft set)求两个整数集合的交集int a100,size二0;for (int 1=0;I=EndPosition;I+)for (int j二0;j二set EndPosition;j+)if(elementI=set elementj)asize=elementIZ;size+;break;return intSet(a, size):intSet intSet:Me
15、rge(intSet& set) 求两个整数集合的并集int aFlOOZ,size;for (int 1=0;I=EndPosition;I+)aI二elementI;size二EndPosition+1;for (1=0;I=set EndPosition;I+)if(IsMemberOf(set elementI) continue;else辻(size=99)break;&size二set elementI:size+;return intSet(a,size): void intSet:Copy(intSet& set) for (int 1=0;I=set EndPosition;
16、I+)elementI=set elementI;EndPosition=set EndPosition; void intSet:Print()for (int 1=0;I二EndPosition;I+)cout element ,I,=,element Iendl;4)定义和实现栈类stack,栈的数据数据结果如图所示。该类包括类的常用操 作如下列。答案:#include const int MaxSize=100;class Stackpublic:Stack ();void Push(const int a);int Pop();void Clear ();int Peek() con
17、st;bool IsEmpty() const;bool IsFull () const;private:int ListMaxSizeZ;int Top;Stack: :Stack()/Top表示栈顶,初始化时栈为空;Top =1;void Stack:Push(const int a)if (Top二二MaxSize-1)return;Top卄;ListTop二a;int Stack: :Pop()int element;/如果栈为空,则返回0if (Top=T) return 0;element二ListTop_;Top;return element;void Stack:Clear() Top =1;int Stack:Peek() const /如果栈为空,则返回0if (Top = -1)return 0;return ListTop: bool Stack:IsEmpty() const if (Top = -1)return true;elsereturn false;bool St
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理科研人才与国科金项目培养
- 旅游行业客户服务专员面试技巧
- 旅游景点服务中心负责人培训资料
- 旅游行业党建探索:旅行社党务工作者面试全解
- 激光雷达技术安全性能评估报告
- 医护护理护理动画
- 报关客服职业规划
- 统编版道德与法治四年级下册第1课我们的好朋友 第一课时教学设计
- 青蛙变王子职业规划书
- 中职生就业指导讲座参考模版
- 航空航天飞控系统设计手册
- 瓷砖销售市场营销推广方案
- - 育才中学2026学年春季第二学期初二年级地理实践活动与知识应用教学工作计划
- 2025年邳州恒润城市投资笔试及答案
- 电信诈骗安全教育培训课件
- 2026年安徽粮食工程职业学院单招(计算机)测试模拟题库附答案
- 肥胖课件之针灸治疗
- “十五五规划纲要”解读:双碳引领绿色发展
- 《应急预案编制与演练》全套教学课件
- 护理共情疲劳开题报告
- 《化工原理》实验指导书
评论
0/150
提交评论