图书管理系统程序代码Word文件下载.docx
《图书管理系统程序代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统程序代码Word文件下载.docx(46页珍藏版)》请在冰点文库上搜索。
{
public:
stringbook_name;
stringbook_num;
//编号
stringbook_pre;
//出版社
stringbook_aut;
//作者
intbook_con;
//这样的书还有几本
intbook_mux;
//这样的书总共有几本
Book(){book_con=0;
book_mux=0;
}
voidshow_book();
};
/****************************************
(1)图书管理*******************************************/
voidBook:
:
show_book()
cout<
<
"
书名:
book_name<
endl;
出版社:
book_pre<
此书的作者:
book_aut<
ISBN编号:
book_num<
此书共有"
book_mux<
本"
还有"
book_con<
本书未借出!
classBookNode
Bookbook;
BookNode*next;
BookNode*headbook=NULL;
classBookManage
{
inttotolbook;
BookManage(){totolbook=0;
voidaddbook();
voiddelbook(strings,intnum,intflag);
voidfindbook(strings,intflag);
//查询图书
voidBookManage:
addbook()
stringh;
添加输入0,退出输入-1"
cin>
>
h;
if(h=="
-1"
)return;
elseif(h=="
0"
)
while
(1)
{
if(h=="
)break;
elseif(h=="
{
stringna,nu,p1,aut;
intcon;
BookNode*p=newBookNode;
cout<
请输入书名:
cin>
na;
p->
book.book_name=na;
请输入ISBN编号:
nu;
book.book_num=nu;
请输入出版社:
p1;
book.book_pre=p1;
请输入此书的作者:
aut;
book.book_aut=aut;
请输入此书共有几本:
con;
book.book_con=con;
book.book_mux=con;
next=headbook;
headbook=p;
BookManage:
totolbook+=con;
继续添加输入0,取消添加输入-1"
}
else
cout<
YELLOW"
输入字符无效!
NONE<
}
else
delbook(strings,intnum,intflag)
BookNode*p=headbook;
if(headbook!
=NULL)
{
switch(flag)
case0:
if(headbook->
book.book_name==s)
{
if(headbook->
book.book_con>
1)
{headbook->
book.book_con-=num;
headbook->
book.book_mux-=num;
else
{
headbook=p->
next;
totolbook-=num;
//deletep;
}
}
elseif(p->
next)
{
for(p=headbook;
p->
next!
=NULL&
&
p!
=NULL;
p=p->
{
if(p->
next->
{
if(p->
{
p->
break;
}
else
{
next=p->
totolbook-=num;
//deletep->
}
if(p->
next==NULL)
cout<
此书不存在!
}
break;
case1:
book.book_num==s)
default:
cout<
输入数字无效!
break;
findbook(strings,intflag)
BookNode*p;
inth=0;
switch(flag)
case0:
for(p=headbook;
next)//先查看是否有此书
{
if(p->
}
if(NULL==p)
next)//查看名为s的图书共有几本
h++;
if(h>
0)
GREEN"
这种名字的书共有"
h<
next)//查看图书,把所有名为s的图书的信息都打印出来
{
p->
book.show_book();
//显示出图书的基本信息
book.book_con==0)
该书已全被借出!
}
break;
case1:
default:
/****************************************
(2)用户管理*******************************************/
classAdmin//管理员
stringadm_name;
//帐号
stringadm_passw;
//密码
Admin()
adm_name="
adm"
;
adm_passw="
123"
classLendBook
stringbookname[3];
intcount;
//借多少本数
time_tlend_time;
time_tback_time;
LendBook(){count=0;
classStu
stringstu_name;
stringstu_phone;
//联系方式
stringstu_num;
//学号(登录帐号)
stringpassword;
//密码
floatdebt;
//欠费额
LendBooklendbook;
//用户借书信息
voidshow_stu();
//把此人所有信息(包括借书)显示出来
voidStu:
show_stu()
姓名:
stu_name<
联系电话:
stu_phone<
ID:
stu_num<
欠费额:
debt<
已借书"
lendbook.count<
classStuNode
Stustu;
StuNode*next;
StuNode*headstu=NULL;
classStuManage:
publicBookManage
private:
inttotolstu;
//用户总数
StuManage(){totolstu=0;
voidaddstu();
//增加用户
voiddelstu(strings,intflag);
//删除用户
voidfindstu(strings,intflag);
//查找用户
voidlendbook(stringss,strings,intflag);
//借书
voidbackbook(stringss,strings,intflag);
//还书
voidpaydebt(strings);
//还款
voidmux_stu_book();
//查询图书管总的图书量与总的用户量
voidStuManage:
addstu()
添加输入0,退出输入-1"
{
stringna,num,p1,pa,pa1,pa2;
StuNode*p=newStuNode;
请输入姓名:
stu.stu_name=na;
请输入联系电话:
stu.stu_phone=p1;
请输入ID:
num;
stu.stu_num=num;
stu.lendbook.lend_time=0;
stu.lendbook.back_time=0;
while
(1)
请输入六位密码:
cin>
pa1;
请确认六位密码:
pa2;
if(pa1==pa2)
pa=pa2;
stu.password=pa;
break;
else
两次密码不一样,请重行输入!
stu.debt=0;
next=headstu;
headstu=p;
(StuManage:
totolstu)++;
//用户总数加一
delstu(strings,intflag)
StuNode*p=headstu;
if(headstu!
if(headstu->
stu.stu_name==s)//当要删除的用户位于链表的头结点位置
headstu=p->
StuManage:
totolstu--;
deletep;
next)//非头结点位置
for(p=headstu;
stu.stu_name==s)
p->
totolstu--;
//deletep->
break;
此用户不存在!
totolstu--;
findstu(strings,intflag)
StuNode*p;
inth=0,m=1;
for(p=headstu;
if(p==NULL)
这种名字的用户共有"
个"
stu.show_stu();
stu.lendbook.count>
=3)
cout<
sorry,您已借满3本书,不能再借了!
!
inti=p->
stu.lendbook.count;
if(i>
所借书的名字为:
//输出用户所借书的名字
while(i)
{
cout<
\t("
m++<
):
stu.lendbook.bookname[i-1]<
i--;
}
您已借了"
stu.lendbook.count<
本书!
您还可以借"
3-p->
本书!
stu.stu_num==s)