图书管理系统.docx
- 文档编号:8187591
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:41
- 大小:21.72KB
图书管理系统.docx
《图书管理系统.docx》由会员分享,可在线阅读,更多相关《图书管理系统.docx(41页珍藏版)》请在冰豆网上搜索。
图书管理系统
目录
1.Book.h……………………
2.Book.cpp……………………
3.Borrow.h……………………
4.Borrow.cpp……………………
5.Data.h……………………
6.Data.cpp……………………
7.Date.h……………………
8.Date.cpp……………………
9.Library.cpp……………………
10.Reader.h……………………
11.Reader.cpp……………………
Book.h
#ifndefH_Book
#defineH_Book
#include
#include
#include
#include
usingnamespacestd;
classBook
{
inttag;
intno;
charname[20];
intonshelf;
public:
Book();
Book(intbid,charbname[]);
char*getname();
intgetno();
intgettag();
voidsetname(charbname[]);
voiddelbook();
voidaddbook(intbid,charbname[]);
intbborrowbook();
voidbretbook();
voidbdisp();
};
classBDatabase
{
list
public:
BDatabase();
~BDatabase();
voidclear();
intaddbook(intbid,charbname[]);
Book*query(intbid);
voidbookdata();
voidbdispall();
};
#endifH_Book
Book.cpp
#include"Book.h"
Book:
:
Book()
{}
Book:
:
Book(intbid,charbname[])
{
addbook(bid,bname);
}
char*Book:
:
getname()
{
returnname;
}
intBook:
:
getno()
{
returnno;
}
intBook:
:
gettag()
{
returntag;
}
voidBook:
:
setname(charbname[])
{
strcpy(name,bname);
}
voidBook:
:
delbook()
{
tag=1;
}
voidBook:
:
addbook(intbid,charbname[])
{
tag=0;
no=bid;
strcpy(name,bname);
onshelf=1;
}
intBook:
:
bborrowbook()
{
if(onshelf==1)
{
onshelf=0;
return1;
}
return0;
}
voidBook:
:
bretbook()
{
onshelf=1;
}
voidBook:
:
bdisp()
{
cout< <<(onshelf==1? "在架": "已借")< } BDatabase: : BDatabase() { Bookb; fstreamfile("book.dat",ios: : in); while (1) { file.read((char*)&b,sizeof(b)); if(! file)break; book.push_back(b); } file.close(); } BDatabase: : ~BDatabase() { fstreamfile("book.dat",ios: : out|ios: : trunc); list : iteratoriter; for(iter=book.begin();iter! =book.end();iter++) if(iter->gettag()==0) file.write((char*)&(*iter),sizeof(Book)); file.close(); } voidBDatabase: : clear() { book.clear(); } intBDatabase: : addbook(intbid,charbname[]) { Book*p=query(bid); if(p==NULL) { Bookb(bid,bname); book.push_back(b); return1; } return0; } Book*BDatabase: : query(intbid) { list : iteratoriter; for(iter=book.begin();iter! =book.end();iter++) if(iter->getno()==bid&&iter->gettag()==0) return&(*iter); returnNULL; } voidBDatabase: : bdispall() { list : iteratoriter; cout<<"图书编号书名状态"< for(iter=book.begin();iter! =book.end();iter++) if(iter->gettag()==0) iter->bdisp(); } voidBDatabase: : bookdata() { intchoice=1; charbname[40]; intbid; Book*b; while(choice! =0) { cout<<"图书维护1: 新增2: 更改3: 删除4: 查找5: 显示6: 全删0: 返回=>"; cin>>choice; switch(choice) { case1: cout<<"输入图书编号: "; cin>>bid; cout<<"输入图书书名: "; cin>>bname; addbook(bid,bname); break; case2: cout<<"输入图书编号: "; cin>>bid; b=query(bid); if(b==NULL) { cout<<"提示: 该图书不存在"< break; } cout<<"输入新的书名: "; cin>>bname; b->setname(bname); break; case3: cout<<"输入图书编号: "; cin>>bid; b=query(bid); if(b==NULL) { cout<<"提示: 该图书不存在"< break; } b->delbook(); break; case4: cout<<"输入图书编号: "; cin>>bid; b=query(bid); if(b==NULL) { cout<<"提示: 该图书不存在"< break; } b->bdisp(); break; case5: bdispall(); break; case6: clear(); cout<<"提示: 记录已全删除"< break; } } } Borrow.h #ifndefH_Borrow #defineH_Borrow #include #include #include #include"Data.h" #include"Date.h" #include"Book.h" #include"Reader.h" usingnamespacestd; classBorrow { inttag; intrno; intbno; Datebordate; public: Borrow(); Borrow(intrno1,intbno1,Dated1); intgettag(); intgetrno(); intgetbno(); Dategetbordate(); voiddispdate(); voidaddborrow(intrno1,intbno1,Date&d1); voidretbook(); }; classBorDatabase { Book*b; intbid; intrid; list public: BorDatabase(); ~BorDatabase(); voidbbook1(BDatabase&BookDB,RDatabase voidbbook2(BDatabase&BookDB,RDatabase voidrbook1(BDatabase&BookDB,RDatabase voidrbook2(BDatabase&BookDB,RDatabase voidquerybook(); voidqueryreader(); voidlistrec(); }; #endif Borrow.cpp #include"Borrow.h" Borrow: : Borrow() {} Borrow: : Borrow(intrnol,intbnol,Dated1) { addborrow(rnol,bnol,d1); } intBorrow: : gettag() { returntag; } intBorrow: : getrno() { returnrno; } intBorrow: : getbno() { returnbno; } DateBorrow: : getbordate() { returnbordate; } voidBorrow: : dispdate() { bordate.dispdate(); } voidBorrow: : addborrow(intrnol,intbnol,Date&d1) { tag=0; rno=rnol; bno=bnol; bordate=d1; } voidBorrow: : retbook() { tag=1; } BorDatabase: : BorDatabase() { Borrowb; fstreamfile("borbook.dat",ios: : in); while (1) { file.read((char*)&b,sizeof(b)); if(! file)break; borrow.push_back(b); } file.close(); } BorDatabase: : ~BorDatabase() { fstreamfile("borbook.dat",ios: : out|ios: : trunc); list : iteratoriter; for(iter=borrow.begin();iter! =borrow.end();iter++) if(iter->gettag()==0) file.write((char*)&(*iter),sizeof(Borrow)); file.close(); } voidBorDatabase: : bbook1(BDatabase&BookDB,RDatabase { TDatatea; Teacher*r; Borrowbor; Datecurdate; cout<<"借书读者编号: "; cin>>rid; cout<<"图书编号: "; cin>>bid; r=ReaderDB.query(rid); if(r->getnum()==tea.getbnum()) { cout<<"提示: 借书数超过限定数,不能借书"< return; } if(r==NULL) { cout<<"提示: 不存在该读者,不能借书"< return; } b=BookDB.query(bid); if(b==NULL) { cout<<"提示: 不存在该读者,不能借书"< return; } if(b->bborrowbook()==0) { cout<<"提示: 该图书已借出,不能借书"< return; } r->rborbook(); bor.addborrow(rid,bid,curdate); borrow.push_back(bor); } voidBorDatabase: : bbook2(BDatabase&BookDB,RDatabase { SDatastud; Student*r; Borrowbor; Datecurdate; cout<<"借书读者编号: "; cin>>rid; cout<<"图书编号: "; cin>>bid; r=ReaderDB.query(rid); if(r->getnum()==stud.getbnum()) { cout<<"提示: 借书数超过限定数,不能借书"< return; } if(r==NULL) { cout<<"提示: 不存在该读者,不能借书"< return; } b=BookDB.query(bid); if(b==NULL) { cout<<"提示: 不存在该图书,不能借书"< return; } if(b->bborrowbook()==0) { cout<<"提示: 该图书已借出,不能借书"< return; } r->rborbook(); bor.addborrow(rid,bid,curdate); borrow.push_back(bor); } voidBorDatabase: : rbook1(BDatabase&BookDB,RDatabase { TDatatea; Teacher*r; list : iteratoriter; boolfind=false; Datecurdate,bdate; cout<<"还书读者编号: "; cin>>rid; cout<<"图书编号: "; cin>>bid; r=ReaderDB.query(rid); if(r==NULL) { cout<<"提示: 不存在该图书,不能还书"< return; } for(iter=borrow.begin();iter! =borrow.end();iter++) if(iter->getrno()==rid&&iter->getbno()==bid) { borrow.erase(iter); find=true; break; } if(find==true) {b->bretbook(); r->rretbook(); bdate=iter->getbordate(); if(bdate-curdate>tea.getdays()) { cout<<"借书日期: ";bdate.dispdate(); cout<<"本书超期,罚款"<<((curdate-bdate)*tea.getperday()) <<"元"< } } cout<<"提示: 该读者没有借过,不能还书"< } voidBorDatabase: : rbook2(BDatabase&BookDB,RDatabase { SDatastud; Student*r; list : iteratoriter; boolfind=false; Datecurdate,bdate; cout<<"还书读者编号: "; cin>>rid; cout<<"图书编号: "; cin>>bid; r=ReaderDB.query(rid); if(r==NULL) { cout<<"提示: 不存在该图书,不能还书"< return; } b=BookDB.query(bid); if(b==NULL) { cout<<"提示: 不存在该图书,不能借书"< return; } for(iter=borrow.begin();iter! =borrow.end();iter++) if(iter->getrno()==rid&&iter->getbno()==bid) { iter->dispdate();cout< borrow.erase(iter); find=true; break; } if(find==true) { b->bretbook(); r->rretbook(); bdate=iter->getbordate(); if(bdate-curdate>stud.getdays()) { cout<<"借书日期: ";bdate.dispdate(); cout<<"本书超期,罚款"<<((curdate-bdate)*stud.getperday()) <<"元"< } } else cout<<"提示: 该读者没有借过,不能还书"< } voidBorDatabase: : querybook() { list : iteratoriter; cout<<"输入读者编号: "; cin>>rid; cout<<"所借图书: "; for(iter=borrow.begin();iter! =borrow.end();iter++) if(iter->getrno()==rid) cout< cout< } voidBorDatabase: : queryreader() { list : iteratoriter; cout<<"输入图书编号: "; cin>>bid; cout<<"借书人: "; for(iter=borrow.begin();iter! =borrow.end();iter++) if(iter->getbno()==bid) cout< cout< } voidBorDatabase: : listrec() { list : iteratoriter; cout<<"\t读者编号图书编号借书日期"< for(iter=borrow.begin();iter! =borrow.end();iter++) { cout<<"\t"< } } Data.h #ifndefH_Data #defineH_Data #include #include usingnamespacestd; classTData { private: intbnum; intdays; doubleperday; public: TData(); ~TData(); intgetbnum(); doublegetdays(); doublegetperday(); voidsetdata(); voiddisp(); }; classSData { private: intbnum; intdays; doubleperday; public: SData(); ~SData(); intgetbnum(); doublegetdays(); doublegetperday(); voidsetdata(); voiddisp(); }; #endif Data.cpp #include"Data.h" TData: : TData() { bnum=0;days=0;perday=0; fstreamfile("teadata.dat",ios: : in); file>>bnum>>days>>perday; file.close(); } TData: : ~T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)