C 面向对象程序的设计教程课后习题答案_第1页
C 面向对象程序的设计教程课后习题答案_第2页
C 面向对象程序的设计教程课后习题答案_第3页
C 面向对象程序的设计教程课后习题答案_第4页
C 面向对象程序的设计教程课后习题答案_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章

一、选择题

1-3BCA

二、编程题

1.编写一个C++程序,要求榆出“欢迎学习C++语言巴

参考程序:

include<iostream>〃编译预处理命令

usingnamespacestd;//使用命名空间std

intmain()II主函数main。

(

cout«”欢迎学习C++语言!”vvendl;//用C++的方法输出一行

systemCPAUSE1');〃调用库函数system(),输出提示信息

return0;〃返回在返回操作系逐

)

•2.编一个程序,用一个函数实现求n个整型数据的最小值.函数原型如下:

intMin(inta[],intn)

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

intMin(inta[],intn)〃求n个整型数据的最小值

intm=a[0],I;〃临时变量

for(i=1;I<n;I++)

(〃依次比较求最小值

if(a[l]<m)

〃如果a[l]更小

〃a[l]为当前最小值

returnm;〃返回最小值

!n,main()〃主函才攵main。

inta[]=[1,2,3,4,5,6,7,8,9,-10},n=10;

cout«△最小位为“«Min(a,n)«endl;〃榆出最小值

systemCPAUSE0);〃词用库函数system(),榆出提示信息

return0;II途回祜i,返回兼柞家磋

3.求2个数或3个整数中的最大数,用两个同名函数实现,要求编写测试程序.

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

intMax(intx,inty)//求x,y的最大值

(

returnx>y?x:y;〃返回x,y的最大值

}

intMax(intx,inty,intz)〃求x,y,z的最大值

(

Intm=x>y?x:y;〃x,y的最大值

m=m>z?m:z;〃m,z的最大值

returnm;〃返回x,y,z的最大值

)

intmain()//主函数main。

cout«”2,3的最大值为“«Max(2,3)«endl;

cout«”1,6,8的最大值为“«Max(1,6,8)«endl;

systemC'PAUSE");〃调用库函数system(),输出提示信息

return0;//返回值,返回操作系统

)

4.用变量的引用作函数形参,实现交换两个整型变量,要求编写测试程序。

参考程序:

#include<iostream>//编译预处理命令

usingnamespacestd;〃使用命名空间std

voidSwap(int&x,int&y)//交换x,y的值

(

intt=x;x=y;y=t;〃循环赋值交换x,y的值

)

Intmain()//主函数maln()

{

intx=1,y=6;

cout«"交换谕:**«x««y«endl;

Swap(x,y);

cout«"交换后:"«x««y«endl;

systemCTAUSE");〃调用库函数system。,输出系统提示信息

return0;//返回值,返回操作系统

}

*5.编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可

以是整型、单精度实型、双精度实型,用重载函数实现。

参考程序:

#include<iostream>//编译预处理命令

usingnamespacestd;〃使用命名空间std

voidSort(lntaQ,intn)〃对a[0].・.a[n・1]进行排序

{

inttem,I,j;〃定义变量

for(i=0;i<n-1;IT)

for(J=i+1;j<n;J++)

if(a[i]>aU])

tem=a[i];a[i]=a[j];a[j]=tern;

)

}

voidSort(floataQ,intn)〃对a[0]...a[n・1]进行排序

(

floattem;〃临时变量

Inti,j;〃定义变量

for(i=0;I<n-1;l+.)

for(j=i+1;j<n;J++)

lf(a[l]>aU])

{〃a[i]比a[J]更大

tem=a[i];a[i]=a[j];a[j]=tem;

)

voidSort(doubleaQ,intn)//对④⑼…石印刃进行排序

doubletem;〃临时变量

intI,J;//定义变量

for(i=0;i<n-1;k.)

for(j=i+1;j<n;j++)

H(a[l]>a[j])

{〃a[l]比a[J]更大

tem=a[i];a[i]=a[j];a[j]=tem;

)

)

intmain()//主函数main()

inta[]={1,3,2,5,6,9,0,6};〃定义a

floatbQ={1.6,3.3,2.8,5.6,6.8,9.6,0.6,6.8};//定义b

doublec[]={1.2,3.1,2.6,5.8,6.8,9.8,0.8,6.2};//定义c

inti,n=8;〃定义变量

Sort(a,n);//对a排序

cout«"a:“;〃输出提示

for(I=0;i<n;U+)

cout«a[l]«”〃输出a[i]

cout«endl;〃换行

Sort(b,n);〃对b排序

cout«"b:*';〃输出提示

for(i=0;i<n;i++)

cout«b[i]«"〃输出b[i]

cout«endl;〃换行

Sort(c,n);II对C#序

cout«Mc:M;〃输出提示

for(I=0;i<n;k*)

cout«c[i]«"〃输出c[i]

cout«endl;〃换行

systemC'PAUSE-);〃调用库函数system(),输出系统提示信息

return0;〃返回值,返回操作系统

第二章

一、选择题

1-5CCACD

6-10DABAD

11-15BDBCD

16C

二、填空题

1、类

2、友元

3、intpoint::count=0

4、2

5、this->n或Integer::n

6、A~A

三、编程题

1.定义一个满足如下要求的Date类,

(1)用下面的格式输出日期:

年-月•日

(2)设置日期。

并编出应用程定义日期对象,设置日期,输出该对象提供的日期。

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

classDate

private:

〃数据成员

intyear;〃年

intmonth;〃月

intday;//日

public:

〃公有函数

Date(inty=2010,intm=1,intd=1):

year(y),month(m),day(d){}〃构造函数

voidSet(inty,intm,intd)〃设置日期

{year=y;month=m;day=d;}

voidShow()const〃显示日期

{cout«year««month««day«endl;}

);

intmain()//主函数maln()

Dated;〃定义对象

d.Show();〃显示日期

d.Set(2016,6,18);〃设置日期

d.Show();〃显示日期

system("PAUSE");〃调用库函数system。,输出提示信息

return0;〃返回值,返回猱作系统

)

2.定义一个时间类Time.

场翳*定义时间对象,鬟翻皙峰目&4盛耀犒时间,并编出

#include<iostream>曦耀辘d

usingnamespacestd;

classTime

inthour;//时

intminute://々

intsecond;//秒

public:

方公宥函数

Time(inth=0,intm=0.ints=0)://构造函数

hour(h),minute(m),second(s){}

voidSet(inth,intm,ints)//设置日期

{hour=n;minute=m;second=s;}

voidShow()const〃显示日期

{cout«hour«n:0«minute««second«endl;}

Jntmain()II主函数main。

Ti1rsTIme〃

1sw(〃

ho示

1〃

8,用

sset(usF〃调m

rThowm(返,输出提示信息

stenc

urn

*3.编写设计一个People(人)类.该类的数据成贝有姓名(name)、年龄

(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,

成员函数有构造函数(People)、进食(Eatting)、运动(Sporting)、显示(Show)

和显示人驳(ShowNum),其中构造函数由已知参数姓用(nm)、年龄(a)、身高

(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,显示函数

用于显示人的姓名、年龄、身高、体重,显示人数函数为静态成员函数,用于

显示人数。假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要

求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函

数中定义若干个对象,通过对象直接访问类的所有非静态成员函数,通过类访

问静态成员函数。

参考程序:

#include<iostream>//虢)译预处理命令

usingnamespacestd;〃使用命名空间std

classPeople

(

private:

〃数据成员

charname[9];

intage;身

intheight;体

〃<

doubleweight;人

staticintnum;

public:

〃公有函数

People(charnm[]="无名氏",inta=16,inth=168,intw=118):

age(a),height(h),weight(w){strcpy(name,nm);num++;}

voidEatting(){weighu*;}//进有

voidSporting(){heighU+;}//运动

voidShow()const〃显示信息

{

cout«”个人信息:"«endl;

cout«"姓名:**«name«endl;

cout«"年龄:"«age«"岁"«endl;

cout«“身高:"«height«“厘米"«endl;

cout«"体重:"«weight«"市斤"«endl«endl;

}

staticvoidShowNum()//显示人数

{cout«"人数«num«endl;}

);

intPeople::num=0;//初始化静态数据成员num

intmain()〃主函数main。

Peoplep1;〃定义对象

p1.Show();〃显示信息

Peoplep2(“李敏”,18,170,108);〃定义对象

p2.Eatting();〃进食

p2.Sporting();〃运动

p2.Show();〃显示信息

People::ShowNum();〃显示人数

systemC'PAUSE");〃调用库函数system(),输出提示信息

return0;〃返回值,返回操作系统

*4.定义一个描述员工(Employee)基本情况的类,数据成员包括编号(num)、

姓名(name)、性别(sex)、工资(wage)、人数(count)、总工资(totalWage)。

其中姓名定义为长度为18的字符数组,性别为为长度为3的字符数组,其它数

据成员类型为整型,总工资和人数为静态数据成员,函数成员包括构造函数、

显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造

函数由已知参数编号(nu)、姓名(nm)、性别(sx)和工资(wg)构造对象,显示

基本数据函数用于显示学生的编号、姓名、性别和工资,显示静态数据函数为

静态成员函数,用于显示人数和总工资;要求所宥数据成员为protected访问

权限,所有成员函数为public访问权限,在主函数中定义若干个员工对象,分

别显示员工基本信息,以及显示员工人数和总工资。

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

classEmployee

protected:

〃数据成员

Intnum;〃编号

charname[18];〃姓名

charsex[3];〃姓名

intwage;〃工资

staticintcount;〃人数

staticInttotalWage;〃总工资

public:

〃公有函数

Employee(intnu,charnm口,charsx[],intwg):num(nu),wage(wg)

{strcpy(name,nm);strcpy(sex,sx);count++;totalWage+=wg;};

voidShowBase()//显示基本数据

(

cout«”个人基本信息:"«endl;

cout«“学号:"«num«endl;

cout«"姓名«name«endl;

cout«"性另U:"«sex«endl;

cout«“工资:"«wage«"元"«endl«endl;

)

staticvoidShowStatic()//显示静态数据

{

cout«"人数:"«count«endl;

cout«”总工资广«totalWage«"元"«endl;

)

};

intEmployee::count=0;//初始化静态数据成员count

intEmployee::totalWage=0;/初始化静态数据成员totalWage

intmain()//主函数main。

(

Employeee1(1008,“李杰“男”,2680);〃定义对象

e1.ShowBase();〃显示基本数据

Employeee2(1009,“李敏"女”,2860);〃定义对象

e2.ShowBase();//显示基本数据

e2.ShowStatic();//显示辞态数据

system(,,PAUSE,1);〃调用库函数system。,输出系统提示信息

return0;〃返回值,返回操作系统

第三章

一、选择题

1-5CCACC

二、填空题

1、Fun<double,int>(7)

2、ElemTypedbl(ElemTypen){returnn+n;}

3、最小整数=4,最小实型=0.35

二、编程题

1.试使用函数模板实现输■出一个数组各元素的值,要求编写测试程序.

参考程序:

include<iostream>II编译预处理命令

usingnamespacestd;〃使用命名空间std

template<classElemType>

voidDisplay(ElemTypeaQ,intn)//输出数组a各元素之值

(

for(inti=0;i<n;i++)

cout«a[i]«〃榆出a[i]

cout«endl;〃换行

}

intmain()〃主函数main。

intaQ={1,2,3,4,5,6,7,8,9);//定义数蛆

Display(a,9);〃输出a

systemCTAUSE");〃调用库函数system。,输出系统信息

return0;〃返回值,返回操作系统

2.编写一个复数类模板Complex,其数据成员real和image的类型未知,定义

相应的成员函数,包括构造函数、输出复数值的函数、求复数和的函数和求复数

差的函数,主函数中定义模板类对象,分别以int和double实例化类型参数。

参考程序:

#include<iostream>//编译预处理命令

usingnamespacestd;//使用命名空间std

〃声明复数类模板

template<classElemType>

classComplex

{

private:

〃数据成员

ElemTypereal;〃实部

日emTypeimage;//虚部

public:

〃公有函数

Complex(ElemTyper=0,ElemTypei=0):real(r),image(i){}

voidShow()const;〃输出复薮

staticComplexAdd(constComplex&z1,constComplex&z2);

staticComplexSub(constComplex&z1,constComplex&z2);

);

template<classElemType>

voidComplex<ElemType>::Show()const〃输出复数

if(image<0)cout«real«image«'T«endl;〃虚部为负,例如-51

elseif(image==0)cout«real«endl;//虚部为0,例如3

elsecout«realimagevv“i"vvendl;//虚都为正,例如+5i

}

template<classElemType>

Complex<ElemType>Complex<ElemType>::Add(constComplex&z1,

constComplex&z2)//复驳加法

Complexz(z1.real-1­z2.real,z1.image+z2.image);//定义复数对象

returnz;〃返回复数

}

template<classElemType>

Complex<Elemiype>Complex<ElemType>::Sub(constComplex&z1,

constComplex&z2)//复数减法

Complexz(z1.real-z2.real,z1.image-z2.image);//定义复数对象

returnz;〃返回发薮

intmain()//主函数maln()

(

Complex<int>z1(2,3),z2(6,-5),z3;//定义复数对象

z1.Show();〃输•出z1

z2.Show();〃输出z2

z3=Complex<int>::Add(z1,z2);//z3=z1+z2

z3.ShowO;〃榆出z3

z3=Complex<int>::Sub(z1,z2);/7z3=z1-z2

z3.Show();〃输出z3

Complex<double>z4(2.1,3.8),z5(6.8,-5.1),z6;//C义复数对家

z4.Show();〃输出z4

z5.Show();〃输出z5

z6=Complex<double>::Add(z4,z5);//z6=z4+z5

z6.Show();〃输出z3

z6=Complex<double>::Sub(z4,z5);//z6=z4-z5

z6.Show();〃输出z6

system("PAUSE");〃调用库函数system(),给出系统提示信息

return0;〃返回值,返回操作系丧

)

*3.编写一个使用数组类模板Array对数组求最大值和求元素和的程序,要求

编写出测试程序。

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

〃声明数组类模板

template<classElemType>

classArray

(

private:

〃数据成员

ElemType*elem;〃存储数据元素值

intsize;〃数组元素个数

public:

〃公有函数

Array(intsz):size(sz){elem=newElemType[size];}//构造函数

-Array(){deleteelem;}〃析构函数

voidSetElem(ElemTypee,inti);〃设置元素值

ElemTypeGetElem(inti)const;//求元素值

ElemTypeMax()const;〃求最大值

ElemTypeSum()const;//求元素之和

template<classElemType>

voidArray<ElemType>::SetElem(ElemTypee,inti)//设置元素值

(

if(i<0||i>=size)

(

cout«”元素位置错!”«endl;

exit⑴;〃退出程序的运行,返回到操作系统

)

elem[i]=e;II设置元素值为e

}

template<classElemiype>

ElemTypeArray<ElemType>::GetElem(inti)const//求元素值

(

if(i<0||i>=size)

{

cout«”元素位置错!”«endl;

exit(2);〃退出程序的运行,返回到操作系统

}

returnelem[i];//返回元素值

)

template<classElemType>

ElemTypeArray<ElemType>::Max()const〃求最大值

(

ElemTypem=设elem[0]最大

for(inti=1;i<size;i++)

if(elem[i]>m)m=elem[i];//依次比较求最大值

returnm;〃返回最大值

template<classElemType>

ElemTypeArray<ElemType>::Sum()constII求元素之和

ElemTypes=0;〃定义变量

for(inti=1;I<size;I++)

s=s+elem[i];〃依次求和

returns;〃返回和

}

intmain()〃主函数main。

{

inta[]={1,9,7,5,6,3};〃定义数组a

intn=6;〃数组元素个数

Array<int>obj(n);〃定义数组对象

inti;〃定义变量

for。=0;ivn;X)

obj.SetElem(a[i],i);II设置数组元素值

for(i=0;i<n;i++)

cout«obj.GetElem(i)«”〃输出元素值

cout«endl;〃换行

cout«"最大值为:"«obj.Max()«endl;//输出最大值

cout«”各元素和为:"vvobj.Sum()vvendl;//输出各元素之和

system("PAUSE',);〃调用库函数system(),榆出系统提示信息

return0;〃返回值,返回操作系爰

*4.对数组求最大值和求元素和的算法都编写为函数模板,要求编写出测试程

序.

参考程序:

#include<iostream>//编译预处理命令

usingnamespacestd;〃使用命名空间std

template<classElemType>

ElemTypeMax(ElemTypea。,intn)〃求最大值

(

ElemTypem=a[0];〃设a[0]最大

for(intI=1;i<n;I++)

if(a[i]>m)m=a[l];〃依次比较求最大值

returnm;〃返回最大值

)

template<classElemType>

ElemTypeSum(ElemTypea[],intn)II求元素之和

{

ElemTypes=0;〃定义变量

for(inti=1;i<n;i++)

s=s+a[i];〃依次求和

returns;〃返回和

)

intmain()〃主函数main。

{

inta[]={1,9,7,5,6,3);//定义数组a

intn=6;〃数组元素个数

for(inti=0;i<n;i++)

cout«a[i]«'〃输出元素值

cout«endl;〃换行

cout«”最大值为:”«Max(a,n)«endl;〃输出最大值

cout«”各元素和为:"«Sum(a,n)«endl;〃输出各元素之和

system("PAUSE");〃调用库函数system(),输出系统提示信息

return0;〃返回值,返回操作系统

)

**5.对数组求最大值和求元素和的函数采用静态成员函数的方式封装成数组

受雅普板ArrayAIg,要求编写出测试程序。

#include<iostream>

usingnamespacestd;爆

〃声朗数组类程板

template<classElemType>

classArrayAIg

public:

》公有函数

staticElemTypeMax(ElemTypea[],intn)〃求最大值

ElemTypem=a[01://设a[0]最大

for(infr=1:i<n;7++)

if(a[i]>m)m=a[i];〃依次比较求最大值

returnm;〃运回最大总

}

staticElemTypeSum(ElemTypea[],intn)//求元素之和

ElemTypes=0;

〃定义变量

for(inti=1;i<n;i++)

s=s+a[i];〃依次.

returns;〃返回:

};

intmain()//主函数main。

inta[]={1,9,7,5,6,3);〃定义数组a

intn=6;〃数组元素个数

for(inti=0;i<n;i++)

cout«a[i]«'“”;〃输出元素值

cout«endl;〃换行

cout«"最大值为:"«ArrayAlg<int>::Max(a,n)«endl;

coutvv”各元素和为丁'«ArrayAlg<int>::Sum(a,n)«endl;

system(,•PAUSE,,);〃调用库函数system。,榆山系统提示信息

return0;〃返回值,返回操作系统

)

第四章

一、选择题

1-4ACAB

二、填空题

1、booloperator!(constMyclass&)

2、1

3、operator

三、编程题

“*,,

1.定义一个复数类Complex,重载运算符,使之能用于复

数的加、减、乘。编程序,分别求两个复数之和、差与积。

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

〃声明复数类

classComplex

(

private:

〃数据成员

doublereal;//实部

doubleimage;〃虚部

public:

〃公有函数

Complex(doubler=0,doublei=0):real(r),image(i){}//构造函数

voidShow()const;〃输出复数

doubleGetReal()const{returnreal;}〃返回实部

doubleGetlmage()const{returnimage;}//返回虚部

voidSetReal(doublerl){real=rl;}〃设置实部

voidSetlmage(doubleig){image=ig;}//设置虚部

};

voidComplex::Show()const〃输出复数

(

if(image<0)cout«real«image«"i"«endl;//虚部为负

elseif(image==0)cout«real«endl;//虚部为0

elsecout«realvvvvimage«,,P,«endl;〃虚部为正

)

Complexoperator+(constComplex&a,constComplex&b)

H重载加法运算符两个操作数都是对象

(

Complexz(a.GetReal()+b.GetReal(),

a.Getlmage()+b.Getlmage());//定义复数对象

returnz;〃返回和

)

Complexoperator-(constComplex&a,constComplex&b)

//重载加法运算符两个操作数都是对象

{

Complexsub(a.GetReal()-b.GetReal(),

a.Getlmage()-b.Getlmage());//定义差对象

returnsub;〃返回和

}

Complexoperator*(constComplex&a,constComplex&b)

//重载加法运算符两个操作数都是对象

{

Complexz;//定义复数对象

z.SetReal(a.GetReal()*b.GetReal()-a.Getlmage()*b.Getlmage());

〃设置实部

z.Setlmage(a.GetReal()*b.Getlmage()+a.Getlmage()*b.GetReal());

//设置虚部

returnz;〃返回积

}

intmain()〃主函数main。

(

Complexz1(2,3),z2(6,-5),z3;〃定义复数对象

z1.Show();〃输出z1

z2.Show();〃输出z2

z3=z1+z2;//z3=z1+z2

z3.Show();〃输出z3

z3=z1-z2;//z3=z1-z2

z3.Show();〃输出z3

z3=z1*z2;Z/z3=z1*z2

z3.Show();〃输出z3

system("PAUSE^•);〃调用库函数system(),输出系统提示信息

return0;〃返回值,返回操作系统

}

o£5•升一人日光Rata季夏・

^I:藐鳖宴豌蠹鬻岁嘤鬟黑黑算符

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

classDate

(

private:

〃数据成员

intyear;〃年

intmonth;〃月

intday;//日

public:

〃公有函数

Date(inty=2010,intm=1,intd=1):year(y),month(m),day(d){)

voidSetYear(inty){year=y;}//设置年

voidSetMonth(intm){month=m;}〃设置月

voidSetDay(intd){day=d;}〃设置日

intGetYear()const{returnyear;}〃返回年

intGetMonth()const{returnmonth;}〃返回月

intGetDay()const{returnday;}〃返回日

};

istream&operator»(istream&in,Date&dt)//重载榆入运算符">>”

inty,m,d;〃表示年(y),月(m)和日(d)

cout«"输入年:";

in»y;//输入年

cout«“输入月:

in»m;〃输入月

cout«"榆入日:";

in»d;〃榆入日

dt.SetYear(y);〃设置年

dt.SetMonth(m);〃设置月

dt.SetDay(d);〃设置日

returnin;〃返回输入流对象

}

ostream&operator«(ostream&out,constDate&dt)〃重载运算符“vv”

(

cout«dt.GetYear()«“年"«dt.GetMonth()«“月”

«dt.GetDay()«“日“;

returnout;〃返回输出流对象

}

intmain()//主函数main()

(

Dated;〃定义对象

cin»d;//输入日期

cout«d«endl;〃输出日期

systemCPAUSE");〃调用库函数system(),输出系统提示信息

return0;〃返回值,返回操作系统

*3.设计一个时间类Time,要求:

(1)包含时(hour,、分(minute)和秒(second)私有数据成员。

(2)包含构造函数,重载关于一时间加上另一时间的加法运算符“+”、重载

输出运算符“vv”与重载输入运算符

参考程序:

#include<iostream>〃编译预处理命令

usingnamespacestd;〃使用命名空间std

classTime

private:

〃数据成员

inthour;〃时

intminute;〃月

intsecond;〃秒

public:

〃公有函数

Time(inth=0,intm=0,ints=0):

hour(h),minute(m),second(s){}//构造函数

voidSetHour(inth){hour=h;}〃设置时

voidSetMinute(intm){minute=m;}〃设置分

voidSetSecond(ints){second=s;}〃设置秒

intGetHour()const{returnhour;}〃返回时

intGetMinuteQconst{returnminute;}〃返回分

intGetSeconaQconst{returnsecond;}〃返回秒

};

istream&operator»(istream&in,Time&t)//重载输入运算符">>”

(

inth,m,s;//表示时(h),分(m)和秒(s)

cout«"备入时:";

in»h;〃输入时

cout«"输入分:";

in»m;〃输入分

cout«"输入秒:";

in»s;II输入秒

tSetHour(h);〃设置时

t.SetMinute(m);〃设置分

t.SetSecond(s);〃设置秒

returnin;〃返回输入流对象

)

ostream&operator«(ostream&out,constTime&t)//重载运算符“vv”

(

cout«t.GetHour()«":•'«t.GetMinute()«

«t.GetSecond();

returnout;〃返回输出流对象

}

Timeoperator-«-(constTime&a,constTime&b)//重载加法运算符

{

ints=3600*a.GetHour()+60*a.GetMinute()+a.GetSecond()+

3600*b.GetHour()+60*b.GetMinute()+b.GetSecond();

Timet;〃定义地象

t.SetHour(s/3600);//设置时

s=s%3600;〃去掉时占用的时间

t.SetMinute(s/60);//设置分

t.SetSecond(s%60);//设置秒

returnt;〃返回时间

}

intmain()〃主函数main。

(

Timet1,t2;〃定义对象

cout«”榆入:"«endl;//输入提示

cin»t1;//输入1t

cout«t1«endl;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论