




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深 圳 大 学 实 验 报 告 课程名称: 面向对象程序设计 实验名称: 运算符重栽、模板、输入输出流 学院: 计算机与软件学院 专业: 计算机科学与技术 指导教师: 张小绵 报告人: 学号: 班级: 04 实验时间: 2010.6.16 实验报告提交时间: 2010.6.29 1.实验目的:1. 通过实验理解运算符重栽、模板、输入输出流的概念。2. 实验要求:(1) 定义一个商品类CGoods,其中包含商品号(long no)、商品名(char *p_name)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(2)为CG
2、oods类增加一个商品总数(int count)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。做如上修改后,重新实现CGoods类。(3)为CGoods类定义赋值运算符(=)、小于运算符(<)和大于运算符(>)三个运算符重载函数。(其中大于运算符(>)试用友元函数模板实现)(4)编写一个主函数来测试上题CGoods类的实现。(1)在上题的基础上,以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_br
3、and)和表示用途的成员函数(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
4、_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<<"该商品用于t"<<endl;friend char* getnam
5、e(CGoods &g);bool operator < (const CGoods &c_r) const;bool operator = (const CGoods &c_r) const;template <class T>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
6、*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_brand<<endl;cout<<"服
7、饰t"<<endl<<endl;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);v
8、oid usedfor() constcout<<"商品品牌为:"<<p_brand<<endl;cout<<"食品t"<<endl<<endl;CFood()delete p_brand;#endif 主程序:#include<iostream>using namespace std;#include "EXP.h"CGoods:CGoods(long no_val,char *p_name_val,double price_val)no=no_va
9、l;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<<"商品号:t"<<no<&
10、lt;endl;cout<<"商品价格:t"<<price<<endl;cout<<"商品名:t"<<p_name<<endl;cout<<"商品总数:t"<<count<<endl;cout<<endl;int CGoods:getcount()return count;bool CGoods:operator <(const CGoods &c_r) constif(price<c_r.pri
11、ce)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,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属工艺品设计中的消费者行为研究考核试卷
- 通信设备在社区健康管理中的应用考核试卷
- LM385呼吸灯技术解析
- 精神疾病的预防与控制
- 院前急救的转运与交接
- Pentoxifylline-d3-BL-191-d-sub-3-sub-生命科学试剂-MCE
- 湖北省2025年中考第三次模拟考试物理试卷(含答案)
- 国家开放大学电大教育学形考任务1234答案
- 高血压肾病的临床观察
- 2025下半年石油石化行业油价回归中性区间拥抱景气改善的投资机会
- 肿瘤患者化疗的健康教育
- 2025年双方协商确立房产产权归属协议
- 香料限公司年产香精11000吨建设项目环评资料环境影响
- 产业创新生态协同机制-深度研究
- 2025年中国PCR仪市场全面调研及行业投资潜力预测报告
- 国际共产主义运动史知到智慧树章节测试课后答案2024年秋聊城大学
- 2025年医院信息科数据安全管理计划
- 智能工厂整体解决方案
- 2025中智集团招聘重要岗位高频重点提升(共500题)附带答案详解
- 水暖维修培训课件
- 临床路径变异分析
评论
0/150
提交评论