一、问题及代码
作 者:杨振宇
完成日期:2017 年 4月 24日
版 本 号:v1.0
对任务及求解方法的描述部分:编写一个Book类,包含name(书名)、writer(作者)、publicer(出版社)、price(价格)、number(数量)、NO(书号)等数据成员。定义成员函数setBook,用来给书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借书和还书业务,定义成员函数print用于输出—有关书的信息,定义set_NO与get_NO来实现修改类对象的书号与获得类对象的书号。
输入描述:输入书名、作者、出版社、价格、数量、书号、借书以及还书的数量、修改的书号
问题描述:自定义成员函数,并对函数进行编辑
程序输出:书名、作者、出版社、价格、数量、书号
问题分析:需要有多个成员函数进行相互协调工作
算法设计:设计并编辑多个成员函数,对不同的情况进行操作和修改
#include<iostream>
#include<string>
using namespace std;
class Book
{
public:
void setBook();
void borrow();
void restore();
void print();
void set_NO();
void get_NO();
void numb();
private:
char name;
char writer;
char publicer;
double price;
double number;
double NO;
};
void Book::setBook()
{
char n1,n2,n3;
double m1,m2,m3;
cout<<"请输入书名,作者,出版社,价格,数量,书号:";
cin>>n1>>n2>>n3>>m1>>m2>>m3;
name=n1,writer=n2,publicer=n3,price=m1,number=m2,NO=m3;
}
void Book::borrow()
{
double x;
cout<<"请输入借书的值(没有请填写0,有请一本一本填写):";
cin>>x;
if(x>0)
{
number-=x;
Book::numb();
}
}
void Book::restore()
{
double y;
cout<<"请输入还书的值(没有请填写0,有请一本一本填写):";
cin>>y;
if(y>0)
{
number+=y;
Book::numb();
}
}
void Book::print()
{
cout<<"书名:"<<name<<endl;
cout<<"作者:"<<writer<<endl;
cout<<"出版社:"<<publicer<<endl;
cout<<"价格:"<<price<<endl;
cout<<"数量:"<<number<<endl;
cout<<"书号:"<<NO<<endl;
}
void Book::set_NO()
{
double m;
cout<<"预将书号修改为(没有请填写0):";
cin>>m;
if(m!=0)
{
number=m;
Book::get_NO();
}
}
void Book::get_NO()
{
cout<<"书号为:"<<number<<endl;
}
void Book::numb()
{
cout<<"书的数量:"<<number<<endl;
}
int main()
{
Book std;
std.setBook();
std.print();
std.get_NO();
std.borrow();
std.restore();
std.set_NO();
return 0;
}
二、运行结果
三、心得体会
第一次进行类和对象方面的程序编辑,花了比较长的时间,一开始错误也比较多,但是增加了对于类和对象方面程序编辑的熟练度。
四、知识点总结
了解类的构成,对成员函数进行定义,对私有类型数据进行赋值,明白对象的定义、对象中成员的访问。