如何定义一个Book类具有书名、出版社、单价、作者成员属性,并且对于每个属性提供相应方法?

 我来答
常山赵子龙66
推荐于2019-10-23 · TA获得超过1.4万个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:6.7万
展开全部
  1. 在Book类中,通过构造方法的重载灵活实现成员变量的初始化;

  2. 无参的构造方法;

  3. 只有书名一个参数的构造方法;

  4. 有书名、出版社两个参数的构造方法;

  5. 有书名、出版社、单价三个参数的构造方法;

  6. 有书名、出版社、单价、作者四个参数的构造方法;

  7. 定义一个方法money,求得购买数量的总金额。要求:没有传入数量(即没有参数)时,直接返回一本书的价格;当传入数量(即有参数)时,金额为单价*数量,且数量只能是int型。通过方法重载来实现;

  8. 定义一个display方法,显示Book类的成员信息;

  9. 在测试类中,采用不同的构造方法,实例化5个不同的对象,并分别调用money方法,实现金额的计算。

百度网友1fc36d4
2018-03-21 · TA获得超过3131个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1826万
展开全部
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;

class Book
{
public:
Book():m_name("null"),m_author("null"),
m_publisher("null"),m_price(0)
{
cout<<"无参构造方法..."<<endl;
}

Book(string name):m_name(name),m_author("null"),
m_publisher("null"),m_price(0)
{
cout<<"具有书名一个参数的构造方法..."<<endl;
}

Book(string name,string author)
:m_name(name),m_author(author),
m_publisher("null"),m_price(0)
{
cout<<"具有书名、作者两个参数的构造方法..."<<endl;
}

Book(string name,string author,string publisher)
:m_name(name),m_author(author),
m_publisher(publisher),m_price(0)
{
cout<<"具有书名、作者、出版社三个参数的构造方法..."<<endl;
}

Book(string name,string author,string publisher,double price)
:m_name(name),m_author(author),
m_publisher(publisher),m_price(price)
{
cout<<"具有书名、作者、出版社、单价四个参数的构造方法..."<<endl;
}

~Book(){}

void SetName(string name) {m_name=name;}
string getName() {return m_name;}

void SetPublisher(string publisher) {m_publisher=publisher;}
string getPublisher() {return m_publisher;}

void SetPrice(double price) {m_price=price;}
double getprice() {return m_price;}

void SetAuthor(string author) {m_author=author;}
string getAuthor() {return m_author;}

double money()
{
return m_price;
}

double money(int Count)
{
return m_price*Count;
}

void display()
{
cout<<"《"<<m_name<<"》\t"
<<m_author<<"\t"
<<m_publisher<<"\t"
<<setiosflags(ios::fixed)<<setprecision(1)<<m_price
<<endl<<endl;
}

private:
string m_name;
string m_author;
string m_publisher;
double m_price;
};

int main()
{
Book b1;
b1.display();

Book b2("高级Java网络编程");
b2.display();

Book b3("高级Java网络编程","王五");
b3.display();

Book b4("高级Java网络编程","王五","北京邮电社");
b4.display();

Book b5("高级Java网络编程","王五","北京邮电版社",54);
b5.display();

int n;
cout<<"请输入购买数量:";
cin>>n;
cout<<n<<"本书的金额:"<<b5.money(n);

cin.get();
cin.get();
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式