c++ primer 习题 15
2010-06-10 16:22
288 查看
#include <conio.h>
#include <iostream.h>
#include <string>
class item_base
{
public:
item_base(const std::string & book = "" ,double sale_price= 0.0):isbn(book),price(sale_price){}
virtual ~item_base(){}
std::string book()const {return isbn;}
virtual double net_price(std::size_t n){return n*price ;}
protected:
double price;
private:
std::string isbn;
};
class bulk_item:public item_base
{
public:
double net_price(std::size_t)const;
private:
std::size_t min_number;
double discount;
};
double bulk_item::net_price(std::size_t number)const
{
if(number>=min_number)
{
return number*discount;
}
else
{
return number*price;
}
}
class dls_item : public item_base
{
public:
dls_item(const std::string & book = "",double sale_price = 0.0,int min_num= 10,
int max_num=100,double dis_count=0.2 ):item_base(book,sale_price),min_number(min_num),
max_number(max_num),discount(dis_count){}
double net_price(std::size_t)const;
private:
int min_number;
int max_number;
double discount;
};
double dls_item::net_price(std::size_t number) const
{
if(number > max_number)
{
return (number-max_number)*price+max_number*(1-discount)*price;
}
else if(number<=max_number && number>= min_number)
{
return number*(1-discount)*price;
}
else
{
return number*price;
}
}
int main()
{
item_base temp("hehh",12.0);
getch();
return 0;
}
#include <iostream.h>
#include <string>
class item_base
{
public:
item_base(const std::string & book = "" ,double sale_price= 0.0):isbn(book),price(sale_price){}
virtual ~item_base(){}
std::string book()const {return isbn;}
virtual double net_price(std::size_t n){return n*price ;}
protected:
double price;
private:
std::string isbn;
};
class bulk_item:public item_base
{
public:
double net_price(std::size_t)const;
private:
std::size_t min_number;
double discount;
};
double bulk_item::net_price(std::size_t number)const
{
if(number>=min_number)
{
return number*discount;
}
else
{
return number*price;
}
}
class dls_item : public item_base
{
public:
dls_item(const std::string & book = "",double sale_price = 0.0,int min_num= 10,
int max_num=100,double dis_count=0.2 ):item_base(book,sale_price),min_number(min_num),
max_number(max_num),discount(dis_count){}
double net_price(std::size_t)const;
private:
int min_number;
int max_number;
double discount;
};
double dls_item::net_price(std::size_t number) const
{
if(number > max_number)
{
return (number-max_number)*price+max_number*(1-discount)*price;
}
else if(number<=max_number && number>= min_number)
{
return number*(1-discount)*price;
}
else
{
return number*price;
}
}
int main()
{
item_base temp("hehh",12.0);
getch();
return 0;
}
相关文章推荐
- c++ primer 习题 15
- c++ primer 习题 15
- c++ primer 习题 15
- 《C++ Primer》第五版课后习题解答_第五章(3)(15-19)
- 《C++ Primer》第五版课后习题解答_第六章(2)(08-15)
- C++ primer 习题8-3 15 16
- C++ Primer(第五版)读书笔记 & 习题解答 --- Chapter 3
- C++ Primer 第9章 习题9.32
- C++ Primer 第9章 习题9.41
- C++ Primer 第10章 习题10.23
- C++ Primer 第10章 习题10.38
- C++ Primer 第11章 习题11.9
- C++ Primer 第4章 习题4.34
- 《C++ Primer》习题9.20的问题
- C++ primer习题笔记第4章
- Python-习题11~15
- C++ primer 习题笔记第5~6章
- C++ Primer(第四版) 课后习题3.14 vector单词转大写
- C++ Primer 笔记+习题解答(五)
- 《C++ Primer 4 Answer Book》 整理[15]——第16章 模板与泛型编程