版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、B.cl a ss A in t v; A * next; void F u nc ();D、 c 1 as s Ain t v;public :A n ex t ;vo i d Func () ;a; 新標準C+程序設(shè)計教材1120章課后題答案第11章:1 .簡述結(jié)構(gòu)化程序設(shè)計有什么不足,面向?qū)ο蟮贸绦蛉绾胃倪M這些不足。答案:結(jié)構(gòu)化程序設(shè)計得缺點:(1)用戶要求難以在系統(tǒng)分析階段準確定義,致使系統(tǒng)在交付使用時產(chǎn)生許多問題.(2)用系統(tǒng)開發(fā)每個階段得成果來進行控制,不適應(yīng)事物變化得要求。(3)系統(tǒng)得開發(fā)周期長.面向?qū)ο蟮贸绦蛟O(shè)計如何改進這些不足:面向?qū)ο蟪绦蛟O(shè)計技術(shù)汲取了結(jié)構(gòu)憂程序設(shè)計中好得思
2、想,并將這些思想與一些新得、強大得理念相結(jié)臺,從而蛤程序設(shè)計工作提供了一種全新得方法.通常,在面向?qū)ο蟮贸绦蛟O(shè)計風(fēng)格中,會將一個問題分解為一些相互關(guān)聯(lián)得子集,每個子集內(nèi)部都包含了相關(guān)得數(shù)據(jù)與函數(shù)。同時會以某種方式將這些子集分為不同等級,而一個對象就就是已定義得某個類型得變量。2 .以下說怯正確得就是().A、每個對象內(nèi)部都有成員函數(shù)得實現(xiàn)代碼B、一個類得私有成員函數(shù)內(nèi)部不能訪問本類得私有成員變量C、類得成員函數(shù)之間可以互相調(diào)用D、編寫一個類時,至少要編寫一個成員函數(shù)答案:C3 .以下對類A得定義正確得就是().Aoc1assAprivate:intv;?pub1ic:voidFunc()?Co
3、classAintv;pub1ic:voidFunc();A:voidFunc()?答案:B4o假設(shè)有以下類A:c1assApublie:intfunc(inta)returna*?;以下程序段不正確得就是()oA.Aa;a、func(5);BoA*p=newA;?p->func(5);C.Aa;?A&r=a;?r、func(5);D.Aa,b;?if(a!=b)?a、func(5);答案:D5o以下程序段不正確得就是(A)A.intmain()classAintv;Aa;a、v=3;return0;B.intmain()classApublic:intv;A*p;Aa;a、p=
4、&a;return0;Cointmain()classApublic:intv;;A*p=newA;p>v=4;deletep;return0;D、immain()classApublic:intv;A*p;Aa:a、p=newA;deletea、p;return0;答案:A,年齡,學(xué)號(整數(shù))。第一學(xué)年平均成績6。實現(xiàn)一個學(xué)生信息處理程序。輸入:姓名:姓名,年齡,學(xué)號,第二學(xué)年平均成績,第三學(xué)年平均成績,第四學(xué)年平均成績。輸出4年平均成績.例如:輸入:Tom18781780809070輸出:Tom,18,7817,80要求實現(xiàn)一個代表學(xué)生得類,并非所有成員變量都就是私有得?答案
5、:# inc1ude<iostream># include<cstring# inc1ude<cstdlib>/#inc1ude<cstdiousingnamespacestd;classStudentprivate:intage,score1,score2,score3,score4;charname100,num100;doubleaverage;Student(charaname,intaage,charanum,intascore1,intascore2,intascore3,intascore4)strcpy(name,aname);age=aag
6、e;strcpy(num,anum);score1=ascore1;score2=ascore2;score3=ascore3;score4=ascore4;doub1egetAverage()return(score1+score2+score3+score4)/4;char*getName()returnname;intgetAge()returnage;char*getNum()returnnum;intmain()charname100,a,num100;intage,score1,score2,score3,score4;cin、getline(name,100');cin&
7、gt;>age;/a=getchar();cin、getline(num,100,'cin>>score1score2score3score4;Students(name,age,num,score1,score2,score3,score4);cout<<s、getName()<<","<<s、getAge()<11,"<s、getNum()<<<<s、getAverage();return01。以下說法中正確得就是()oAo一個類一定會有無參構(gòu)造函數(shù)B.構(gòu)造函數(shù)得
8、返回值類型就是voidC.一個類只能定義一個析構(gòu)函數(shù),但可以定義多個構(gòu)造函數(shù)D.一個類只能定義一個構(gòu)造函數(shù),但可以定義多個析構(gòu)函數(shù)答案:C2。對于強過new運算符牛成得對象()。A.程程序結(jié)束時自動析構(gòu)Bo執(zhí)行de1ete操作時才能析構(gòu)Co在包含new語句得函數(shù)返回時自動析構(gòu)D.在執(zhí)行de1ete操作時會析構(gòu),如果沒有執(zhí)行delete操作,則在程序結(jié)束時自動析構(gòu)答案:D3。如果某函數(shù)得返回值就是個對象,則該函數(shù)被調(diào)用時,返回得對象()。Ao就是通過復(fù)制構(gòu)造函數(shù)初始化得B.就是通過無參構(gòu)造函數(shù)初始化得C.用哪個構(gòu)造函數(shù)初始化取決于函數(shù)得return語句就是怎么寫得D.不需要初始化答案:C4.以下
9、說法LE確得就是()。A.在靜態(tài)成員函數(shù)中可以調(diào)用同類得其她任何成員函數(shù)B。const成員函數(shù)不能作用于非const對象Co在靜態(tài)成員函數(shù)中不能使用this指針D.靜態(tài)成員變量每個對象有各自得一份答案:C5以下關(guān)于this指針得說法中不正確得就是()。A.const成員函數(shù)內(nèi)部不可以使用this指針Bo成員函數(shù)內(nèi)得this指針,指向成員函數(shù)所作用得對象C.在構(gòu)造函數(shù)內(nèi)部可以使用this指針D.在析構(gòu)函數(shù)內(nèi)部可以使用th1s指針答案:A6.請寫出下面程序得輸出結(jié)果。classCSample1 ntx;public:?CSample()cout“Cl”<endl;CSample(intn)?
10、x=n;cout<"C2,x="<<n<<end1;;intmain()CSamplearray12;?CSamplearray22=6,8;?CSamp1earray32=12;CSamp1e*array4=newCsample3;Return0;usingnamespacestd;classSamplepublic:intv;Sample()Sample(intn):v(n);Sample(constSample&x)v=2+x、v;;Samp1e&PrintAndDouble(Samp1eo)couto、V;o、v=2*o
11、、v;returno;intmain()Samp1ea(5);Sampleb=a;Samp1ec=PrintAndDoub1e(b);cout<<end1;cout<c、v<<endl;/cout<<hex<<c、v<<endl;Sampled;d=a;cout<<d、v;return0;答案:92058。請寫出下面程序得運行結(jié)果:4,6請?zhí)羁眨?include<iostream>usingnamespacestd;classAintval;?public:A(intn)?val=n;?intGetVa1
12、()?returnval;;classB:publicA?private:?intval;?public:?B(intn):?;?intGetVal()?returnva1;?;intmain()Bbl(2);?cout<<b1、GetVal()<","<<b1、A:GetVal()<<"n"return0;答案:Val(4),A(6)9.下面程序得輸出結(jié)果就是05請?zhí)羁眨?include<iostream>usingnamespacestd;c1assA?public:?intva1;A()?va1
13、=n;?GetObj()?return;?;intmain()?Aa;?couta、val<<endl;a、GetObj()=5;?cout<a、val<<endl;答案:intn=0A&*this10.下面程序得輸出結(jié)果就是:10請補充Sample類得成員函數(shù),不能增加成員變量#include<iostream>usingnamespacestd;c1assSample?public:intv;Sample(intn):v(n)?;Sample(Sample&obj)?this->v=2*obj、v;?;intmain()?Sa
14、mplea(5);?Sampleb=a;coutb、v;return0;答案:Sample(Sample&obj)This->v=2*obj、v;11、下面程序得輸出結(jié)構(gòu)就是:5,55,5請?zhí)羁眨?inc1ude<iostream>usingnamespacestd;classBasepublic:?intk;?Base(intn):k(n)?;classBigpublic:?intv;?Baseb;?Big?;?Big;;intmain()?Biga1;?Biga2=a1;cout<<a1、v<","自1、b、k<<
15、end1;cout<<a2、n<<","<a2、b、k<<endl;?return0;答案:(intn):v(n),b(n)(Big&x):v(x、v),b(x、b、k)12.完成附錄“魔靜世界大作業(yè)”中提到得第一階段作業(yè)(省略)第13章1如果將運算符“口”重載為某個類得成員運算符(也即成員函數(shù)),則該成員函數(shù)得參數(shù)個數(shù)就是()。A.0個B、1個C、2個D03個答案:B2。如果將運算符重載為菜個類得成員運算符(也即成員函數(shù)),則該成員函數(shù)得參數(shù)個數(shù)就是()。A°0個B、1個C、2個D、0個或1個均可答案:D3.下面
16、程序得輸出就是3+415+61請補充plex類得成員函數(shù),不能加成員變量。#include<iostream>#include<cstring>usingnamespacestd;classplexprivate:?doubler,i;public:voidPrint()?cout<<r<"+"<<<"i"<<endl;/在這里補充/在這里補充;intmain()?p1exa;?a="3+4i”;?a、Print();a="5+6i";a、Print()
17、;?return0;答案:p1ex&operator=(constchart口)if(!t)?r=0、0;i=0、0;?else?r=t0'O'?i=t2/0/;?return*this;?4。下面得Mylnt類只有一個成員變量.Mylnt類內(nèi)部得部分代碼被隱藏了。假設(shè)下面得程序能編譯通過,且輸出結(jié)果就是:4,1請寫出被隱藏得部分(要求編寫得內(nèi)容必須就是能全部救進Mylnt類內(nèi)部得,My1nt得成員函數(shù)不允許使用靜態(tài)變量)。#inc1udeviostream>usingnamespacestd;classMyIntintnVal;public:MyInt(intn
18、)?nVal=n;?intReturnVal()?returnnVal;?/在這里補充/在這里補充;intmain()?MyIntobjInt(10);?objInt-21-3;?coutobjInt、ReturnVal();?cout<<","objInt-21;cout<<objInt、ReturnVal();return0;答案:MyInt&operator-(inti)nVal=i;return*this;5.下面得程序輸出結(jié)果就是(4,5)(7,8)請?zhí)羁眨?inc1ude<iostream>usingnamespace
19、std;classPointprivate:?intx;?inty;pub1ic:?Point(intx_inty_):x(x),y(y_);;operator<<(,constPoint&p)?,Return;intmain()cout<<Point(4,5)<<Point(7,8);return0;&p); ?答案:friendostream&operator<<(ostream&o,constPointfriendostream&ostream&oo<<"C<p、x
20、,»«p>y<<11)"Wend1o6.編寫一個二維數(shù)組類Array2,使得程序得輸出結(jié)果就是0,1,2,3,4,5,6,7,8,9,10,11,next0,1,2,3,4,5,6,7,8,9,10,11,答案:#include<iostream#include<cstringusingnamespacestd;classArray2private:introw;/數(shù)組行數(shù)intco1umn;/數(shù)組列數(shù)int*ptr;/指向二維數(shù)組得指針public:Array2()ptr=NULL;Array2(intparaRow,intpara
21、Column):row(paraRow),column(paraColumn)ptr=newintrow*column;Array2(Array2&a):row(a、row),co1umn(a、column)ptr=newintrow*column;memcpy(ptr,a、ptr,sizeof(int)*row*column);Array2&operator=(constArray2&a)if(ptr)deleteptr;row=a、row;co1umn=a、column;ptr=newintrow*column;memcpy(ptr,a、ptr,sizeof(int
22、)*row*co1umn);return*this;|Array2()if(ptr)delete口ptr;int*operator口(inti)returnptr+i*column;int&operator()(inti,intj)returnptri*co1umn+j;intmain()|Array2a(3,4);inti,j;for(i=0;i<3;+i)for(j=0;j<4;j+)aij=i*4+j;for(i=0;i3;+i)for(j=0;j<4;j+)cout<<a(i,j)11,";|cout<<endl;cout&l
23、t;"next"<<endl;Array2b;b=a;for(i=0;i3;+i)f。r(j=0;j<4;j+)cout<<bij<",";|cout<<endl;return0;7.編寫一個Mystring類,使得程序得輸出結(jié)果就是1、 abcd-efgh-abcd-2、 abcd-3、4、 abcdefgh-5、 efgh一6、 c7、 abcd8、 ijAl9、 ijAl-mnop10、 qrstabcd一11、 abcdqrstabcduvwxyzaboutbigmetakeabcdqrstabcd
24、-答案:# include<cstd1ib>#include<iostream# inc1ude<string># include<algorithmusingnamespacestd;classMyString:publicstringpub1ic:?MyString():string();MyString(constchar*s):string(s);?MyString(conststring&s):string(s);?MyStringoperator()(ints,int1)returnthis-substr(s,l);?;intmain()
25、?MyStringsi("abed-"),s2,s3("glel),s4s1);MyStringSArray4="big","me","out"h"take"?cout<<"1、"si<<s2<<s3<<s4<<endl;s4=s3;?s3=si+s3;?cout<"2、"<<si<<end1;cout<"3、11<<s2<
26、<endl;cout<<"4、"<<s3<endl;?cout<<"5、"<<s4<<end1;cout<<"6、"<<s12<<endl;?s2=s1;?si="ijkl"?s12=,乂;?coutv"7、"<<s2<<endl;?cout"8、"<<si<<endl;?si+="mnop"?cout
27、<"9、"<<s1<endl;?s4="rst-"+s2;cout"i0、"<<s4<<end1;sort(SArray,SArray+4);?for(inti=0;i<4;i+)?cout<<SArrayi<<endl;?/s1得從下標0開始長度為4得子串cout<<si(0,4)<<endl;/si得從下標5開始長度為10得子串?cout<si(5,i0)<<endl;return0;第i4章1o以下說法不正確得
28、就是(假設(shè)在公有派生情況下)()A.可以將基類對象賦值給派生類對象B.可以將派生類對象得地址賦值給基類指針co可以將派生類對象賦值給基類得引用D.可以將派生類對象賦值給基類對象答案:A2。寫出下面程序得輸出結(jié)果。#include<iostream>usingnamespacestd;classBpublic:B()?cout<<11B_Con11<<endl;?-B()?cout<<"B_Des"<endl;;classC:publicBpublic:?C()?cout<<"CCon"&l
29、t;<endl;?C()?cout<<11C_Des"<<endl;intmain()?C*pc=newC;?de1etepc;?return0;答案:BConC_ConC_DesB_Des3.寫出下面程序得輸出結(jié)果。#include<iostream>usingnamespacestd;c1assBase?public:?intval;?Base()?cout<<"BaseConstructor”vend1;?Base()?cout<<11BaseDestructor”<endl;classBasel
30、:virtualpub1icBase;classBase2:virtua1publicBase;c1assDerived:pub1icBase1,publicBase2;intmain()?Derivedd;?return0;答案:BaseConstructorBaseDestructor4.按照第13章得第7題得要求編寫MyString類,但MyString類必須就是從stnng類派生而來.提示1:如果將程序中所有"MjString”用string"替換,那么題目得程序除了最后兩條語句無法編譯通過外,其她語句都沒有問題,而且輸出與前面得結(jié)果吻合.也就就是說,MyStrin
31、g類對string類得功能擴充只能體現(xiàn)在最后兩條語句上面.提示2:string類有一個成員函數(shù)stringsubstr(intstart,intlength),能夠求從start開始位置,長度為length得字串答案(疑惑)classMyString:publicstringpublic:MyString():string();?MyString(constchar*s):string(s);MyString(conststring&s):string(s);?MyStringoperator()(ints,intl)returnthis->substr(s,l);?;5、完成附
32、魔獸世界作業(yè)中得得二階段。(省略)1 .以下說法正確得就是()A、在虛函數(shù)中不能使用this指針B、在構(gòu)造甬?dāng)?shù)中調(diào)用虛函數(shù),不就是動態(tài)聯(lián)編C、抽象類得成員函數(shù)都就是純虛函數(shù)D、構(gòu)造函數(shù)與析構(gòu)函數(shù)都不就是虛構(gòu)函數(shù)答案:B2 .寫出下面程序得輸出結(jié)果#inc1ude<iostream>usingnamespacestd;c1assA?public:?A()?virtualvoidfunc()?cout<"A:func"«endl;?-A()virtualvoidfund()?cout<<"A:fund11<<endl
33、;;classB:publicA?publie:?B()?func();?voidfun()?func();?B()?fund();?;classC:publicBpublic:?C()?voidfunc()?cout<<"C:func"end1;C()fund();voidfund()?cout<<"C:fund"<<endl;;intmain()?Cc;return0;答案:A:funcC:fundA:fund3.寫出下面程序得輸出結(jié)果#include<iostreamusingnamespacestd;cl
34、assApublic:?virtua1A()cout<<"DestructA”<endl;?;classB:publicA?pub1ic:?virtua1B()?cout<"DestructB"«endl;?;classC:pub1icBpublic:?virtualC()cout<<11DestructC11<<endl;?;intmain()?A*pa=newC;?deletepa;Aa;?return0;答案:DestructCDestructBDestructADestructA4.寫出下面程序得輸
35、出結(jié)果:#include<iostreamusingnamespacestd;classApub1ic:?virtualvoidfunc()?cout<"A:func"wendl;?virtualvoidfund()?cout<<"A:fund”<<endl;?voidfun()?cout<<11A:fun"<<endl;?;c1assB:publicA?public:B()?func();?voidfUn()?func();classC:publicBpublic:?C()?voidfunc(
36、)cout<<"C::func"<end1;?voidfund)?cout<<"C:fund"<<endl;?;intmain()A*pa=newB();?pa->fun();?B*pb=newC();?pb-fun();return0;答案:A:funcA:funA:funcC:func5。下面程序得輸出結(jié)果就是#inc1ude<iostream>usingnamespacestd;classAprivate:?intnVa1;?pub1ic:voidFun()?cout<"A
37、:Fun"<<endl;?voidDo()?cout<"A::Do"<<endl;?;c1assB:publicApublic:?virtualvoidDo()?cout<"B:Do"<<endl;?;classC:publicB?public:?voidDo()?cout<"C:Do"<<end1;?voidFun()cout<<"C:un"<<endl;?;voidCall(B&p)p、Fun();?p、
38、Do();intmain()Cc;Call(c);system("PAUSE");?return0;答案:A:FunC:Do6.下面程序得輸出結(jié)果就是destructorBdestructorAas s A編寫構(gòu)造函數(shù)。請完整寫出classAo限制條件:不能為c1#include<iostream>usingnamespacestd;classA;classB:publicAB()?cout<"destructorB;;intmain()?A*pa;pa=newB;deletepa;?return0;答案:public:?virtualA()co
39、ut<<"destructorA?中7.下面得程序輸出結(jié)果就是A:Fun<endl;A::DoA:FunC:Do請?zhí)羁眨?include<iostream>usingnamespacestd;classAprivate:intnVal;public:?voidFun()?cout<"A:Fun"<<e?virtualvoidDo()?cout<<"A::Do”?;classB:publicA?public:?virtua1voidDo()?cout<"B:Do"?;c1
40、assC:publicB?public:?voidDo()<<endl;<end1;cout<<"C:Do<end1;?vo1dFun()?cout<"C:Fun”<cendl;?;voidCal1()p>Fun();?p>Do();intmain()?Call(newA();Call(newC();答案:A*p8、完成附錄魔獸世界大作業(yè)中提到得終極版本作業(yè).(省略)第16章1 .C+標準類庫中有哪幾個流類,用途分另J如何?它們之問得關(guān)系如何?答案:C+標準庫中有istream,ostream,ifstream,o
41、fstream,iostream,fstream等流類。istream就是用于輸入得流類:ostream就是用于輸出得流類:ifstream就是用于從文件讀取數(shù)據(jù)得類:ofstream就是用于向文件寫入數(shù)據(jù)得類:iostream就是既能用千輸入,又能輸出得類:fstream就是既能從文件讀取數(shù)據(jù),又能向文件寫入數(shù)據(jù)得類。ios就是個抽象基類,它派生出istream與ostream;istream派生出ifstream,ostream派生出ofstream,istream與ostream共同派生了iostream;iostream派生出fstream。2 cin就是哪個類得對象?c。ut就是哪個
42、類得對象?答案:cln就是istream類得對象:cout就是ostream類得對象。3編寫程序,讀取一彳f文字,然后將此行文字顛倒后輸出輸人樣倒:Theseare100dogs輸出樣例:、sgod001eseht答案:#include<iostream#inc1udestring、husingnamespacestd;voids*s)?int1en,i;chartmp;len=strlen(s)-1;for(i=0;i<=1en/2;+i)tmp=si;?si=slen-i;?sleni=tmp;intmain(void)?chars="Thereare100dods、
43、"?cout<<s<<"n"swap(s);?cout<<s<<end1;return0;4.編寫程序,輸入若干個實數(shù),對于每個實數(shù),先以非科學(xué)計數(shù)法輸出,小數(shù)點后面保留5位有效數(shù)字;再以科學(xué)計數(shù)法輸出,小數(shù)點后面保留7位有效數(shù)字。輸入以Ctrl+Z結(jié)束。輸入樣例:12、34123456、892255輸出本書列:12、 340001、2340000e+0011、2346e+0051、2345689e+005答案:#include<iostream>usingnamespacestd;intmain()do
44、ublenum;?whi1e(cin>>num)?/ctrl+z就是到達尾部?cout、setf(1os:f1Xed);/用定點格式顯示浮點數(shù)cout、precision(5);/setsthisnumbertobefive?cout<<num<<end1;?cout、unsetf(ios:fixed);/removethesetf(ios::fixed)cout、setf(ios::scientific);?cout、precision(7);?cout<num<<endl;?return0;5.編寫程序,輸入若干個整數(shù)。對于每個整數(shù),先
45、將該整數(shù)以十六進制輸出,然后再將整數(shù)以10個字符得寬度輸出,寬度不足時在左邊補0。輸入人以Ctrl+Z結(jié)束。輸入樣倒:2316輸出樣例:170000000017100000000010答案:#inc1ude<iostream#include<iomanip>usingnamespacestd;intmain()intx;while(cin>>x)cout<<hex<<x<end1;cout<<setw(10)<<setfill('0/)<x<<end1return0;6.primf與s
46、canf與cout與cin相比有什么優(yōu)勢?數(shù)據(jù)操作數(shù)據(jù)尺寸輸入輸出流耗時(s)GoodBoy讀一千萬次cin38、570scanfscanf4、204寫一千萬次cout5、206coutprintf6、202第17章1.打開文件只讀不寫,可以用哪個類?打開文件只寫不讀,可以用哪個類,打開文件既讀又寫,用哪個類?答案:打開文件只讀不寫用ifstream打開文件只寫不讀用ofstream打開文件叉讀又寫用fstream2。編程將一個c+十程序文件中得注釋以及函數(shù)體內(nèi)部得語句全部去掉后輸出到一個新得文件。假設(shè)“/*/”形式得注釋沒有嵌套。若程序名為proccpp,則以命令行方式運行之:Procppt
47、est1、cppresult2、cpp能夠?qū)estl、cpp處理后得結(jié)果生成為resu1t2、cpp文件。輸入樣例:#inc1ude<iostream#inc1ude<iomanipusingnamepsacestd;/*testsample*/voidfunc(intn)if(n)?cout<"infunc”<<endl;intmain()/thisismaindoublef;cin>>f;retun0;輸出樣例:#include<iostream#inc1ude<iomanip>usingnamespacestd;vo
48、idfunc()intmain()答案:#include<fstream>#include<string#include<iostreamusingnamespacestd;intmain()intdeleteline;?string1ine;?ifstreamfin;fin、open("example、txt11);?fstreamtemp;temp、open("temp、txt");?inti=0;while(getline(fin,line)/line、replace(line、find(de1eteline),deleteline、
49、length(),"");/temp<<line<<endl;i=i+1;if(i>=10&&i<=12|i=16|i>=1&&i<=6)?temp<<line<<end1;?temp、close();?fin、close();3,編寫一個程序doub1e.運行方式如下:doub1eflie文件名則能將指定文件內(nèi)容加倍,文件未必就是文本文件。例如有some。txt文件內(nèi)容如下:ThLsisafilePleasedoubleIt最后一行后面沒有換行。則經(jīng)過處理后some.t
50、xt文件內(nèi)容如下:Thisisafile、Pleasedoubleit,Thisisafile、Pleasedoubleid、答案:#include<fstream>#include<string#include<iostreamusingnamespacestd;intmain()ifstreamin("1<txt");ofstreamout("24xt11);stringline;stringcontent;if(in)/有該文件while(getline(in,line)/line中不包括每行得換行符cout<<li
51、ne<<endl;?content=content+line+7n'out<<line<<endl;輸入到2、txt中)cout<<content;out<<content;else?/沒有該文件cout<"nosuchfile"<<endl;in、c1ose();out、close();return0;4。編寫一個學(xué)生記錄處理程序。學(xué)生記錄用以下類表示claascharname10;intID;doublegpa;象相對應(yīng)。student s 、學(xué)生記錄文件名為students、dat.
52、要求就是二進制文件,文件中得每個記錄與上述類得對dat最初不存在。程序可以多次運行,如果第一敬運行程序后stu d e n t s、d at進行操作。程students.dat生成了,則以后再運行時,程序應(yīng)基干已經(jīng)存在得序運行時能接受以下幾種命令:1) Add姓名學(xué)號成績例如IAddTom123456778、5添加學(xué)生信息.姓名與學(xué)號都不會包含空格。姓名由最多9個字母組成-學(xué)號就是整數(shù).可能重名,但學(xué)號不會重復(fù)。如果發(fā)現(xiàn)相同學(xué)號得學(xué)生已經(jīng)存在,則不添加學(xué)生信息,而就是輸出:"Aireadyentered".2) Search姓名根據(jù)姓名查找學(xué)生信息,并輸出。如果有重名得,把
53、重名得學(xué)生信息全部輸出。輔出格式為;每個學(xué)生信息輸出為一行,查不到則輸出"NotFoundHo3) Search學(xué)號根據(jù)學(xué)號查找學(xué)生信息,并輸出。輸出格式為:姓名學(xué)號成績每個學(xué)生信息輸出為一行。查不到則輸出“NotFound'.4) Modify學(xué)號成績根據(jù)學(xué)號修改學(xué)生得成績并輸出“Doe"。如果找不到該學(xué)號得學(xué)生,則輸出“NotFound”。假定學(xué)生記錄非常多,所以不能采取用一個大數(shù)組把全部學(xué)生記錄都讀取到內(nèi)存得做法.答案:#include<iostream>#include<fstream>#include<cstdio>us
54、ingnamespacestd;classStudentcharname50;intstuID;doublegrades;pub1ic:voidAdd()cin、getline(name,50);cin>>stuID>>grades;voidshowData()coutname<stuID<<grades;?Iintretname()return1;voidsetdata()?cout”Done11;?I;/*functiontowriteinabinaryfile、*/voidwrite_record()ofstreamoutFile;os:app)
55、;out("student、dat11,ios::binary|iStudentobj;obj、Add();out(char*)&obj,sizeof(obj);out();?/*functiontodisplayrecordsoffilevoiddisplay()ifstreaminFile;in("student、dat”,iossinary);Studentobj;while(in(char*)&obj,sizeof(obj)obj、showData();in。;/*functiontosearchanddisplayfrombinaryf*/void
56、search(intn)1 fstreaminFile;in("stuent、dat",ios::binary);Studentobj;while(in(char*)&obj,sizeof(obj)if(obj、retname()obj、showData();in。;/*functiontomodifyarecordvoidmodify_record(intn)fstreamfile;("student、dat",ios:in|ios::out);Studentobj;whi1e(char*)&obj,sizeof(obj)if(obj、retname()cout<"nEnterthenewdetai1sofstudent"obj、setdata();intpos=-1*sizeof(obj
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版多房產(chǎn)離婚協(xié)議書-2025年度家庭財產(chǎn)分割實施流程2篇
- 二零二五年度餐飲業(yè)餐飲店裝修設(shè)計與施工服務(wù)合同2篇
- 二零二五版廣告牌廣告位租賃與廣告效果分析合同3篇
- 二零二五年度鋼板租賃及節(jié)能改造服務(wù)合同2篇
- 二零二五版房屋抵押借款合同及借款收據(jù)范本3篇
- 二零二五年度軟裝方案創(chuàng)意設(shè)計合同2篇
- 二零二五年度火鍋店原料采購及質(zhì)量控制合同范本3篇
- 二零二五版跨境電商個人合伙退伙合同范本3篇
- 二零二五年度頂賬房買賣合同備案及注銷協(xié)議3篇
- 二零二五版綠色建筑項目墊資合同范本共3篇
- 《疥瘡的防治及治療》課件
- Unit4 What can you do Part B read and write (說課稿)-2024-2025學(xué)年人教PEP版英語五年級上冊
- 2025年MEMS傳感器行業(yè)深度分析報告
- 《線控底盤技術(shù)》2024年課程標準(含課程思政設(shè)計)
- 學(xué)校對口幫扶計劃
- 倉庫倉儲安全管理培訓(xùn)課件模板
- 風(fēng)力發(fā)電場運行維護手冊
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》專題培訓(xùn)
- 河道旅游開發(fā)合同
- 情人合同范例
- 建筑公司勞務(wù)合作協(xié)議書范本
評論
0/150
提交評論