图书管理系统C++代码Word文件下载.docx
- 文档编号:5796620
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:41
- 大小:913.60KB
图书管理系统C++代码Word文件下载.docx
《图书管理系统C++代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统C++代码Word文件下载.docx(41页珍藏版)》请在冰点文库上搜索。
(至少一种排序方式,例如出版时间排序)
6)按书名查询和按作者名查询
7)图书信息的删除与修改
8)学生可自动增加新功能模块(视情况可另外加分)
(3)界面友好,输入信息符合逻辑如登录号不为负数,日期输入符合一定的格式等。
【程序设计的具体说明】
数据结构和函数自行定义,要求清晰明确。
二、需求分析
图书管理系统面向两类人,一类是普通读者,另一类是管理员;
(1)读者:
首先读者要通过卡号和密码的验证才能进入系统;
1、图书的查找:
读者可以通过图书的书号、书名、作者名或者出版社查找图书信息,当查找成功时输出图书的信息,包括书号,书名,作者名,出版社,出版时间以及此书是否在架,当查找失败时返回查找失败信息。
2、图书的借阅:
当读者查找到想要借阅的图书后,输入图书书号进行借书,返回借阅成功的信息。
输入无效的书号或者借阅已经借出去的图书则不能借阅成功。
3、图书的归还:
输入要归还的书的书号进行还书,返回归还成功的信息。
输入
无效的书号或者归还还未被借出的图书则归还不成功。
4、查询自己的借书信息:
可以查看自己借了那些书,输出这些书的编号。
(2)管理员:
管理员要先通过密码验证才能进入系统;
1、图书的借阅:
管理员可以通过输入读者的卡号和图书的编号帮读者借书,只有当这两个信息都正确时才能借阅成功,否则输出借阅失败的信息。
2、图书的归还:
管理员可以通过输入读者的卡号和图书的编号帮读者还书,只有当这两个信息都正确时才能归还成功,否则输出归还失败的信息。
3、图书的维护:
包括图书的新增、删除、查找、显示、以及全删;
、图书的新增:
首先给图书编号,在给图书编号之前先判断是否有图书为该编号,如果有则编号不成功重新输入编号,如果没有则编号成功,继续添加图书的其他信息,包括书名、作者、出版社、出版时间、价格等信息。
、图书的删除:
输入图书的编号,删除该编号图书的所有信息,并提示删除成功信息,若输入无效的编号则提示删除不成功。
、图书的查找:
输入要查找图书的编号,输出该编号图书的所有信息,
若输入无效的编号则提示查找失败。
、图书的显示:
按照出版时间的先后顺序输出图书馆所有书籍的信息。
、图书的全删:
删除图书馆所有书籍的所有信息。
4、读者的维护:
包括读者的新增、更改、删除、查找、显示、以及全删;
、读者的新增:
先给读者编号,如果该编号已经有人,则提示错误,否则继续输入读者的其他信息,包括读者的名字和初始密码输出添加成功提示。
、读者的更改:
输入读者的编号,更改读者的名字,若输入的编号无效则更该失败。
、读者的删除:
输入要删除读者的编号,判断该编号是否有人,有则删除该读者的所有信息,没有则提示删除失败。
、读者的查找:
输入要查找的读者编号,编号正确则输出读者的信息,否则查找失败。
、读者的显示:
显示图书馆里所有读者的信息。
删除图书馆里所有读者的信息。
三、概要设计
12
主菜单
读者登录模块图
图书信息管理模块流程图
图书信息查找流程图
借阅信息查询模块流程图
图书归还模块流程图
图书借阅模块流程图
四、源程序代码
#include<
iostream>
#include<
iomanip>
windows.h>
conio.h>
string>
usingnamespacestd;
constintMaxbor=10;
//每位读者最多借10本书
classReader//读者类
{
inttag;
intnum;
charmima[6];
charname[10];
intborbook[Maxbor];
public:
Reader();
intgetnum();
intgettag();
char*getname();
char*getmima();
voidsetname(charna[]);
voiddelreader();
voidaddreader(intn,char*na,char*mi);
voidborrowbook(intbookid);
intretbook(intbookid);
voiddisp();
};
Reader:
:
reader(){}
char*Reader:
:
getname(){returnname;
}
intReader:
gettag(){returntag;
}//获取删除标记
getnum(){returnnum;
}//获取读者编号
char*Reader:
getmima(){returnmima;
}//获取读者的密码
voidReader:
setname(charna[])//设置姓名
strcpy(name,na);
}
delreader(){tag=1;
}//删除读者
addreader(intn,char*na,char*mi)//增加读者
tag=0;
num=n;
strcpy(mima,mi);
for(inti=0;
i<
Maxbor;
i++)
borbook[i]=0;
borrowbook(intbookid)//借书操作
{
if(borbook[i]==0)
{
borbook[i]=bookid;
return;
}
retbook(intbookid)//还书操作
if(borbook[i]==bookid)
borbook[i]=0;
return1;
return0;
disp()//输出读者信息
cout<
<
endl;
cout<
setw(12)<
num<
"
借书编号:
["
;
if(borbook[i]!
=0)
cout<
borbook[i]<
"
cout<
]"
<
endl;
classBook//图书类
charwriter[10];
charconcem[30];
charTime[10];
floatprice;
intonshelf;
Book();
char*getname();
intgetonshelf();
char*getwriter();
char*gettime();
char*getconcem();
floatgetprice();
voidgetTime(chartime[]);
voidsetname(charna[]);
voiddelbook();
voidaddbook(intn,char*na,char*wri,char*con,char*tm,floatpr);
//增加图书
intborrowbook();
//借书操作
voidretbook();
//还书操作
//输出图书
Book:
Book(){}
char*Book:
}//获取姓名
intBook:
getonshelf(){returnonshelf;
}//获取图书编号
char*Book:
getwriter(){returnwriter;
}//获取书籍作者
getconcem(){returnconcem;
}//获取书籍出版社
gettime(){returnTime;
floatBook:
getprice(){returnprice;
}//获取书籍价格
voidBook:
setname(charna[])//设置书名
getTime(chartime[])
strcpy(Time,time);
delbook(){tag=1;
}//删除图书
addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书
strcpy(writer,wri);
strcpy(concem,con);
strcpy(Time,tm);
price=pr;
onshelf=1;
borrowbook()//借书操作
if(onshelf==1)
onshelf=0;
return1;
retbook()//还书操作
disp()//输出图书
setw(6)<
num<
name<
setw(15)<
concem<
setw(10)<
writer<
setw(12)<
Time<
setw(6)<
(onshelf==1?
在架"
已借"
)<
classBDatabase//图书库类
inttop;
Bookbook[Maxb];
BDatabase();
voidclear();
intaddbook(intn,char*na,char*wri,char*con,char*tm,floatpr);
Book*query(intbookid);
intBDatabase:
qname(char*nm);
Book*BDatabase:
Qname(char*nm);
intqzuozhe(char*wr);
Book*Qzuozhe(char*wr);
intqchuban(char*cb);
Book*Qchuban(char*cb);
voidbookdata();
~BDatabase();
BDatabase:
BDatabase()//构造函数,将book.txt读到book[]中
Bookb;
top=-1;
fstreamfile("
d:
\\book.txt"
ios:
in);
while
(1)
file.read((char*)&
b,sizeof(b));
if(!
file)break;
top++;
book[top]=b;
file.close();
voidBDatabase:
clear()//全删
intBDatabase:
addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书
Book*p=query(n);
if(p==NULL)
book[top].addbook(n,na,wri,con,tm,pr);
Book*BDatabase:
query(intbookid)//查找图书
=top;
if(book[i].getnum()==bookid&
&
book[i].gettag()==0)
return&
book[i];
returnNULL;
qname(char*nm)
intj=0;
for(inti=0;
if((strcmp(book[i].getname(),nm)==0)&
book[i].gettag()==0)
j++;
if(j==0)
return0;
else
returnj;
Qname(char*nm)
Bookb[100];
if((strcmp(book[i].getname(),nm)==0)&
b[j++]=book[i];
returnNULL;
returnb;
qzuozhe(char*wr)
inte=0;
if((strcmp(book[i].getwriter(),wr)==0)&
e++;
if(e==0)
returne;
Qzuozhe(char*wr)
intf=0;
b[f++]=book[i];
if(f==0)
qchuban(char*cb)
intg=0;
if((strcmp(book[i].getconcem(),cb)==0)&
g++;
if(g==0)
returng;
Qchuban(char*cb)
inth=0;
b[h++]=book[i];
if(h==0)
bookdata()//图书库维护
intchoice=1;
charbname[40];
intbookid;
charbwriter[15];
charbconcem[15];
charbtime[15];
floatbprice;
Book*b;
intr=0;
while(choice!
cout<
endl<
******************************************************"
**图书维护**"
**1:
新增**"
**2:
删除**"
**3:
查找**"
**4:
显示**"
**5:
全删**"
**0:
退出**"
请选择您将进行的操作:
cin>
>
choice;
switch(choice)
case1:
输入图书编号:
cin>
bookid;
do
{
if(r!
{
cout<
该编号已存在,请重新输入图书编号:
cin>
bookid;
}
r++;
if(r==3)
break;
}
while(query(bookid)!
=NULL);
if(r==3)
system("
cls"
);
break;
输入图书书名:
bname;
输入图书作者:
bwriter;
输入图书出版社:
bconcem;
输入图书出版时间:
cin>
btime;
输入图书价格:
bprice;
cout<
图书添加成功"
Sleep(1000);
system("
addbook(bookid,bname,bwriter,bconcem,btime,bprice);
break;
case2:
b=query(bookid);
if(b==NULL)
cout<
该图书不存在"
Sleep(1000);
该图书已删除"
b->
delbook();
case3:
}
您所查找的图书信息如下"
disp();
case4:
所有图书信息如下"
disp();
case5:
clear();
所有图书已删除"
system("
disp()
Booktemp;
=top&
(book[i].gettag()==0);
for(intj=i+1;
j<
(book[j].gettag()==0);
j++)
if(strcmp(book[i].gettime(),book[j].gettime())<
0)
temp=book[i];
book[i]=book[j];
book[j]=temp;
for(intx=0;
x<
(book[x].gettag()==0);
x++)
book[x].disp();
~BDatabase(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 C+ 代码