C++图书馆管理系统.docx
《C++图书馆管理系统.docx》由会员分享,可在线阅读,更多相关《C++图书馆管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![C++图书馆管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/23/f2b0c6a2-9b79-4417-9a04-11425973980d/f2b0c6a2-9b79-4417-9a04-11425973980d1.gif)
C++图书馆管理系统
图书馆管理系统
//图书管理系统
#include
#include
#include
#include
usingnamespacestd;
constintMaxb=10000;//最多的图书
classBook//图书类
{
inttag;//删除标记1:
已删0:
未删
intno;//图书编号
charname[20];//书名
charauthor[10];//作者名
charno2[10];//输入分类号
chardan[20];//输入出版单位
chartime[20];//出版时间
intprice;//价格
public:
Book(){}
char*getname(){returnname;}//获取姓名
intgetno(){returnno;}//获取图书编号
intgettag(){returntag;}//获取删除标记
char*getauthor(){returnauthor;}//获取作者名
char*getno2(){returnno2;}//获取分类号
char*getdan(){returndan;}//获取出版单位
char*gettime(){returntime;}//获取出版时间
chargetprice(){returnprice;}//获取图书价格
voidsetname(charna[])//设置书名
{
strcpy(name,na);
}
voidsetauthor(charau[])//设置作者名
{
strcpy(author,au);
}
voidsetno2(charn[])//设置分类号
{
strcpy(no2,n);
}
voidsetdan(chard[])//设置出版单位
{
strcpy(dan,d);
}
voidsettime(chart[])//设置出版时间
{
strcpy(time,t);
}
voiddelbook(){tag=1;}//删除图书
voidaddbook(intn,char*na,char*au,char*n2,char*da,char*ti,intpr)//增加图书
{
tag=0;
no=n;
price=pr;
strcpy(name,na);
strcpy(author,au);
strcpy(no2,n2);
strcpy(dan,da);
strcpy(time,ti);
}
voiddisp()//输出图书
{
cout<<}
};
classBDatabase//图书库类
{
inttop;//图书记录指针
Bookbook[Maxb];//图书记录
public:
BDatabase()//构造函数,将book.txt读到book[]中
{
Bookb;
top=-1;
fstreamfile("book.txt",ios:
:
in);
while
(1)
{
file.read((char*)&b,sizeof(b));
if(!
file)break;
top++;
book[top]=b;
}
file.close();
}
voidclear()//全删
{
top=-1;
}
intaddbook(intn,char*na,char*au,char*n2,char*da,char*ti,intpr)//增加图书
{
Book*p=query(n);
if(p==NULL)
{
top++;
book[top].addbook(n,na,au,n2,da,ti,pr);
return1;
}
return0;
}
Book*query(intbookid)//查找图书
{
for(inti=0;i<=top;i++)
if(book[i].getno()==bookid&&
book[i].gettag()==0)
return&book[i];
returnNULL;
}
Book*query2(intbookid,char*name)//按书名查找图书
{
for(inti=0;i<=top;i++)
if(strcmp(book[i].getname(),name)==0)
{bookid=book[i].getno();
return&book[i];
}
returnNULL;
}
Book*query3(intbookid,char*author)//按作者查找图书
{
for(inti=0;i<=top;i++)
if(strcmp(book[i].getauthor(),author)==0)
{bookid=book[i].getno();
return&book[i];
}
returnNULL;
}
voidbookdata();//图书库维护
voiddisp()
{
cout<for(inti=0;i<=top;i++)
if(book[i].gettag()==0)
book[i].disp();
}
~BDatabase()//析构函数,将book[]写入book.txt文件中
{
fstreamfile("book.txt",ios:
:
out);
for(inti=0;i<=top;i++)
if(book[i].gettag()==0)
file.write((char*)&book[i],sizeof(book[i]));
file.close();
}
};
voidBDatabase:
:
bookdata()
{
intchoice=1;
intchoice2=1;
intchoice3=1;
intchoice4=1;
charbname[40];
charbauthor[10];
charbno2[20];
charbdan[20];
charbtime[20];
intbprice;
intbookid;
Book*b;
while(choice!
=0)
{cout<cout<<"************"<cout<<"*1添加信息*"<cout<<"*2修改信息*"<cout<<"*3删除信息*"<cout<<"*4信息查询*"<cout<<"*5显示信息*"<cout<<"*6全部删除*"<cout<<"*0退出*"<cout<<"************"<cout<";
cin>>choice;
//如果输入的编号在菜单里不存在的情况---在for循环内部如果出现这样的错的时候
while(choice!
=1&&choice!
=2&&choice!
=3&&choice!
=4&&choice!
=5&&choice!
=6&&choice!
=0){
cout<cout<<"请选择您需要的操作:
";
cin>>choice;
}
switch(choice)
{
case1:
cout<<"输入图书编号:
";
cin>>bookid;
cout<<"输入图书书名:
";
cin>>bname;
cout<<"输入作者名:
";
cin>>bauthor;
cout<<"输入分类号:
";
cin>>bno2;
cout<<"输入出版单位:
";
cin>>bdan;
cout<<"输入出版时间:
";
cin>>btime;
cout<<"输入价格:
";
cin>>bprice;
addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice);
cout<<"图书编号"<cin>>choice4;
if(choice4==9)
choice=1;
elsechoice=5;
break;
case2:
cout<<"输入图书编号:
";
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该图书不存在"<break;
}
cout<cout<<"************"<cout<<"*1书名*"<cout<<"*2作者*"<cout<<"*3分类号*"<cout<<"*4出版单位*"<cout<<"*5出版时间*"<cout<<"*0退出系统*"<cout<<"************"<cout<<"请输入要更改的:
1书名2作者名3分类号4出版单位5出版时间0退出";
cin>>choice2;
switch(choice2)
{
case1:
cout<<"输入新的书名:
";//修改图书名
cin>>bname;
b->setname(bname);
break;
case2:
cout<<"输入新的作者名:
";//修改图书作者
cin>>bauthor;
b->setauthor(bauthor);
break;
case3:
cout<<"输入新的分类号:
";//修改图书的分类号
cin>>bno2;
b->setno2(bno2);
break;
case4:
cout<<"输入新的出版单位:
";//修改图书出版单位
cin>>bdan;
b->setdan(bdan);
break;
case5:
cout<<"输入新的出版时间:
";
cin>>btime;
b->settime(btime);//修改出版时间
break;
}
break;
case3:
cout<<"输入图书编号:
";
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该图书不存在"<break;
}
b->delbook();
break;
case4:
cout<<"查找方式:
"<";
cin>>choice3;
switch(choice3)
{
case1:
{cout<<"输入图书编号:
";//按图书编号查询
cin>>bookid;
b=query(bookid);
if(b==NULL)
{
cout<<"该图书不存在"<break;
}
b->disp();
}
break;
case2:
{
cout<<"请输入图书名:
";
cin>>bname;
b=query2(bookid,bname);
if(b==NULL)
{
cout<<"该图书不存在啊!
"<break;
}
b->disp();
}
break;
case3:
{
cout<<"请输入作者名:
";
cin>>bauthor;
b=query3(bookid,bauthor);
if(b==NULL)
{
cout<<"该作者不存在!
"<break;
}
b->disp();
}
break;
}
break;
case5:
disp();
break;
case6:
clear();
break;
}
}
cout<欢迎下次继续使用☆★"<};
voidmain()
{
BDatabaseBookDB;
Book*b;
intnb;
{
cout<cout<<"★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<cout<<"☆☆"<cout<<"☆☆"<cout<<"★欢迎使用图书馆信息管理系统★"<cout<<"☆☆"<cout<<"☆☆"<cout<<"★☆☆★☆☆★☆☆★☆☆★☆☆★☆☆★"<}
cout<";
cin>>nb;
while(nb!
=1)
{cout<cout<";
cin>>nb;
}
if(nb==1)
BookDB.bookdata();
}
运行结果: