图书管理系统实现代码c++语言.docx
《图书管理系统实现代码c++语言.docx》由会员分享,可在线阅读,更多相关《图书管理系统实现代码c++语言.docx(26页珍藏版)》请在冰豆网上搜索。
图书管理系统实现代码c++语言
图书管理系统代码(供大家参考)
/********************************************************************************************************************
*Name:
Bookmanage.h
*Author:
彭天越
*Description:
Bookmanage类的声明,用来实现管理图书的相关功能
*Date:
2012-4-03~2012-4-12
*Copyright:
HNSUniversity
*********************************************************************************************************************/
#pragmaonce
#include
#include
#include"Book.h"
usingnamespacestd;
classBookmanage
{
private:
vectorbooks;/*****************************************************声明一个存放Book类的向量,用于数据操作*/
intcount;
public:
Bookmanage(void);
voidaddBooks();/********************************************************************************图书的添加函数*/
voidfindBook();
voidlendbook();
voidreturnbook();
voidchangbook();/**************************************************************************修改书籍的相关信息*/
~Bookmanage(void);
};
/*******************************************************************************************************************
*Name:
Book.h
*Author:
彭天越
*Description:
Book类的定义
*Date:
2012-4-02~2012-4-10
*Copyright:
HNSUniversity
*******************************************************************************************************************/
#include"Book.h"
#include
#include
usingnamespacestd;
Book:
:
Book(stringnewname,stringnewnum,stringnewwri,stringnewpub,intstate)/*******************构造函数重载的定义*/
{
BookName=newname;
Booknum=newnum;
Writer=newwri;
Publisher=newpub;
Bookstate=state;
}
voidBook:
:
displayInfo()const
{
cout<<"图书的名字是\t"<cout<<"图书的书号是\t"<cout<<"图书的作者\t"<cout<<"图书的出版社\t"<if(Bookstate==0)
{
cout<<"在馆"<}
else
{cout<<"已借出"<}
cin.get();
}
voidBook:
:
setname(stringnewname)
{
BookName=newname;
}
voidBook:
:
setnum(stringnewnum)
{
Booknum=newnum;
}
voidBook:
:
setwriter(stringnewwri)
{
Writer=newwri;
}
voidBook:
:
setpub(stringnewpub)
{
Publisher=newpub;
}
stringBook:
:
getname()
{
returnBookName;
}
stringBook:
:
getnum()
{
returnBooknum;
}
stringBook:
:
getwriter()
{
returnWriter;
}
stringBook:
:
getpub()
{
returnPublisher;
}
voidBook:
:
setstate(intstate)
{
Bookstate=state;
}
voidBook:
:
Borrowbooks()
{
Bookstate=LENDSTATUE;
}
voidBook:
:
returnbooks()
{
Bookstate=NORMALSTATUE;
}
intBook:
:
getstate()
{
returnBookstate;
}
Book:
:
~Book(void)
{
}
/********************************************************************************************************************
*Name:
Bookmanage.h
*Author:
彭天越
*Description:
Bookmanage类的声明,用来实现管理图书的相关功能
*Date:
2012-4-03~2012-4-12
*Copyright:
HNSUniversity
*********************************************************************************************************************/
#pragmaonce
#include
#include
#include"Book.h"
usingnamespacestd;
classBookmanage
{
private:
vectorbooks;/*****************************************************声明一个存放Book类的向量,用于数据操作*/
intcount;
public:
Bookmanage(void);
voidaddBooks();/********************************************************************************图书的添加函数*/
voidfindBook();
voidlendbook();
voidreturnbook();
voidchangbook();/**************************************************************************修改书籍的相关信息*/
~Bookmanage(void);
};
/************************************************************************************************************************
*Name:
Bookmanage.cpp
*Author:
彭天越
*Description:
Bookmanage类的声明,用来实现管理图书的相关功能
*Date:
2012-4-03~2012-4-7,2012-5-28进行修改添加tag
*Copyright:
HNSUniversity
*************************************************************************************************************************/
#include"Bookmanage.h"
#include"Book.h"
#include
#include
#include
usingnamespacestd;
/**************************************************实现将books.txt文本文件中的book读取到vector向量中,以便对图书的相关操作*/
Bookmanage:
:
Bookmanage(void)
{
count=0;
ifstreamfin("books.txt");
while(true)
{
stringname;
stringnumber;
stringwriter;
stringpublisher;
intstate;
if(fin.eof())break;
fin>>name>>number>>writer>>publisher>>state;
if(name!
="")
{
Bookbook(name,number,writer,publisher,state);
books.push_back(book);
count++;/******************************************************************用来获得文件中所存放的book的数目*/
}
}
fin.close();
}
voidBookmanage:
:
addBooks()
{
stringname;
stringnumber;
stringwriter;
stringpublisher;
cout<<"\t*********************请输入图书的书名*********************"<cin>>name;
cin.get();
cout<<"\t*********************请输入图书的书号ISBN*****************"<cin>>number;
cin.get();
cout<<"\t*********************请输入图书的作者*********************"<cin>>writer;
cin.get();
cout<<"\t*********************请输入图书的出版社*******************"<cin>>publisher;
cin.get();
cout<<"\t**********************确定输入的信息是否正确,Y/N*********"<chark;
cin>>k;
if(k=='Y')
{
Bookbook(name,number,writer,publisher,0);
books.push_back(book);/********************************************************************将book存放push_back到books向量中*/
count++;
cout<<"\t*******添加图书成功,此本书为图书馆中的第"<}
else
cout<<"\t*****************************添加图书失败**************************"<}
/*******************************************************************************************************实现查找图书的功能*/
voidBookmanage:
:
findBook()
{
charchoice;
stringwant;
inti;
inttag;/***************************************************************************************标记以便确认是否查找到图书*/
cout<<"\t*********************选择您要查找图书的方式*********************"
<\t书名\tb:
\tISBM\tc:
\t书名作者\td:
\t出版社"<cin>>choice;
cin.get();
switch(choice)
{
case'a':
cout<<"\t*********************请输入图书的书名*********************"<cin>>want;
cin.get();
for(i=tag=0;i{
if(books.at(i).getname()==want)
{
tag=1;/**********************************************************************当图书馆中存在图书是讲tag赋值为1*/
if(books.at(i).getstate()==0)
{
books.at(i).displayInfo();
cout<<"\t**********很高兴您所查找的图书在图书库中!
**************"<"\t*********为图书库中的第"<
********************"<"\t*********请记住此本图书的位置以方便您的借阅*************"<system("pause");
}
else
cout<<"\t***************很抱歉您所查找的图书已经不在图书馆了!
***********"<}
}
if(tag==0)/****************************************************************如果图书馆中原本就不存在查找的图书的tag是0*/
{
cout<<"\t***************很抱歉您所查找的图书不存在!
***************"<system("pause");
}
break;
case'b':
cout<<"\t*********************请输入图书的书号ISBN*****************"<cin>>want;
cin.get();
for(inti=tag=0;i{
if(books.at(i).getnum()==want)
{
tag=1;
if(books.at(i).getstate()==0)
{
books.at(i).displayInfo();
cout<<"\t*********很高兴您所查找的图书在图书库中!
**************"<"\t*********为图书库中的第"<
********************"<"\t*********请记住此本图书的位置以方便您的借阅************"<system("pause");
}
else
cout<<"\t***************很抱歉您所查找的图书已经不在图书馆了!
***********"<}
}
if(tag==0)
{
cout<<"\t***************很抱歉您所查找的图书不存在!
***************"<system("pause");
}
break;
case'c':
cout<<"\t*********************请输入图书的作者\t*******************"<cin>>want;
cin.get();
for(inti=tag=0;i{
if(books.at(i).getwriter()==want)
{
tag=1;
if(books.at(i).getstate()==0)
{
books.at(i).displayInfo();
cout<<"\t*********很高兴您所查找的图书在图书库中!
**************"<"\t*********为图书库中的第"<
********************"<"\t*********请记住此本图书的位置以方便您的借阅************"<system("pause");
}
else
cout<<"\t***************很抱歉您所查找的图书已经不在图书馆了!
***********"<}
}
if(tag==0)
{
cout<<"\t***************很抱歉您所查找的图书不存在!
***************"<system("pause");
}
break;
case'd':
cout<<"\t*********************请输入图书的出版社\t*****************"<cin>>want;
cin.get();
for(inti=tag=0;i{
if(books.at(i).getpub()==want)
{
tag=1;
if(books.at(i).getstate()==0)
{
books.at(i).displayInfo();
cout<<"\t*********很高兴您所查找的图书在图书库中!
**************"<"\t*********为图书库中的第"<
********************"<"\t*********请记住此本图书的位置以方便您的借阅************"<system("pause");
}
else
cout<<"\t***************很抱歉您所查找的图书已经不在图书馆了!
***********"<}
}
if(tag==0)
{
cout<<"\t***************很抱歉您所查找的图书不存在!
***************"<system("pause");
}
break;
default:
cout<<"\t******************************%d为非法选项!
****************\n"<system("pause");
}
}
/***********************************************************************************************************实现图书的借出*/
voidBookmanage:
:
lendbook()
{
inti=0;
cout<<"\t*********请输入您需要借阅的图书的编号********************"<<<"\t*********即为第几本书,比如2***************************"<cin>>i;
cin.get();
if(i<=count)
{
Book&temp=books.at(i-1);
temp.displayInfo();
if(temp.getstate()==0)
{
cout<<"\t************是否为你想要的图书,确定是否借阅Y/N*******"<charc;
cin>>c;
if(c=='Y')
{
temp.Borrowbooks();
cout<<"\t*************恭喜