解决过一个类似的~
如下:
#include "iostream"
#include "string"
using namespace std;
class obj
{
public:
string name;
string num;
public:
obj(){name="0";num="0";}
obj(string x,string y)
{
name=x;
num=y;
}
};
class book :public obj
{
public:
string writer;
public:
book():obj(){writer="0";}
};
class reader:public obj
{
private:
book b[5];
const int MAX;
static int num;
public:
reader(string x,string y):obj(x,y),MAX(5){}
int rentbook();
void print();
};
int reader:: num =0 ;
int reader:: rentbook()
{
int i;
cout<<"输入选项:0、退出,1、借书,2、还书 "<
while(cin>>i)
{
switch(i)
{
case 0:
cout<<"!!!"<
case 1:
if(num == 4) cout<<"已经借满5本"<
{
string na ,nu,author;
cout<<"输入所借书的书名:";
cin>>na;
cout<<"输入所借图书的编号:";
cin>>nu;
cout<<"输入图书的作者:";
cin>>author;
b[num].name = na;
b[num].num = nu;
b[num].writer = author;
num++;
}
break;
case 2:
if(num == 0) cout<<"没有书籍可还!"<
{
string na ;
cout<<"输入所还书的书名";
cin>>na;
int i;
for(i=0;i
{ b[i].name ="0";b[i].num ="0";b[i].writer="0";cout<<"还书成功"<
B:break;
default :
cout<<"please input the right number!!"<
}
cout<<"输入选项:0、退出,1、借书,2、还书 "<
}
void reader:: print()
{
int i;
cout<<"姓名:"<
cout< }
int main()
{reader a("wang","1234");
a.rentbook();
a.print();
}
这个有很多实现方法,参考程序:
#include
#include
using namespace std;
class object
{
protected:
char name[20]; //继承到图书中是代表书名,继承到读者 代表 读者姓名
int no; //继承到图书中代表图书编号,继承到读者代表借书证编号,“按道理说这里是字符型较好”
public:
object(){}
object(char na[],int n)
{
strcpy(name,na);
no=n;
}
void show()
{
cout<
};
class reader;//类的前向声明
class book:protected object
{
private:
char author[10];//作者
public:
book(){};
friend class reader;//reader为book的友元类,这样便于reader类访问book类的数据成员,减轻代码负担
};
class reader:protected object
{
private:
int const MAX;//借阅图书的最大数量
static int num;//记录读者借阅的图书数量
book b[15];
public:
reader(char na[],int n) :object(na,n),MAX(5){}
void rentbook()//借书
{ char name[20];
int n;
char au[10];
int i=0;
cout<<"输入数字 1 借书 ,输入 0 停止借书:"<
while(cin>>select)
{
if(select==0||i==MAX) break;
cout<<"请输入图书书名:"<
cout<<"请输入图书编号:"<
cout<<"请输入图书作者:"<
strcpy(b[i].name,name);
no=n;
strcpy(b[i].author,au);
num++;
i++;
cout<<"输入数字 1 借书 ,输入 0 停止借书:"<
}
void showread()//信息输出
{
int i;
cout<<"读者信息为:\n\n"<<"姓名\t"<<"证件号码\t\n";
show();
cout<<"\n借阅信息为:\n\n";
cout<<"书名\t"<<"编号\t\t"<<"作者\n";
for(i=0;i
};
int reader::num=0;
int main()
{
reader r("王建",800201);
r.rentbook();
r.showread();
}
/*主函数 或者改为:
int main()
{
char name[10]; int number;
cout<<"请输入读者姓名:\n";
cin>>name;
cout<<"请输入借书证号:\n";
cin>>number;
reader r(name,number);
r.rentbook();
r.showread();
}
*/