第一范文网 - 专业文章范例文档资料分享平台

C++第五章 类与对象习题解答

来源:用户分享 时间:2025/8/3 2:42:15 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第五章 类与对象习题

case Y2000:cout<<\break; case Y2001:cout<<\break; case Y2002:cout<<\break; case Y2003:cout<<\break; case Y2004:cout<<\break; case Y2005:cout<<\break; }

switch(month){//,,,,,,,,

case Jan:cout<<'/'<<\break; case Feb:cout<<'/'<<\break; case Mar:cout<<'/'<<\break; case Apr:cout<<'/'<<\break; case May:cout<<'/'<<\break; case Jun:cout<<'/'<<\break; case Jul:cout<<'/'<<\break; case Aug:cout<<'/'<<\break; case Sep:cout<<'/'<<\break; case Oct:cout<<'/'<<\break; case Nov:cout<<'/'<<\break; case Dec:cout<<'/'<<\break; }

cout<<'/'<

cout<<\ cout<

int main(){

Timedate A(Y2004,Mar,3),B; A.list(); B.list();

B.putdate(Y2005,Oct,18); B.puttime(17,30,00); B.list(); }

5.4 设计并测试一个矩形类(Rectangle),属性为矩形的左下与右上角的坐标,矩形水平放

置。操作为计算矩形周长与面积。测试包括用成员函数和普通函数。

解:这里的矩形的4边分别与x轴y轴平行,为最简单的情况。注意参数有缺省值的函数

的声明和定义格式。 #include #include class Rectangle {

double left, top ; double right, bottom;

5

第五章 类与对象习题

public:

Rectangle(double l=0, double t=0, double r=0, double b=0);//变量名可省略 ~Rectangle(){}; //析构函数,在此函数体为空

void Assign(double l,double t,double r,double b);

double getLeft(){ return left;}下四个函数皆为内联成员函数 double getRight(){ return right;} double getTop(){return top;}

double getBottom(){return bottom;} void Show(); double Area();

double Perimeter(); };

// 构造函数,带缺省参数,缺省值为全0,在声明中指定

Rectangle::Rectangle(double l , double t, double r, double b) { left = l; top = t;

right = r; bottom = b; }

void Rectangle::Assign(double l, double t, double r, double b){//赋值 left = l; top = t; right = r; bottom = b; }

void Rectangle::Show(){

cout<<\

cout<<\}

double Rectangle::Area(){

return fabs((right-left)*(bottom-top)); }

double Rectangle::Perimeter(){

return 2*(fabs(right-left)+fabs(bottom-top)); }

void print(Rectangle rt){//普通函数

cout<<\ cout<<\

(\}

void main(){

Rectangle rect; rect.Show();

rect.Assign(100,200,300,400); rect.Show();

Rectangle rect1(0,0,200,200); rect1.Show();

6

第五章 类与对象习题

Rectangle rect2(rect1); rect2.Show(); print(rect);

cout<<\面积\周长\}

5.5 定义一个圆类(Circle),属性为半径(radius)、圆周长和面积,操作为输入半径并计

算周长、面积,输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在构造函数中生成)和拷贝构造函数。

解:通常所有数据成员都在构造函数中赋初值。拷贝构造函数以本类的引用为参数。#include #include class Circle{

double r,Area,Circumference; public:

Circle(double a=0); Circle(Circle &);

void SetR(double R); double GetR(){return r;}

double GetAreaCircle(){return Area;}

double GetCircumference(){return Circumference;} };

Circle::Circle(double a){ r=a;

Area=r*r*3.14159265;

Circumference=2*r*3.14159265; }

Circle::Circle(Circle & cl){ r=cl.r;

Area=cl.Area;

Circumference=cl.Circumference; }

void Circle::SetR(double R){ r=R;

Area=r*r*3.14159265;

Circumference=2*r*3.14159265; }

void main(){

Circle cl1(2),cl2,cl3=cl1;

cout<<\圆半径:\圆周长:\ <<'\\t'<<\圆面积:\ cl2.SetR(4);

7

第五章 类与对象习题

cout<<\圆半径:\圆周长:\ <<'\\t'<<\圆面积:\}

5.6 设计一个学校在册人员类(Person)。数据成员包括:身份证号(IdPerson),姓名(Name),

性别(Sex),生日(Birthday)和家庭住址(HomeAddress)。成员函数包括人员信息的录入和显示。还包括构造函数与拷贝构造函数。设计一个合适的初始值。 解:本题为指出构造函数等的调用,加了一些提示语句。 #include #include

enum Tsex{mid,man,woman}; class Person{

char IdPerson[19]; //身份证号,18位数字 char Name[20]; //姓名 Tsex Sex; //性别

int Birthday; //生日,格式1986年8月18日写作19860818 char HomeAddress[50]; //家庭地址 public:

Person(char *,char *,Tsex,int,char *); Person(Person &); Person(); ~Person();

void PrintPersonInfo(); void inputPerson(); //其他接口函数 };

Person::Person(char *id,char *name,Tsex sex,int birthday,char *homeadd){ cout<<\构造Person\ strcpy(IdPerson,id); strcpy(Name,name); Sex=sex;

Birthday=birthday;

strcpy(HomeAddress,homeadd); }

Person::Person(){

cout<<\缺省构造Person\

IdPerson[0]='\\0';Name[0]='\\0';Sex=mid; Birthday=0;HomeAddress[0]='\\0'; }

Person::Person(Person & Ps){

cout<<\拷贝构造Person\ strcpy(IdPerson,Ps.IdPerson); strcpy(Name,Ps.Name); Sex=Ps.Sex;

8

搜索更多关于: C++第五章 类与对象习题解答 的文档
C++第五章 类与对象习题解答.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6i18t2ixwe3xy6q95j8a_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top