C++问题:定义一个BOOK(图书)类
定义一个BOOK(图书)类,在该类定义中包括数据成员:booknumber(书号)、price(价格)和number(存书数量);成员函数:display()显示图书的书...
定义一个BOOK(图书)类,在该类定义中包括
数据成员:booknumber(书号)、price(价格 )和number(存书数量);
成员函数:display()显示图书的书号、价格以及数量;
borrow()将存书数量减1,并显示当前存书数量;
restore()将存书数量加1,并显示当前存书数量。
构造函数
拷贝构造函数
析构函数
在main函数中,要求创建某一种图书对象,并对该图书进行简要的显示、借阅和归还管理。并使用F10以及F11进行调试,观察程序是如何运行的。
三、扩展
在二的基础上,添加一个普通函数(注意:不是成员函数),该函数接收一个BOOK类的对象,函数对该BOOK类对象的总价值(price* number)进行计算,并返回该值。
在main函数中对该普通函数进行调用。 展开
数据成员:booknumber(书号)、price(价格 )和number(存书数量);
成员函数:display()显示图书的书号、价格以及数量;
borrow()将存书数量减1,并显示当前存书数量;
restore()将存书数量加1,并显示当前存书数量。
构造函数
拷贝构造函数
析构函数
在main函数中,要求创建某一种图书对象,并对该图书进行简要的显示、借阅和归还管理。并使用F10以及F11进行调试,观察程序是如何运行的。
三、扩展
在二的基础上,添加一个普通函数(注意:不是成员函数),该函数接收一个BOOK类的对象,函数对该BOOK类对象的总价值(price* number)进行计算,并返回该值。
在main函数中对该普通函数进行调用。 展开
2个回答
展开全部
下面就是该类的定义:
class BOOK{
private:
char bookname[20];
double prize;
int number;
public:
BOOK(char name[]="C++",double _prize=10.0,int _number=20)
BOOK(const BOOK& object){strcpy(this->bookname,object.bookname);
this->prize=object.prize;this->number=object.number;}
:prize(_prize),nuber(_number){strcpy(bookname,name);}
void Display(){cout<<bookname<<endl<<prize<<endl<<number<<endl;}
int Borrow(){if(number>0){number--;this->Display();return 1;}
else {cout<<"can not borrow this book!"<<endl;return 0;}
}
~BOOK(){}
void Restore(){number++;this->Display();}
};
对于要实现第三个功能,还应该在类中再加两个函数(成员函数):
double Getprize(){return prize;}
int Getnumber(){return number;}
同时还应该有一个函数实现这两个变量的相乘:
函数实现如下:(这个函数不是成员函数)
double caculiate(BOOK object)
{
return object.Getprize()*object.Getnumber();
}
具有上面的函数之后应该就可以实现了你所要求的各个功能了!
class BOOK{
private:
char bookname[20];
double prize;
int number;
public:
BOOK(char name[]="C++",double _prize=10.0,int _number=20)
BOOK(const BOOK& object){strcpy(this->bookname,object.bookname);
this->prize=object.prize;this->number=object.number;}
:prize(_prize),nuber(_number){strcpy(bookname,name);}
void Display(){cout<<bookname<<endl<<prize<<endl<<number<<endl;}
int Borrow(){if(number>0){number--;this->Display();return 1;}
else {cout<<"can not borrow this book!"<<endl;return 0;}
}
~BOOK(){}
void Restore(){number++;this->Display();}
};
对于要实现第三个功能,还应该在类中再加两个函数(成员函数):
double Getprize(){return prize;}
int Getnumber(){return number;}
同时还应该有一个函数实现这两个变量的相乘:
函数实现如下:(这个函数不是成员函数)
double caculiate(BOOK object)
{
return object.Getprize()*object.Getnumber();
}
具有上面的函数之后应该就可以实现了你所要求的各个功能了!
展开全部
#include<iostream>
using namespace std;
class BOOK
{
public:
float price;
int booknumber,number;
void display();
void borrow();
void restory();
BOOK(float price,int booknumber,int number)
{
this->price=price;
this->booknumber=booknumber;
this->number=number;
}
BOOK(BOOK& b)
{
price=b.price;
booknumber=b.booknumber;
number=b.number;
}
~BOOK()
{
cout<<"对象结束"<<endl;
}
};
void BOOK::display()
{
cout<<"书的价格为:"<<price<<endl<<"书的书号为:"<<booknumber<<endl<<"书的数量为:"<<number<<endl;
}
void BOOK::borrow()
{
number=number-1;
cout<<"借书后的数量为:"<<number<<endl;
}
void BOOK::restory()
{
number=number+1;
cout<<"还书后书的数量为:"<<number<<endl;
}
int main()
{
float value(BOOK );
BOOK book(30,101,100);
book.display();
book.borrow();
book.restory();
cout<<"书的总价值为"<<value(book)<<endl;
}
float value(BOOK a)
{
return (a.price)*(a.number);
}
using namespace std;
class BOOK
{
public:
float price;
int booknumber,number;
void display();
void borrow();
void restory();
BOOK(float price,int booknumber,int number)
{
this->price=price;
this->booknumber=booknumber;
this->number=number;
}
BOOK(BOOK& b)
{
price=b.price;
booknumber=b.booknumber;
number=b.number;
}
~BOOK()
{
cout<<"对象结束"<<endl;
}
};
void BOOK::display()
{
cout<<"书的价格为:"<<price<<endl<<"书的书号为:"<<booknumber<<endl<<"书的数量为:"<<number<<endl;
}
void BOOK::borrow()
{
number=number-1;
cout<<"借书后的数量为:"<<number<<endl;
}
void BOOK::restory()
{
number=number+1;
cout<<"还书后书的数量为:"<<number<<endl;
}
int main()
{
float value(BOOK );
BOOK book(30,101,100);
book.display();
book.borrow();
book.restory();
cout<<"书的总价值为"<<value(book)<<endl;
}
float value(BOOK a)
{
return (a.price)*(a.number);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询