C++PrimerPlus(第6版)中文版编程练习答案第6-10章_第1页
C++PrimerPlus(第6版)中文版编程练习答案第6-10章_第2页
C++PrimerPlus(第6版)中文版编程练习答案第6-10章_第3页
C++PrimerPlus(第6版)中文版编程练习答案第6-10章_第4页
C++PrimerPlus(第6版)中文版编程练习答案第6-10章_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第6章分支语句和逻辑运算符//ex6.1#include<iostream>#include<cctype>intmain(){usingnamespacestd;charch;cin.get(ch);while(ch!='@'){if(!isdigit(ch)){if(isupper(ch))ch=tolower(ch);elseif(islower(ch))ch=toupper(ch);cout<<ch;}cin.get(ch);}return0;}//ex6.2#include<iostream>constintMax=10;intmain(){usingnamespacestd;doublenum[Max];inti=0;cout<<"Number1:";while(i<Max&&cin>>num[i]){if(++i<Max)cout<<"Number"<<i+1<<":";}doubletotal=0.0;for(intj=0;j<i;j++)total+=num[j];doubleAverage=total/i;cout<<"Average="<<Average<<endl;intq=0;for(intj=0;j<i;j++)if(num[j]>Average)q++;cout<<q<<"numbers>average.\n";return0;}//ex6.3#include<iostream>intmain(){usingnamespacestd;charch;cout<<"Pleaseenteroneofthechoice:\n"<<"c)carnivorep)pianist\n"<<"t)treeg)game\n";cin>>ch;while(ch!='c'&&ch!='p'&&ch!='t'&&ch!='g'){cout<<"Pleaseenterac,p,t,org:";cin>>ch;}switch(ch){case'c':cout<<"Acatisacarnivore.\n"break;;case'p':cout<<"RaduLupuisapianist.\n";break;case't':cout<<"Amapleisatree.\n"break;;case'g':cout<<"Golfisagame.\n";break;default:cout<<"Theprogramshouldn'tgethere!\n";}return0;}

//ex6.4#include<iostream>constintstrsize=20;structbop{charfullname[strsize];chartitle[strsize];charbopname[strsize];intpreference;};intmain(){usingnamespacestd;bopmember[5]={{"WimpMacho","EnglishTeacher","DEMON",0},{"RakiRhodes","JuniorProgrammer","BOOM",1},{"CeliaLaiter","SuperStar","MIPS",2},{"HoppyHipman","AnalystTrainee","WATEE",1},{"PatHand","Police","LOOPY",2}};charch;cout<<"BenevolentOrderofProgrammersReport\n"<<"a.displaybynameb.displaybytitle\n"<<"c.displaybybopnamed.displaybypreference\n"<<"q.quit\n";cout<<"Enteryourchoice:";while(cin>>ch&&ch!='q'){switch(ch){case'a':for(inti=0;i<5;i++)cout<<member[i].fullname<<endl;break;case'b':for(inti=0;i<5;i++)cout<<member[i].title<<endl;break;case'c':for(inti=0;i<5;i++)cout<<member[i].bopname<<endl;break;case'd':for(inti=0;i<5;i++){if(member[i].preference==0)cout<<member[i].fullname<<endl;

elseif(member[i].preference==1)cout<<member[i].title<<endl;elsecout<<member[i].bopname<<endl;}break;}cout<<"Nextchoice:";}cout<<"Bye!"<<endl;return0;}//ex6.5#include<iostream>constdoubleLEV1=5000;constdoubleLEV2=15000;constdoubleLEV3=35000;constdoubleRATE1=0.10;constdoubleRATE2=0.15;constdoubleRATE3=0.20;intmain(){usingnamespacestd;doubleincome,tax;cout<<"Enteryourannualincomeintvarps:";cin>>income;if(income<=LEV1)tax=0;elseif(income<=LEV2)tax=(income-LEV1)*RATE1;elseif(income<=LEV3)tax=RATE1*(LEV2-LEV1)+RATE2*(income-LEV2);elsetax=RATE1*(LEV2-LEV1)+RATE2*(LEV3-LEV2)+RATE3*(income-LEV3);cout<<"YouoweNeutronia"<<tax<<"tvarpsintaxes.\n";return0;}

//ex6.6#include<iostream>#include<string>usingnamespacestd;structPatrons{stringname;doublemoney;};intmain(){cout<<"输入捐赠者的数目:";intnum;cin>>num;Patrons*ps=newPatrons[num];cout<<"输入每一个捐赠者的姓名和款项:\n";for(inti=0;i<num;i++){cout<<"输入第"<<i+1<<"位姓名:";cin>>ps[i].name;cout<<"输入第"<<i+1<<"位款项:";cin>>ps[i].money;}cout<<"GrandPatron\n"for(inti=0;i<num;i++){;if(ps[i].money>10000)cout<<ps[i].name<<endl;}cout<<"\nPatron\n";for(inti=0;i<num;i++){if(ps[i].money<=10000)cout<<ps[i].name<<endl;}return0;}//ex6.7#include<iostream>#include<string>#include<cctype>

intmain(){usingnamespacestd;stringword;intvowel=0;intconsonant=0;intother=0;charch;cout<<"Enterwords(qtoquit):\n";cin>>word;while(word!="q"){ch=tolower(word[0]);if(isalpha(ch)){if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')vowel++;elseconsonant++;}elseother++;cin>>word;}cout<<vowel<<"wordsbeginningwithvowel\n"<<consonant<<"wordsbeginningwithconsonants\n"<<other<<"others\n";return0;}//ex6.8#include<iostream>#include<fstream>#include<cstdlib>constintSIZE=60;intmain(){usingnamespacestd;charfilename[SIZE];ifstreaminFile;

cout<<"Enternameofdatafile:";cin.getline(filename,SIZE);inFile.open(filename);if(!inFile.is_open()){cout<<"Couldnotopenthefile"<<filename<<endl;cout<<"Programterminating.\n";exit(EXIT_FAILURE);}intcount=0;charch;inFile>>ch;while(inFile.good()){count++;inFile>>ch;//getnextvalue}cout<<count<<"charactersin"<<filename<<endl;inFile.close();//finishedwiththefilereturn0;}//ex6.9#include<iostream>#include<string>#include<fstream>#include<cstdlib>constintSIZE=60;usingnamespacestd;structPatrons{stringname;doublemoney;};intmain(){charfilename[SIZE];ifstreaminFile;cout<<"Enternameofdatafile:";cin.getline(filename,SIZE);inFile.open(filename);if(!inFile.is_open())

{}cout<<"Couldnotopenthefile"cout<<"Programterminating.\n"exit(EXIT_FAILURE);<<filename<<endl;;intnum;inFile>>num;inFile.get();Patrons*ps=newPatrons[num];for(inti=0;i<num;i++){getline(inFile,ps[i].name);inFile>>ps[i].money;inFile.get();}cout<<"\nGrandPatrons:\n";intcount1=0;for(inti=0;i<num;i++){if(ps[i].money>10000){cout<<ps[i].name<<endl;count1++;}}if(count1==0)cout<<"none";cout<<"\nPatrons:\n";intcount2=0;for(inti=0;i<num;i++){if(ps[i].money<=10000){cout<<ps[i].name<<endl;count2++;}}if(count2==0)cout<<"none";delete[]ps;inFile.close();return0;}

第7章函数——C++的编程模块//ex7.1#include<iostream>doublet_av(doublex,doubley);intmain(){usingnamespacestd;doublex,y;doubleresult;cout<<"Pleaseentertwonumbers(0tostop):"while((cin>>x>>y)&&x!=0&&y!=0){;result=t_av(x,y);cout<<"调和平均数="<<result<<endl;cout<<"Pleaseentertwonumbers(0tostop):";}return0;}doublet_av(doublex,doubley){return2.0*x*y/(x+y);}//ex7.2#include<iostream>constintMAX=10;usingnamespacestd;intfill_ar(doublear[],intlimit);voidshow_ar(constdoublear[],intn);doubleaverage(constdoublear[],intn);intmain(){doublescores[MAX];intsize=fill_ar(scores,MAX);show_ar(scores,size);if(size>0)cout<<"Theaverageofscoresis:"<<average(scores,size)<<endl;return0;}intfill_ar(doublear[],intlimit){doubletemp;inti;for(i=0;i<limit;i++){cout<<"Enterscore#"<<i+1<<":";cin>>temp;if(!cin){cin.clear();while(cin.get()!='\n')continue;cout<<"Badinput;enteranumber:"break;;}if(temp<0)break;ar[i]=temp;}returni;}voidshow_ar(constdoublear[],intn){for(inti=0;i<n;i++)cout<<"score#"<<i+1<<":"<<ar[i]<<endl;}doubleaverage(constdoublear[],intn){doublesum=0.0;for(inti=0;i<n;i++)sum+=ar[i];returnsum/n;}//ex7.3#include<iostream>structbox{charmaker[40];floatheight;floatwidth;floatlength;

floatvolume;};voidset_box(box*);voidshow_box(box);intmain(){usingnamespacestd;boxcarton={"BingoBoxer",2,3,5};set_box(&carton);show_box(carton);return0;}voidset_box(box*pb){pb->volume=pb->height*pb->length*pb->width;}voidshow_box(boxb){usingnamespacestd;cout<<"Boxmaker:"<<b.maker<<"\nheight:"<<b.height<<"\nlwidth:"<<b.width<<"\nlength:"<<b.length<<"\nvolume:"<<b.volume<<endl;}//ex7.4#include<iostream>longdoubleprobability(unsignednumbers,unsignedpicks);intmain(){usingnamespacestd;doubletotal,choices,mtotal;longdoubleprobability1,probability2;cout<<"Entertotalnumberofgamecardchoicesand\n""numberofpicksallowedforthefield:\n";while((cin>>total>>choices)&&choices<total){cout<<"Entertotalnumberofgamecardchoicesand\n"

"numberofpicksallowedforthemega:\n";if(!(cin>>mtotal))break;probability1=probability(total,choices);probability2=probability(mtotal,1);cout<<"Thechancesofgettingall"<<choices<<"picksisonein"<<probability1<<".\n";cout<<"Thechancesofgettingthemegaspotisonein"<<probability2<<".\n";cout<<"Youhaveonechancein";cout<<probability1*probability2;cout<<"ofwinning.\n";cout<<"Nextsetofnumbers(qtoquit):";}cout<<"bye\n";return0;}longdoubleprobability(unsignednumbers,unsignedpicks){longdoubleresult=1.0;longdoublen;unsignedp;for(n=numbers,p=picks;p>0;n--,p--)result=result*n/p;returnresult;}//ex7.5#include<iostream>longlongintrecure(int);intmain(){usingnamespacestd;intnumber;cout<<"Enterainteger(qtostop):";while(cin>>number){longlongintresult=recure(number);cout<<number<<"!="<<result<<endl;

cout<<"Next:";}cout<<"Done!"<<endl;return0;}longlongintrecure(intn){longlongintresult;if(n>0)result=n*recure(n-1);elseresult=1;returnresult;}//ex7.6#include<iostream>constintSize=10;intFill_array(doublear[],intn);voidShow_array(constdoublear[],intn);voidReverse_array(doublear[],intn);intmain(){usingnamespacestd;doublevalues[Size];intlen=Fill_array(values,Size);cout<<"Arrayvalues:\n";Show_array(values,len);cout<<"Arrayreversed:\n";Reverse_array(values,len);Show_array(values,len);cout<<"Allbutendvaluesreversed:\n";Reverse_array(values+1,len-2);Show_array(values,len);return0;}intFill_array(doublear[],intn){usingnamespacestd;doubletemp;inti;

for(i=0;i<n;i++){cout<<"Entervalue#"<<i+1<<":";cin>>temp;if(!cin)break;ar[i]=temp;}cout<<endl;returni;}voidShow_array(constdoublear[],intn){usingnamespacestd;for(inti=0;i<n;i++)cout<<"Property#"<<i+1<<":"<<ar[i]<<endl;cout<<endl;}voidReverse_array(doublear[],intn){doubletemp;for(inti=0,j=n-1;i<j;i++,j--){temp=ar[i];ar[i]=ar[j];ar[j]=temp;}}//ex7.7#include<iostream>constintMax=5;double*fill_array(double*begin,double*end);voidshow_array(constdouble*begin,constdouble*end);voidrevalue(doubler,double*begin,double*end);intmain(){usingnamespacestd;doubleproperties[Max];double*pbegin=properties;

double*pend=fill_array(pbegin,pbegin+Max);show_array(pbegin,pend);if(pend-pbegin>0){cout<<"Enterrevaluationfactor:";doublefactor;while(!(cin>>factor)){cin.clear();while(cin.get()!='\n')continue;cout<<"Badinput;Pleaseenteranumber:";}revalue(factor,pbegin,pend);show_array(pbegin,pend);}cout<<"Done.\n";return0;}double*fill_array(double*begin,double*end){usingnamespacestd;doubletemp;inti=1;while(begin<end){cout<<"Entervalue#"<<i<<":";cin>>temp;if(!cin){cin.clear();while(cin.get()!='\n')continue;cout<<"Badinput;inputprocessterminated.\n";break;}elseif(temp<0)break;*begin=temp;begin++;i++;}

returnbegin;}voidshow_array(constdouble*begin,constdouble*end){usingnamespacestd;inti=1;while(begin<end){cout<<"Property#"<<i<<":$";cout<<*begin<<endl;begin++;i++;}}voidrevalue(doubler,double*begin,double*end){while(begin<end){*begin*=r;begin++;}}//ex7.8a#include<iostream>constintSeasons=4;constchar*Snames[]={"Spring","Summer","Fall","Winter"};voidfill(doublear[],intn);voidshow(doublear[],intn);intmain(){usingnamespacestd;doubleexpenses[Seasons];fill(expenses,Seasons);show(expenses,Seasons);return0;}voidfill(doublear[],intn){usingnamespacestd;

for(inti=0;i<n;i++){cout<<"Enter"<<Snames[i]<<"expenses:";cin>>ar[i];}}voidshow(doublear[],intn){usingnamespacestd;cout<<"\nEXPENSES\n";doubletotal=0.0;for(inti=0;i<n;i++){cout<<Snames[i]<<total+=ar[i];":$"<<ar[i]<<endl;}cout<<"TotalExpenses:$"<<total<<endl;}//ex7.8b(传递结构值)#include<iostream>constintSeasons=4;structdata{doublearr[Seasons];};constchar*Snames[]={"Spring","Summer","Fall","Winter"};datafill();voidshow(data);intmain(){usingnamespacestd;dataexpenses=fill();show(expenses);return0;}datafill(){usingnamespacestd;dataexpenses;for(inti=0;i<Seasons;i++)

{}cout<<"Enter"<<Snames[i]<<"expenses:";cin>>expenses.arr[i];returnexpenses;}voidshow(dataexpenses){usingnamespacestd;cout<<"\nEXPENSES\n";doubletotal=0.0;for(inti=0;i<Seasons;i++){cout<<Snames[i]<<":$"<<expenses.arr[i]<<endl;total+=expenses.arr[i];}cout<<"TotalExpenses:$"<<total<<endl;}//ex7.8b(传递结构指针)#include<iostream>constintSeasons=4;structdata{doublearr[Seasons];};constchar*Snames[]={"Spring","Summer","Fall","Winter"};voidfill(data*pd);voidshow(data*pd);intmain(){usingnamespacestd;dataexpenses;fill(&expenses);show(&expenses);return0;}voidfill(data*pd){usingnamespacestd;for(inti=0;i<Seasons;i++)

{}cout<<"Enter"<<Snames[i]<<"expenses:";cin>>pd->arr[i];}voidshow(data*pd){usingnamespacestd;cout<<"\nEXPENSES\n";doubletotal=0.0;for(inti=0;i<Seasons;i++){cout<<Snames[i]<<total+=pd->arr[i];":$"<<pd->arr[i]<<endl;}cout<<"TotalExpenses:$"<<total<<endl;}//ex7.9#include<iostream>usingnamespacestd;constintSLEN=30;structstudent{charfullname[SLEN];charhobby[SLEN];intooplevel;};intgetinfo(studentpa[],voiddisplay1(studentst);intn);voiddisplay2(conststudent*ps);voiddisplay3(conststudentpa[],intn);intmain(){cout<<"Enterclasssize:";intclass_size;cin>>class_size;while(cin.get()!='\n')continue;student*ptr_stu=newstudent[class_size];intentered=getinfo(ptr_stu,class_size);for(inti=0;i<entered;i++)

{}display1(ptr_stu[i]);display2(&ptr_stu[i]);display3(ptr_stu,entered);delete[]ptr_stu;cout<<"Done\n";return0;}//getinfo()hastwoarguments:apointertothefirstelementof//anarrayofstudentstructuresandanintrepresentingthe//numberofelementsofthearray.Thefunctionsolicitsand//storesdataaboutstudents.Itterminatesinputuponfilling//thearrayoruponencounteringablanklineforthestudent//name.Thefunctionreturnstheactualnumberofarrayelements//getinfo(studentpa[],{intn)intnum_array_elem=n;chartmp[SLEN];for(inti=0;i<n;++i){cout<<"Entername:";cin.getline(tmp,SLEN);boolblank_line=true;for(unsignedj=0;j<strlen(tmp);++j){if(!isspace(tmp[j])){blank_line=false;break;}}if(blank_line){num_array_elem=i;break;}strcpy(pa[i].fullname,tmp);cout<<"Enterhobby:";cin.getline(pa[i].hobby,SLEN);

cout<<"Enterooplevel:"cin>>pa[i].ooplevel;cin.get();;}cout<<endl;returnnum_array_elem;}//display1()takesastudentstructureasanargument//anddisplaysitscontentsvoiddisplay1(studentst){cout<<st.fullname<<'\t'<<st.hobby<<'\t'<<st.ooplevel<<endl;}//display2()takestheaddressofstudentstructureasan//argumentanddisplaysthestructure’¡¥scontentsvoiddisplay2(conststudent*ps){cout<<ps->fullname<<'\t'<<ps->hobby<<'\t'<<ps->ooplevel<<endl;}//display3()takestheaddressofthefirstelementofanarray//ofstudentstructuresandthenumberofarrayelementsas//argumentsanddisplaysthecontentsofthestructuresvoiddisplay3(conststudentpa[],intn){for(inti=0;i<n;++i)cout<<pa[i].fullname<<'\t'<<pa[i].hobby<<'\t'<<pa[i].ooplevel<<endl;}//ex7.10#include<iostream>doublecalculate(doublex,doubley,double(*pf)(double,double));doubleadd(doublex,doubley);doublesub(doublex,doubley);doublemean(doublex,doubley);intmain(){usingnamespacestd;

doublea,b;double(*pf[3])(double,double)={add,sub,mean};char*op[3]={"add","sub","mean"};cout<<"Enterpairsofnumbers(qtoquit):";while(cin>>a>>b){for(inti=0;i<3;i++){cout<<op[i]<<":"<<a<<"and"<<b<<"="<<calculate(a,b,pf[i])<<endl;}}}doublecalculate(doublex,doubley,double(*pf)(double,double)){return(*pf)(x,y);}doubleadd(doublex,doubley){returnx+y;}doublesub(doublex,doubley){returnx-y;}doublemean(doublex,doubley){return(x+y)/2.0;}

第8章函数探幽//ex8.1#include<iostream>voidshow(constchar*ps,intn=0);intmain(){usingnamespacestd;char*pstr="Hello\n";show(pstr);intnum;cout<<"Enteranumber:"cin>>num;;show(pstr,num);cout<<"Done\n";return0;}voidshow(constchar*ps,intn){usingnamespacestd;intlim=n;if(n==0)lim=1;for(inti=0;i<lim;i++)cout<<ps;}//ex8.2#include<iostream>#include<string>usingnamespacestd;structCandyBar{stringname;doubleweight;inthot;};voidset(CandyBar&cb,char*ps,doublew,inth);voidshow(constCandyBar&cb);intmain(){usingnamespacestd;CandyBarcandy;char*p="MillenniumMunch";doublex=2.85;inty=350;set(candy,p,x,y);show(candy);return0;}voidset(CandyBar&cb,char*ps,doublew,inth){=ps;cb.weight=w;cb.hot=h;}voidshow(constCandyBar&cb){cout<<"Name:"<<<<endl<<"Weight:"<<cb.weight<<endl<<"Hot:"<<cb.hot<<endl;}//ex8.3#include<iostream>#include<string>#include<cctype>usingnamespacestd;voidstr_to_upper(string&str);intmain(){stringstr1;cout<<"Enterastring(qtoquit):"while(getline(cin,str1)&&str1!={;"q"&&str1!="Q")str_to_upper(str1);cout<<str1<<endl;cout<<"Nextstring(qtoquit):"};cout<<"Bye.";return0;}voidstr_to_upper(string&str){

intlimit=str.size();for(inti=0;i<limit;i++){if(isalpha(str[i]))str[i]=toupper(str[i]);}}//ex8.4#include<iostream>#include<cstring>//forstrlen(),strcpy()usingnamespacestd;structstringy{char*str;//pointstoastringintct;//lengthofstring(notcounting'\0')};voidshow(constchar*str,intcnt=1);voidshow(conststringy&bny,intcnt=1);voidset(stringy&bny,constchar*str);intmain(void){stringybeany;chartesting[]="Realityisn'twhatitusedtobe.";set(beany,testing);//firstargumentisareference,//allocatesspacetoholdcopyoftesting,//setsstrmemberofbeanytopointtothe//newblock,copiestestingtonewblock,//andsetsctmemberofbeanyshow(beany);//printsmemberstringonceshow(beany,2);//printsmemberstringtwicetesting[0]='D';testing[1]='u';show(testing);//printstestingstringonceshow(testing,3);//printstestingstringthriceshow("Done!");return0;}voidshow(constchar*str,intcnt){while(cnt-->0)

{}cout<<str<<endl;}voidshow(conststringy&bny,intcnt){while(cnt-->0){cout<<bny.str<<endl;}}voidset(stringy&bny,constchar*str){bny.ct=strlen(str);bny.str=newchar[bny.ct+1];strcpy(bny.str,str);}//ex8.5#include<iostream>constintLimit=5;template<typenameT>Tmax5(Tar[]);intmain(){usingnamespacestd;intari[Limit]={1,2,3,5,4};doubleard[Limit]={1.1,2.2,3.3,5.5,4.4};intmaxi=max5(ari);doublemaxd=max5(ard);cout<<"maxi="<<maxi<<endl;cout<<"maxd="<<maxd<<endl;return0;}template<typenameT>Tmax5(Tar[]){Tmax=ar[0];for(inti=1;i<Limit;i++)

{}if(max<ar[i])max=ar[i];returnmax;}//ex8.6#include<iostream>template<typenameT>Tmaxn(Tar[],intn);template<>constchar*maxn(constchar*ar[],intn);intmain(){usingnamespacestd;intari[6]={1,2,3,4,6,5};doubleard[4]={1.1,2.2,4.4,3.3};constchar*ars[5]={"a","bb","ccc","ddddd","eeee"};cout<<"Themaxintegerofarrayis:"cout<<"Themaxdoubleofarrayis:"cout<<"Themaxstringofarrayis:"<<maxn(ari,6)<<endl;<<maxn(ard,4)<<endl;<<maxn(ars,5)<<endl;}template<typenameT>Tmaxn(Tar[],intn){Tmaxar=ar[0];for(inti=1;i<n;i++){if(maxar<ar[i])maxar=ar[i];}returnmaxar;}

template<>constchar*maxn(constchar*ar[],intn){constchar*maxs=ar[0];for(inti=1;i<n;i++){if(strlen(maxs)<strlen(ar[i]))maxs=ar[i];}returnmaxs;}//ex8.7#include<iostream>template<typenameT>TSumArrray(Tarr[],intn);template<typenameT>TSumArrray(T*arr[],intn);structdebts{charname[50];doubleamount;};intmain(){usingnamespacestd;intthings[6]={13,31,103,301,310,130};structdebtsmr_E[3]={{"ImaWolfe",2400.0},{"UraFoxe",1300.0},{"IbyStout",1800.0}};double*pd[3];for(inti=0;i<3;i++)pd[i]=&mr_E[i].amount;cout<<"Sum:Mr.E'scountsofthings:"<<SumArrray(things,6)<<endl;cout<<"Sum:Mr.E'sdebts:"<<SumArrray(pd,3)<<endl;return0;

}template<typenameT>TSumArrray(Tarr[],{intn)usingnamespacestd;Tsum=0;cout<<"templateA\n";for(inti=0;i<n;i++)sum+=arr[i];returnsum;}template<typenameT>TSumArrray(T*arr[],{intn)usingnamespacestd;Tsum=0;cout<<"templateB\n";for(inti=0;i<n;i++)sum+=*arr[i];returnsum;}第9章内存模型和名称空间//ex9.1//golf.hconstintLen=40;structgolf{charfullname[Len];inthandicap;};//non-interactiveversion//functionsetsgolfstructuretoprovidedname,handicap//usingvaluespassedasargumentstothefunctionvoidsetgolf(golf&g,constchar*name,inthc);//interactiveversion//functionsolicitsnameandhandicapfromuser//andsetsthemembersofgtothevaluesentered//returns1ifnameisentered,0ifnameisemptystringintsetgolf(golf&g);//functionresetshandicaptonewvaluevoidhandicap(golf&g,inthc);//functiondisplayscontentsofgolfstructurevoidshowgolf(constgolf&g);//golf.cpp#include<iostream>#include<cstring>#include"golf.h"voidsetgolf(golf&g,constchar*name,inthc){std::strcpy(g.fullname,name);g.handicap=hc;}intsetgolf(golf&g){std::cout<<"Pleaseentergolfer'sfullname:";std::cin.getline(g.fullname,Len);if(g.fullname[0]=='\0')return0;std::cout<<"Pleaseenterhandicapfor"<<g.fullname<<":";while(!(std::cin>>g.handicap)){std::cin.clear();std::cout<<"Pleaseenteraninteger:";}while(std::cin.get()!='\n')continue;return1;}voidhandicap(golf&g,inthc){g.handicap=hc;}

voidshowgolf(constgolf&g){std::cout<<"Golfer:"<<g.fullname<<"\n";std::cout<<"Handicap:"<<g.handicap<<"\n\n";}//main.cpp#include<iostream>#include"golf.h"constintMens=5;intmain(){usingnamespacestd;golfteam[Mens];cout<<"Enterupto"<<Mens<<"golfteammembers:\n";inti;for(i=0;i<Mens;i++)if(setgolf(team[i])==0)break;for(intj=0;j<i;j++)showgolf(team[j]);golfann;setgolf(ann,"AnnBirdfree",5);showgolf(ann);handicap(ann,3);showgolf(ann);return0;}//ex9.2#include<iostream>#include<string>usingnamespacestd;voidstrcount(conststringstr);intmain(){

stringinput;cout<<"Enteraline:\n";getline(cin,input);while(input!=""){strcount(input);cout<<"Enternextline(emptylinetoquit):\n";getline(cin,input);}cout<<"Bye\n";return0;}voidstrcount(conststringstr){staticinttotal=0;//staticlocalvariableintcount=0;//automaticlocalvariablecout<<"\""<<str<<"\"contains";count=str.size();total+=count;cout<<count<<cout<<total<<}"characters\n";"characterstotal\n";//ex9.3#include<iostream>#include<new>#include<cstring>structchaff{chardross[20];intslag;};char*buffer[500];intmain(){usingnamespacestd;chaff*pc=newchaff[2];strcpy(pc[0].dross,pc[0].slag=13;"HorseFeathers");strcpy(pc[1].dross,"Piffle");

pc[1].slag=-39;for(inti=0;i<2;i++)cout<<pc[i].dross<<return0;":"<<pc[i].slag<<endl;}//ex9.4//sales.hnamespaceSALES{constintQUARTERS=4;structSales{doublesales[QUARTERS];doubleaverage;doublemax;doublemin;};//copiesthelesserof4ornitemsfromthearrayar//tothesalesmemberofsandcomputesandstoresthe//average,maximum,andminimumvaluesoftheentereditems;//remainingelementsofsales,ifany,setto0voidsetSales(Sales&s,constdoublear[],intn);//gatherssalesfor4quartersinteractively,storesthem//inthesalesmemberofsandcomputesandstoresthe//average,maximum,andminimumvaluesvoidsetSales(Sales&s);//displayallinformationinstructuresvoidshowSales(constSales&s);}//Sales.cpp#include<iostream>#include"Sales.h"namespaceSALES{usingstd::cout;usingstd::cin;

usingstd::endl;staticdoublecalaverage(doublearr[],unsignedarrSize){doublesum=0;for(inti=0;i<arrSize;i++)sum+=arr[i];returnsum/arrSize;}staticdoublecalmax(doublearr[],unsignedarrSize){doublemax=arr[0];for(inti=1;i<arrSize;i++){if(max<arr[i])max=arr[i];}returnmax;}staticdoublecalmin(doublearr[],unsignedarrSize){doublemin=arr[0];for(inti=1;i<arrSize;i++){if(min>arr[i])min=arr[i];}returnmin;}voidsetSales(Sales&s,{constdoublear[],intn)unsignedtimes=n<QUARTERS?(for(inti=0;i<times;i++)s.sales[i]=ar[i];unsigned)n:QUARTERS;for(inti=times;i<QUARTERS;i++)s.sales[i]=0;s.average=calaverage(s.sales,times);s.max=calmax(s.sales,times);s.min=calmin(s.sales,times);}voidsetSales(Sales&s)

{cout<<"Enter4sales:\n";for(inti=0;i<QUARTERS;i++){cout<<"sales"<<i+1<<":";cin>>s.sales[i];}s.average=calaverage(s.sales,QUARTERS);s.max=calmax(s.

温馨提示

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

评论

0/150

提交评论