1、C+重修考试大题填空选择判断没给出含答案1设计一个类Rect,要求如下:(1)该类中的私有数据成员length,width存放它的长和宽,并且设置它们的默认值是0。(2)通过成员函数设置其长和宽,并确保长和宽都在(0,50)范围之内。 (3)实现求周长函数GetPerimeter()。#include using namespace std;class Rect private: double length, width; public: Rect(double l = 0, double w = 0): length(l), width(w) void Set(double l, doubl
2、e w) if (length = 50 | width = 50 ) throw 数据不在指定范围(0,50)!; / 抛出异常 length = l; width = w; double GetPerimeter() return 2 * (length + width); ;int main() try / 检查异常 Rect obj(1, 8); cout 周长: obj.GetPerimeter() endl; catch (char *str) / 捕捉异常 / 处理异常 cout 异常信息: str endl; / 输出异常信息 return 0;2定义一个二维座标类Vector
3、2d, 二个数据成员为double型x, y 为private属性。定义代二个参数的构造函数和一个Show( ) 函数用以输出x, y的值, 另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员x和y对应相加。这些成员函数的属性均为public. 请用C+编写此程序, 并编写测试程序进行测试#include using namespace std;class Vector2d double x, y; public: Vector2d(double a, double b): x(a), y(b) void Show() cout x y endl; Vector2d opera
4、tor+(Vector2d &obj); ;Vector2d Vector2d:operator+(Vector2d &obj) return Vector2d(x + obj.x, y + obj.y); int main() Vector2d d1(3.5, 4.5), d2(2.5, 5.5), d3(0.0, 0.0); d3 = d1 + d2; d3.Show(); return 0;3. 设计一个立方体类Box,它能计算并输出立方体的体积和表面积。#include using namespace std; class Box private: double length; /立方
5、体边长 double volume; /体积 double area; /表面积 public: /* * 构造函数 */ Box(double l) length = l; volume = 0.0; area = 0.0; /* * 计算体积 */ double getVolume() return length * length * length; /* * 计算表面积 */ double getArea() return length * length * 6; /* * 输出立方体体积和表面积 */ void show() volume = getVolume(); area = g
6、etArea(); cout立方体的体积:volume,表面积:areaendl; ; /* * 主函数 */ int main() int length = 0; coutlength; Box box(length); box.show(); getchar(); return 0; 4. 编程实现抽象类Employee,派生类Manger和HourlyWorker,Employee有数据成员姓名name和工号ID,Manger有数据成员sal,代表经理的月工资,HourlyWorker有wage和hours,分别代表钟点工的每小时的工资数和月工作时数,定义的所有类中必须包含构造函数、析构
7、函数、修改和获取所有数据成员的成员函数,以及虚函数来计算职员的工资、输出职员的姓名name和工号ID。#include #include using namespace std;class Employee public: Employee(); virtual void gongzi()coutno; void xianshi()coutno; string name; string id; Employee();class Manger:public Employeepublic: Manger(string s1,string s2)name=s1; id=s2; void gongzi
8、() coutname的月工资为:salendl; coutendl; void xianshi() cout经理的姓名为:nameendl; cout经理的ID为:idendl; void set() coutsal; coutendl; Manger();private: int sal;class HourlyWorker:public Employeepublic: HourlyWorker(string s1,string s2) name=s1; id=s2; void gongzi() coutname的月工资为:wage*hoursendl; void xianshi() co
9、ut钟点工的姓名为:nameendl; cout钟点工的ID为:idendl; void set() coutwage; coutendl; couthours; coutgongzi();void main() Manger zhangye(zhangye ,200913030135); HourlyWorker zjy(zhangjunyu,200913030104); zhangye.xianshi(); zhangye.set(); fun(&zhangye); zjy.xianshi(); zjy.set(); fun(&zjy);5. 编写一个函数模板,用于求参数的绝对值,并编写测
10、试程序进行测试。函数模板声明如下:template Type Abs(Type tVar)#include using namespace std;template Type Abs(Type tVar) if (tVar = 0) return tVar; else return -tVar;int main() cout Abs(5) endl; cout Abs(-5) endl; cout Abs(2.5) endl; cout Abs(-2.5) endl; return 0;6 定义一个复数类CComplex,定义带有2个参数(其中一个为缺省参数)的构造函数,显示复数值的函数Sho
11、w(), 重载“+”运算符(用成员函数实现),并编写测试程序进行测试。#include using namespace std;class CComplexpublic: CComplex(double dReal, double dImage = 0) m_dReal = dReal; m_dImage = dImage; void Show() cout 0) cout + m_dImage i endl; else if(m_dImage 0) cout - -m_dImage i endl; CComplex operator+(const CComplex &obj) CComple
12、x objTemp(m_dReal + obj.m_dReal, m_dImage + obj.m_dImage); return objTemp; private: double m_dReal, m_dImage;int main() CComplex obj1(2, 6), obj2(3, 8), obj3(0); obj1.Show(); obj2.Show(); obj3.Show(); obj3 = obj1 + obj2; obj3.Show(); return 0; 7.()下面程序的打印结果是_1 2 5 11 21_. #incude int f(int); int mai
13、n() int i; for(i=0;i5;i+) coutF(I)0;i- -) k + = i; return k; (2)在用class定义一个类时,数据成员和成员函数的默认访问权限是 _private 或 私有_. (3)含有纯虚函数的类称为_抽象类_. (4)已知intDBL(int n)return n + n;和longDBL(long n)return n+n; 是一个函数模板的两个实例,则该函数模板的定义是_templateT DBL(T n)return n+n;_.(5)在下面程序的横线处填上适当的语句,使该程序执行结果为10. #include class MyClas
14、s public: MyClass(int a)x = a; _int GetNum()return x; 或 int GetNum() constreturn x;_ /取x值 private int x; ; int main() MyClass my(10); coutMY.GETNUM()ENDL; return 0; 8定义一个抽象类CShape,它有一个纯虚函数GetLength();派生出四边型类CSquare和圆类CCircle,在派生类中重载函数GetLength(),用于求图形的周长,编写测试程序进行测试。#include using namespace std;class
15、 CShapepublic: virtual double GetLength() const = 0;class CSquare:public CShapepublic: CSquare(double dWidth, double dHeight) m_dWidth = dWidth; m_dHeight = dHeight; double GetLength() const return 2 * (m_dWidth + m_dHeight); private: double m_dWidth, m_dHeight;class CCircle:public CShapepublic: CCi
16、rcle(double dRadius) m_dRadius = dRadius; double GetLength() const return 3.1415926 * m_dRadius * m_dRadius; private: double m_dRadius;int main(void) CSquare oSquare(2, 3); cout oSquare.GetLength() endl; CCircle oCircle(10); cout oCircle.GetLength() endl; return 0;9. 设计一个类DateInfo,要求其满足下述要求: (1)要求有一
17、个无参的构造函数,其初始的年、月、日分别为:2010,8,8。 (2)要求有一个带参数的构造函数,其参数分别对应年、月、日。 (3)要求用一个成员函数实现日期的设置。 (4)要求用一个成员函数实现输出日期。 请用C+编写此程序, 并编写测试程序进行测试。 #include using namespace std;class DateInfo private: int year, month, day; public: DateInfo(): year(2010), month(8), day(8) DateInfo(int y, int m, int d): year(y), month(m)
18、, day(d) void Set(int y, int m, int d) year = y; month = m; day = d; void Show() cout year 年 month 月 day 日 endl; ;int main() DateInfo d1, d2(1988, 8, 18); d1.Show(); d2.Show(); d2.Set(1999, 9, 19); d2.Show(); return 0;10 定义一个复数类Complex, 二个数据成员为double型r, i 为private属性。定义带二个参数的构造函数和一个Show( ) 函数用以输出r, i
19、的值, 另外作为成员函数重载的运算苻”+”的功能是将此类二个对象的数据成员r和i对应相加。这些成员函数的属性均为public. 请用C+编写此程序, 并编写测试程序进行测试。#include using namespace std;class Complex private: double r, i; public: Complex(double a, double b): r(a), i(b) void Show() cout r i endl; Complex operator +(Complex obj) return Complex(r + obj.r, i + obj.i); ;int main() Complex c1(3.5, 4.5), c2(2.5, 5.5), c3(0.0, 0.0); c3 = c1 + c2; c3.Show(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1