Chinaunix首页 | 论坛 | 博客
  • 博客访问: 310452
  • 博文数量: 214
  • 博客积分: 4258
  • 博客等级: 上校
  • 技术积分: 2021
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-02 09:16
个人简介

http://blog.csdn.net/ly21st http://ly21st.blog.chinaunix.net

文章分类

全部博文(214)

文章存档

2018年(16)

2015年(1)

2014年(2)

2012年(22)

2011年(173)

分类: C/C++

2011-12-01 10:53:03

#include

//#inclde

#include

using namespace std;

 

class Base{

public:

       Base(const string& str,double i):book(str),price(i) {}

       virtual double net_price(int n) const

       {

//               cout<<"调用Base中的函数"<

               return n*price;

       }

      

protected:

        string book;

        double price;

};

 

class DisCount:public Base {

public:

       DisCount(const string& str,double i,int n,double dis):Base(str,i),min(n),discount(dis) {}

       double net_price(int n) const=0;

protected:

        int min;

        double discount;

};

 

class Bulk:public DisCount {

friend istream& operator>>(istream &in,Bulk &bulk);

//friend ostream& operator<<(ostream &out,Bulk &bulk);

public:

      Bulk(const string& str,double i,int n,double dis): DisCount(str,i,n,dis) {}

      double net_price(int n) const

      {

//           cout<<" 调用Bulk中的函数"<

             if (n >= min)

                return n*(1-discount)*price;

             else

                  return n*price;

      }

 

     

};

 

istream& operator>>(istream &in,Bulk &bulk)

{

      int solds;

      cout<<"输入isbnpricesolds、打折至少的数量、折扣:";

      in>>bulk.book>>bulk.price>>solds>>bulk.min>>bulk.discount;

      cout<

      return in;

}

 

int main()

{

//    vector vect;

    vector vect;

    string book;

    double price;

    int min;

    double discount;

    double sum=0;

/*    while(cout<<"输入isbnprice、打折至少的数量、折扣:",

          cin>>book>>price>>min>>discount) {

       vect.push_back(Bulk(book,price,min,discount));

    }

*/

    while(cout<<"输入isbnprice、打折至少的数量、折扣:",

          cin>>book>>price>>min>>discount) {

          Bulk *bulk=new Bulk(book,price,min,discount);

       vect.push_back(bulk);

    }

       for(vector::iterator iter=vect.begin(); iter!=vect.end(); iter++)

       sum+=(*iter)->net_price(100);

 

    cout<<"总售价为:"<

   

    for(vector::iterator iter=vect.begin(); iter!=vect.end(); iter++)

       delete *iter;

   

   

       

/*   

    string str="java";

    Bulk b(str,30,50,0.1);

    cout<<"总费用为:"<

    cout<<"总费用为:"<

*/

    getchar();

    return 0;

}   

 

 

阅读(589) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~