Sales_item例子

简介: Sales_item.h #ifndef SALES_ITEM_H #define SALES_ITEM_H #include #include using namespace std; class Sales_item { friend ostream& opera...

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=0;
        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 0;
}

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 0;
}

运行结果如下:

 

相关文章
|
5月前
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
41 0
|
11月前
|
SQL 关系型数据库 MySQL
GROUP BY和ORDER BY的区别
GROUP BY和ORDER BY的区别
239 0
|
关系型数据库 MySQL
十一、GROUP_CONCAT的使用
十一、GROUP_CONCAT的使用
402 0
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
|
数据挖掘
SAP MM PO Item Category 内部code的用处?
SAP MM PO Item Category 内部code的用处?
SAP MM PO Item Category 内部code的用处?
when click one item in table Select at least one column to perform the search
when click one item in table Select at least one column to perform the search
when click one item in table Select at least one column to perform the search
|
存储
One Order行项目里Item Category是怎么计算出来的
One Order的行项目里有个字段叫Item Category,我们在行项目里加入一个product后,就会自动带出Item Category来。这个值是怎么计算出来的?
113 0
One Order行项目里Item Category是怎么计算出来的
如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段
假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE: 首先从数据库表VBKD里查找到SERV_DATE修改之前的值为2020年1月1日
如何判断SAP CDS view的association是inner join还是outer join实现的
如何判断SAP CDS view的association是inner join还是outer join实现的
116 0
如何判断SAP CDS view的association是inner join还是outer join实现的
|
Web App开发 开发者
C4C Product Price List的模型中和有效期相关的两个字段
C4C Product Price List的模型中和有效期相关的两个字段