图书管理系统代码Word文件下载.docx
《图书管理系统代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统代码Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
close();
}
voidaddbooks()//往图书数据库中加图书
bookbk;
intno;
charbname[20];
cout〈<
”请输入书号:
"
;
cin〉>
no;
endl<
<
请输入书名:
;
cin>
>
bname;
endl;
bk.b_flag=1;
bk.addbook(no,bname);
top++;
btarray[top]=bk;
return;
intfindbooks(intsuffix)//查找图书,这个函数用于借书这个操作,suffix是数组下标
intno;
cout<
〈”请输入书号:
”;
〉no;
for(inti=0,i〈=top;
if(btarray[i].no==no&
&
btarray[i].b_del==1)
{
returni;
}
return-1;
intfindbooks()//查找图书,这个函数用于图书维护
charvalue[6];
〈"
请输入书号:
for(inti=0;
i〈=top;
no==no&
&btarray[i]。
{
if(btarray[i]。
b_flag==1)strcpy(value,”在架"
);
if(btarray[i].b_flag==2)strcpy(value,”借出"
cout<
〈”书号:
”<
btarray[i]。
no<
书的名称:
〈btarray[i]。
name<
图书状态:
〈<
value〈〈endl;
returni;
return-1;
voideditbooks()//编辑图书
intcur;
cur=findbooks();
if(cur==-1)
cout<
没有这本书”<
return;
”书号:
btarray[cur].no〈〈”书的名称:
”〈<
btarray[cur].name<
请修改数据:
〈endl〈〈”书的名称:
〉btarray[cur]。
name;
voiddelbooks()//删除图书
cur=findbooks();
if(cur==—1)
if(btarray[cur]。
b_flag==2)//删除时判断图书是否借出
cout〈<
”该图书已经借出,请在归还后删除。
endl;
btarray[cur].b_del=2;
voidlistbooks()//显示全部图书
charvalue[6];
if(btarray[i].b_flag==1)strcpy(value,"
在架"
);
if(btarray[i]。
b_flag==2)strcpy(value,”借出”);
书号:
〈btarray[i]。
no〈〈"
”〈〈btarry[i].name〈<
”图书状态:
};
classbook
public:
//图书编号
charname[20];
//图书名称
intb_flag;
intb_del;
book(){}
voidsetno(intn)
no=n;
intgetno()
returnno;
//返回图书编号值
voidsetname(charna[])
strcpy(name,na);
//字符串复制
}
char*getname()
returnname;
//返回图书名称
voidborbook()
b_flag=2;
//借书标志
voiddelbook()
b_del=2;
//删除标志
voidaddbook(intno,charna[])//增加图书功
setno(no);
setname(na);
b_flag=1;
b_del=1;
;
//读者类
classreader
public:
intno;
charname[20];
intr_del;
//1存在,2删除
intr_bor;
//1借过书,2没有借书
bookbrbook;
public:
voidaddreader(intid,charna[])//增加读者
no=id;
strcpy(name,na);
r_del=1;
}
voidsetbrbook(bookbt)//设置借书标记
brbook=bt;
bookgetbrbook()
returnbrbook;
//返回借书信息
};
//读者数据库类
classrdatabase
readerrdarray[BMAX];
inttop;
public:
rdatabase()
readerrd;
top=-1;
fstreamfile("
reader.txt"
:
while
(1)
{
file.read((char*)&rd,sizeof(rd));
if(!
top++;
rdarray[top]=rd;
}
file.close();
~rdatabase()//析构函数
fstreamfile(”reader。
txt"
ios:
out);
for(inti=0;
if(rdarray[i]。
r_del==1)
file。
write((char*)&rdarray[i],sizeof(rdarray[i]));
}
file。
voidaddreaders()
readerrd;
intno;
charrname[20];
cout〈〈”请输入学号:
cin>
〉no;
cout〈<
请输入姓名:
”;
〉rname;
cout〈〈endl;
rd,addreader(no,rname);
//添加读者
rd。
r_bor=2;
top++;
rdarray[top]=rd;
return;
intfindreaders(intsuffix)//查找读者,这个函数用于借书还书操作。
参数suffix是数组下标
intno;
”请输入学号:
cin〉〉no;
if(rdarray[i]。
no==no&&rdarray[i].r_del==1)
{
returni;
}
}
return—1;
intfindreaders()//查找读者,这个函数用于读者维护操作
charvalue[3];
请输入学号:
cin〉〉no;
for(inti=0;
i<
=top;
{
no==no&&
rdarray[i]。
{
if(rdarray[i]。
r_bor==1)strcpy(value,"
借”);
r_bor==2)strcpy(value,"
无"
cout<
学号:
”〈〈rdarray[i]。
”姓名"
〈rdarray[i].name〈〈"
是否借书:
〈value<
returni;
return-1;
voideditreaders()//编辑读者信息
intcur;
cur=findreaders();
if(cur==-1)
cout〈〈"
没有该学生”〈<
return;
endl〈〈”姓名:
〉rdarray[cur].name;
voiddelreaders()//删除读者,读者如果借书要还书后才能删除
intcur;
if(rdarray[cur].r_del==1)
cout〈<
”该用户借了图书,请在还书后再删除"
return;
rdarray[cur]。
r_del=2;
voidlistreaders()//显示所有读者
charvalue[3];
if(rdarray[i].r_del==1)
if(rdarray[i].r_bor==1)strcpy(value,”借"
if(rdarray[i].r_bor==2)strcpy(value,"
”〈〈rdarray[i].no<
姓名:
rdarray[i]。
name〈<
”是否借书:
”〈〈value<
}
};
voidbookjiemian()//图书维护子菜单
cout〈〈”|--—-—------———-——-|”<
〈endl;
|图书维护|"
〈〈endl;
cout〈〈"
|
(1)增加|”〈<
|
(2)更改|”〈<
|(3)删除|"
|(4)查找|"
|(5)显示|"
”|(6)返回上一层|”<
”|—-—---—----—-———--|”<
〈endl;
}
voidreaderjiemian()//读者维护子菜单
”|----—-—-——-—--————|"
|读者维护|"
|
(1)增加|"
|
(2)更改|"
|(3)删除|"
|(4)查找|”<
|(5)显示|"
”|(6)返回上一层|”〈〈endl;
|--—————--—-————-——|”〈〈endl;
}
void//主界面
cout〈〈”*********************"
cout〈〈”*图书管理系统*”〈〈endl;
**"
”*
(1)借书*”〈<
**"
*
(2)还书*”〈<
cout〈〈”*(3)图书管理*”〈〈endl;
**”<
*(4)用户管理*”<
*(0)退出*”<
cout〈〈”*********************”<
voidborrowtoreturn(charbr)//借书还书函数,参数br用来判断是“借书”还是“还书”。
1为“借书”,2为“还书”
intrdid=0;
intbkid=0;
intrsuffix,bsuffix;
bdatabaset_bd;
rdatabaset_rd;
if(br==’1’)//借书
rsuffix=t_rd。
findreaders(rdid);
bsuffix=t_bd。
findbooks(bkid);
if(rsuffix==-1||bsuffix==-1)
if(t_bd。
btarray[bsuffix]。
b_flag==2)
cout<
图书已经借出,请选择其他图书”<
if(t_rd。
rdarray[rsuffix]。
r_bor==1)
〈”你已经结果图书,请先归还再借其他书"
t_bd.btarray[bsuffix]。
b_flag=2;
t_rd。
rdarray[rsuffix].r_bor=1;
t_rd.rdarray[rsuffix]。
brbook=t_bd。
btarray[bsuffix];
return;
if(br=='
2’)
rsuffix=t_rd.findreaders(rdid);
bsuffix=t_bd.findbooks(bkid);
rdarray[rsuffix].brbook。
no==t_bd.btarray[bsuffix].no)
t_bd.btarray[bsuffix]。
b_flag=1;
t_rd.rdarray[rsuffix].r_bor=2;
t_rd.rdarray[rsuffix]。
brbook=t_bd.btarray[bsuffix];
else
请重新输入,读者借的图书号不正确"
voidbooksmange()
charin;
bdatabasebd;
do
bookjiemian();
cin〉>
in;
switch(in)
case'
1'
bd。
addbooks();
break;
2'
bd.editbooks();
3'
bd.delbooks();
4'
findbooks();
5’:
bd.listbooks();
6’:
default:
cout<
〈”输入错误,请重新输入.”<
while(in!
='
6'
voidreadersmange()
charin;
rdatabasebd;
readerjiemian();
cin〉>
in;
switch(in)
bd.addreaders();
break;
case’2'
editreaders();
case’3'
bd.delreaders();
case’4’:
bd.findreaders();
5'
listreaders();
case’6'
default:
”输入错误,请重新输入"
〈〈endl;
while(in!
=’6'
intmain(intargc,char*argv[])
mainjiemian();
case'
1’:
borrowtoreturn(in);
break;
case’2'
borrowtoreturn(in);
3’:
booksmange();
case’4'
readersmange();
0'
default:
cout〈<
”输入错误,请重新输入”〈〈endl;
while(in!
=0);
return0;