版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C++面向?qū)ο蟪绦蛟O(shè)計教程課后題答案
什么是面向?qū)ο蟪绦蛟O(shè)計
面向?qū)ο蟪绦蛟O(shè)計是一種新的程序設(shè)計范型.這種范型的主要特征
是:
程序二對象+消息
面向?qū)ο蟪绦虻幕驹厥菍ο蟆?/p>
主要結(jié)構(gòu)特點是:
第一,程序一般由類的定義和類的使用兩部分組成;
第二,程序中的一切操作都是通過向?qū)ο蟀l(fā)送消息來實現(xiàn)的。
什么是對象什么是類對象與類之間的關(guān)系是什么
對象是描述其屬性的數(shù)據(jù)以及對這些數(shù)據(jù)施加的一組操作封裝在一
起構(gòu)成的統(tǒng)一體。
類就是具有相同的數(shù)據(jù)和相同的操作的一組對象的集合,也就是說,
類是對具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的一類對象的描述。
類和對象之間的關(guān)系是抽象和具體的關(guān)系。類是多個對象進行綜合抽
象的結(jié)果,一個對象是類的一個實例。
現(xiàn)實世界中的對象有哪些特征請舉例說明。
現(xiàn)實世界中的對象具有以下特征:
1)每一個對象必須有一個名字以區(qū)別于其他對
象;
2)用屬性來描述對象的某些特征;
3)有一組操作,每組操作決定對象的一種行為;
4)對象的行為可以分為兩類:一類是作用于自身
的行為,另一類是作用于其他對象的行為。
例如一個教師是一個對象。每個教師對象有自己的名字來和別的教師
區(qū)別。教師具有編號,姓名,年齡,職稱,專業(yè)等屬性。教師擁有走
路,吃飯,授課等行為操作。走路,吃飯是作用于自身的行為,授課
是作用于其他對象的行為。
什么是消息消息具有什么性質(zhì)
一個對象向另一個對象發(fā)出的請求成為“消息”。
消息具有以下3個性質(zhì):
1)同一個對象可以接收不同形式的多個消息,做
出不同的相應(yīng);
2)相同形式的消息可以傳遞給不同的對象,所做
出的響應(yīng)可以是不同的;
3)對消息的響應(yīng)并不是必須的,對象可以響應(yīng)消
息,也可以不響應(yīng)。
什么是抽象和封裝請舉例說明。
抽象是將有關(guān)事物的共性歸納、集中的過程。
例如:把所有具有大學(xué)生學(xué)籍的人歸為一類,成為“大學(xué)生”,這就
是一個抽象。
封裝是指把數(shù)據(jù)和實現(xiàn)操作的代碼集中起來放在對象內(nèi)部,并盡可能
隱藏對象的內(nèi)部細節(jié)。
例如:每一臺洗衣機都有出廠日期、機器編號等屬性,也有啟動、暫
停、選擇等操作。人們在使用洗衣機的時候只需要按下對應(yīng)的按鈕,
而不用關(guān)心具體的內(nèi)部實現(xiàn)。這就是封裝。
多繼承是指多個基類派生出一個派生類的繼承關(guān)系。比如玩具車同時
繼承自玩具和車。
什么是多態(tài)請舉例說明。
多態(tài)是指不同的對象收到相同的消息時執(zhí)行不同的操作。
例如,有一個窗口類對象,還有一個棋子類對象。當(dāng)我們發(fā)出“移動”
消息時,兩個對象的行為不同。
面向?qū)ο蟪绦蛟O(shè)計的主要優(yōu)點是什么
1.可提高程序的重用性;
2.可控制程序的復(fù)雜性;
3.可改善程序的可維護性;
4.能夠更好地支持大型程序設(shè)計;
5.增強了計算機處理信息的范圍;
能夠很好地適應(yīng)新的硬件環(huán)境。
簡述C++的主要特點。
1)C++是C的超集,保持與C的兼容。
2)保持了C的簡潔、高效和接近匯編語言等特點,
并對C的功能作了不少擴充。用C++編寫的程序比C更安全,可讀性
更好,代碼結(jié)構(gòu)更為合理。
3)程序質(zhì)量高。
4)增加了面向?qū)ο髾C制。
電
#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)等價,函數(shù)聲明可以省略參數(shù)的名字。
(2)不等價,第二個的函數(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;
)
上面這個程序,初看應(yīng)該輸出T2is0
但是實際上,得出T2is2
如果把#define換成const,則可以輸出想要的結(jié)果。
用動態(tài)分配空間的方法,計算Fibonacci數(shù)列的前20項,并存儲到
動態(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ù),輸出一個數(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)建對象。
下面是一個計算器類的定義,請完成該類成員函數(shù)的實現(xiàn)。
cIasscounter
publie:
counter(intnumber);
voidincrement0;電。0777ult()?"
)
)
電
修改,通過對象指針訪問對象數(shù)組,使程序以相反的順序顯示每個
對象數(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)建一個類Stock,含字符數(shù)組stockcode□及整型數(shù)組成員quan、
雙精度型數(shù)據(jù)成員price。構(gòu)造函數(shù)含3個參數(shù):字符數(shù)組na□及q、
Po當(dāng)定義Stock的類對象時,將對象的第一個字符串參數(shù)賦給數(shù)據(jù)
成員stockcode,第2和第3個參數(shù)分別賦給quan、price。未設(shè)置
第2和第3個參數(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;
)
編寫一個程序,已有若干學(xué)生的數(shù)據(jù),包括學(xué)號、姓名、成績,要
求輸出這些學(xué)生的數(shù)據(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;
)
有哪幾種繼承方式每種方式的派生類對基類成員的繼承性如何
公有繼承,私有繼承和保護繼承。
基類的私有成員,無論哪種繼承方式都不能訪問。
公有繼承不改變基類的公有和保護成員的訪問限
制C
私有繼承將基類的公有和保護成員都變成私有。
保護繼承將基類的公有和保護成員都變成保護。
派生類能否直接訪問基類的私有成員若否,應(yīng)如何實現(xiàn)
不能。可以在基類里添加一個公有成員函數(shù)來訪
問私有成員,派生類就能繼承這個公有成員函數(shù),實現(xiàn)對基類私有成
員的訪問。
保護成員有哪些特性保護成員以公有方式或私有方式繼承后的訪問
特性如何
保護成員只能被本類或本類的派生類所訪問,在
類或派生類外是不能被訪問的。
后面一問見第一題的答案。
派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是怎樣的
構(gòu)造函數(shù)是先執(zhí)行父類的構(gòu)造函數(shù),再執(zhí)行類中
其他類對象的構(gòu)造函數(shù),再執(zhí)行本類的構(gòu)造函數(shù)。如果同級有多個構(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)。
什么是多繼承多繼承時,構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序是怎樣的
多繼承是指一個類同時繼承自多個不同的基類。
執(zhí)行順序同
在類的派生中為何要引入虛基類虛基類構(gòu)造函數(shù)的調(diào)用順序是如何
規(guī)定的
如果一個類有多個直接基類,而這些直接基類又
有一個共同的基類,則在最底層的派生類中會保留這個簡介的共同基
類數(shù)據(jù)成員的多份同名成員。在訪問這些同名成員的時候,會產(chǎn)生二
義性。為了解決二義性,引入了虛基類。
1)如果虛基類中定義有帶形參的構(gòu)造函數(shù),并且
沒有定義默認形式的構(gòu)造函數(shù),則整個繼承結(jié)構(gòu)中,所有直接或間接
的派生類都必須在構(gòu)造函數(shù)的成員初始化表中列出對虛基類構(gòu)造函
數(shù)的調(diào)用,以初始化在虛基類中定義的數(shù)據(jù)成員。
2)建立一個對象時,如果這個對象中含有從虛基
類繼承來的成員,則虛基類的成員是由最遠派生類的構(gòu)造函數(shù)通過調(diào)
用虛基類的構(gòu)造函數(shù)進行初始化的。該派生類的其他基類對虛基類構(gòu)
造函數(shù)的調(diào)用都自動被忽略。
3)若同一層次中同時包含虛基類和非虛基類,應(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?”出生時間:"?hours?"時"?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)在編譯時就決定如何實現(xiàn)某一
動作。
動態(tài)聯(lián)編是指系統(tǒng)在運行時動態(tài)實現(xiàn)某一動作。
1.編譯時的多態(tài)性與運行時的多態(tài)性有什么區(qū)別他們的實現(xiàn)方式
有什么不同
靜態(tài)聯(lián)編支持的多態(tài)性稱為編譯時多態(tài)性,也稱靜態(tài)多態(tài)性。編譯時
多態(tài)性是通過函數(shù)重載和模板實現(xiàn)的。
動態(tài)聯(lián)編所支持的多態(tài)性稱為運行時多態(tài)性,也稱動態(tài)多態(tài)性。是通
過虛函數(shù)來實現(xiàn)的。
1.簡述運算符重載規(guī)則。
a)C++中絕大部分的運算符允許重載。
b)C++只能對已有的C++運算符進行重載。
c)運算符重載是針對新類型數(shù)據(jù)的實際需要,對
原有運算符進行適當(dāng)?shù)母脑焱瓿?。?yīng)與原有的功能相類似。
d)重載不能改變運算符的操作對象的個數(shù)。
e)重載不能改變運算符原有的優(yōu)先級。
f)不能改變原有的結(jié)合特性。
g)參數(shù)至少應(yīng)有一個是類對象。
h)重載函數(shù)可以是普通函數(shù),也可以是類的成員
函數(shù),也可以是類的友元函數(shù)。
i)一般用于類對象的運算符除了賦值運算符
都要重載。
1.友元運算符函數(shù)和成員運算符函數(shù)有什么不同
a)對于雙目運算符,成員運算符重載含有一個參
數(shù),友元重載含有兩個參數(shù);對于單目運算符,成員重載沒有參數(shù),
友元重載有一個參數(shù)。
b)雙目運算符一般可以被重載為友元或成員。但
是如果將一個對象和一個普通類型運算,必須重載為友元。
c)調(diào)用方式不同。
d)一般,雙目運算符用友元,單目運算符用成員。
如果操作數(shù)有隱式類型轉(zhuǎn)換,則必須用友元。
1.什么是虛函數(shù)虛函數(shù)與函數(shù)重載有哪些相同點與不同點
虛函數(shù)就是在基類中被關(guān)鍵字virtuaI說明,并在派生類中重新定義
的函數(shù)。
函數(shù)名都相同。
重載函數(shù)的參數(shù)個數(shù)或參數(shù)類型必須有所不同。虛函數(shù)要求函數(shù)名,
返回類型,參數(shù)個數(shù),參數(shù)的類型和順序與基類中的虛函數(shù)原型完全
相同。
1.什么是純虛函數(shù)什么是抽象類
純虛函數(shù)是一個在基類中說明的虛函數(shù),它在該基類中沒有定義,但
要求在它的派生類中根據(jù)需要對它進行定義,或仍說明為純虛函數(shù)。
如果一個類至少有一個純虛函數(shù),那么就稱這個類為抽象類。
7-12DAADCC
13.
不對,參數(shù)個數(shù)必須一樣。
14.
7
6
15.
Thisisc++book.
第一個字符:T
第16個字符:.
第26個字符:數(shù)組下標超界!
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ū)直接顯示錯誤信息。而cIog
存放在緩沖區(qū),緩沖區(qū)滿或遇上endl時再輸出。
C++提供哪兩種控制輸入輸出格式的方法
一種是使用ios類中的有關(guān)格式控制的流成員函
數(shù)進行格式控制,另一種是使用稱為操縱符的特殊類型的函數(shù)控制。
C++進行文件輸入輸出的基本過程是什么
首先創(chuàng)建一個流對象,然后將這個流對象與文件
相關(guān)聯(lián),即打開文件,此時才能進行讀寫操作,讀寫操作完成后再關(guān)
閉這個文件。
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?"請輸入一個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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《家庭親情圖片》課件
- 單位管理制度集合大合集職員管理十篇
- 單位管理制度匯編大合集人員管理篇十篇
- 《孔子世家原文》課件
- 單位管理制度范例合集職工管理篇十篇
- 單位管理制度呈現(xiàn)合集【人事管理篇】十篇
- 九年級政治東西南北課件
- 七年級英語單詞課件
- 《生活中的規(guī)則》課件
- 第2單元 社會主義制度的建立與社會主義建設(shè)的探索 (B卷·能力提升練)(解析版)
- GB/T 45002-2024水泥膠砂保水率測定方法
- 2024年《論教育》全文課件
- 生命安全與救援學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 大一中國近代史綱要期末考試試題及答案
- 文創(chuàng)園項目可行性方案
- 馬工程版《中國經(jīng)濟史》各章思考題答題要點及詳解
- OBE理念下的一流專業(yè)和課程建設(shè)
- 一年級口算天天練(可直接打印)
- 腫瘤基礎(chǔ)知識培訓(xùn)
- 建筑幕墻安裝工程監(jiān)理實施細則(工程通用版范本)
- 環(huán)保應(yīng)急預(yù)案演練腳本
評論
0/150
提交評論