//Sales_item.h
#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include<string>
class Sales_item
{
public:
std::istream &input(std::istream & in);
std::ostream & output(std::ostream & out)const;
double avg_price() const;
bool same_isbn(Sales_item& rhs)const;
Sales_item add(Sales_item& other);
Sales_item::Sales_item() :unit_sale(0), revenue(0){} private:
std::string isbn;//isbn号
int unit_sale;//数量
double revenue;//总价
}; #endif
//Sales_item.cpp
#include "Sales_item.h"
std::istream& Sales_item::input(std::istream & in){
double price;
in >> isbn >> unit_sale >> price;
if (in)
revenue = unit_sale*price;
else
{
unit_sale = 0;
revenue = 0.0;
}
return in;
}
std::ostream& Sales_item::output(std::ostream & out)const{
out << isbn << "\t" << unit_sale << "\t"
<< revenue << "\t" << avg_price();
return out;
} double Sales_item::avg_price() const{
if (unit_sale)
return revenue / unit_sale;
else
return 0.0;
}
bool Sales_item::same_isbn(Sales_item& rhs)const{
return isbn == rhs.isbn;
}
Sales_item Sales_item::add(Sales_item& other){
unit_sale += other.unit_sale;
revenue += other.revenue;
return *this;
}

  

//main.cpp
#include <iostream>
//#include <string>
//#include <vector>
//#include <cctype>
//#include <cstring>
//#include <bitset>
#include "Sales_item.h" using namespace std; int main(int argc, char **argv)
{
Sales_item total, trans;
cout << "Enter some transaction (ctrl + z to end)" << endl;
if (total.input(cin)){//读入第一个交易
while (trans.input(cin))
{
if (total.same_isbn(trans))
total.add(trans);
else
{
total.output(cout);
total = trans;
}
}
//输出最后一个交易
total.output(cout) << endl;
}
else
{
cout << "No data!" << endl;
return -1;
} cout << endl;
system("pause");
return 0;
}

  

  

初识C++的类的更多相关文章

  1. 孤荷凌寒自学python第二十一天初识python的类

    孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...

  2. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  3. 初识python: 类练习 - 老板&员工

    需求: 1.员工具有姓名.年龄.能力值(能力值为100-年龄),可以工作,每工作一次,该员工的能力值-5,创建__str__方法,打印该员工的信息: 2.老板具有投资金额,工作量,员工列表.可以雇佣员 ...

  4. 初识python: 类练习 - 随机数生成

    1.提取指定值之间的指定个数的随机整数. 2.继承生成随机数的类,打印"坐标". 生成随机数类: import random class GetRadndom(object): ' ...

  5. Java_Activiti5_菜鸟也来学Activiti5工作流_之初识常用服务类和数据表(二)

    /** * 代码清单中使用 ProcessEngines类加载默认的流程配置文件(activiti.cfg.xml),再获取各个服务组件的实例. * RepositoryService主要用于管理流程 ...

  6. Java类的继承与多态特性-入门笔记

    相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...

  7. python3学习笔记(2)

    一.面向对象(初识)由类和方法组成,类里面封装了很多功能,根据这个类,可以创建一个这个类的对象,即对象是根据这个类创建的,以后这个对象要使用某个功能的时候就从这个类里面的找.例:str -功能一 -功 ...

  8. python全栈开发 * 19 面向对象 知识点汇总 * 180701

    19 面向对象初识2 一.类的名称空间1.对象的名称空间对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找 ...

  9. 最全Java学习路线图——Java学习指南

    准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本 ...

随机推荐

  1. C#将字符串中间部分替换为*号

    在做商城评价的时候,为了显示评价的真实性同时保护客户的隐私,我们将用户昵称中间部分替换为*(如果是单字则替换为* 两个字符串第二位字符串替换为*)如下图 方法如下: /// <summary&g ...

  2. iOS开发UI篇—UIWindow简单介绍

    iOS开发UI篇—UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...

  3. 做办公用品、文具方面的 B2C 是否有前景呢?

    企乐买现在正在做这方面的事,从市场角度来说需求是有的,客单价和重复购买率都还可以,但是也存在几个致命问题使得施展不开举步维艰: 1.中国特有的市场环境:在美国企业办公用品一般都是网上采购,避免灰色的东 ...

  4. android recyclerview 更新ui

    http://blog.csdn.net/leejizhou/article/details/51179233

  5. megapix-image插件 使用Canvas压缩图片上传 解决手机端图片上传功能的问题

    最近在弄微信端的公众号.订阅号的相关功能,发现原本网页上用的uploadify图片上传功能到手机端有的手机类型上就不能用了,比如iphone,至于为啥我想应该不用多说了吧(uploadify使用fla ...

  6. C++虚函数示例

    和Java不同,CDerive derive语句可以直接生成对象,不需要new关键字 重载虚函数才可以用父类引用调用子类对象,重载普通函数没有效果 #include<iostream> # ...

  7. Certificate、Provisioning Profile、App ID

    关于 Certificate.Provisioning Profile.App ID 的介绍及其之间的关系 2014-03-13 15:26 13416人阅读 评论(1) 收藏 举报   目录(?)[ ...

  8. Android 字体相关总结

    1.Android系统默认支持三种字体,分别为:“sans”, “serif”,  “monospace“  系统缺省方式(经试验缺省采用采用sans): 2.在Android中可以引入其他字体 3. ...

  9. <jsp:include>和<%@ include %>的区别

    使用<%@ include %>指令元素只是将页面的内容静态的包含进来,如果被包含的文件中有JSP代码,则会执行该代码,而不管该文件是否为动态文件. <jsp:include> ...

  10. ThreadPoolExecutor机制探索-我们到底能走多远系列(41)

    我们到底能走多远系列(41) 扯淡: 这一年过的不匆忙,也颇多感受,成长的路上难免弯路,这个世界上没人关心你有没有变强,只有自己时刻提醒自己,不要忘记最初出发的原因. 其实这个世界上比我们聪明的人无数 ...