C图书管理系统代码.docx
一些基本的功能:
1:添加图书以及图书编号
2:能够实行基本的借书还还书的功能。
3: 删除图书信息等
#includeiostream#includeiomanip#includestring
#includefstream//输入/输出文件流类
usingnamespacestd;
constintMaxr=100;//最多的读者constintMaxb=100;//最多的图书
constintMaxzf=5;//每位读者最多借五本书
//读者类,实现对读者的信息的描述
classReader
{
private:
inttag; //删除标记1:已删0:未删intno; //读者编号
charname[10]; //读者姓名intzfbook[Maxzf];//所借图书
public:Reader(){}
char*getname(){returnname;} //获取姓名
intgettag(){returntag;} //获取删除标记intgetno(){returnno;} //获取读者编号voidsetname(charna[]) //设置姓名
{
strcpy(name,na);
-1-
-1-
PAGE
PAGE10
}voiddelbook(){ tag=1; }//设置删除标记1:已删0:未删voidaddreader(intn,char*na)//增加读者{tag=0;no=n;strcpy(name,na);for(inti=0;iMaxzf;i++)zfbook[i]=0;}voidzfrowbook(intbookid)//借书操作{for(inti=0;iMaxzf;i++){if(zfbook[i]==0){zfbook[i]=bookid;return;}}}
}
voiddelbook(){ tag=1; }//设置删除标记1:已删0:未删
voidaddreader(intn,char*na)//增加读者
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;iMaxzf;i++)
zfbook[i]=0;
}
voidzfrowbook(intbookid)//借书操作
{
for(inti=0;iMaxzf;i++)
{
if(zfbook[i]==0)
{
zfbook[i]=bookid;
return;
}
}
}
intretbook(intbookid)//还书操作
{
for(inti=0;iMaxzf;i++)
{
if(zfbook[i]==bookid)
{
zfbook[i]=0;
return1;
}}return0;}voiddisp()//读出读者信息{coutsetw(5)nosetw(10)name借书编号:[;for(inti=0;iMaxzf;i++)if(zfbook[i]!=0)coutzfbook[i]|;cout]endl;
}
}
return0;
}
voiddisp()//读出读者信息
{
coutsetw(5)nosetw(10)name借书编号:[;
for(inti=0;iMaxzf;i++)
if(zfbook[i]!=0)
coutzfbook[i]|;
cout]endl;
}
};
//读者类库,实现建立读者的个人资料
classRDatabase
{
private:
inttop;
//读者记录指针
Readerread[Maxr];//读者记录
public:
RDatabase() //构造函数,将reader.txt读到read[]中
{
Readers;top=-1;
fstreamfile(reader.txt,ios::in);//打开一个输入文件
while(1)
{
file.read((char*)s,sizeof(s));
if(!file)break;top++;read[top]=s;
}
file.close(); //关闭reader.txt
}
voidclear()//删除所有读者信息
{
top=-1;
}
intaddreader(intn,char*na)//添加读者时先查找是否存在
{
Reader*p=query(n);if(p==NULL)
{
top++;read[top].addreader(n,na);return1;
}
return0;
}
Reader*query(intread