ImageVerifierCode 换一换
你正在下载:

实验10.docx

[预览]
格式:DOCX , 页数:16 ,大小:62.16KB ,
资源ID:29862000      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29862000.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实验10.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实验10.docx

1、实验10实验10类与对象1(2)请将自己报告部分,文字和程序代码,加粗完成下面实验内容和实验要求。 自测练习 1实验10自测题2 定义一个书籍类Book,其成员数据包括名称name、作者author、出版社press和页数numberOfPages。实现一个打印自身信息的内联成员函数printBook(),将修改出版社的函数setPress()实现为带默认参数值的函数,默认的参数为”清华大学出版社”。生成一个出版社为”高等教育出版社”的Book对象,调用setPress()成员函数将出版社修改为”清华大学出版社”,调用printBook()成员函数打印修改出版社前后的对象信息。 要求给出缺省构

2、造函数和带所有成员数据的构造函数 思路参考教材中“类的成员函数为带默认参数值的函数和内联成员函数”的相关代码将下面程序代码补充完整,并运行#include / 包含头文件iostreamusing namespace std; / 使用命名空间stdclass Bookpublic: Book(); Book(const char* pName, const char* pAuthor,const char* pPress, int pNumberOfPages); void setPress(const char* pPress); void printBook(); Book();priv

3、ate: char* name; char* author; char* press; int numberOfpages; / 类Book的定义;Book:Book()*name;*author;*press;numberOfpages; /Book缺省构造函数的实现Book:Book(const char* pName,const char* pAuthor,const char* pPress, int pNumberOfPages)name= new charstrlen(pName)+1;if(pName!=0)strcpy(name,pName);author= new chars

4、trlen(pAuthor)+1;if(pAuthor!=0)strcpy(author,pAuthor);press= new charstrlen(pPress)+1;if(pPress!=0)strcpy(press,pPress);numberOfpages=pNumberOfPages;/ Book带所有成员数据的构造函数的实现inline void Book:printBook()coutnamename authorauthor presspress numberOfpagesnumberOfpagesendl;/ Book内联成员函数printBook的实现void Book:

5、setPress(const char* pPress=清华大学出版社)press= new charstrlen(pPress)+1;if(pPress!=0)strcpy(press,pPress);/ Book成员函数setPress的实现Book:Book()deletename;deleteauthor;deletepress;int main() Book bk(微机原理与接口技术,姚琳,高等教育出版社,271); bk.printBook(); bk.setPress(); bk.printBook(); return 0; 运行结果 思考题及问题考虑如何将内联成员函数setPr

6、ess实现为另外一种形式(不使用关键字inline)?2实验10自测题3 定义一个工程师类Engineer,其成员数据包括编号id、姓名name和职称position,实现一个打印自身信息的成员函数printEngineer(),定义一个包含4个工程师对象的对象数组,并使用new运算符申请两个匿名对象。调用printEngineer()打印所有对象的信息。 要求给出Engineer类的构造函数和析构函数 思路参考实验10练习题3及教材中“对象数组和对象指针”的相关代码将下面程序代码补充完整,并运行#include / 包含头文件iostreamusing namespace std; / 使用

7、命名空间stdclass Engineerpublic:Engineer(); Engineer (int pId, char* pName, char* pPosition); void setEngineer (int pId, char* pName, char* pPosition); Engineer(); void printEngineer();private: int id; char*name; char*position; /类Engineer的定义;Engineer: Engineer (int pId, char* pName, char* pPosition)id=p

8、Id;name=new charstrlen(pName)+1;if(pName!=0) strcpy(name,pName);position=new charstrlen(pPosition)+1;if(pPosition!=0) strcpy(position,pPosition); /Engineer的构造函数的实现void Engineer: setEngineer (int pId, char* pName, char* pPosition)id=pId;name=new charstrlen(pName)+1;if(pName!=0)strcpy(name,pName);posi

9、tion=new charstrlen(pPosition)+1;if(pPosition!=0)strcpy(position,pPosition); /Engineer的成员函数setEngineer的实现Engineer: Engineer ()deletename;deleteposition;/Engineer的析构函数的实现void Engineer:printEngineer ()coutidid namename positionpositionprintEngineer (); pE2-printEngineer (); delete pE1, pE2; return 0;

10、运行结果 思考题及问题删除Engineer ()构造函数,程序是否还能正常运行?删除delete pE1,pE2;语句,会造成什么后果?程序运行的结果又是什么?3实验10自测题4 定义一个计算机类Computer,其成员数据包括计算机编号id、品牌brand、主频mainFrequency和硬盘大小hardDisk,实现一个打印自身信息的成员函数printComputer()。定义默认构造函数、带所有成员数据的构造函数和拷贝构造函数。设某单位有5个品牌都是“IBM”的计算机,使用带所有成员数据的构造函数生成一个计算机对象,使用拷贝构造函数生成另外4个汽车对象,并通过调用修改编号、主频和硬盘大小

11、的成员函数进行相应调整。最后调用printComputer()打印所有计算机对象的信息。 要求给出Computer类的拷贝构造函数和析构函数 思路参考教材中“拷贝构造函数”的相关代码 将下面程序代码补充完整,并运行#include / 包含头文件iostreamusing namespace std; / 使用命名空间stdclass Computerpublic: Computer (); Computer (int pId,const char* pBrand,float pMainFrequency, float pHardDisk); Computer (Computer & Cp);

12、 Computer (); void printComputer (); void setId(int pId); void setMainFrequency(float pMainFrequency); void setHardDisk(float pHardDisk); private: int id; char* brand; float mainFrequency; float hardDisk; / Computer类的定义;Computer: Computer () coutConstructed without any parameter.endl;Computer: Compu

13、ter (int pId,const char* pBrand,float pMainFrequency, float pHardDisk)id=pId;brand=new charstrlen(pBrand)+1;if(pBrand!=0)strcpy(brand,pBrand);mainFrequency=pMainFrequency;hardDisk=pHardDisk; / Computer带参数的构造函数实现 coutConstructed with all parameters.endl;Computer: Computer (Computer & Cp)id=Cp.id;bran

14、d=new charstrlen(Cp.brand)+1;if(Cp.brand!=0)strcpy(brand,Cp.brand);mainFrequency=Cp.mainFrequency;hardDisk=Cp.hardDisk; / Computer拷贝构造函数的实现 coutCopy Constucted.endl;Computer: Computer () delete brand; coutDeconstructed.endl;void Computer:printComputer () coutid: id, brand: brand, mainFrequency: main

15、Frequency, hardDisk: hardDiskendl;void Computer:setId(int pId) id=pId;void Computer:setMainFrequency(float pMainFrequency)mainFrequency=pMainFrequency; /设置主频值void Computer:setHardDisk(float pHardDisk)hardDisk=pHardDisk; /设置硬盘大小int main() Computer computer1(1001,IBM,1.8f,500.f); Computer computer2=co

16、mputer1; computer2.setId(1002);computer2.setMainFrequency(2.f);computer2.setHardDisk(1000.f); Computer computer3= computer1; computer3.setId(1003);computer3.setMainFrequency(2.5f);computer3.setHardDisk(1500.f); Computer computer4= computer1; computer4.setId(1004);computer4.setMainFrequency(2.f);comp

17、uter4.setHardDisk(1200.f); computer1.printComputer (); computer2.printComputer (); computer3.printComputer (); computer3.printComputer (); computer4.printComputer (); return 0; 运行结果 思考题及问题删除拷贝构造函数,程序还是否能够正常运行?4编程题 题目:创建一个名为Account的类,银行可以使用它表示客户的银行帐户。这个类应该包括一个类型为double的数据成员,表示帐户余额。这个类必须提供一个构造函数,它接受初始

18、余额并用它初始化数据成员。这个构造函数应当确认初始余额的有效性,保证它大于或等于0.否则,余额应当设置为0,并且构造函数必须显示一条错误信息,指出初始余额是无效的。该类还要提供三个成员函数。成员函数credit将一笔金额加到当前余额中。debit将从这个Account中取钱,并保证取出金额不超过此Account的余额。如果不是这样,余额不变,函数打印一条信息,指出“Debit amount exceeded account balace.”。成员函数getBalance将返回当前余额。要求:根据题目要求,写出类和应用程序的设计思路和程序代码。 思路:1类设计:创建一个名为Account的类,包

19、括一个类型为double的数据成员money,表示帐户余额, 余额初始化为0。构造函数Account() credit()2应用程序设计:(主函数中,定义对象及调用对象的成员函数)程序代码:#include using namespace std; class accountpublic: account() id=1; money=10000000; account(int PId,double PMoney); void credit(double PMoney); void debit(double PMoney); void printAccount(); void getBalanc

20、e(double PMoney);private: int id; double money;account:account(int PId,double PMoney) id=PId;if(PMoney0)money=PMoney;elsecout余额初始化失败了哦 endl;money=0;void account:credit(double PMoney)money=money+PMoney;void account:debit(double PMoney)money=money-PMoney;if(money0) getBalance(PMoney); coutDebit amount

21、 exceeded account balace.endl; void account:getBalance(double PMoney) money=money+PMoney; void account:printAccount() coutidid money moneyendl; int main()account a(1,100);a.printAccount();a.debit(100); a.printAccount(); account aa(2,200); aa.printAccount(); aa.credit(200); aa.printAccount(); account aaa(3,300);aaa.printAccount();aaa.printAccount();return 0;运行结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1