C++第五章 类与对象习题解答(2)
第五章 类与对象习题
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
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
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
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




