zoukankan      html  css  js  c++  java
  • Exercice_7.31-练习创建类的成员函数

    这里我要创造一个Sales_item类,用来保存销售记录,要求有以下几个字段:

    1.isbn 商品的ISBN号

    2.units_sold 销量

    3.revenue 总价

    接下来我们需要以下几个函数:

    1.avg_price() 计算单价

    2.same_isbn() 用来判断两个商品是否有相同的isbn

    3.input() 输入销售信息

    4.output() 打印销售信息

    确定了这些以后,我们这样来组织类的代码文件:

    1.将对类的声明放在头文件 Sales_item.h中

    2.将对类成员函数的定义放在源文件 Sales_item.cpp中

    3.将主函数放在 main.cpp中

    我们先来看一下代码,稍后来解释:

    Sales_item.h


    //自定义类Sales_item类的头文件
    #ifndef SALES_ITEM_H_INCLUDED
    #define SALES_ITEM_H_INCLUDED
    #include <iostream>
    #include <string>   //头文件中同样需要引入STL以及声明命名空间
    using namespace std;
    
    //定义一个Sales_item类
    class Sales_item{
    public:
        //定义操作
        double avg_price() const;   //const代表不能修改调用该函数的对象
        bool same_isbn(const Sales_item &rhs) const
        {
            return isbn == rhs.isbn;
        }
    
        istream& input(istream& in);
        ostream&  output(ostream& out) const;
        //构造函数
        Sales_item(): units_sold(0), revenue(0.0) {};
    
        //私有成员
    private:
        std::string isbn;
        unsigned units_sold;
        double revenue;
    };
    #endif // SALES_ITEM_H_INCLUDED
    
    解释一下,成员函数末尾加const表示常量成员函数,即 不能通过该函数改变调用该函数的对象。&代表引用,返回对象的地址。构造函数:与{}之间的部分成为 函数的初始化列表。

    然后是Sales_item.cpp

    #include <Sales_item.h>
    
    using namespace std;
    
    //在类外定义成员函数
    double Sales_item::avg_price() const
    {
        if (units_sold)
            return revenue/units_sold;
        else
            return 0;
    }
    
    //输入一组交易
    istream& Sales_item::input (istream& in)
    {
        double price;
        in >> isbn >> units_sold >> price;
        if (in)
            revenue = units_sold * price;
        else
        {
            units_sold = 0;
            revenue = 0;
        }
        return in;
    
    }
    	
    
    //输出一组交易
    ostream& Sales_item::output(ostream& out) const
    {
        out << isbn << '	' << units_sold << '	' << revenue << '	' << avg_price();
        return out;
    }
        这里的in可以是cin标准输入流,也可以是其他istream类型的输入流,这里的input()函数提示用户输入商品号,单价,和数量,而算出总价。

    最后是main.cpp


    #include <iostream>
    #include <string>
    #include <Sales_item.h>
    using namespace std;
    
    int main()
    {
        Sales_item item;
        //读入并输出一组交易
        cout << "Enter some transactions(Ctrl+z to end):" << endl;
        while (item.input(cin))
        {
            cout << "The transaction is : " << endl;
            item.output(cout);
            cout << endl;
        }
        return 0;
    }
    





  • 相关阅读:
    批量创建账号脚本
    shell 批量创建_备份 mysql 数据库 表
    优化chkconfig
    cut 命令
    Shell for 循环
    while 读取文件内容
    生成随机数
    linux 资源管理
    shell 脚本后台运行知识
    while 语句
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959467.html
Copyright © 2011-2022 走看看