版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第第页C++PrimerPlus第五版第十章习题参考答案C++PrimerPlus第五版第十章习题参考答案
Chapter10
PE10-1
//pe10-1.cpp
#includeiostream
#includecstring
//classdeclaration
classBankAccount
{
private:
charname[40];
characctnum[25];
doublebalance;
public:
BankAccount(char*client=noone,char*num=0,
doublebal=0.0);voidshow(void)const;
voiddeposit(doublecash);voidwithdraw(doublecash);
};
//methoddefinitions
BankAccount::BankAccount(char*client,char*num,doublebal)
{
std::strncpy(name,client,39);
name[39]='\0';
std::strncpy(acctnum,num,24);
acctnum[24]='\0';
balance=bal;
}
voidBankAccount::show(void)const
{
usingstd::cout;
usingstd::endl;
coutClient:nameendl;
coutAccountNumber:acctnumendl;
coutBalance:balanceendl;
}
voidBankAccount::deposit(doublecash)
{
if(cash=0)
C++PrimerPlus第五版第十章习题参考答案
balance+=cash;
else
std::coutIllegaltransactionattempted;
}
voidBankAccount::withdraw(doublecash)
{
if(cash0)
std::coutIllegaltransactionattempted;
elseif(cash=balance)
balance-=cash;
else
std::coutRequestdeniedduetoinsufficientfunds.\n;
}
//sampleuse
intmain()
{
BankAccountbird;
BankAccountfrog(Kermit,croak322,123.00);
bird.show();
frog.show();
bird=BankAccount(Chipper,peep8282,214.00);
bird.show();
frog.deposit(20);
frog.show();
frog.withdraw(4000);
frog.show();
frog.withdraw(50);
frog.show();
}
PE10-4
//pe10-4.h
#ifndefSALES__
#defineSALES__
namespaceSALES
{
constintQUARTERS=4;
C++PrimerPlus第五版第十章习题参考答案
classSales
{
private:
doublesales[QUARTERS];
doubleaverage;
doublema*;
doublemin;
public:
//defaultconstructor
Sales();
//copiesthelesserof4ornitemsfromthearrayar
//tothesalesmemberandcomputesandstoresthe
//average,ma*imum,andminimumvaluesoftheentereditems;//remainingelementsofsales,ifany,setto0
Sales(constdoublear[],intn);
//gatherssalesfor4quartersinteractively,storesthem
//inthesalesmemberofobjectandcomputesandstoresthe
//average,ma*imum,andminumumvalues
voidsetSales();
//displayallinformationinobject
voidshowSales();
};
}
#endif
//pe10-4a.cpp
#includeiostream
#includepe10-4.h
intmain()
{
usingSALES::Sales;
doublevals[3]={2000,3000,5000};
SalesforFiji(vals,3);
forFiji.showSales();
Salesred;
C++PrimerPlus第五版第十章习题参考答案
red.showSales();
red.setSales();
red.showSales();
return0;
}
//pe10-4b.cpp
#includeiostream
#includepe10-4.h
namespaceSALES
{
usingstd::cin;
usingstd::cout;
usingstd::endl;
Sales::Sales(constdoublear[],intn)
{
if(n0)
n=0;
intlimit=nQUARTERS?n:QUARTERS;
doubletotal=0;
min=0;
ma*=0;
average=0;
if(limit0)
min=ma*=ar[0];
inti;
for(i=0;ilimit;i++)
{
sales[i]=ar[i];
total+=ar[i];
if(ar[i]ma*)
ma*=ar[i];
elseif(ar[i]min)
min=ar[i];
}
for(i=limit;iQUARTERS;i++)
sales[i]=0;
if(limit0)
average=total/limit;
}
C++PrimerPlus第五版第十章习题参考答案
Sales::Sales()
{
min=0;
ma*=0;
average=0;
for(inti=0;iQUARTERS;i++)
sales[i]=0;
}
voidSales::setSales()
{
doublesa[QUARTERS];
inti;
for(i=0;iQUARTERS;i++)
{
coutEntersalesforquarteri+1:;
cinsa[i];
}
//createtemporaryobject,copytoinvokingobject
*this=Sales(sa,QUARTERS);
}
voidSales::showSales()
{
coutSales:\n;
for(inti=0;iQUARTERS;i++)
coutQuarteri+1:$
sales[i]endl;
coutAverage:$averageendl;
coutMinimum:$minendl;
coutMa*imum:$ma*endl;
}
}
PE10-5
//pe10stack.h--classdefinitionforthestackADT
//forusewithpe10-5.cpp
#ifndef_STACK_H_
#define_STACK_H_
C++PrimerPlus第五版第十章习题参考答案
structcustomer{
charfullname[35];
doublepayment;
};
typedefcustomerItem;
classStack
{
private:
enum{MA*=10};//constantspecifictoclass
Itemitems[MA*];//holdsstackitems
inttop;//inde*fortopstackitem
public:
Stack();
boolisempty()const;
boolisfull()const;
//push()returnsfalseifstackalreadyisfull,trueotherwise
boolpush(constItemitem);//additemtostack
//pop()returnsfalseifstackalreadyisempty,trueotherwise
boolpop(Itemitem);//poptopintoitem
};
#endif
//pe10stack.cpp--Stackmemberfunctions
//forusewithpe10-5.cpp
//e*actlythesameasstack.cppinthete*t
#includepe10stack.h
Stack::Stack()//createanemptystack
{
top=0;
}
boolStack::isempty()const
{
returntop==0;
}
boolStack::isfull()const
{
returntop==MA*;
C++PrimerPlus第五版第十章习题参考答案
boolStack::push(constItemitem)
{
if(topMA*)
{
items[top++]=item;
returntrue;
}
else
returnfalse;
}
boolStack::pop(Itemitem)
{
if(top0)
{
item=items[--top];
returntrue;
}
else
returnfalse;
}
//pe10-5.cpp
#includeiostream
#includecctype
#includepe10stack.h//modifiedtodefinecustomerstructure//linkwithpe10stack.cpp
voidget_customer(customercu);
intmain(void)
{
usingnamespacestd;
Stackst;//createastackofcustomerstructures
customertemp;
doublepayments=0;
charc;
coutPleaseenterAtoaddacustomer,\n
Ptoprocessacustomer,andQtoquit.\n;
while(cinc(c=toupper(c))!='Q')
{
C++PrimerPlus第五版第十章习题参考答案
while(cin.get()!='\n')
continue;
if(c!='A'c!='P')
{
coutPleaserespondwithA,P,orQ:;
continue;
}
switch(c)
{
case'A':if(st.isfull())
coutstackalreadyfull\n;else
{
get_customer(temp);
st.push(temp);
}
break;
case'P':if(st.isempty())
coutstackalreadyempty\n;else{
st.pop(temp);
payments+=temp.payment;
couttemp.fullnameprocessed.;coutPaymentsnowtotal$payments\n;
}
break;
default:coutWhoops!Programmingerror!\n;}
coutPleaseenterAtoaddacustomer,\n
Ptoprocessacustomer,andQtoquit.\n;
}
coutDone!\n;
return0;
}
voidget_customer(customercu)
{
usingnamespacestd;
coutEntercustomername:;
cin.getline(cu.fullname,35);
coutEntercustomerpayment:;
cincu.payment;
while(cin.get()!='\n')
C++PrimerPlus第五版第十章习题参考答案
continue;
}
PE10-8
//pe10-8arr.h--headerfileforasimplelistclass
#ifndefSIMPLEST_
#defineSIMPLEST_
//program-specificdeclarations
constintTSIZE=45;//sizeofarraytoholdtitlestructfilm
{
chartitle[TSIZE];
intrating;
};
//generaltypedefinitions
typedefstructfilmItem;
constintMA*LIST=10;
classsimplist
{
private:
Itemitems[MA*LIST];
intcount;
public:
simplist(void);
boolisempty(void);
boolisfull(void);
intitemcount();
booladditem(Itemitem);
voidtransverse(void(*pfun)(Itemitem));
};
#endif
//pe10-8arr.cpp--functionssupportingsimplelistoperations#includepe10-8arr.h
simplist::simplist(void)
{
C++PrimerPlus第五版第十章习题参考答案
count=0;
}
boolsimplist::isempty(void)
{
returncount==0;
}
boolsimplist::isfull(void)
{
returncount==MA*LIST;
}
intsimplist::itemcount()
{
returncount;
}
boolsimplist::additem(Itemitem)
{
if(count==MA*LIST)
returnfalse;
else
items[count++]=item;
returntrue;
}
voidsimplist::transverse(void(*pfun)(Itemitem))
{
for(inti=0;icount;i++)
(*pfun)(items[i]);
}
//pe10-8.cpp--usingaclassdefinition
#includeiostream
#includecstdlib//prototypefore*it()
#includepe10-8arr.h//simplelistclassdeclaration//arrayversionvoidshowmovies(Itemitem);//tobeusedbytransverse()
intmain(void)
{
usingnamespacestd;
C++PrimerPlus第五版第十章习题参考答案
simplistmovies;//createsanemptylist
Itemtemp;
if(movies.isfull())//invokesisfull()memberfunction{
coutNomoreroominlist!Bye!\n;
e*it(1);
}
coutEnterfirstmovietitle:\n;
while(cin.getline(temp.title,TSIZE)temp.title[0]!='\0'){
coutEnteryourrating0-10:;
cintemp.rating;
while(cin.get()!='\n')
continue;
if(movies.additem(temp)==false)
{
coutListalreadyisfull!\n;
break;
}
if(movies.isfull())
{
coutYouhavefilledthelist.\n;
break;
}
coutEnterne*tmovietitle(emptylinetostop):\n;}
if(movies.isempty())
coutNodataentered.;
else
{
coutHereisthemovielist:\n;
movies.transverse(showmovies);
}
coutBye!\n;
return0;
}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026围绕简历的面试题及答案
- 感恩之心与亲情回报:小学主题班会课件
- 汽车售后入伙合同范本
- 姐弟关系好协议书
- 分享快乐传递正能量的小学主题班会课件
- 小学主题班会课件:挫折与不屈:如何勇敢面对挑战
- 合作项目后续工作计划安排商洽函(6篇)
- 农业生产流程标准化指南
- 非粮生物基乳酸制品产业园项目可行性研究报告模板立项申批备案
- 2026年十堰市茅箭区社区工作者招聘考试备考题库及答案详解
- 数据安全管理员岗前理论综合实践考核试卷含答案
- 2026年工会干校招聘面试模拟题库
- 2026年纪检监察机关信息化建设知识试题
- 档案馆编研工作制度
- 江苏省南通市通州高级中学2025-2026学年高二上学期第三次阶段性测试物理试卷(含解析)
- 第一章 预备知识(高效培优单元测试-强化卷)-北师大版高中数学必修第一册(解析版)
- 2025年车辆管理考试题库及答案
- NBT 11194-2023 新能源基地送电配置新型储能规划技术导则
- 2025及未来5年中国美味汉堡市场调查、数据监测研究报告
- 教科版(2024)三年级上册科学全册教案
- 医院培训课件:《脑卒中的识别与急救》
评论
0/150
提交评论