Sales_item.h

#ifndef SALES_ITEM_H
#define SALES_ITEM_H
#include<iostream>
#include<string>
using namespace std; class Sales_item
{
friend ostream& operator<<(ostream &os,const Sales_item &);
friend istream& operator>>(istream &is,Sales_item &); private:
string bookno;
unsigned units_sold=;
double revenue=0.0;
public:
string isbn()const
{
return this->bookno;
}
double avg_price() const;
Sales_item& operator=(const Sales_item &);
Sales_item& operator+(const Sales_item &);
Sales_item& operator+=(const Sales_item &);
};
#endif // SALES_ITEM_H

Sales_item.cpp

#include "Sales_item.h"

istream& operator>>(istream &in,Sales_item &s)
{
double price;
in>>s.bookno>>s.units_sold>>price;
if(in)
s.revenue=s.units_sold*price;
else
s=Sales_item();
return in;
} ostream& operator<<(ostream &out,const Sales_item &s)
{
out<<s.isbn()<<" "<<s.units_sold<<" "<<s.revenue<<" "<<s.avg_price()<<endl;
return out;
} double Sales_item::avg_price() const
{
if(units_sold)
return revenue/units_sold;
else
return ;
} Sales_item& Sales_item::operator=(const Sales_item &s)
{
units_sold=s.units_sold;
revenue=s.revenue;
isbn()=s.isbn();
return *this;
}
Sales_item& Sales_item::operator+(const Sales_item &s)
{
if(this->isbn()==s.isbn())
{
units_sold+=s.units_sold;
revenue+=s.revenue;
}
return *this;
} Sales_item& Sales_item::operator+=(const Sales_item &s)
{
units_sold+=s.units_sold;
revenue+=s.revenue;
return *this;
}

useSales_item.cpp

#include"Sales_item.h"

int main()
{
Sales_item book;
cin>>book;
cout<<book<<endl;
Sales_item item1,item2;
cin>>item1>>item2;
cout<<item1+item2<<endl;
return ;
}

运行结果如下:

Sales_item例子的更多相关文章

  1. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  2. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  3. REGEX例子

    作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...

  4. CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子

    CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...

  5. 简单例子了解View的事件分发

    什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...

  6. 简单的例子了解自定义ViewGroup(一)

    在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...

  7. kqueue例子

    网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...

  8. 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子

     通过这个案例就知道为什么不要把原生的html放数据库了  常见的几种转码  常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...

  9. ElasticSearch 5学习(5)——第一个例子(很实用)

    想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...

随机推荐

  1. C# 替换文本文件中的某一行

    C# 替换文本文件中的某一行 (要求此文件存在) /// <summary> /// LineIndex 表示新的内容所在的行位置 /// </summary> /// < ...

  2. UILabel 自适应大小

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStylealloc]init]; paragraphStyle.lineB ...

  3. MockMvc和Mockito之酷炫使用

    由于项目中需要添加单元测试,所以查询之后发现Mockito非常适合现在的web项目. 首先需要添加pom依赖: <dependency> <groupId>junit</ ...

  4. 用duilib制作仿QQ2013动态背景登录器

    转载请说明原出处,谢谢~~ 在上一篇博客里,我修复了CActiveXUI控件的bug,从而可以使用flash动画来制作程序的背景,这篇博客说明一下应该怎么使用CActiveXUI控件创建透明无窗体的背 ...

  5. android测试本地服务调试流程

    我今天调试的整个过程 1,安卓发现连不上本地的tomcat 2,使用浏览器直接尝试,发现可以连上 3,怀疑是安卓APP和浏览器访问有差异,后上网搜索不到APP,只有浏览器尝试       再不就是改I ...

  6. 【跟我一起学Python吧】Python的包管理工具

    刚开始学习Python时,在看文档和别人的blog介绍安装包有的用easy_install, setuptools, 有的使用pip,distribute,那麽这几个工具有什么关系呢,看一下下面这个图 ...

  7. 2.2……测试

    概述 黑盒测试: 是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的.   白盒测试: 又称结构测试.透明盒测试.逻辑驱动测试或基于代码的测试.   单元测试: 又称模块测试,是开发者编写的 ...

  8. php pdo(二)

    定义:PDO(PHP Data Object)是PHP5才支持的扩展,它为PHP访问各种数据库定义了一个轻量级的.一致性的接口. PDO是PHP5中的一个重大功能,PHP6中将只默认使用PDO来处理数 ...

  9. 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子

    一:自定义实现InputFormat *数据源来自于内存 *1.InputFormat是用于处理各种数据源的,下面是实现InputFormat,数据源是来自于内存. *1.1 在程序的job.setI ...

  10. 深入理解jQuery插件开发(转)

    转自:http://blog.jobbole.com/30550/ 如果你看到这篇文章,我确信你毫无疑问会认为jQuery是一个使用简便的库.jQuery可能使用起来很简单,但是它仍然有一些奇怪的地方 ...