C++primer习题编写Sales_item类
来源:互联网 发布:visual mac 编辑:程序博客网 时间:2024/05/18 00:03
My Code:
//Sales_item.h#include<iostream>#include<string>using namespace std;class Sales_item{public:Sales_item();//构造函数//或者//Sales_item():units_sold("0-201-70535-x"), units_sold(0.0){};~Sales_item();void cin();//输入函数void cout() const;//输出函数Sales_item &sum(const Sales_item &item);//求和操作,定义为const值可以避免复制、改变原来的值double avg_price();//求平均private:string isbn;//国际标准书号unsigned units_sold;//销售的数量double revenue;//收入};
//Sales_item.cpp#include"Sales_item.h"#ifndef SALES_ITEM_H_H#define SALES_ITEM_H_H#include<iostream>#include<string>Sales_item::Sales_item()//构造函数{isbn = "0-201-70353-x";units_sold = 0;revenue = 0.0;}//或者//Sales_item::Sales_item():units_sold("0-201-70535-x"), units_sold(0.0){};Sales_item::~Sales_item(){}void Sales_item::cin(){std::cin >> isbn;std::cin >> units_sold;std::cin >> revenue;}void Sales_item::cout () const{std::cout << isbn << "\t";std::cout << units_sold << "\t";std::cout << revenue << endl;}Sales_item temporary;Sales_item &Sales_item::sum(const Sales_item &item)//定义为const型引用可以避免复制。改变原来的值{if(isbn == item.isbn){temporary.isbn = isbn;temporary.units_sold = units_sold + item.units_sold;temporary.revenue = revenue + item.revenue;return temporary;}std::cout << "Wrong ISBN ???" << endl;return temporary;}double Sales_item::avg_price(){if(units_sold)return revenue/units_sold;elsereturn 0;}#endif
//main.cpp#include<iostream>#include"Sales_item.h"using namespace std;void main(){Sales_item book;cout << "Enter a Sales_item:" << endl;book.cin();book.cout();Sales_item book2;cout << "Enter another Sales_item:" << endl;book2.cin();cout << "The sum of the same book is:\t";book.sum(book2).cout();cout << "The average price of the same book is:\t";cout << book.sum(book2).avg_price();cout << endl;}
Identifying Code:
//Sales_item.h#ifndef SALESITEM_H#define SALESITEM_H#include<iostream>#include<string>class Sales_item{public://Sales_item对象的操作std::istream& input(std::istream& in);std::ostream& output(std::ostream& out) const;double avg_price() const;bool same_isbn(const Sales_item &rhs) const{return isbn == rhs.isbn;}//默认构造函数徐璈初始化内置类型的数据成员Sales_item::Sales_item(): units_sold(0), revenue(0.0) { };private:std::string isbn;unsigned units_sold;double revenue;};#endif
//Sales_item.cpp//自定义的Sales_item类的实现文件(源文件)#include "Sales_item.h"std::istream& Sales_item::input(std::istream& in){double price;in >> isbn >> units_sold >> price;//检验是否读入成功if(in)revenue = units_sold * price;else{//读入失败:将对象复位为默认状态units_sold = 0;revenue = 0.0;}return in;}std::ostream& Sales_item::output(std::ostream& out) const{out << isbn << "\t" << units_sold << "\t" << revenue << "\t" << avg_price();return out;}double Sales_item::avg_price() const{if(units_sold)return revenue/units_sold;elsereturn 0;}
//main.cpp#include "Sales_item.h"#include <iostream>using namespace std;void main(){Sales_item item;//读入并输出一组交易cout << "Enter some transactions(Ctr+Z to end):" << endl;while(item.input(cin)){cout << "The transaction readed is:" << endl;item.output(cout);cout << endl;}}运行实例:
0-201-78345-x 3 20.000-201-78345-x 2 25.00
终于接触到真正的内容了,开头第一章那个Sales_item.h文件
现在终于开始能够编写了……虽然有点瑕疵,考虑不是很全面,但是终究是开始整体了,加油!!!
- C++primer习题编写Sales_item类
- c++ primer 习题7.31 自己编写Sales_item类
- C Primer 第四版 Sales_item 类
- C++ Primer Sales_item类
- 解析《c++primer》中的Sales_item.h文件
- C++primer中第一章中Sales_item.h的代码
- C++primer第五版课后习题销售类Sales_data的编写
- 【C++ Primer】1.5类简介上Sales_item.h
- c++primer 习题9.12
- c++primer 习题9.35
- c++primer 习题9.36
- c++primer 习题9.18
- c++primer 习题9.20
- c++primer 习题9.42
- c++primer 习题9.43
- c++primer 习题9.26
- C++Primer习题6.12
- C++primer习题6.20
- 使用DbVisualizer划线执行SQL语句的时候提示Selection executes are onlyallowed in DbVisualizer Personel edition
- 输出1000以内所有素数
- 大奖赛计分
- JPEG文件格式
- 表视图的范例
- C++primer习题编写Sales_item类
- python utc gmt 时间 格式转换
- Fedora 17 安装Devstack后打开界面403拒绝访问错误
- Unable to convert string form to class javax.el.ValueExpression的一种解决方案
- C++第十一周任务-等差数列
- 体验三元运算O(∩_∩)O哈!
- linux__framebuffer__认识
- 1-1000的回文数
- 阿姆斯特朗数