




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深 圳 大 学 实 验 报 告 课程名称: 面向对象程序设计 实验名称: 运算符重栽、模板、输入输出流 学院: 计算机与软件学院 专业: 计算机科学与技术 指导教师: 张小绵 报告人: 学号: 班级: 04 实验时间: 2010.6.16 实验报告提交时间: 2010.6.29 1.实验目的:1. 通过实验理解运算符重栽、模板、输入输出流的概念。2. 实验要求:(1) 定义一个商品类CGoods,其中包含商品号(long no)、商品名(char *p_name)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(2)为CGoods类增加一个商品总数(int count)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。做如上修改后,重新实现CGoods类。(3)为CGoods类定义赋值运算符(=)、小于运算符()三个运算符重载函数。(其中大于运算符()试用友元函数模板实现)(4)编写一个主函数来测试上题CGoods类的实现。(1)在上题的基础上,以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()可分别输出一条表示服装和食品用途的信息)。写出CClothes类和CFood类的完整定义。(2)编写一个主函数来测试CClothes类和CFood类usedFor()方法的动态联编性。实验过程1. 源代码:头文件:#ifndef EXP#define EXPclass CGoodsprivate:long no;char *p_name; double price;static int count;public:CGoods(long no_val=0,char *p_name_val=,double price_val=0.00);CGoods(CGoods &c);void set(long no_val,char *p_name_val,double price_val)no=no_val;price=price_val;p_name=new charstrlen(p_name_val)+1;strcpy(p_name,p_name_val);void print() const;int getcount();virtual void usedfor() constcout该商品用于tendl;friend char* getname(CGoods &g);bool operator (const CGoods &c_r) const;bool operator = (const CGoods &c_r) const;template friend operator( const T &r_a, const T &r_b) if(r_a.price r_b.price);return true;return false; CGoods();class CClothes : public CGoodsprivate:char *p_brand;public:CClothes(long no_val=0,char *p_name_val=,double price_val=0.00,char *p_b=)CGoods:set(no_val,p_name_val,price_val);p_brand=new charstrlen(p_b)+1;strcpy(p_brand,p_b);void usedfor() constcout商品品牌:p_brandendl;cout服饰tendlendl;CClothes()delete p_brand;class CFood : public CGoodsprivate:char *p_brand;public:CFood(long no_val=0,char *p_name_val=,double price_val=0.00,char *p_b=)CGoods:set(no_val,p_name_val,price_val);p_brand=new charstrlen(p_b)+1;strcpy(p_brand,p_b);void usedfor() constcout商品品牌为:p_brandendl;cout食品tendlendl;CFood()delete p_brand;#endif 主程序:#includeusing namespace std;#include EXP.hCGoods:CGoods(long no_val,char *p_name_val,double price_val)no=no_val;price=price_val;p_name=new charstrlen(p_name_val)+1;strcpy(p_name,p_name_val);count+;CGoods:CGoods()delete p_name;CGoods:CGoods(CGoods &c)no=c.no;price=c.price;p_name=new charstrlen(c.p_name)+1;strcpy(p_name,c.p_name);count+;void CGoods:print() constcout商品号:tnoendl;cout商品价格:tpriceendl;cout商品名:tp_nameendl;cout商品总数:tcountendl;coutendl;int CGoods:getcount()return count;bool CGoods:operator (const CGoods &c_r) constif(pricec_r.price)return true;return false;bool CGoods:operator = (const CGoods &c_r) constif(price=c_r.price)return true;return false;int CGoods:count=0;char* getname(CGoods &g)return g.p_name;void main()long no_val;double price_val;char *p_name_val;char *p;p=new char20;p_name_val=new char20;CGoods c1(2151415,HTC touch viva,1500);c1.print();CGoods c2(451511,Nokia N97,4700);c2.print();CClothes cc(926525,特步夏季新款,200,特步);cc.print();cc.usedfor();CFood cf(458927,维他奶,4.5,维他奶公司);cf.print()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省红河县2025年上半年事业单位公开遴选试题含答案分析
- 云南省富源县2025年上半年事业单位公开遴选试题含答案分析
- 河北省邯郸县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版社保缴纳与职工工资待遇挂钩补充协议
- 2025年点工合同范本:现代服务业合作协议
- 2025年地产项目合作合同:产业园区合作开发协议
- 2025版塔吊租赁及操作人员资质认证合同
- 2025房产中介合同(含房屋装修监理)
- 2025年智能制造系统集成服务合同
- 2025版大型吊车租赁及工程进度跟踪合同
- 印尼劳动法中文版
- 石油钻采设备与工具专业标准分类
- 中式烹调师高级技师试题与答案
- GB/T 3622-1999钛及钛合金带、箔材
- GB/T 20160-2006旋转电机绝缘电阻测试
- FZ/T 73044-2012针织配饰品
- 全套课件:机械基础
- 组织工程及再生医学基本课件
- 智慧矿山为未来煤矿发展赋能课件
- 旅游相册:宁夏旅游课件
- 药物化学(全套课件)
评论
0/150
提交评论