初识C++的类
//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++的类的更多相关文章
- 孤荷凌寒自学python第二十一天初识python的类
孤荷凌寒自学python第二十一天初识python的类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 类是面向对象的编程语言非常重要的概念. 编程语言的进化史中从顺序编程到结构化编程,最后才 ...
- 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象
077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...
- 初识python: 类练习 - 老板&员工
需求: 1.员工具有姓名.年龄.能力值(能力值为100-年龄),可以工作,每工作一次,该员工的能力值-5,创建__str__方法,打印该员工的信息: 2.老板具有投资金额,工作量,员工列表.可以雇佣员 ...
- 初识python: 类练习 - 随机数生成
1.提取指定值之间的指定个数的随机整数. 2.继承生成随机数的类,打印"坐标". 生成随机数类: import random class GetRadndom(object): ' ...
- Java_Activiti5_菜鸟也来学Activiti5工作流_之初识常用服务类和数据表(二)
/** * 代码清单中使用 ProcessEngines类加载默认的流程配置文件(activiti.cfg.xml),再获取各个服务组件的实例. * RepositoryService主要用于管理流程 ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- python3学习笔记(2)
一.面向对象(初识)由类和方法组成,类里面封装了很多功能,根据这个类,可以创建一个这个类的对象,即对象是根据这个类创建的,以后这个对象要使用某个功能的时候就从这个类里面的找.例:str -功能一 -功 ...
- python全栈开发 * 19 面向对象 知识点汇总 * 180701
19 面向对象初识2 一.类的名称空间1.对象的名称空间对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找 ...
- 最全Java学习路线图——Java学习指南
准备篇 适用/适合人群:适合基础小白 目标:掌握JavaSE. ●技术点小节: 1.开发工具的安装配置的介绍 2.JDK安装 3.DOS环境编程 4.Eclipse的安装使用 ●JAVA基础 1.基本 ...
随机推荐
- ios基础篇(二十)—— UIBezierPath绘制
UIBezierPath类可以创建基于矢量的路径,可以定义简单的形状,如椭圆或者矩形,或者有多个直线和曲线段组成的形状. 一.UIBezierPath使用: 1.创建path: 2.添加路径到path ...
- Objective-C( Foundation框架 一 数组(NSMutableArray))
NSMutableArray:可变数组 NSMutableArray是NSArray的子类 创建NSMutableArray数组对象 添加数组元素: // 创建数组 NSMutableArray *a ...
- Jmeter 录制脚本
Jmeter中有2种方法可以录制脚本. 不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包,然后自己写脚本. 无论 ...
- PLSQL开发笔记和小结(转载)
***************************************** PLSQL基本结构 ***************************************** 基本数据 ...
- hadoop运行原理之Job运行(二) Job提交及初始化
本篇主要介绍Job从客户端提交到JobTracker及其被初始化的过程. 以WordCount为例,以前的程序都是通过JobClient.runJob()方法来提交Job,但是现在大多用Job.wai ...
- My Game --线段数据
在背景中用到了一个自定义的类 VectArr : class VectArr { public: VectArr( const Bezier & bz, int conut = 30 ) : ...
- DAO JDBC 学生成绩管理系统
1:student.course类 package JDBCU; public class Student { private String no; private String name; publ ...
- jQuery--index() window.onhashchange
index(): 1. 如果没有参数传给该函数,那么就返回一个整数,为其相对于其兄弟节点的位置. 2. 如果在一个元素集合上调用该函数,并且传入的参数为一个DOM元素或jQuery对象,那么返回一个整 ...
- (转)JAVA实现Windows拨号、IP切换
原理: 通过调用windows下的dos命令实现拨号 PS:连接名称获取不一定都是适用,但苦于知道的dos命令太少了,只能将就这么用着. 如有更好的方法,烦请不吝赐教. public class Co ...
- Android ViewPager Fragment使用懒加载提升性能
Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Androi ...