教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

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

来源:网络收集 时间:2026-09-02
导读: 第五章 类与对象习题 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); doubl

第五章 类与对象习题

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

第五章 类与对象习题

Birthday=Ps.Birthday;

strcpy(HomeAddress,Ps.HomeAddress); }

Person::~Person(){

cout<<\析构Person\}

void Person::inputPerson(){

char id[19]; //身份证号,18位数字 char name[20]; //姓名 Tsex sex; //性别

int birthday; //生日,格式1986年8月18日写作19860818 char homeadd[50]; char ch;

cout<<\请输入身份证号,18位数字:\ cin.getline(id,19);

cout<<\请输入姓名:\ cin.getline(name,20);

cout<<\请输入性别m或w:\ cin>>ch;

if(ch=='m') sex=man; else sex=woman;

cout<<\请输入生日,格式1986年8月18日写作19860818:\ cin>>birthday;

cout<<\请输入地址:\ cin.getline(homeadd,50); strcpy(IdPerson,id); strcpy(Name,name); Sex=sex;

Birthday=birthday;

strcpy(HomeAddress,homeadd); }

void Person::PrintPersonInfo(){ int i;

cout<<\身份证号:\姓名:\性别:\ if(Sex==man)cout<<\男\

else if(Sex==woman)cout<<\女\ else cout<<\ cout<<\出生年月日:\ i=Birthday;

cout<

cout<

9

第五章 类与对象习题

void main(){

Person Ps1(\朱海鹏\南京市黄浦路1号\

Ps1.PrintPersonInfo(); Ps2.PrintPersonInfo(); Ps3.inputPerson(); Ps3.PrintPersonInfo(); }

5.8 为复数类(Complex)增加重载的运算符-、-=、*=和/=。设++为实部和虚部各自增一,

亦请重载前置与后置++运算符。分别使用成员函数和友元函数各做一遍。并测试。 解:注意后++,返回的是原值,但实部和虚部已各自增一,所以要先保留原值,再++。这

里是使用成员函数。 #include class complex{ private:

double real; //实部 double imag; //虚部 public:

complex(double r = 0.0 ,double i = 0.0 ); //构造函数 void print(); //显示复数 complex operator +(complex c); //重载复数\ complex operator -(complex c); //重载复数\ complex operator *(complex c); //重载复数\ complex operator /(complex c); //重载复数\ complex operator +=(complex c); //重载复数\ complex operator -=(complex c); //重载复数\ complex operator *=(complex c); //重载复数\ complex operator /=(complex c); //重载复 …… 此处隐藏:2026字,全部文档内容请下载后查看。喜欢就下载吧 ……

C++第五章 类与对象习题解答(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444682.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)
  • 1、支付成功后,为何无法下载内容?
    付费后下载不了,请核对下微信账单信息,确保付费成功;已付费成功了还是下载不了,有可能是电脑的浏览器兼容性问题或者手机机型不支持的问题。
  • 2、付费后能否更换浏览器或者清理浏览器缓存后进行下载操作?
    更换浏览器或者清理浏览器缓存会导致下载不成功,请不要更换浏览器和清理浏览器缓存。
  • 3、如何联系客服?
    打开微信扫描下方二维码,请及时联系客服解决。
    QQ咨询:370150219 点击这里给我发消息,请把【付款记录详情】截图给客服,同时把您购买的文章【网址】发给客服。客服会在24小时内把文档发送给您。