c++图书类
设定一Book类(1)Book类应包含如下信息:书名,作者(最多4人),出版社,国际标准图书编号,价格,库存数.为了知道作者人数,另有一个信息表示作者数.(2)Book类...
设定一Book类(1)Book类应包含如下信息:书名,作者(最多4人),出版社,国际标准图书编号,价格,库存数.为了知道作者人数,另有一个信息表示作者数.(2)Book类中应该包含实现各种操作的成员函数,例如:针对书名的一般操作有显示书名,设置书名,检查是否有相同的书名.......类似地,针对库存数的一般操作有显示库存数,设置库存数,更新库存数,返回库存数......针对书的作者、出版社、国际标准图书编号、价格,添加类似操作,并添加合适的构造函数和析构函数(如果需要)。
(3)编写使用Book类的程序,并测试Book类对象的各种操作。声明有10个Book类型的元素的数组,执行以下操作:通过书名检索书籍信息、通过国际标准图书编号检索书籍信息、更新库存数。
初学C++,做这个题目做了三天,编译的时候还是一大堆错误,所以想请教一下各位大虾,做出个例子给我参考参考.做的时候麻烦用英文
输入法打,方便拷贝,不要拷过去符号全是全角的,又要改成半角的,好辛苦滴……最好是有注解的,谢谢啦!
很感谢你!这样做也是一个好办法。不过我想在检索的时候是从键盘输入一个书名或ISBN号来检索的,我在你的代码的基础上用指针来做,可是又遇到了我解决不了的问题,不知道你能不能再帮我看看怎么做,当然,其它人有好的办法也可以教一下我,谢谢啦^_^ 展开
(3)编写使用Book类的程序,并测试Book类对象的各种操作。声明有10个Book类型的元素的数组,执行以下操作:通过书名检索书籍信息、通过国际标准图书编号检索书籍信息、更新库存数。
初学C++,做这个题目做了三天,编译的时候还是一大堆错误,所以想请教一下各位大虾,做出个例子给我参考参考.做的时候麻烦用英文
输入法打,方便拷贝,不要拷过去符号全是全角的,又要改成半角的,好辛苦滴……最好是有注解的,谢谢啦!
很感谢你!这样做也是一个好办法。不过我想在检索的时候是从键盘输入一个书名或ISBN号来检索的,我在你的代码的基础上用指针来做,可是又遇到了我解决不了的问题,不知道你能不能再帮我看看怎么做,当然,其它人有好的办法也可以教一下我,谢谢啦^_^ 展开
1个回答
展开全部
#include<string.h>
#include<iostream>
using namespace std;
class Book
{
private:
char title[20]; //书名
char author1[20]; //作者1
char author2[20]; //作者2
char author3[20]; //作者3
char author4[20]; //作者4
char press[20]; //出版社
char isbn[20]; //国际编号
float price; //价格
int stock; //库存
int author_num; //作者人数
public:
void show_title() //显示书名
{
cout << "<" << title << ">" << endl;
}
void set_title(char new_title[20]) //设置书名
{
strcpy(title,new_title);
}
bool check_title(char search[20]) //比较书名是否相同
{
if( strcmp(title,search) == 0)
return true;
else
return false;
}
void show_stock() //显示库存
{
cout<<stock<<endl;
}
void set_stock(int new_stock) //设置库存
{
stock = new_stock;
}
void set_isbn(char new_isbn[20])
{
strcpy(isbn,new_isbn);
}
bool check_isbn(char search[20])
{
if(strcmp(isbn,search)==0)
return true;
else
return false;
}
void show_isbn()
{
cout << isbn <<endl;
}
};
int main()
{
Book book[10];
book[0].set_title("书名0"); book[0].set_isbn("isbn0");
book[1].set_title("书名1"); book[1].set_isbn("isbn1");
book[2].set_title("数据库"); book[2].set_isbn("123456");
book[3].set_title("书名3"); book[3].set_isbn("isbn3");
book[4].set_title("书名4"); book[4].set_isbn("isbn4");
book[5].set_title("书名5"); book[5].set_isbn("isbn5");
book[6].set_title("书名6"); book[6].set_isbn("isbn6");
book[7].set_title("书名7"); book[7].set_isbn("isbn7");
book[8].set_title("书名8"); book[8].set_isbn("isbn8");
book[9].set_title("计算机网络"); book[9].set_isbn("654321");
int i;
for(i=0;i<10;i++)//通过书名检索,名为数据库的书,输出其编号
{
if(book[i].check_title("数据库"))
{
cout << "书名为<数据库>的书,ISBN号为";
book[i].show_isbn();
}
}
for(i=0;i<10;i++)//通过ISBN检索,ISBN为654321的书,输出其书名,并更新库存为99
{
if(book[i].check_isbn("654321"))
{
cout << "ISBN号为654321的书,书名为";
book[i].show_title();
book[i].set_stock(99);//更新库存
}
}
return 0;
}
/************
更新,main:
************/
int main()
{
Book book[10];
book[0].set_title("书名0"); book[0].set_isbn("isbn0");
book[1].set_title("书名1"); book[1].set_isbn("isbn1");
book[2].set_title("数据库"); book[2].set_isbn("123456");
book[3].set_title("书名3"); book[3].set_isbn("isbn3");
book[4].set_title("书名4"); book[4].set_isbn("isbn4");
book[5].set_title("书名5"); book[5].set_isbn("isbn5");
book[6].set_title("书名6"); book[6].set_isbn("isbn6");
book[7].set_title("书名7"); book[7].set_isbn("isbn7");
book[8].set_title("书名8"); book[8].set_isbn("isbn8");
book[9].set_title("计算机网络"); book[9].set_isbn("654321");
int i;
char search[20];
cout << "输入书名检索:";
cin >> search;
Book *p = NULL;
bool flag = 0;
p = book;
for(i=0;i<10;i++)//通过书名检索
{
if(p->check_title(search))
{
cout << "书名为<" << search << ">的书,ISBN号为";
p->show_isbn();
flag = 1;
break;
}
p++;
}
if(!flag)
cout << "书名为<" << search << ">的书未找到" << endl;
cout << "输入ISBN检索:";
cin >> search;
flag = 0;
p = book;
for(i=0;i<10;i++)//通过ISBN检索
{
if(p->check_isbn(search))
{
cout << "ISBN号为" << search <<"的书,书名为";
p->show_title();
p->set_stock(99);//更新库存
flag = 1;
break;
}
p++;
}
if(!flag)
cout << "ISBN号为" << search <<"的书未找到" << endl;
return 0;
}
<运行结果:>
输入书名检索:数据库
书名为<数据库>的书,ISBN号为123456
输入ISBN检索:654321
ISBN号为654321的书,书名为<计算机网络>
#include<iostream>
using namespace std;
class Book
{
private:
char title[20]; //书名
char author1[20]; //作者1
char author2[20]; //作者2
char author3[20]; //作者3
char author4[20]; //作者4
char press[20]; //出版社
char isbn[20]; //国际编号
float price; //价格
int stock; //库存
int author_num; //作者人数
public:
void show_title() //显示书名
{
cout << "<" << title << ">" << endl;
}
void set_title(char new_title[20]) //设置书名
{
strcpy(title,new_title);
}
bool check_title(char search[20]) //比较书名是否相同
{
if( strcmp(title,search) == 0)
return true;
else
return false;
}
void show_stock() //显示库存
{
cout<<stock<<endl;
}
void set_stock(int new_stock) //设置库存
{
stock = new_stock;
}
void set_isbn(char new_isbn[20])
{
strcpy(isbn,new_isbn);
}
bool check_isbn(char search[20])
{
if(strcmp(isbn,search)==0)
return true;
else
return false;
}
void show_isbn()
{
cout << isbn <<endl;
}
};
int main()
{
Book book[10];
book[0].set_title("书名0"); book[0].set_isbn("isbn0");
book[1].set_title("书名1"); book[1].set_isbn("isbn1");
book[2].set_title("数据库"); book[2].set_isbn("123456");
book[3].set_title("书名3"); book[3].set_isbn("isbn3");
book[4].set_title("书名4"); book[4].set_isbn("isbn4");
book[5].set_title("书名5"); book[5].set_isbn("isbn5");
book[6].set_title("书名6"); book[6].set_isbn("isbn6");
book[7].set_title("书名7"); book[7].set_isbn("isbn7");
book[8].set_title("书名8"); book[8].set_isbn("isbn8");
book[9].set_title("计算机网络"); book[9].set_isbn("654321");
int i;
for(i=0;i<10;i++)//通过书名检索,名为数据库的书,输出其编号
{
if(book[i].check_title("数据库"))
{
cout << "书名为<数据库>的书,ISBN号为";
book[i].show_isbn();
}
}
for(i=0;i<10;i++)//通过ISBN检索,ISBN为654321的书,输出其书名,并更新库存为99
{
if(book[i].check_isbn("654321"))
{
cout << "ISBN号为654321的书,书名为";
book[i].show_title();
book[i].set_stock(99);//更新库存
}
}
return 0;
}
/************
更新,main:
************/
int main()
{
Book book[10];
book[0].set_title("书名0"); book[0].set_isbn("isbn0");
book[1].set_title("书名1"); book[1].set_isbn("isbn1");
book[2].set_title("数据库"); book[2].set_isbn("123456");
book[3].set_title("书名3"); book[3].set_isbn("isbn3");
book[4].set_title("书名4"); book[4].set_isbn("isbn4");
book[5].set_title("书名5"); book[5].set_isbn("isbn5");
book[6].set_title("书名6"); book[6].set_isbn("isbn6");
book[7].set_title("书名7"); book[7].set_isbn("isbn7");
book[8].set_title("书名8"); book[8].set_isbn("isbn8");
book[9].set_title("计算机网络"); book[9].set_isbn("654321");
int i;
char search[20];
cout << "输入书名检索:";
cin >> search;
Book *p = NULL;
bool flag = 0;
p = book;
for(i=0;i<10;i++)//通过书名检索
{
if(p->check_title(search))
{
cout << "书名为<" << search << ">的书,ISBN号为";
p->show_isbn();
flag = 1;
break;
}
p++;
}
if(!flag)
cout << "书名为<" << search << ">的书未找到" << endl;
cout << "输入ISBN检索:";
cin >> search;
flag = 0;
p = book;
for(i=0;i<10;i++)//通过ISBN检索
{
if(p->check_isbn(search))
{
cout << "ISBN号为" << search <<"的书,书名为";
p->show_title();
p->set_stock(99);//更新库存
flag = 1;
break;
}
p++;
}
if(!flag)
cout << "ISBN号为" << search <<"的书未找到" << endl;
return 0;
}
<运行结果:>
输入书名检索:数据库
书名为<数据库>的书,ISBN号为123456
输入ISBN检索:654321
ISBN号为654321的书,书名为<计算机网络>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询