C面向?qū)ο蟪绦蛟O(shè)計(jì)教程--陳維興-林小茶課后習(xí)題答案_第1頁
C面向?qū)ο蟪绦蛟O(shè)計(jì)教程--陳維興-林小茶課后習(xí)題答案_第2頁
C面向?qū)ο蟪绦蛟O(shè)計(jì)教程--陳維興-林小茶課后習(xí)題答案_第3頁
C面向?qū)ο蟪绦蛟O(shè)計(jì)教程--陳維興-林小茶課后習(xí)題答案_第4頁
C面向?qū)ο蟪绦蛟O(shè)計(jì)教程--陳維興-林小茶課后習(xí)題答案_第5頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程課后題答案

什么是面向?qū)ο蟪绦蛟O(shè)計(jì)

面向?qū)ο蟪绦蛟O(shè)計(jì)是一種新的程序設(shè)計(jì)范型.這種范型的主要特征

是:

程序二對象+消息

面向?qū)ο蟪绦虻幕驹厥菍ο蟆?/p>

主要結(jié)構(gòu)特點(diǎn)是:

第一,程序一般由類的定義和類的使用兩部分組成;

第二,程序中的一切操作都是通過向?qū)ο蟀l(fā)送消息來實(shí)現(xiàn)的。

什么是對象什么是類對象與類之間的關(guān)系是什么

對象是描述其屬性的數(shù)據(jù)以及對這些數(shù)據(jù)施加的一組操作封裝在一

起構(gòu)成的統(tǒng)一體。

類就是具有相同的數(shù)據(jù)和相同的操作的一組對象的集合,也就是說,

類是對具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的一類對象的描述。

類和對象之間的關(guān)系是抽象和具體的關(guān)系。類是多個(gè)對象進(jìn)行綜合抽

象的結(jié)果,一個(gè)對象是類的一個(gè)實(shí)例。

現(xiàn)實(shí)世界中的對象有哪些特征請舉例說明。

現(xiàn)實(shí)世界中的對象具有以下特征:

1)每一個(gè)對象必須有一個(gè)名字以區(qū)別于其他對

象;

2)用屬性來描述對象的某些特征;

3)有一組操作,每組操作決定對象的一種行為;

4)對象的行為可以分為兩類:一類是作用于自身

的行為,另一類是作用于其他對象的行為。

例如一個(gè)教師是一個(gè)對象。每個(gè)教師對象有自己的名字來和別的教師

區(qū)別。教師具有編號,姓名,年齡,職稱,專業(yè)等屬性。教師擁有走

路,吃飯,授課等行為操作。走路,吃飯是作用于自身的行為,授課

是作用于其他對象的行為。

什么是消息消息具有什么性質(zhì)

一個(gè)對象向另一個(gè)對象發(fā)出的請求成為“消息”。

消息具有以下3個(gè)性質(zhì):

1)同一個(gè)對象可以接收不同形式的多個(gè)消息,做

出不同的相應(yīng);

2)相同形式的消息可以傳遞給不同的對象,所做

出的響應(yīng)可以是不同的;

3)對消息的響應(yīng)并不是必須的,對象可以響應(yīng)消

息,也可以不響應(yīng)。

什么是抽象和封裝請舉例說明。

抽象是將有關(guān)事物的共性歸納、集中的過程。

例如:把所有具有大學(xué)生學(xué)籍的人歸為一類,成為“大學(xué)生”,這就

是一個(gè)抽象。

封裝是指把數(shù)據(jù)和實(shí)現(xiàn)操作的代碼集中起來放在對象內(nèi)部,并盡可能

隱藏對象的內(nèi)部細(xì)節(jié)。

例如:每一臺洗衣機(jī)都有出廠日期、機(jī)器編號等屬性,也有啟動、暫

停、選擇等操作。人們在使用洗衣機(jī)的時(shí)候只需要按下對應(yīng)的按鈕,

而不用關(guān)心具體的內(nèi)部實(shí)現(xiàn)。這就是封裝。

多繼承是指多個(gè)基類派生出一個(gè)派生類的繼承關(guān)系。比如玩具車同時(shí)

繼承自玩具和車。

什么是多態(tài)請舉例說明。

多態(tài)是指不同的對象收到相同的消息時(shí)執(zhí)行不同的操作。

例如,有一個(gè)窗口類對象,還有一個(gè)棋子類對象。當(dāng)我們發(fā)出“移動”

消息時(shí),兩個(gè)對象的行為不同。

面向?qū)ο蟪绦蛟O(shè)計(jì)的主要優(yōu)點(diǎn)是什么

1.可提高程序的重用性;

2.可控制程序的復(fù)雜性;

3.可改善程序的可維護(hù)性;

4.能夠更好地支持大型程序設(shè)計(jì);

5.增強(qiáng)了計(jì)算機(jī)處理信息的范圍;

能夠很好地適應(yīng)新的硬件環(huán)境。

簡述C++的主要特點(diǎn)。

1)C++是C的超集,保持與C的兼容。

2)保持了C的簡潔、高效和接近匯編語言等特點(diǎn),

并對C的功能作了不少擴(kuò)充。用C++編寫的程序比C更安全,可讀性

更好,代碼結(jié)構(gòu)更為合理。

3)程序質(zhì)量高。

4)增加了面向?qū)ο髾C(jī)制。

#incIude<iostream>

usingnamespacestd;

intmain()

(

inta,b,d,min;

cout?"Entertwonumbers:";

cin?a?b;

min=a>bb:a;

for(d=2;d<min;d++)

if(((a%d)=二0)&&((b%d)=0))break;

)

if(d-min)

(

cout?"Nocommondenominators"?endI;

return0;

)

cout?"TheIowestcommondenominatoris"?d?endI;

return0;

有效

沒有函數(shù)聲明;

函數(shù)定義沒有寫返回值類型。

(1)等價(jià),函數(shù)聲明可以省略參數(shù)的名字。

(2)不等價(jià),第二個(gè)的函數(shù)定義不能省略參數(shù)的

名字。

CDAAB

ACBDC

DC

101

1010

10

20

舉例說明可以使用const替代#define以消除#define的不安全性。

#incIude<iostream>

usingnamespacestd;

intmain0

f

inta=1;

#defineT1a+a

#defineT2T1-T1

cout?"T2is"?T2?endI;

return0;

)

上面這個(gè)程序,初看應(yīng)該輸出T2is0

但是實(shí)際上,得出T2is2

如果把#define換成const,則可以輸出想要的結(jié)果。

用動態(tài)分配空間的方法,計(jì)算Fibonacci數(shù)列的前20項(xiàng),并存儲到

動態(tài)分配的空間中。

#incIude<iostream>

usingnamespacestd;

intmain()

(

int*pi=newint[20];

*pi=1;

pi[1]=1;

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

pi[i]=pi[i-2]+pi[i-1];

)

return0;

)

重載sroot函數(shù),輸出一個(gè)數(shù)的二次方根。

#incIude<iostream>

usingnamespacestd;

doubIesroot(intnum)

return(double)sqrt((doubIe)num);

)

doublesroot(longnum)

return(double)sqrt((doubIe)num);

1

doublesroot(doublenum)

{

return(double)sqrt(num);

1

intmain()

(

return0;

)

解決百錢問題。將一元人民幣換成1、2、5分的硬幣,有多少種換

#incIude<iostream>

usingnamespacestd;

intmain0

(

intnum=0;Default

constructorcaIled.

DefaultconstructorcaIled.

Construcotor:a=1,b=2

Construcotor:a=3,b=4

Construcotor:a=5,b=6

Con.

Copycon.

default.

Copycon.

A二5

B二14

A二9

B=14

5,7

Constructing

Constructing

A=5

B=15

A=10

B二15

Destructing

Destructing

voidpintStu();函數(shù)只有聲明,沒有定義。

age是私有成員,不能用對象直接調(diào)用。

voidprintStu0和voidsetSno(ints)沒有

加限定符Student::

voidsetAge(inta)在類中沒有聲明

構(gòu)造函數(shù)不能定義為私有。否則無法創(chuàng)建對象。

下面是一個(gè)計(jì)算器類的定義,請完成該類成員函數(shù)的實(shí)現(xiàn)。

cIasscounter

publie:

counter(intnumber);

voidincrement0;電。0777ult()?"

)

)

修改,通過對象指針訪問對象數(shù)組,使程序以相反的順序顯示每個(gè)

對象數(shù)組元素的qu*price值。

cIassbook

(

private:

intqu,price;

publie:

book(intqu);

intmu11();

);

book::book(intq)

if(q<1IIq>5)

qu=1;

eIse

qu=q;

}

price=10*qu;

)

intbook::mu11()

{

returnqu*price;

)

intmain0

(

bookbooks[5]={1,2,3,4,5);

book*p=books;

P十二4;

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

(

cout?p->muIt()?"

一P;

return0;

)

構(gòu)建一個(gè)類Stock,含字符數(shù)組stockcode□及整型數(shù)組成員quan、

雙精度型數(shù)據(jù)成員price。構(gòu)造函數(shù)含3個(gè)參數(shù):字符數(shù)組na□及q、

Po當(dāng)定義Stock的類對象時(shí),將對象的第一個(gè)字符串參數(shù)賦給數(shù)據(jù)

成員stockcode,第2和第3個(gè)參數(shù)分別賦給quan、price。未設(shè)置

第2和第3個(gè)參數(shù)時(shí),quan的值為1000,price的值為.成員函數(shù)print

沒有形參,需使用this指針,顯示對象數(shù)據(jù)成員的內(nèi)容。編寫程序

顯示對象數(shù)據(jù)成員的值。

#incIude<iostream>

usingnamespacestd;

cIassStock

private:

charstockcode[25];

intquan;

doubIeprice;

pubIic:

Stock(charna[],intq=1000,doubIep=;

Stock(charna[]);

voidprint();

);

Stock::Stock(charna[],intq=1000,doubIep二

strcpy(stockcode,na);

quan=q;

price二p;

voidStock::print()

(

cout?"stockcode:"?this->stockcode?"quan:"?

this->quan?"price:"?this->price?endI;

}

intmain()

(

Stockstockl("600001",3000,;

Stockstock2("600002");

0;

0;

return0;

)

編寫一個(gè)程序,已有若干學(xué)生的數(shù)據(jù),包括學(xué)號、姓名、成績,要

求輸出這些學(xué)生的數(shù)據(jù)并計(jì)算出學(xué)生人數(shù)和平均成績(要求將學(xué)生人

數(shù)和總成績用靜態(tài)數(shù)據(jù)成員表示)。

#include<iostream>

usingnamespacestd;

cIassstudent

(

private:

charname[25],studentNo[10];

intscore;

staticintsum;

staticinttotalScore;

pubIic:

student(charna[],charstuNo[],intsc);

voidshow();

staticvoidshowTotaI();

);

student::student(charna[],charstuNo[],intsc)

strcpy(name,na);

strcpy(studentNo,stuNo);

score=sc;

++sum;

totaIScore+二sc;

)

voidstudent::show()

cout?"姓名:?name?endI;

cout?"學(xué)號:"?studentNo?endI;

cout?"成績:"?score?endI;

}

voidstudent::showTotaI()

cout?"總?cè)藬?shù):"?sum?endI;

cout?”平均成績:"?(doubIe;totaIScore/sum?endI;

)

intstudent::sum=0;

intstudent::totaIScore=0;

intmain()

students1(“張無忌”,"111254",75);

students2(“李莫愁","254114",60);

students3(“小龍女、"112587",88);

0;

0;

0;

student::showTotaI();

return0;

)

有哪幾種繼承方式每種方式的派生類對基類成員的繼承性如何

公有繼承,私有繼承和保護(hù)繼承。

基類的私有成員,無論哪種繼承方式都不能訪問。

公有繼承不改變基類的公有和保護(hù)成員的訪問限

制C

私有繼承將基類的公有和保護(hù)成員都變成私有。

保護(hù)繼承將基類的公有和保護(hù)成員都變成保護(hù)。

派生類能否直接訪問基類的私有成員若否,應(yīng)如何實(shí)現(xiàn)

不能。可以在基類里添加一個(gè)公有成員函數(shù)來訪

問私有成員,派生類就能繼承這個(gè)公有成員函數(shù),實(shí)現(xiàn)對基類私有成

員的訪問。

保護(hù)成員有哪些特性保護(hù)成員以公有方式或私有方式繼承后的訪問

特性如何

保護(hù)成員只能被本類或本類的派生類所訪問,在

類或派生類外是不能被訪問的。

后面一問見第一題的答案。

派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的

構(gòu)造函數(shù)是先執(zhí)行父類的構(gòu)造函數(shù),再執(zhí)行類中

其他類對象的構(gòu)造函數(shù),再執(zhí)行本類的構(gòu)造函數(shù)。如果同級有多個(gè)構(gòu)

造函數(shù),則按聲明順序執(zhí)行。

析構(gòu)函數(shù)與構(gòu)造函數(shù)的執(zhí)行順序剛好相反。

派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的構(gòu)造規(guī)則是怎樣的

派生類名(參數(shù)總表):基類名(參數(shù)總表)

派生類新增數(shù)據(jù)成員的初

始化語句

派生類中的析構(gòu)函數(shù)與基類無關(guān)。

什么是多繼承多繼承時(shí),構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序是怎樣的

多繼承是指一個(gè)類同時(shí)繼承自多個(gè)不同的基類。

執(zhí)行順序同

在類的派生中為何要引入虛基類虛基類構(gòu)造函數(shù)的調(diào)用順序是如何

規(guī)定的

如果一個(gè)類有多個(gè)直接基類,而這些直接基類又

有一個(gè)共同的基類,則在最底層的派生類中會保留這個(gè)簡介的共同基

類數(shù)據(jù)成員的多份同名成員。在訪問這些同名成員的時(shí)候,會產(chǎn)生二

義性。為了解決二義性,引入了虛基類。

1)如果虛基類中定義有帶形參的構(gòu)造函數(shù),并且

沒有定義默認(rèn)形式的構(gòu)造函數(shù),則整個(gè)繼承結(jié)構(gòu)中,所有直接或間接

的派生類都必須在構(gòu)造函數(shù)的成員初始化表中列出對虛基類構(gòu)造函

數(shù)的調(diào)用,以初始化在虛基類中定義的數(shù)據(jù)成員。

2)建立一個(gè)對象時(shí),如果這個(gè)對象中含有從虛基

類繼承來的成員,則虛基類的成員是由最遠(yuǎn)派生類的構(gòu)造函數(shù)通過調(diào)

用虛基類的構(gòu)造函數(shù)進(jìn)行初始化的。該派生類的其他基類對虛基類構(gòu)

造函數(shù)的調(diào)用都自動被忽略。

3)若同一層次中同時(shí)包含虛基類和非虛基類,應(yīng)

先調(diào)用虛基類的構(gòu)造函數(shù),再調(diào)用非虛基類的構(gòu)造函數(shù),最后調(diào)用派

生類的構(gòu)造函數(shù)。

ACCB

ConstructorB1.

ConstructorB2.

ConstructorA.

3

2

主食二bread

副食二steak

0,0,0

0,1,0

3,6,9

ConstructorB1.

ConstructorB2.

ConstructorB3.

ConstructorA.

1

2

4,3

4

(1,2)

5,6

(6,9)

classbasel

classbase2

classIeve12

classbase2

cIasslevel1

classtopIeveI

#inoIude<iostream>

usingnamespacestd;

#incIude<iomanip>

cIasstabIe

publie:

table(intp,intq)

i二P;

j=q;

}

voidascii(void);

protected:

inti,j;

);

voidtable::ascii()

(

intk=1;

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

(

cout?setw(4)?i?"?(char)i;

if((k)%12二二0)

(

cout?"\n";

)

k++;

cout?"\nu;

)

cIassder_table:publictabIe

(

pubIic:

der_table(intp,intq,char*m):tabIe(p,q)

(

c=m;

)

voidprint();

protected:

char*c;

);

voidder_tabIe::print()

cout?c?"\n";

tabIe::ascii();

1

intmain()

(

der_tabIeob(*a','z',"ASCIIvaIue-----char");

0;

return0;

)

#incIude<iostream>

usingnamespacestd;

#incIude<iomanip>

cIassarea_c1

protected:

doubleheight;

doubIewidth;

publie:

area_c1(doubler,doubIes)

height=r;

width二s;

)

virtuaIdoublearea()=0;

);

cIassrectangle:pubIicarea_c1

publie:

rectangIe(doubler,doubles):area_c1(r,s){}

virtuaIdoublearea0;

);

doublerectangle::area()

(

returnheight*width;

)

cIassisosceIes:pubIicarea_c1

(

publie:

isosceles(doubler,doubles):area_c1(r,s){}

virtuaIdoublearea0;

);

doubIeisosceles::area()

(

return(height*width)/2;

)

intmain()

(

rectangler(10,5);

isosceIesi(4,6);

area_c1*a;

a=&r;

cout?"矩形的面積是:"?a->area()?endI;

a=&i;

cout?"三角形的面積是:"?a->area()?endI;

return0;

)

#incIude<iostream>

usingnamespacestd;

#incIude<iomanip>

cIassTime

publie:

Time(inth,intm,ints)

hours二h;

minutes=m;

seconds=s

voiddispIay()

cout?”出生時(shí)間:"?hours?"時(shí)"?minutes?

分"?seconds?"秒"?endI;

)

protected:

inthours,minutes,seconds;

);

cIassDate

(

publie:

Date(intm,intd,inty)

month-m;

day二d;

year=y;

)

voiddisplay()

{

cout?"出生年月:"?year?"年"?month?"月"

?day?"日"?endl;

}

protected:

intmonth,day,year;

);

cIassBirthtime:pubIicTime,pubIicDate

publie:

Birthtime(charname[],intm,intd,inty,inth,intmi,

ints):Time(h,mi,s),Date(m,d,y:

strcpy(ChiIdname,name);

voidshowName()

cout?"我的名字是:"?ChiIdname?endI;

private:

charChiIdname[25];

);

intmain()

Birthtimeb("xiaoming",3,6,2012,11,12,42);

0;

::display();

::dispIay();

return0;

}

#incIude<iostream>

usingnamespacestd;

#incIude<iomanip>

cIassperson

protected:

charnumber[25];

charname[25];

publie:

person(charnum[],charna[])

(

strepy(number,num);

strepy(name,na);

)

voidshowName()

(

cout?"編號:"?number?"姓名:"?name;

)

);

cIassstudent:pubIicperson

private:

intcIassNumber,score;

publie:

student(charnum[],charna[],inteNumber,int

sc):person(num,na)

{

cIassNumber=eNumber;

score=sc;

}

voidshow()

(

showName();

cout?班號:"<<cIassNumber?成績:?score

?endI;

}

);

cIassteacher:pubIicperson

private:

chartitle[25],department[25];

publie:

teacher(charnum[],charna[],chartit[],char

depart[]);person(num,na)

{

strepy(title,tit);

strepy(department,depart);

)

voidshow()

(

showName();

cout?職稱:?title?部門:"<<department

?endI;

C++第五章習(xí)題

1.什么是靜態(tài)聯(lián)編什么是動態(tài)聯(lián)編

靜態(tài)聯(lián)編是指系統(tǒng)在編譯時(shí)就決定如何實(shí)現(xiàn)某一

動作。

動態(tài)聯(lián)編是指系統(tǒng)在運(yùn)行時(shí)動態(tài)實(shí)現(xiàn)某一動作。

1.編譯時(shí)的多態(tài)性與運(yùn)行時(shí)的多態(tài)性有什么區(qū)別他們的實(shí)現(xiàn)方式

有什么不同

靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時(shí)多態(tài)性,也稱靜態(tài)多態(tài)性。編譯時(shí)

多態(tài)性是通過函數(shù)重載和模板實(shí)現(xiàn)的。

動態(tài)聯(lián)編所支持的多態(tài)性稱為運(yùn)行時(shí)多態(tài)性,也稱動態(tài)多態(tài)性。是通

過虛函數(shù)來實(shí)現(xiàn)的。

1.簡述運(yùn)算符重載規(guī)則。

a)C++中絕大部分的運(yùn)算符允許重載。

b)C++只能對已有的C++運(yùn)算符進(jìn)行重載。

c)運(yùn)算符重載是針對新類型數(shù)據(jù)的實(shí)際需要,對

原有運(yùn)算符進(jìn)行適當(dāng)?shù)母脑焱瓿?。?yīng)與原有的功能相類似。

d)重載不能改變運(yùn)算符的操作對象的個(gè)數(shù)。

e)重載不能改變運(yùn)算符原有的優(yōu)先級。

f)不能改變原有的結(jié)合特性。

g)參數(shù)至少應(yīng)有一個(gè)是類對象。

h)重載函數(shù)可以是普通函數(shù),也可以是類的成員

函數(shù),也可以是類的友元函數(shù)。

i)一般用于類對象的運(yùn)算符除了賦值運(yùn)算符

都要重載。

1.友元運(yùn)算符函數(shù)和成員運(yùn)算符函數(shù)有什么不同

a)對于雙目運(yùn)算符,成員運(yùn)算符重載含有一個(gè)參

數(shù),友元重載含有兩個(gè)參數(shù);對于單目運(yùn)算符,成員重載沒有參數(shù),

友元重載有一個(gè)參數(shù)。

b)雙目運(yùn)算符一般可以被重載為友元或成員。但

是如果將一個(gè)對象和一個(gè)普通類型運(yùn)算,必須重載為友元。

c)調(diào)用方式不同。

d)一般,雙目運(yùn)算符用友元,單目運(yùn)算符用成員。

如果操作數(shù)有隱式類型轉(zhuǎn)換,則必須用友元。

1.什么是虛函數(shù)虛函數(shù)與函數(shù)重載有哪些相同點(diǎn)與不同點(diǎn)

虛函數(shù)就是在基類中被關(guān)鍵字virtuaI說明,并在派生類中重新定義

的函數(shù)。

函數(shù)名都相同。

重載函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類型必須有所不同。虛函數(shù)要求函數(shù)名,

返回類型,參數(shù)個(gè)數(shù),參數(shù)的類型和順序與基類中的虛函數(shù)原型完全

相同。

1.什么是純虛函數(shù)什么是抽象類

純虛函數(shù)是一個(gè)在基類中說明的虛函數(shù),它在該基類中沒有定義,但

要求在它的派生類中根據(jù)需要對它進(jìn)行定義,或仍說明為純虛函數(shù)。

如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱這個(gè)類為抽象類。

7-12DAADCC

13.

不對,參數(shù)個(gè)數(shù)必須一樣。

14.

7

6

15.

Thisisc++book.

第一個(gè)字符:T

第16個(gè)字符:.

第26個(gè)字符:數(shù)組下標(biāo)超界!

16.

m二千米

17.

#incIude<iostream>

usingnamespacestd;

cIasstwoDArray

(

inta[2][3];

publie:

twoDArray()

{

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

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

a[i][j]=5;

)

twoDArray(intb[][3])

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

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

a[i][j]=b[i][j];

)

voidshow();

twoDArrayoperator+(twoDArrayn);

twoDArrayoperator-(twoDArrayn);

);

voidtwoDArray::show()

(

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

(

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

cout?a[i][j];

cout?endI;

)

)

twoDArraytwoDArray::operator+(twoDArrayn)

{

twoDArraytemp;

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

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

[i][j]=a[i][j]+

returntemp;

)

twoDArraytwoDArray::operator-(twoDArrayn)

(

twoDArraytemp;

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

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

[i][j]=a[i][j]-

returntemp;

1

intmain()

(

inta[2][3];

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

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

cin?a[i][j];

twoDArraya1,a2(a),totaI,sub;

totaI=a1+a2;

sub-a1-a2;

0;

0;

return0;

}

18.

#incIude<iostream>

usingnamespacestd;

cIasstwoDArray

inta[2][3];

publie:

twoDArray()

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

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

a[i][j]=5;

)

twoDArray(intb[][3])

(

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

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

a[i][j]=b[i][j];

)

voidshow();

friendtwoDArrayoperator+(twoDArraym,twoDArrayn);

friendtwoDArrayoperator-(twoDArraym,twoDArrayn);

);

voidtwoDArray::show()

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

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

cout?a[i][j];

cout?endI;

)

)

twoDArrayoperator+(twoDArraym,twoDArrayn)

(

twoDArraytemp;

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

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

[i][j]=+⑴口];

returntemp;

)

twoDArrayoperator-(twoDArraym,twoDArrayn)

twoDArraytemp;

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

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

returntemp;

)

intmain()

(

inta[2][3];

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

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

cin?a[i][j];

twoDArraya1,a2(a),totaI,sub;

totaI=a1+a2;

sub=a1-a2;

0;

0;

return0;

)

19.

#incIude<iostream>

usingnamespacestd;

cIasscompIex

(

doublereaI,imag;

publie:

compIex(doublere,doubIeim)

reaIre;

imag=im;

)

friendcomplexoperator+(compIexa,compIexb);

voidprint();

);

compIexoperator+(compIexa,compIexb)

(

returncompIex+,+;

)

voidcomplex::print()

cout?"("?reaI?","?imag?")"?endI;

)

intmain()

compIexc1,;

complexc2,;

complextotaI=d+c2;

0;

return0;

1

20.

#incIude<iostream>

usingnamespacestd;

constdoubIePI

cIassContainer

protected:

doubler,d;如果是圓柱體,r為底面半徑,d為高。如果是正

方體,r為邊長,d為0。

publie:

Container(doubIea,doubIeb=0)

{

r二a;

d二b;

)

virtualdoubleserface()=0;cerr和clog間的區(qū)別是

cerr不經(jīng)過緩沖區(qū)直接顯示錯(cuò)誤信息。而cIog

存放在緩沖區(qū),緩沖區(qū)滿或遇上endl時(shí)再輸出。

C++提供哪兩種控制輸入輸出格式的方法

一種是使用ios類中的有關(guān)格式控制的流成員函

數(shù)進(jìn)行格式控制,另一種是使用稱為操縱符的特殊類型的函數(shù)控制。

C++進(jìn)行文件輸入輸出的基本過程是什么

首先創(chuàng)建一個(gè)流對象,然后將這個(gè)流對象與文件

相關(guān)聯(lián),即打開文件,此時(shí)才能進(jìn)行讀寫操作,讀寫操作完成后再關(guān)

閉這個(gè)文件。

BCA

#include<iostream>

#incIude<iomanip>

usingnamespacestd;

intfactoriaI(intn)

if(n==0||n=1)

returnn;

returnfactoriaI(n-1)*n;

1

intmain()

(

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

(

cout?setw(5)?factoriaI(i);

if(i%3=0)

(

cout?endI;

)

}

return0;

)

#incIude<iostream>

#incIude<iomanip>

usingnamespacestd;

intmain()

(

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

(

cout?setw(16-i);

for(intj=1;j<=(2*i-1);j++)

cout?'A';

cout?endI;

}

return0;

}

#incIude<iostream>

#incIude<iomanip>

usingnamespacestd;

cIassmatrix

private:

intdata[2][3];

publie:

matrix(){}

ostream&operator?(ostream&,matrix&);

istream&operator?(istream&,matrix&);

friendmatrixoperator+(matrix&,matrix&);

);

ostream&operator?(ostream&os,matrix&a)

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

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

os?[i][j]?"

)

os?endI;

returnos;

)

istream&operator?(istream&in,matrix&a)

(

cout?"請輸入一個(gè)2行3列矩陣:"?endI;

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

{

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

(

in?[i][j];

)

)

returnin;

}

matrixoperator+(matrix&a,matrix&b)

matrixtemp;

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

{

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

(

)

)

returntemp;

)

intmain()

matrixml,m2,totaI;

cin?ml?m2;

totaI=ml+m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論