下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+大学基础教程课后答案(DEITEL 版3.11GradeBoo/I定义:#include/programusesC+standardstringclassusingstd:string;classGradeBookpublic:/constructorinitializescoursenameandinstructornameGradeBook(string,string);voidsetCourseName(string);/functiontosetthecoursenamestringgetCourseName();/functiontoretrievethecoursenamevo
2、idsetInstructorName(string);/functiontosetinstructorstringgetInstructorName();/functiontoretrieveinstructornamevoiddisplayMessage();/displaywelcomemessageandinstructorprivate:stringcourseName;/coursenameforthisGradeBookstringinstructorName;/instructornameforthisGradeBook;/endclassGradeBook类成员函数:#inc
3、ludeusingstd:cout;usingstd:endl;#includeGradeBook.h/constructorinitializescourseNameandinstructorName/withstringssuppliedasargumentsGradeBook二GradeBook(stringcourse,stringinstructor)setCourseName(course);/initializescourseNamesetInstructorName(instructor);/initialiZesinstructorName/endGradeBookconst
4、ructor/functiontosetthecoursenamevoidGradeBook二setCourseName(stringname)courseName=name;/storethecoursename/endfunctionsetCourseName/functiontoretrievethecoursenamestringGradeBook:getCourseName()returncourseName;/endfunctiongetCourseName/functiontosettheinstructornamevoidGradeBook:setInstructorName(
5、stringname)(instructorName=name;/storetheinstructornamenamename/endfunctionsetInstructorName/functiontoretrievetheinstructornamestringGradeBook:getInstructorName()(returninstructorName;/endfunctiongetInstructorName/displayawelcomemessageandtheinstructorsnamevoidGradeBook二displayMessage()(/displayawe
6、lcomemessagecontainingthecoursenamecoutWelcometothegradebookforngetCourseName()!endl;/displaytheinstructorsnamecoutThiscourseispresentedby:getInstructorName()endl;/endfunctiondisplayMessage测试文件:#includeusingstd:cout;usingstd:endl;/includedefinitionofclassGradeBookfromGradeBook.h#includeGradeBook.h/f
7、unctionmainbeginsprogramexecutionintmain()(/createaGradeBookobject;passacoursenameandinstructornameGradeBookgradeBook(CS101IntroductiontoC+Programming,ProfessorSmith);/displayinitialvalueofinstructorNameofGradeBookobjectcoutgradeBookinstructornameis:gradeBook.getInstructorName()nn;/modifytheinstruct
8、orNameusingsetfunctiongradeBook.setInstructorName(AssistantProfessorBates);/displaynewvalueofinstructorNamecoutnewgradeBookinstructornameis:gradeBook.getInstructorName()nn;/displaywelcomemessageandinstructorsnamegradeBook.displayMessage();return0;/indicatesuccessfultermination/endmain3.12类定义:classAc
9、count(public:Account(int);/constructorinitializesbalancevoidcredit(int);/addanamounttotheaccountbalancevoiddebit(int);/subtractanamountfromtheaccountbalanceintgetBalance();/returntheaccountbalanceprivate:intbalance;/datamemberthatstoresthebalance;/endclassAccount类成员函数:#includeusingstd:cout;usingstd:
10、endl;#includeAccount.h/includedefinitionofclassAccount/AccountconstructorinitializesdatamemberbalanceAccount:Account(intinitialBalance)(balance=0;/assumethatthebalancebeginsat0/ifinitialBalanceisgreaterthan0,setthisvalueasthe/balanceoftheAccount;otherwise,balanceremains0if(initialBalance0)balance=in
11、itialBalance;/ifinitialBalanceisnegative,printerrormessageif(initialBalance0)coutError:Initialbalancecannotbenegative.nbalance)/debitamountexceedsbalancecoutDebitamountexceededaccountbalance.nendl;if(amount=balance)/debitamountdoesnotexceedbalancebalance=balance-amount;/endfunctiondebit/returntheacc
12、ountbalanceintAccount:getBalance()(returnbalance;/givesthevalueofbalancetothecallingfunction/endfunctiongetBalance测试函数:#includeusingstd:cout;usingstd:cin;usingstd:endl;/includedefinitionofclassAccountfromAccount.h#includeAccount.h/functionmainbeginsprogramexecutionintmain()Accountaccount1(50);/creat
13、eAccountobjectAccountaccount2(25);/createAccountobject/displayinitialbalanceofeachobjectcoutaccount1balance:$account1.getBalance()endl;coutaccount2balance:$account2.getBalance()endl;intwithdrawalAmount;/storeswithdrawalamountreadfromusercoutwithdrawalAmount;/obtainuserinputcoutnattemptingtosubtractw
14、ithdrawalAmountfromaccount1balancenn;account1.debit(withdrawalAmount);/trytosubtractfromaccount1/displaybalancescoutaccount1balance:$account1.getBalance()endl;coutaccount2balance:$account2.getBalance()endl;coutwithdrawalAmount;/obtainuserinputcoutnattemptingtosubtractwithdrawalAmountfromaccount2bala
15、ncenn;account2.debit(withdrawalAmount);/trytosubtractfromaccount2/displaybalancescoutaccount1balance:$account1.getBalance()endl;coutaccount2balance:$account2.getBalance()endl;return0;/indicatesuccessfultermination/endmain3.13类定义:#include/programusesC+standardstringclassusingstd:string;/Invoiceclassd
16、efinitionclassInvoicepublic:/constructorinitializesthefourdatamembersInvoice(string,string,int,int);/setandgetfunctionsforthefourdatamembersvoidsetPartNumber(string);/partnumberstringgetPartNumber();voidsetPartDescription(string);/partdescriptionstringgetPartDescription();voidsetQuantity(int);/quant
17、ityintgetQuantity();voidsetPricePerItem(int);/priceperitemintgetPricePerItem();/calculatesinvoiceamountbymultiplyingquantityxpriceperitemintgetInvoiceAmount();private:stringpartNumber;/thenumberofthepartbeingsoldstringpartDescription;/descriptionofthepartbeingsoldintquantity;/howmanyoftheitemsarebei
18、ngsoldintpricePerItem;/priceperitem;/endclassInvoice类成员函数:#includeusingstd:cout;usingstd:endl;/includedefinitionofclassInvoicefromInvoice.h#includeInvoice.h/InvoiceconstructorinitializestheclasssfourdatamembersInvoice:Invoice(stringnumber,stringdescription,intcount,intprice)setPartNumber(number);/st
19、orepartNumbersetPartDescription(description);/storepartDescriptionsetQuantity(count);/validateandstorequantitysetPricePerItem(price);/validateandstorepricePerItem/endInvoiceconstructor/setpartnumbervoidInvoice:setPartNumber(stringnumber)(partNumber=number;/novalidationneeded/endfunctionsetPartNumber
20、/getpartnumberstringInvoice:getPartNumber()(returnpartNumber;/endfunctiongetPartNumber/setpartdescriptionvoidInvoice二setPartDescription(stringdescription)(partDescription=description;/novalidationneeded/endfunctionsetPartDescription/getpartdescriptionstringInvoice:getPartDescription()(returnpartDesc
21、ription;/endfunctiongetPartDescription/setquantity;ifnotpositive,setto0voidInvoice:setQuantity(/ifquantityispositive/setquantitytocount/ifquantityisnotpositive/setquantityto0nquantitycannotbenegative.quantitysetto0.n/endfunctionsetQuantity/getquantityintInvoice:getQuantity()(returnquantity;/endfunct
22、iongetQuantity/setpriceperitem;ifnotpositive,setto0voidInvoice:setPricePerItem(intprice)(if(price0)/ifpriceispositivepricePerItem=price;/setpricePerItemtopriceif(price=0)/ifpriceisnotpositive(pricePerItem=0;/setpricePerItemto0cout0)quantity=count;if(count=0)quantity=0;cout/endif/endif/endfunctionset
23、PricePerltem/getpriceperitemintInvoice二getPricePerItem()returnpricePerItem;/endfunctiongetPricePerItem/calulatesinvoiceamountbymultiplyingquantityxpriceperitemintInvoice二getInvoiceAmount()returngetQuantity()*getPricePerItem();/endfunctiongetInvoiceAmount测试函数:#includeusingstd:cout;usingstd:cin;usings
24、td二endl;/includedefinitionofclassInvoicefromInvoice.h#includeInvoice.h/functionmainbeginsprogramexecutionintmain()/createanInvoiceobjectInvoiceinvoice(12345,Hammer:100,5);/displaytheinvoicedatamembersandcalculatetheamountcoutPartnumber:invoice.getPartNumber()endl;coutPartdescription:invoice.getPartD
25、escription()endl;coutQuantity:invoice.getQuantity()endl;coutPriceperitem:$invoice.getPricePerItem()endl;coutInvoiceamount:$invoice.getInvoiceAmount()endl;/modifytheinvoicedatamembersinvoice.setPartNumber(123456);invoice.setPartDescription(Saw);invoice.setQuantity(-5);/negativequantity,soquantitysett
26、o0invoice.setPricePerItem(10);coutnInvoicedatamembersmodified.nn;/displaythemodifiedinvoicedatamembersandcalculatenewamountcoutPartnumber:invoice.getPartNumber()endl;coutPartdescription:invoice.getPartDescription()endl;coutQuantity:invoice.getQuantity()endl;coutPriceperitem:$invoice.getPricePerItem(
27、)endl;coutInvoiceamount:$invoice.getInvoiceAmount()endl;return0;/indicatesuccessfultermination/endmain3.14类定义:pricePerltemsetto0.n#include/programusesC+standardstringclassusingstd:string;/EmployeeclassdefinitionclassEmployeepublic:Employee(string,string,int);/constructorsetsdatamembersvoidsetFirstNa
28、me(string);/setfirstnamestringgetFirstName();/returnfirstnamevoidsetLastName(string);/setlastnamestringgetLastName();/returnlastnamevoidsetMonthlySalary(int);/setweeklysalaryintgetMonthlySalary();/returnweeklysalaryprivate:stringfirstName;/EmployeesfirstnamestringlastName;/Employeeslastnameintmonthl
29、ySalary;/Employeessalarypermonth;/endclassEmployee类成员函数:#includeusingstd:cout;#includeEmployee.h/Employeeclassdefinition/EmployeeconstructorinitializesthethreedatamembersEmployee二Employee(stringfirst,stringlast,intsalary)setFirstName(first);/storefirstnamesetLastName(last);/storelastnamesetMonthlySa
30、lary(salary);/validateandstoremonthlysalary/endEmployeeconstructor/setfirstnamevoidEmployee二setFirstName(stringname)firstName=name;/novalidationneeded/endfunctionsetFirstName/returnfirstnamestringEmployee二getFirstName()returnfirstName;/endfunctiongetFirstName/setlastnamevoidEmployee二setLastName(stri
31、ngname)lastName=name;/novalidationneeded/endfunctionsetLastName/returnlastnamestringEmployee:getLastName()(returnlastName;/endfunctiongetLastName/setmonthlysalary;ifnotpositive,setto0.0voidEmployee二setMonthlySalary(intsalary)(if(salary0)/ifsalaryispositivemonthlySalary=salary;/setmonthlySalarytosala
32、ryif(salary=0)/ifsalaryisnotpositivemonthlySalary=0;/setmonthlySalaryto0.0/endfunctionsetMonthlySalary/returnmonthlysalaryintEmployee二getMonthlySalary()(returnmonthlySalary;/endfunctiongetMonthlySalary测试函数:#includeusingstd:cout;usingstd:endl;#includeEmployee.h/includedefinitionofclassEmployee/functi
33、onmainbeginsprogramexecutionintmain()(/createtwoEmployeeobjectsEmployeeemployee1(Lisa,Roberts,4500);Employeeemployee2(Mark,Stein,4000);/displayeachEmployeesyearlysalarycoutEmployeesyearlysalaries:endl;/retrieveanddisplayemployee1smonthlysalarymultipliedby12intmonthlySalary1=employee1.getMonthlySalar
34、y();coutemployee1.getFirstName()employee1.getLastName():$monthlySalary1*12endl;/retrieveanddisplayemployee2smonthlysalarymultipliedby12intmonthlySalary2=employee2.getMonthlySalary();coutemployee2.getFirstName()employee2.getLastName() :$monthlySalary2*12endl;/giveeachEmployeea10%raiseemployee1.setMon
35、thlySalary(monthlySalary1*1.1);employee2.setMonthlySalary(monthlySalary2*1.1);/displayeachEmployeesyearlysalaryagaincoutnEmployeesyearlysalariesafter10%raise:endl;/retrieveanddisplayemployee1smonthlysalarymultipliedby12monthlySalary1=employee1.getMonthlySalary();coutemployee1.getFirstName()employee1
36、.getLastName() :$monthlySalary1*12endl;monthlySalary2=employee2.getMonthlySalary();coutemployee2.getFirstName()employee2.getLastName() :$monthlySalary2*12endl;return0;/indicatesuccessfultermination/endmain3.15类定义:classDate(public:Date(int,int,int);/constructorinitializesdatamembersvoidsetMonth(int);
37、/setmonthintgetMonth();/returnmonthvoidsetDay(int);/setdayintgetDay();/returndayvoidsetYear(int);/setyearintgetYear();/returnyearvoiddisplayDate();/displaysdateinmm/dd/yyyyformatprivate:intmonth;/themonthofthedateintday;/thedayofthedateintyear;/theyearofthedate;/endclassDate类成员函数:#includeusingstd:co
38、ut;usingstd:endl;#includeDate.h/includedefinitionofclassDatefromDate.h/Dateconstructorthatinitializesthethreedatamembers;/assumevaluesprovidedarecorrect(reallyshouldvalidate)Date:Date(intm,intd,inty)(setMonth(m);setDay(d);setYear(y);/endDateconstructor/setmonthvoidDate:setMonth(intm)(month=m;if(mont
39、h12)month=1;/endfunctionsetMonth/returnmonthintDate:getMonth()(returnmonth;/endfunctiongetMonth/setdayvoidDate:setDay(intd)(day=d;/endfunctionsetDay/returndayintDate:getDay()(returnday;/endfunctiongetDay/setyearvoidDate:setYear(inty)(year=y;/endfunctionsetYear/returnyearintDate:getYear()(returnyear;
40、/endfunctiongetYear/printDateintheformatmm/dd/yyyyvoidDate:displayDate()(coutmonth/day/yearendl;/endfunctiondisplayDate测试函数:#includeusingstd:cout;usingstd:endl;#includeDate.h/includedefinitionofclassDatefromDate.h/functionmainbeginsprogramexecutionintmain()(Datedate(5,6,1981);/createaDateobjectforMa
41、y6,1981/displaythevaluesofthethreeDatedatamemberscoutMonth:date.getMonth()endl;coutDay:date.getDay()endl;coutYear:date.getYear()endl;coutnOriginaldate:endl;date.displayDate();/outputtheDateas5/6/1981/modifytheDatedate.setMonth(13);/invalidmonthdate.setDay(1);date.setYear(2005);coutnNewdate:endl;date
42、.displayDate();/outputthemodifieddate(1/1/2005)return0;/indicatesuccessfultermination/endmain9.05类定义:#ifndefCOMPLEX_H#defineCOMPLEX_HclassComplex(public:Complex(double=0.0,double=0.0);/defaultconstructorComplexadd(constComplex&);/functionaddComplexsubtract(constComplex&);/functionsubtractvoi
43、dprintComplex();/printcomplexnumberformatvoidsetComplexNumber(double,double);/setcomplexnumberprivate:doublerealPart;doubleimaginaryPart;/endclassComplex#endif类成员函数:#includeusingstd:cout;#includeComplex.hComplex:Complex(doublereal,doubleimaginary)(setComplexNumber(real,imaginary);/endComplexconstruc
44、torComplexComplex:add(constComplex&right)(returnComplex(realPart+right.realPart,imaginaryPart+right.imaginaryPart/endfunctionaddComplexComplex:subtract(constComplex&right)(returnComplex(realPart-right.realPart,imaginaryPart-right.imaginaryPart/endfunctionsubtractvoidComplex:printComplex()(/e
45、ndfunctionprintComplexvoidComplex二setComplexNumber(doublerp,doubleip)(realPart=rp;imaginaryPart=ip;/endfunctionsetComplexNumber测试函数:#includeusingstd:cout;usingstd:endl;#includeComplex.hintmain()(Complexa(1,7),b(9,2),c;cout(realPartimaginaryPart);););/createthreeComplexobjectsa.printComplex();cout+b.
46、printComplex();cout=c=a.add(b);c.printComplex();coutn;/outputobjecta/outputobjectb/invokeaddfunctionandassigntoobjectc/outputobjectca.setComplexNumber(10,1);b.setComplexNumber(11,5);/resetrealPartand/andimaginaryParta.printComplex();cout-b.printComplex();cout=/outputobjecta/outputobjectbc=a.subtract
47、(b);c.printComplex();coutendl;return0;/endmain/invokeaddfunctionandassigntoobjectc/outputobjectcprivateintnumerator;/integernumeratorintdenominator;/integerdenominatorvoidreduction();/utilityfunction;/endclassRational#endif类成员函数:#includeusingstd:cout;#includeRational.h/includedefinitionofclassRation
48、alRational:Rational(intn,intd)(numerator=n;/setsnumeratordenominator=d;/setsdenominatorreduction();/storethefractioninreducedform/endRationalconstructorRationalRational:addition(constRational&a)(Rationalt;/createsRationalobjectt.numerator=a.numerator*denominator;t.numerator+=a.denominator*numera
49、tor;t.denominator=a.denominator*denominator;t.reduction();/storethefractioninreducedformreturnt;/endfunctionadditionRationalRational:subtraction(constRational&s)(Rationalt;/createsRationalobjectt.numerator=s.denominator*numerator;t.numerator-=denominator*s.numerator;t.denominator=s.denominator*d
50、enominator;/storethefractioninreducedformreturnt;/endfunctionsubtractionRationalRational:multiplication(constRational&m)Rationalt;/createsRationalobjectt.numerator=m.numerator*numerator;t.de9.06类定义:#ifndefRATIONAL_H#defineRATIONAL_HclassRational(public:Rational(int=0,Rationaladdition(Rationalsub
51、traction(RationalmultiplicationRationaldivision(voidprintRational();int=1);/defaultconstructorconstRational&);/functionadditionconstRational&);/functionsubtractionconstRational&);/functionmulti.constRational&);/functiondivision/printrationalformatvoidprintRationalAsDouble();/printrat
52、ionalasdoubleformatt.reduction();nominator=m.denominator*denominator;t.reduction();/storethefractioninreducedformreturnt;/endfunctionmultiplicationRationalRational:division(constRational&v)Rationalt;/createsRationalobjectt.numerator=v.denominator*numerator;t.denominator=denominator*v.numerator;t
53、.reduction();/storethefractioninreducedformreturnt;/endfunctiondivisionvoidRational:printRational()if(denominator=0)/validatesdenominatorcoutnDIVIDEBYZEROERROR!n;elseif(numerator=0)/validatesnumeratorcout0;elsecoutnumerator/denominator;/endfunctionprintRationalvoidRational:printRationalAsDouble()cou
54、tstatic_cast(numerator)/denominator;/endfunctionprintRationalAsDoublevoidRational:reduction()intlargest;largest=numeratordenominator?numerator:denominator;intgcd=0;/greatestcommondivisorfor(intloop=2;loop=largest;loop+)if(numerator%loop=0&denominator%loop=0)gcd=loop;if(gcd!=0)(numerator/=gcd;den
55、ominator/=gcd;/endif/endfunctionreduction测试函数:#includeusingstd:cout;usingstd:endl;#includeRational.h/includedefinitionofclassRationalintmain()(/printsrationalobjectc/printsrationalobjectd/addsobjectcandd;setsthevaluetox/printsrationalobjectx/printsrationalobjectxx.printRationalAsDouble();/printsrati
56、onalobjectxasdoublecoutnn;c.printRational();/printsrationalobjectccout-;d.printRational();/printsrationalobjectdx=c.subtraction(d);/subtractsobjectcanddcout=;x.printRational();/printsrationalobjectxcoutn;x.printRational();/printsrationalobjectxcout=;x.printRationalAsDouble();/printsrationalobjectxas
57、doublecoutnn;c.printRational();/printsrationalobjectccoutx;d.printRational();/printsrationalobjectdx=c.multiplication(d);/multipliesobjectcanddcout=;x.printRational();/printsrationalobjectxcoutn;x.printRational();/printsrationalobjectxcout=;Rationalc(2,6),d(7,8),x;/createsthreerationalobjectsc.print
58、Rational();cout+:d.printRational();x=c.addition(d);cout=:x.printRational();coutn;x.printRational();cout=:/printsrationalobjectxasdoubletick();/incrementonesecondprintUniversal();/outputtimeinuniversal-timeformatprintStandard();/outputtimeinstandard-timeformathour;/0-23(24-hourclockformat)minute;/0-5
59、9second;/0-59;/endclassTime#endif类成员函数:#includex.printRationalAsDouble();coutnn;c.printRational();cout/;/printsrationalobjectcd.printRational();x=c.division(d);cout=x.printRational();coutn;x.printRational();cout=/printsrationalobjectd/dividesobjectcandd/printsrationalobjectx/printsrationalobjectxx.p
60、rintRationalAsDouble();/printsrationalobjectxasdoublecoutendl;return0;/endmain9.07类定义:#ifndefTIME_H#defineTIME_HclassTimepublic:public:Time(int=0,/setfunctionsint=0,int=0);/defaultconstructorvoidvoidvoidvoidsetTime(setHour(setMinute(setSecond(int,int,int);/sethour,minute,secondint);/sethour(aftervalidation)int);/setminute(aftervalidation)int);/setsecond(af
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川邮电职业技术学院《生物医学工程课程设计》2024-2025学年第一学期期末试卷
- 社会心理行业市场分析
- 止水带压缩永久变形试验记录
- 大学生职业生涯规划与就业创业指导(实践版)笔试题库 数字推理题;图形推理题
- 第三章 指数运算与指数函数(高效培优单元测试-强化卷)数学北师大版2019必修第一册(解析版)
- 本科生毕业论文(设计)题目审批表1
- 本科毕业论文导师评语(标准版)
- 论文选题指导老师意见
- 学术论文题名、署名和单位地址格式规范标准
- 浅谈汉语汉字对越南语言文字的影响
- 2025年岩棉复合板行业分析报告及未来发展趋势预测
- 2024妊娠期心肺复苏中国急诊专家共识
- 建设单位安全生产教育培训计划
- 医院培训课件:《护理安全之警示教育》
- 眼耳鼻喉科护理质量提升工作计划
- 道路运输安全生产制度范本
- 2025年及未来5年中国人工智能医疗行业发展监测及市场发展潜力预测报告
- 制药企业安全生产培训
- 辽宋夏金元历史课件
- 危重症患者体温管理护理查房
- 宗教政策法规培训班课件
评论
0/150
提交评论