图书馆管理系统Word文档格式.docx
《图书馆管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
-name[20]:
+Book()
+getid():
+gettag():
+borrowbook():
+*getname():
char
+setname(char*na)():
void
+delbook():
+addbook():
+returnbook():
+show():
Book类图
(2)B_Data类的设计
B_Data类如下图所示
B_Data
-top:
-maxid:
-book[MAXBOOKS]
+B_Data()
+~B_Data()
+bookdata():
+*search()
B_Data类图
(3)Reader类的设计
Reader类图如下图所示
Reader
+Reader()
+borbook[MAXBORROWED]():
+setname():
+addreader():
Reader类图
(4)R_Data类的设计
R_Data类图如下图所示
R_Data
-read[MAXREADERS]
+R_Data()
+~R_Data()
+usershow():
+readerdata():
R_Data类图
2、主程序设计
四个类Book类、B_Data类、Reader类及R_Data类完成了一个完整的图书管理系统的基本功能。
在主函数main()中,生成主界面分别指向用户登录和管理员登录。
用户登录处,可以进行新用户注册和老用户登录的界面。
新用户可以进行借书,还书,查询借阅情况等信息;
管理员输入密码正确后进入系统,分别进行图书管理和用户管理等。
分别具有添加、删除、查找等基本功能。
4、案例实现
//Param.h参数定义头文件
#ifndefPARAM_H_
#definePARAM_H_
#include<
iostream>
iomanip>
string>
fstream>
stdlib.h>
constintMAXREADER=40000;
//系统可容纳的读者
constintMAXBOOKS=1000000;
//系统中可容纳的图书
constintMAXBORROWED=5;
//每个读者最多借十本书
usingnamespacestd;
#endif
//database.h系统类定义头文件
#ifndefDATABASE_H_
#defineDATABASE_H_
#include"
Param.h"
classReader//读者类
{
public:
Reader();
//构造函数,初始化读者信息
intgettag();
//获取删除标记
intgetid();
//获取读者编号
intreturnbook(intbookid);
//还书操作
intborbook[MAXBORROWED];
//记录所借图书
char*getname();
//获取姓名
voidsetname(charna[]);
//设置姓名
voiddelbook();
//设置删除标记
voidaddreader(intn,char*na);
//增加读者
voidborrowbook(intbookid);
//读出读者信息
voidshow();
private:
inttag;
//删除标记1:
已删0:
未删
intid;
//读者编号
charname[20];
//读者姓名
};
classR_Data//读者库
R_Data();
//构造函数,将reader.txt读到read[]中
~R_Data();
//析构函数,将read[]写到reader.txt
intaddreader(char*na);
//添加读者
//输出所有读者信息
voidusershow(intreaderid);
//输出读者信息
voidreaderdata();
//读者管理
Reader*search(intreaderid);
//按编号查找
intmaxid;
//当前最大读者编号
inttop;
//读者记录指针
Readerread[MAXREADER];
//读者记录
classBook//图书类
Book();
//构造函数,初始化图书信息
//获取图书编号
intborrowbook();
//借书操作
//获取书名
//设置书名
//删除图书
voidaddbook(intn,char*na);
//增加图书
voidreturnbook();
//读出所有图书信息
//图书编号
intonshelf;
//是否在架1:
在架2:
已删
//图书名称
classB_Data//图书库
B_Data();
//构造函数,将book.txt读到book[]中
~B_Data();
//析构函数,将book[]写到book.txt
intaddbook(char*na);
//读出所有的图书
voidbookdata();
//图书管理
Book*search(intbookid);
//查找图书
//当前图书最大编号
//图书记录指针
Bookbook[MAXBOOKS];
//图书记录
//database.cpp类操作定义文件
database.h"
Reader:
:
Reader()//构造函数,初始化读者信息
id=0;
tag=0;
for(inti=0;
i<
MAXBORROWED;
i++)
borbook[i]=0;
}
char*Reader:
getname()//获取姓名
returnname;
intReader:
gettag(){returntag;
}//获取删除标记
getid(){returnid;
}//获取读者编号
voidReader:
setname(charna[]){strcpy(name,na);
}//设置姓名
delbook()//设置删除标记
{
if(borbook[i]!
=0)
{
cout<
<
"
读者"
name<
删除失败,请先归还所借图书"
endl;
return;
}
}
tag=1;
cout<
读者删除成功"
addreader(intn,char*na)//增加读者
id=n;
strcpy(name,na);
读者添加成功,读者编号为"
id<
请牢记该编号,这是你在本系统中的登录号码"
borrowbook(intbookid)//借书操作
if(borbook[i]=0)
endl<
读者借阅成功"
}
returnbook(intbookid)//还书操作
if(borbook[i]=bookid)
borbook[i]=0;
读者还书成功"
return1;
return0;
show()//读出读者信息
setw(5)<
setw(10)<
setw(24)<
读者借阅编号为:
;
["
borbook[i]<
]"
R_Data:
R_Data()
Readers;
top=0;
fstreamfile("
reader.txt"
ios:
in);
while
(1)
file.read((char*)&
s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
maxid=read[top].getid();
file.close();
intR_Data:
addreader(char*na)
top++;
maxid++;
read[top].addreader(maxid,na);
return1;
Reader*R_Data:
search(intreaderid)
for(inti=1;
=top;
if(read[i].getid()==readerid&
&
read[i].gettag()==0)
return&
(read[i]);
returnNULL;
voidR_Data:
show()
if(top==0)
cout<
没有读者记录"
return;
read[i].show();
usershow(intreaderid)
read[readerid].show();
readerdata()
charchoice=1;
charrname[20];
intreaderid;
Reader*r;
while(choice!
='
0'
)
读者管理"
1、增加读者信息"
2、修改读者信息"
3、删除读者信息"
4、查找读者信息"
5、显示所有读者"
0:
退出读者管理"
请选择你要进行的操作:
cin>
>
choice;
switch(choice)
case'
1'
输入读者姓名:
cin>
rname;
addreader(rname);
break;
2'
输入读者编号:
readerid;
r=search(readerid);
if(r==NULL)
{
cout<
不存在编号为"
readerid<
的读者"
break;
}
输入新的读者名:
r->
setname(rname);
3'
if(r=NULL)
不存在的编号为"
delbook();
4'
读入读者的编号:
该读者不存在"
show();
5'
show();
default:
输入错误,请重新输入"
~R_Data()
out);
for(inti=1;
if(read[i].gettag()==0)
file.write((char*)&
(read[i]),sizeof(read[i]));
file.close();
Book:
Book()
onshelf=1;
char*Book:
getname()
intBook:
gettag()
returntag;
voidBook:
delbook()
addbook(intn,char*na)
图书添加成功,图书编号为"
请牢记该编号,这是该图书在本系统中的使用号码"
borrowbook()
if(onshelf=1)
onshelf=0;
returnbook()
setw(20)<
(onshelf==1?
可借"
借出"
)<
B_Data:
B_Data()
Bookb;
book.txt"
b,sizeof(b));
book[top]=b;
maxid=book[top].getid();
intB_Data:
addbook(char*na)
book[top].addbook(maxid,na);
Book*B_Data:
search(intbookid)
if(book[i].getid()==bookid&
book[i].gettag()==0)
(book[i]);
voidB_Data:
没有图书记录"
if(book[i].gettag()==0)
book[i].show();
bookdata()
charchoice='
charbname[40];
intbookid;
Book*b;
图书管理"
1、增加图书信息"
2、修改图书信息"
3、删除图书信息"
4、查找图书信息"
5、显示所有图书"
退出图书管理"
输入图书书名:
bname;
addbook(bname);
输入图书编号:
bookid;
b=search(bookid);
if(b==NULL)
b->
getid()<
的图书"
输入新的书名:
b->
setname(bname);
if(b=NULL)
读入图书的编号:
该图书不存在"
de