c面向对象程序设计课后习题答案2(谭浩强版)_第1页
c面向对象程序设计课后习题答案2(谭浩强版)_第2页
c面向对象程序设计课后习题答案2(谭浩强版)_第3页
c面向对象程序设计课后习题答案2(谭浩强版)_第4页
c面向对象程序设计课后习题答案2(谭浩强版)_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第一章

5:

include<iostream>

usingnamespacestd;

intmain()

(

cout«,,This"«"is";

cout«"aH«"C++";

cout«"program."«endl;

return0;

)

6:

#include<iostream>

usingnamespacestd;

intmain()

(

inta,b,c;

a=10;

b=23;

c=a+b;

cout«"a+b=";

cout«c;

cout«endl;

return0;

)

7:

include<iostream>

usingnamespacestd;

intmain()

(

inta,b,c;

intf(intxjntyjntz);

cin»a»b»c;

c=f(a,b,c);

cout«c«endl;

return0;

}

intf(intxjnty,intz)

intm;

if(x<y)m=x;

elsem=y;

if(z<m)m=z;

return(m);

8:include<iostream>

usingnamespacestd;

intmain()

(

inta,b,c;

cin»a»b;

c=a+b;

cout«"a+b=n«a+b«endl;

return0;

9:

#include<iostream>

usingnamespacestd;

intmain()

{intadd(intx,inty);

inta,b,c;

cin»a»b;

c=add(a,b);

cout«"a+b="«c«endl;

return0;

}

intadd(intx,inty)

{intc;

C=x+y;

return(c);

)

10:

#include<iostream>

usingnamespacestd;

intmain()

{voidsort(intxjntyjntz);

intx,y,z;

cin»x»y»z;

sort(x,y,z);

return0;

)

voidsort(intx,inty,intz)

(

inttemp;

if(x>y){temp=x;x=y;y=temp;}//(}内3个语句的作用是将x和y的值互换)

if(z<x)cout«z«7«x«7«y«endl;

elseif(z<y)cout«x«7«z«7«y«endl;

elsecout«x«7«y«7«z«endl;

)

11:

include<iostream>

usingnamespacestd;

intmain()

{intmax(inta,intb,intc=0);

inta,b,c;

cin»a»b»c;

cout«"max(a/b,c)="«max(a,bzc)«endl;

cout«"max(a,b)="«max(a,b)«endl;

return0;

)

intmax(inta,intbjntc)

{if(b>a)a=b;

if(c>a)a=c;

returna;

)

12:

#include<iostream>

usingnamespacestd;

intmain()

(

voidchange(intJnt);

inta,b;

cin»a»b;

if(a<b)change(a,b);

cout<<“max="min=H«b«endl;

return0;

voidchange(intJnt)

intrl,r2,temp;

temp=rl;

rl=r2;

r2=temp;

)

13:

#include<iostream>

usingnamespacestd;

intmain()

{voidsort(int&,int&,int&);

inta,b,c,31,bl,cl;

cout«"Pleaseenter3integers:";

cin»a»b»c;

al=a;bl=b;cl=c;

sort(al,bl,cl);

cout«a«""«b«H"«c«Hinsortedorderis

cout«al«n"«bl«""«cl«endl;

return0;

)

voidsort(int&i,int&j,int&k)

{voidchange(int&,int&);

if(i>j)change(i,j);

if(i>k)change(i,k);

if(j>k)change(j,k);

)

voidchange(int&x,int&y)

{inttemp;

temp=x;

x=y;

y=temp;

)

14:

include<iostream>

include<string>

usingnamespacestd;

intmain()

{stringsl="week"/s2="end";

cout«"sl="«sl«endl;

cout<<"s2="«s2«endl;

sl=sl+s2;

cout«"Thenewstringis:"«sl«endl;

return0;

15:

include<iostream>

include<string>

usingnamespacestd;

intmain()

{stringstr;

inti,n;

chartemp;

cout«"pleaseinputastring:";

cin»str;

n=str.size();

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

{temp=str[i];str[i]=str[n-i-l];str[n-i-l]=temp;}

cout«str«endl;

return0;

16:

include<iostream>

#include<string>

usingnamespacestd;

intmain()

{inti;

,,,,u

stringstr[5]={"BASIC'/"C;FORTRAN"z"C++"/PASCAL");

voidsort(string[]);

sort(str);

cout«"thesortedstrings:"«endl;

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

cout«str[i]«"

cout«endl;

return0;

)

voidsort(strings[])

{intij;

stringt;

for(j=0;j<5;j++)

for(i=0;i<5-j;i++)

if(s[i]>s[i+l])

{t=s[i];s[i]=s[i+l];s[i+l]=t;}

}17:include<iostream>

ttinclude<string>

usingnamespacestd;

intmain()

(

longc⑸={10100,-123567,1198783,-165654,3456};

inta[5]={l,9z0,23,-45};

floatb[5]={2.4,7.6,5.5,6.6,-2.3};

voidsort(int[]);

voidsort(float[]);

voidsort(long[]);

sort(a);

sort(b);

sort(c);

return0;

voidsort(inta[])

{intij,t;

for(j=0;j<5;j++)

for(i=0;i<5-j;i++)

if(a[i]>a[i+l])

{t=a[i];a[i]=a[i+l];a[i+l]=t;}

cout«"thesortednumbers:"«endl;

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

cout«a[i]«"

cout«endl«endl;

)

voidsort(longa[])

{intij;

longt;

for(j=0;j<5;j++)

for(i=0;i<5-j;i++)

if(a[i]>a[i+l])

{t=a[i];a[i]=a[i+l];a[i+l]=t;}

cout«"thesortednumbers:"«endl;

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

cout«a[i]«"

cout«endl«endl;

voidsort(floata[])

{intij;

floatt;

for(j=O;j<5;j++)

for(i=0;i<5-j;i++)

if(a[i]>a[i+l])

{t=a[i];a[i]=a[i+l];a[i+l]=t;}

cout«"thesortednumbers:"«endl;

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

cout«a[i]«"

cout«endl«endl;

)

18:#include<iostream>

include<string>

usingnamespacestd;

template<typenameT>

voidsort(Ta[])

{inti,j,min;

Tt;

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

{min=i;

for(j=i+l;j<5;j++)

if(a[min]>a[j])min=j;

t=a[i];a[i]=a[min];a[min]=t;

)

cout«"thesortednumbers:"«endl;

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

cout«a[i]«"

cout«endl«endl;

)

intmain()

{inta[5]={l,9A23z-45);

floatb[5]={2.4,7.6,5.5,6.6,-2.3};

longc[5]={10100/-123567,1198783,-165654,3456};

sort(a);

sort(b);

sort(c);

return0;

第二章

1

ttinclude<iostream>

usingnamespacestd;

classTime

(

public:

voidset_time();

voidshow_time();

private:〃成员改为公用的

inthour;

intminute;

intsec;

};

voidTime::set_time()〃在main函数之前定义

(

cin»hour;

cin»minute;

cin»sec;

)

voidTime::show_time()〃在main函数之前定义

cout«hour«":"«minute«":"«sec«endl;

intmain()

{Timetl;

tl.set_time();

tl.show_time();

return0;

}

2:

#include<iostream>

usingnamespacestd;

classTime

{public:

voidset_time(void)

{cin»hour;

cin»minute;

cin»sec;

)

voidshow_time(void)

{cout«hour«":"«minute«":"«sec«endl;}

private:inthour;

intminute;

intsec;

);

Timet;

intmain()

(

t.set_time();

t.show_time();

return0;

}

3:

include<iostream>

usingnamespacestd;

classTime

{public:

voidset_time(void);

voidshow_time(void);

private:

inthour;

intminute;

intsec;

);

voidTime::set_time(void)

{cin»hour;

cin»minute;

cin»sec;

}

voidTime::show_time(void)

{cout«hour«":"«minute«":"«sec«endl;}

Timet;

intmain()

{t.set_time();

t.show_time();

return0;

4:

//xt2-4-l.cpp(main.cpp)

ttinclude<iostream>

usingnamespacestd;

include"xt2-4.h"

intmain()

{Studentstud;

stud.set_value();

stud.display();

return0;

)

〃xt2-4・2.cpp(即student.cpp)

include"xt2-4.h"〃在此文件中进行函数的定义

#include<iostream>

usingnamespacestd;〃不要漏写此行

voidStudent::display()

{cout«"num:"«num«endl;

cout<<"name:"«name«endl;

cout<<"sex:"«sex«endl;

)

voidStudent::set_value()

{cin»num;

cin»name;

cin»sex;

)

5:

//xt2-5-l.cpp(filel.cpp)

include<iostream>

#include"xt2-5.h"

intmain()

{Array_maxarrmax;

arrmax.set_value();

arrmax.max_value();

arrmax.show_value();

return0;

)

//xt2-5-2.cpp(arraymax.cpp)

#include<iostream>

usingnamespacestd;

#include"xt2-5.h"

voidArray_max::set_value()

{inti;

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

cin»array[i];

)

voidArray_max::max_value()

{inti;

max=array[O];

for(i=l;i<10;i++)

if(array[i]>max)max=array[i];

)

voidArray_max::show_value()

{cout«"max="«max<<endl;

)

6:解法一

ttinclude<iostream>

usingnamespacestd;

classBox

{public:

voidget_value();

floatvolume();

voiddisplay();

public:

floatlengh;

floatwidth;

floatheight;

);

voidBox::get_value()

{cout«npleaseinputlengh,width,height:";

cin»lengh;

cin»width;

cin»height;

)

floatBox::volume()

{return(lengh*width*height);}

voidBox::display()

{cout«volume()«endl;}

intmain()

{Boxboxl,box2,box3;

boxl.get_value();

cout«hvolmueofbaxlis

boxl.display();

box2.get_value();

cout«"volmueofbax2is

box2.display();

box3.get_value();

cout«Hvolmueofbax3is

box3.display();

return0;

)

解法二:

#include<iostream>

usingnamespacestd;

classBox

{public:

voidget_value();

voidvolume();

voiddisplay();

public:

floatlengh;

floatwidth;

floatheight;

floatvol;

);

voidBox::get_value()

{cout«"pleaseinputlengh,width,height:";

cin»lengh;

cin»width;

cin»height;

)

voidBox::volume()

{vol=lengh*width*height;}

voidBox::display()

{cout«vol«endl;}

intmain()

{Boxboxl/box2,box3;

boxl.get_value();

boxl.volume();

cout«"volmueofbaxlisH;

boxl.display();

box2.get_value();

box2.volume();

cout«"volmueofbax2is

box2.display();

box3.get_value();

box3.volume();

cout«"volmueofbax3is

box3.display();

return0;

第三章

2:

#include<iostream>

usingnamespacestd;

classDate

{public:

Date(intjntjnt);

Date(intjnt);

Date(int);

Date();

voiddisplay();

private:

intmonth;

intday;

intyear;

};

Date::Date(intm,intd,inty):month(m),day(d),year(y)

()

Date::Date(intmjntd):month(m),day(d)

{year=2005;}

Date::Date(intm):month(m)

{day=l;

year=2005;

Date::Date()

{month=l;

day=l;

year=2005;

}

voidDate::display()

{cout«month«,7"«day«,7"«year«endl;}

intmain()

(

Datedl(10,13,2005);

Dated2(12,30);

Dated3(10);

Dated4;

dl.display();

d2.display();

d3.display();

d4.display();

return0;

)

3:

#include<iostream>

usingnamespacestd;

classDate

{public:

Date(int=l,int=l,int=2005);

voiddisplay();

private:

intmonth;

intday;

intyear;

);

Date::Date(intmjntd,inty):month(m),day(d),year(y)

()

voidDate::display()

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

intmain()

(

Datedl(10,13,2005);

Dated2(12,30);

Dated3(10);

Dated4;

dl.display();

d2.display();

d3.display();

d4.display();

return0;

)

4:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

voiddisplay();

private:

intnum;

floatscore;

};

voidStudent::display()

{cout«num«""«score«endl;}

intmain()

{Studentstud[5]={

Student(101,78.5),Student(102,85.5),Student(103,98.5),

Student(104,100.0),Student(105,95.5)};

Student*p=stud;

for(inti=0;i<=2;p=p+2J++)

p->display();

return0;

5:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

intnum;

floatscore;

);

voidmain()

{Studentstud[5]={

Student(101,78.5),Student(102,85.5)/Student(103/98.5),

Student(104,100.0),Student(105,95.5)};

voidmax(Student*);

Student*p=&stud[O];

max(p);

)

voidmax(Student*arr)

{floatmax_score=arr[0].score;

intk=0;

for(inti=l;i<5;i++)

if(arr[i].score>max_score){max_score=arr[i].score;k=i;}

cout«arr[k].num«"H«max__score«endl;

)

6:

ttinclude<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

voidchange(intnjloats){num=n;score=s;}

voiddisplay(){cout«num«n"«score«endl;}

private:

intnum;

floatscore;

);

intmain()

{Studentstud(101,78.5);

stud.display();

stud.change(101,80.5);

stud.display();

return0;

)

7:解法一

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

voidchange(intn,floats){num=n;score=s;}

voiddisplay(){cout«num«"H«score«endl;}

〃可改为:voiddisplay()const{cout«num«""«score«endl;}

private:

intnum;

floatscore;

};

intmain()

{constStudent

stud(101,78.5);

stud.display();

//stud.change(101,80.5);

stud.display();

return0;

解法二:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n)zscore(s){}

voidchange(intn,floats)const{num=n;score=s;}

voiddisplay()const{cout«num«""«score«endl;}

private:

mutableintnum;

mutablefloatscore;

);

intmain()

{constStudentstud(101,78.5);

stud.display();

stud.change(101,80.5);

stud.display();

return0;

)

解法三:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

voidchange(intn,floats){num=n;score=s;}

voiddisplay(){cout«num«""«score«endl;}

private:

intnum;

floatscore;

);

intmain()

{Studentstud(101,78.5);

Student*p=&stud;

p->display();

p->change(101,80.5);

p->display();

return0;

}

8:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(intn,floats):num(n),score(s){}

voidchange(intn,floats){num=n;score=s;}

voiddisplay(){cout«num«""«score«endl;}

private:

intnum;

floatscore;

);

intmain()

{Studentstud(101,78.5);

voidfun(Student&);

fun(stud);

return0;

)

voidfun(Student&stu)

{stu.displayO;

stu.change(101,80.5);

stu.display();

9:

include<iostream>

usingnamespacestd;

classProduct

{public:

Product(intnjntq,floatp):num(n),quantity(q),price(p){};

voidtotal();

staticfloataverage();

staticvoiddisplay();

private:

intnum;

intquantity;

floatprice;

staticfloatdiscount;

staticfloatsum;

staticintn;

);

voidProduct::total()

{floatrate=1.0;

if(quantity>10)rate=0.98*rate;

sum=sum+quantity*price*rate*(l-discount);

n=n+quantity;

}

voidProduct::display()

{cout«sum«endl;

cout«average()«endl;

}

floatProduct::average()

{return(sum/n);}

floatProduct::discount=0.05;

floatProduct::sum=0;

intProduct::n=0;

intmain()

(

ProductProd[3]={

Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5)

);

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

Prod[i].total();

Product::display();

return0;

)

10:

include<iostream>

usingnamespacestd;

classDate;

classTime

{public:

Time(int,int,int);

friendvoiddisplay(constDate&,constTime&);

private:

inthour;

intminute;

intsec;

};

Time::Time(inthjntmjnts)

{hour=h;

minute=m;

sec=s;

}

classDate

{public:

Date(intjntjnt);

friendvoiddisplay(constDate&,constTime&);

private:

intmonth;

intday;

intyear;

);

Date::Date(intmjntd,inty)

{month=m;

day=d;

year=y;

voiddisplay(constDate&d,constTime&t)

cout«d.month«7"«d.day«7"«d.year«endl;

cout«t.hour«":"«t.minute«H:"«t.sec«endl;

intmain()

(

Timetl(10z13,56);

Datedl(12,25,2004);

display(dlztl);

return0;

)

11:

#include<iostream>

usingnamespacestd;

classTime;

classDate

{public:

Date(intjntjnt);

friendTime;

private:

intmonth;

intday;

intyear;

};

Date::Date(intm,intd,inty):month(m),day(d),year(y){}

classTime

{public:

Time(int,int,int);

voiddisplay(constDate&);

private:

inthour;

intminute;

intsec;

};

Time::Time(inth,intm,ints):hour(h),minute(m),sec(s){}

voidTime::display(constDate&d)

cout«d.month«,7"«d.day«,7"«d.year<<endl;

cout«hour«":"«minute«":n«sec«endl;

intmain()

(

Timetl(10z13z56);

Datedl(12,25,2004);

tl.display(dl);

return0;

)

12:

include<iostream>

usingnamespacestd;

template<classnumtype>

classCompare

{public:

Compare(numtypea,numtypeb);

numtypemax();

numtypemin();

private:

numtypex,y;

};

template<classnumtype>

Compare<numtype>::Compare(numtypea,numtypeb)

{x=a;y=b;}

template<classnumtype>

numtypeCompare<numtype>::max()

{return(x>y)?x:y;}

template<classnumtype>

numtypeCompare<numtype>::min()

{return(x<y)?x:y;}

intmain()

{Compare<int>cmpl(3,7);

cout«cmpl.max()«"istheMaximumoftwointegernumbers."«endl;

cout«cmpl.min()«HistheMinimumoftwointegernumbers."«endl«endl;

Compare<float>cmp2(45.78,93.6);

cout«cmp2.max()«"istheMaximumoftwofloatnumbers."«endl;

cout«cmp2.min()«"istheMinimumoftwofloatnumbers."«endl«endl;

Compare<char>cmp3('a7A');

cout«cmp3.max()«"istheMaximumoftwocharacters."«endl;

cout«cmp3.min()«"istheMinimumoftwocharacters."«endl;

return0;

第四章

1:

include<iostream>

usingnamespacestd;

classComplex

{public:

Complex(){real=0;imag=0;}

Complex(doubler,doublei){real=r;imag=i;}

doubleget_real();

doubleget_imag();

voiddisplay();

private:

doublereal;

doubleimag;

};

doubleComplex::get_real()

{returnreal;}

doubleComplex::getjmag()

{returnimag;}

voidComplex::display()

{cout«"(''«real«'7,«imag«"i)"«endl;}

Complexoperator+(Complex&cl,Complex&c2)

(

returnComplex(cl.get_real()+c2.get_real(),cl.getjmag()+c2.getjmag());

)

intmain()

{Complexcl(3,4),c2(5,-10)zc3;

c3=cl+c2;

cout«,,c3=,';

c3.display();

return0;

)

2:

include<iostream>

usingnamespacestd;

classComplex

{public:

Complex(){real=0;imag=0;}

Complex(doubler,doublei){real=r;imag=i;}

Complexoperator+(Complex&c2);

Complexoperator-(Complex&c2);

Complexoperator*(Complex&c2);

Complexoperator/(Complex&c2);

voiddisplay();

private:

doublereal;

doubleimag;

);

ComplexComplex::operator+(Complex&c2)

{Complexc;

c.real=real+c2.real;

c.imag=imag+c2.imag;

returnc;}

ComplexComplex::operator-(Complex&c2)

{Complexc;

c.real=real-c2.real;

c.imag=imag-c2.imag;

returnc;}

ComplexComplex::operator*(Complex&c2)

{Complexc;

c.real=real*c2.real-imag*c2.imag;

c.imag=imag*c2.real+real*c2.imag;

returnc;}

ComplexComplex::operator/(Complex&c2)

{Complexc;

c.real=(real*c2.real+imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag);

c.imag=(imag*c2.real-real*c2.imag)/(c2.real*c2,real+c2.imag*c2.imag);

returnc;}

voidComplex::display()

{cout«"("«real«,,,"«imag«"i)"«endl;}

intmain()

{Complexcl(3,4),c2(5,-10),c3;

c3=cl+c2;

cout«,,cl+c2=,,;

c3.display();

c3=cl-c2;

cout«"cl-c2=";

c3.display();

c3=cl*c2;

cout«,,cl*c2=";

c3.display();

c3=cl/c2;

cout«"cl/c2=";

c3.display();

return0;

)

3:

#include<iostream>〃用VC++时改为:include<iostream.h>

usingnamespacestd;〃用VC++时为取消此行

classComplex

{public:

Complex(){real=0;imag=0;}

Complex(doubler,doublei){real=r;imag=i;}

Complexoperator+(Complex&c2);

Complexoperator+(int&i);

friendComplexoperator+(int&,Complex&);

voiddisplay();

private:

doublereal;

doubleimag;

);

ComplexComplex::operator+(Complex&c)

{returnComplex(real+c.real,imag+c.imag);}

ComplexComplex::operator+(int&i)

{returnComplex(real+ijmag);}

voidComplex::display()

,H

{cout«'(«real«","«imag«"i)"«endl;}

Complexoperator+(int&i,Complex&c)

{returnComplex(i+c.real,c.imag);}

intmain()

{Complexcl(3,4),c2(5,-10),c3;

inti=5;

c3=cl+c2;

cout«"cl+c2=";

c3.display();

c3=i+cl;

cout«"i+cl=,';

c3.display();

c3=cl+i;

cout«ncl+i=";

c3.display();

return0;

)

4:

include<iostream>

usingnamespacestd;

classMatrix〃定义Matrix类

{public:

Matrix();〃默认构造函数

friendMatrixoperator+(Matrix&,Matrix&);〃重载运算符“+”

voidinput();〃输入数据函数

voiddisplay();〃输出数据函数

private:

intmat[2][3];

};

Matrix::Matrix()〃定义构造函数

{for(inti=0;i<2;i++)

for(intj=0;j<3;j++)

mat[i][j]=O;

)

Matrixoperator+(Matrix&a,Matrix&b)〃定义重载运算符“+”函数

{Matrixc;

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

for(intj=0;j<3;j++)

{c.mat[i][j]=a.mat[i][j]+b.mat[i][j];}

returnc;

)

voidMatrix::input()〃定义输入数据函数

{cout«"inputvalueofmatrix:"«endl;

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

for(intj=0;j<3;j++)

cin»mat[i][j];

voidMatrix::display()〃定义输出数据函数

{for(inti=0;i<2;i++)

{for(intj=O;j<3;j++)

{cout«mat[i][j]«"";}

cout«endl;}

)

intmain()

{Matrixa,b,c;

a.input();

b.input();

cout«endl«"Matrixa:"«endl;

a.display();

cout«endl«"Matrixb:"«endl;

b.display();

c=a+b;〃用重载运算符“+”实现两个矩阵相

cout«endl«"Matrixc=Matrixa+Matrixb:"«endl;

c.display();

return0;

)

5:

include<iostream.h>

//usingnamespacestd;

classMatrix

{public:

Matrix();

friendMatrixoperator+(Matrix&,Matrix&);

friendostream&operator«(ostream&,Matrix&);

friendistream&operator»(istream&zMatrix&);

private:

intmat[2][3];

};

Matrix::Matrix()

{for(inti=0;i<2;i++)

for(intj=0;j<3;j++)

mat[i][j]=O;

}

Matrixoperator+(Matrix&a,Matrix&b)

{Matrixc;

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

for(intj=0;j<3;j++)

{c.mat[i][j]=a.mat[i][j]+b.mat[i][j];

)

returnc;

}

istream&operator»(istream&in,Matrix&m)

{cout«"inputvalueofmatrix:"«endl;

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

for(intj=O;j<3;j++)

in»m.mat[i][j];

returnin;

)

ostream&operator«(ostream&out,Matrix&m)

{for(inti=0;i<2;i++)

{for(intj=O;j<3;j++)

{out«m.mat[i][j]«"";}

out«endl;}

returnout;

}

intmain()

{Matrixa,b,c;

cin»a;

cin»b;

cout«endl«"Matrixa:"«endl«a«endl;

cout«endl«"Matrixb:"«endl«b«endl;

c=a+b;

cout«endl«"Matrixc=Matrixa+Matrixb:"«endl«c«endl;

return0;

)

6:

include<iostream>

usingnamespacestd;

classComplex

{public:

Complex(){real=0;imag=0;}

Complex(doubler){real=r;imag=0;}

Complex(doubler,doublei){real=r;imag=i;}

operatordouble(){returnreal;}

voiddisplay();

private:

doublereal;

doubleimag;

);

voidComplex::display()

',

{cout«"('«real«"/"«imag«")'«endl;}

intmain()

{Complexcl(3,4),c2;

doubledl;

dl=2.5+cl;

cout«"dl="«dl«endI;

c2=Complex(dl);

cout«"c2=";

c2.display();

return0;

)

7:

include<iostream>

usingnamespacestd;

classStudent

{public:

Student(int,char[],char,float);

intget_num(){returnnum;}

char*get_name(){returnname;}

charget_sex(){returnsex;}

voiddisplay()

{cout<<”num:“<<num<<”\nname:“<<name<<"\nsex:"<<sex<<”\nscore:“<<score<<”\n\n”;}

private:

intnum;

charname[20];

charsex;

floatscore;

);

Student::Student(intn,charnam[],chars,floatso)

{num=n;

strcpy(name,nam);

sex=s;

score=so;

classTeacher

{public:

Teacher(){}

Teacher(Student&);

Teacher(intnzcharnam[],charsexjloatpay);

voiddisplay();

private:

intnum;

charname[20];

charsex;

floatpay;

);

Teacher::Ieacher(intn,charnam[],chars,floatp)

{num=n;

strcpy(name,nam);

sex=s;

pay=p;

}

Teacher::Teacher(Student&stud)

{num=stud.get_num();

strcpy(name,stud.get_name());

sex=stud.get_sex();

pay=1500;}

voidTeacher::display()

{cout«"num:"«num«"\nname:,,«name«"\nsex:"«sex«,,\npay:"«pay«"\n\n";}

intmain()

,,

{Teacherteacherl(10001/Li'/'f'z1234.5),teacher2;

,,

Studentstudentl(20010,"Wang",m,89.5);

cout«,,studentl:"«endl;

studentl.display();

teacher2=Teacher(studentl);

cout«"teacher2:"«endl;

teacher2.display();

return0;

)

Aye7t

第五早t

1:

include<iostream>

usingnamespacestd;

classStudent

{public:

voidget_value()

{cin»num»name»sex;}

voiddisplay()

{cout«"num:"«num«endl;

cout«"name:"«name«endl;

cout«"sex:"«sex«endl;}

private:

intnum;

charname[10];

charsex;

);

classStudentl:publicStudent

{public:

voidget_value_l()

{get_value();

cin»age»addr;}

voiddisplay_l()

{cout«*'age:"«age«endl;〃引用派生类的私有成员,正确。

cout«"address:"«addr«endl;}〃引用派生类的私有成员,正确。

private:

intage;

charaddr[3O];

};

intmain()

{Studentlstudl;

studl.get_value_l();

studl.display();

studl.display_l();

return0;

}

2:

ttinclude<iostream>

usingnamespacestd;

classStudent

{public:

voidget_value()

{cin»num»name»sex;}

voiddisplay()

{cout«Hnum:"«num«endl;

cout«"name:"«name«endl;

cout«"sex:"«sex«endl;}

private:

intnum;

charname[10];

charsex;

};

classStudentl:privateStudent

{public:

voidget_value_l()

{get_value();

cin»age»addr;}

voiddisplay_l()

{displayO;

cout«Hage:"«age«endl;〃引用派生类的私有成员,正确。

cout«"address:"«addr«endl;}〃引用派生类的私有成员,正确。

private:

intage;

charaddr[3O];

};

intmain()

{Studentlstudl;

studl.get_value_l();

studl.display_l();

return0;

)

3:

include<iostream>

usingnamespacestd;

classStudent〃声明基类

{public:〃基类公用成员

voidget_value();

voiddisplay();

protected:〃基类保护成员

intnum;

charname[10];

charsex;

};

voidStudent::get_value()

{cin»num»name»sex;}

voidStudent::display()

{cout«"num:"«num«endl;

cout«"name:"«name«endl;

cout«"sex:"«sex«endl;

)

classStudentl:protectedStudent〃声明一个保护派生类

{public:

voidget_value_l();

voiddisplayl();

private:

intage;

charaddr[3O];

);

voidStudentl::get_value_l()

{get_value();

cin»age»addr;

)

voidStudentl::displayl()

{cout«"num:"«num«endl;〃引用基类的保护成员

cout«"name:"«name«endl;〃引用基类的保护成员

cout«"sex:"«sex«endl;〃引用基类的保护成员

cout«nage:"«age«endl;〃引用派生类的私有成员

cout«Haddress:"«addr«endl;〃引用派生类的私有成员

)

intmain()

{Studentlstudl;//studl是派生类studentl类的对象

studl.get_value_l();〃调用派生类对象studl的公用成员函数

studl.displayl();〃调用派生类对象studl的公用成员函数

return0;

4:解法一

#include<iostream>

usingnamespacestd;

classStudent〃声明基类

{public:〃基类公用成员

voidget_value();

voiddisplay();

protected:〃基类保护成员

intnum;

charname[10];

charsex;

);

voidStudent::get_value()

{cin»num»name»sex;}

voidStudent::display()

{cout«"num:,'«num«endl;

cout«"name:"«name«endl;

cout«"sex:"«sex«endl;

)

classStudentl:publicStudent〃声明•个公用派生类

{public:

voidget_value_l();

voiddisplayl();

private:

intage;

charaddr[3O];

};

voidStudentl::get_value_l()

{get_value();

cin»age»addr;

voidStudentl::displayl()

{cout«"num:"«num«endl;〃引用基类的保护成员,合法

cout«"name:"«name«endl;〃引用基类的保护成员,合法

cout«"sex:"«sex«endl;〃引用基类的保护成员,合法

cout«"age:"«age«endl;〃引用派生类的私有成员,合法

cout«"address:"«addr«endl;〃引用派生类的私有成员,合法

intmain()

{Studentlstudl;//studl是派生类studentl类的对象

studl.get_value_l();〃调用派生类对象studl的公用成员函数

get_value_l

studl.displayl();〃调用派生类对象studl的公用成员函数displayl

return0;

)

解法二

#include<iostream>

usingnamespacestd;

classStudent〃声明基类

{public:〃基类公用成员

voidget_value();

voiddisplay();

protected:〃基类保护成员

intnum;

charname[10];

charsex;

};

voidStudent::get_value()

{cin»num»name»sex;}

voidStudent::display()

{cout«"num:"«num«endl;

cout«"name:"«name«endl;

cout«"sex:n«sex«endl;

)

classStudentl:protectedStudent〃声明一个公用派生类

{public:

voidget_value_l();

voiddisplayl();

private:

intage;

charaddr[3O];

);

voidStudentl::get_value_l()

{cin»age»addr;}

voidStudentl::displayl()

{cout«"age:"«age«endl;

cout«"address:"«addr«endl;

intmain()

{Studentlstudl;

温馨提示

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

评论

0/150

提交评论