C++ primer plus第6版中文版编程练习答案第16章.docx
- 文档编号:23827670
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:24
- 大小:19.70KB
C++ primer plus第6版中文版编程练习答案第16章.docx
《C++ primer plus第6版中文版编程练习答案第16章.docx》由会员分享,可在线阅读,更多相关《C++ primer plus第6版中文版编程练习答案第16章.docx(24页珍藏版)》请在冰豆网上搜索。
C++primerplus第6版中文版编程练习答案第16章
1、
//Reverse.cpp
#include
#include
usingnamespacestd;
boolisReverse(conststring&s1,conststring&s2);
intmain()
{
stringwords;
cout<<"Enterastring(quittoquit):
\n";
while(cin>>words&&words!
="quit")
{
stringrwords(words.rbegin(),words.rend());
cout<<"words:
"< if(isReverse(rwords,words)) cout< else cout< cout<<"Enteranextwords(quittoquit): \n"; } system("pause"); return0; } boolisReverse(conststring&s1,conststring&s2) { if(pare(s2)) returnfalse; else returntrue; } 2、 //Reverse.cpp #include #include #include usingnamespacestd; boolisReverse(conststring&s1,conststring&s2); voidToLower(string&s1); intmain() { stringwords; cout<<"Enterastring(quittoquit): \n"; getline(cin,words); while(words! ="quit") { ToLower(words); stringrwords(words.rbegin(),words.rend()); cout<<"words: "< if(isReverse(rwords,words)) cout< else cout< cout<<"Enteranextwords(quittoquit): \n"; getline(cin,words); } system("pause"); return0; } boolisReverse(conststring&s1,conststring&s2) { if(pare(s2)) returnfalse; else returntrue; } voidToLower(string&s1) { unsignedinti=0; while(i { if(isalpha(s1[i])) { s1[i]=tolower(s1[i]); i++; } else s1.replace(i,s1.size(),s1,i+1,s1.size()); } } 3、 //hangman.cpp #include #include #include #include #include #include #include usingnamespacestd; vector voidFillWord(); intmain() { srand(time(0)); charplay; cout<<"Willyouplayawordgame? cin>>play; play=tolower(play); FillWord(); while(play=='y') { stringtarget=wordlist[rand()%wordlist.size()]; intlength=target.length(); stringattempt(length,'-'); stringbadchars; intguesses=6; cout<<"Guessmysecretword.Ithas"< <<"letters,andyouguess\n" <<"oneletteratatime.Youget"< <<"wrongguesses.\n"; cout<<"Yourword: "< while(guesses>0&&attempt! =target) { charletter; cout<<"Guessaletter: "; cin>>letter; if(badchars.find(letter)! =string: : npos ||attempt.find(letter)! =string: : npos) { cout<<"Youalreadyguessedthat.Tryagain.\n"; continue; } intloc=target.find(letter); if(loc==string: : npos) { cout<<"Oh,badguess! \n"; --guesses; badchars+=letter; } else { cout<<"Goodguess! \n"; attempt[loc]=letter; loc-target.find(letter,loc+1); while(loc! =string: : npos) { attempt[loc]=letter; loc=target.find(letter,loc+1); } } cout<<"Yourword: "< if(attempt! =target) { if(badchars.length()>0) cout<<"Badchoices: "< cout< } } if(guesses>0) cout<<"That'sright! \n"; else cout<<"Sorry,thewordis"< cout<<"Willyouplayanother? cin>>play; play=tolower(play); } cout<<"Bye\n"; system("pause"); return0; } voidFillWord() { ifstreamfin; stringletter; fin.open("letters.txt"); if(fin.is_open()==false) { cerr<<"Can'topenfile.Bye.\n"; exit(EXIT_FAILURE); } while(fin) { fin>>letter; wordlist.push_back(letter); } fin.close(); } //letters.txt apiarybeetlecerealdangerensignfloridgaragehealth insultjackalkeeperloanermanagenonceonsetplaid quiltremotestolidtrainusefulvalidwhencexenonyearnzippy 4、 //Reduce.cpp #include #include #include usingnamespacestd; intreduce(longar[],intn); voidoutlong(intn){cout< intmain() { longa[10]={1,3,2,4,7,6,3,4,8,10}; intnums=reduce(a,10); cout<<"Numbersafterreduce: "< system("pause"); return0; } intreduce(longar[],intn) { list arr.insert(arr.begin(),ar,ar+n); arr.sort(); arr.unique(); for_each(arr.begin(),arr.end(),outlong); cout< returnarr.size(); } 5、 //Reduce.cpp #include #include #include #include usingnamespacestd; template intreduce(Tar[],intn); template voidoutlong(Tn){cout< intmain() { longa[10]={1,3,2,4,7,6,3,4,8,10}; intnums1=reduce(a,10); cout<<"Numbersafterreduce: "< stringb[10]={"qwe","qwe","ret","tyu","dfg", "jkl","iok","kjl","ads","def"}; intnums2=reduce(b,10); cout<<"Numbersafterreduce: "< system("pause"); return0; } template intreduce(Tar[],intn) { list arr.insert(arr.begin(),ar,ar+n); arr.sort(); arr.unique(); for_each(arr.begin(),arr.end(),outlong cout< returnarr.size(); } 6、 //bank.cpp #include #include #include #include usingnamespacestd; classCustomer { private: longarrive; intprocesstime; public: Customer(){arrive=processtime=0;} voidset(longwhen) { processtime=rand()%3+1; arrive=when; } longwhen()const{returnarrive;} intptime()const{returnprocesstime;} }; typedefCustomerItem; constintMIN_PER_HR=60; boolnewcustomer(doublex); intmain() { srand(time(0)); cout<<"CaseStudy: BankofHeatherAutomaticTeller\n"; cout<<"Entermaximumsizeofqueue: "; intqs; cin>>qs; queue cout<<"Enterthenumberofsimulationhours: "; inthours; cin>>hours; longcyclelimit=MIN_PER_HR*hours; cout<<"Entertheaveragenumberofcustomersperhour: "; doubleperhour; cin>>perhour; doublemin_per_cust; min_per_cust=MIN_PER_HR/perhour; Itemtemp; longturnaways=0; longcustomers=0; longserved=0; longsum_line=0; intwait_time=0; longline_wait=0; for(intcycle=0;cycle { if(newcustomer(min_per_cust)) { if(line.size()==qs) turnaways++; else { customers++; temp.set(cycle); line.push(temp); } } if(wait_time<=0&&! line.empty()) { line.pop(); wait_time=temp.ptime(); line_wait+=cycle-temp.when(); served++; } if(wait_time>0) wait_time--; sum_line+=line.size(); } if(customers>0) { cout<<"customersaccepted: "< cout<<"customersserved: "< cout<<"turnaways: "< cout<<"averagequeuesize: "; cout.precision (2); cout.setf(ios_base: : fixed,ios_base: : floatfield); cout<<(double)sum_line/cyclelimit< cout<<"averagewaittime: " <<(double)line_wait/served<<"minutes\n"; } else cout<<"Nocustomers! \n"; cout<<"Done! \n"; system("pause"); return0; } boolnewcustomer(doublex) { return(rand()*x/RAND_MAX<1); } 7、 //Lotto.cpp #include #include #include #include #include usingnamespacestd; vector voidShow(intn); intmain() { vector winners=Lotto(51,6); for_each(winners.begin(),winners.end(),Show); system("pause"); return0; } vector { vector vector srand(time(0)); for(inti=0;i nums.push_back(i); random_shuffle(nums.begin(),nums.end()); for(inti=0;i nums2.push_back(nums[rand()%l1+1]); returnnums2; } voidShow(intn) { cout<<"Thewinneris"< } 8、 //name.cpp #include #include #include #include #include intmain() { usingnamespacestd; ostream_iterator stringfname1; set cout<<"EnterMat'sfriends(quittoquit): \n"; getline(cin,fname1); while(fname1! ="quit") { A.insert(fname1); getline(cin,fname1); } cout<<"Mat'sfriends: \n"; copy(A.begin(),A.end(),out); cout< stringfname2; set cout<<"EnterPat'sfriends(quittoquit): \n"; getline(cin,fname1); while(fname1! ="quit") { B.insert(fname1); getline(cin,fname1); } cout<<"Pat'sfriends: \n"; copy(B.begin(),B.end(),out); cout< cout<<"UnionofMatandPat'sfriends: "; set_union(A.begin(),A.end(),B.begin(),B.end(),out); cout< system("pause"); return0; } 9、 //sorttime.cpp #include #include #include #include #include #include usingnamespacestd; constintSize=10000; intmain() { clock_tstart,end; vector list srand(time(0)); for(inti=0;i { vi0[i]=rand()%Size; } copy(vi0.begin(),vi0.end(),back_inserter(li)); vector start=clock(); sort(vi.begin(),vi.end()); end=clock(); cout<<"TimeofSortVector: "<<(double)(end-start)/CLOCKS_PER_SEC< start=clock(); li.sort(); end=clock(); cout<<"TimeofSortList: "<<(double)(end-start)/CLOCKS_PER_SEC< copy(vi0.begin(),vi0.end(),back_inserter(li)); start=clock(); copy(li.begin(),li.end(),back_inserter(vi));
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ primer plus第6版中文版编程练习答案第16章 plus 中文版 编程 练习 答案 16