//图书管理系统#includeiostream#includeiomanip#includestring#includefstreamusingnamespacestd;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()//输出图书{coutsetw(10)nosetw(10)namesetw(10)setw(10)authorsetw(10)no2setw(10)dansetw(10)timesetw(10)priceendl;}};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(){coutsetw(10)图书编号setw(10)图书名字setw(10)图书作者setw(10)图书分类setw(10)出版单位setw(10)出版时间setw(10)价格endl;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){coutendlendl;cout************endl;cout*1添加信息*endl;cout*2修改信息*endl;cout*3删除信息*endl;cout*4信息查询*endl;cout*5显示信息*endl;cout*6全部删除*endl;cout*0退出*endl;cout************endlendl;coutendl请按键选择您需要的操作:;cinchoice;//如果输入的编号在菜单里不存在的情况---在for循环内部如果出现这样的错的时候while(choice!=1&&choice!=2&&choice!=3&&choice!=4&&choice!=5&&choice!=6&&choice!=0){coutendl**您输入的编号在菜单里不存在,请重新输入**'\a'endlendl;cout请选择您需要的操作:;cinchoice;}switch(choice){case1:cout输入图书编号:;cinbookid;cout输入图书书名:;cinbname;cout输入作者名:;cinbauthor;cout输入分类号:;cinbno2;cout输入出版单位:;cinbdan;cout输入出版时间:;cinbtime;cout输入价格:;cinbprice;addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice);cout图书编号bookid添加成功;按任意键返回菜单;break;case2:cout输入图书编号:;cinbookid;b=query(bookid);if(b==NULL){cout该图书不存在endl;break;}coutendlendl;cout************endl;cout*1书名*endl;cout*2作者*endl;cout*3分类号*endl;cout*4出版单位*endl;cout*5出版时间*endl;cout*0退出系统*endl;cout************endlendl;cout请输入要更改的:1书名2作者名3分类号4出版单位5出版时间0退出;cinchoice2;switch(choice2){case1:cout输入新的书名:;//修改图书名cinbname;b-setname(bname);break;case2:cout输入新的作者名:;//修改图书作者cinbauthor;b-setauthor(bauthor);break;case3:cout输入新的分类号:;//修改图书的分类号cinbno2;b-setno2(bno2);break;case4:cout输入新的出版单位:;//修改图书出版单位cinbdan;b-setdan(bdan);break;case5:cout输入新的出版时间:;cinbtime;b-settime(btime);//修改出版时间break;}break;case3:cout输入图书编号:;cinbookid;b=query(bookid);if(b==NULL){cout该图书不存在endl;break;}b-delbook();break;case4:cout查找方式:endl1按图书编号查询2按图书名查询3按作者名查询0退出:;cinchoice3;switch(choice3){case1:{cout输入图书编号:;//按图书编号查询cinbookid;b=query(bookid);if(b==NULL){cout该图书不存在endl;break;}b-disp();}break;case2:{cout请输入图书名:;cinbname;b=query2(bookid,bname);if(b==NULL){cout该图书不存在啊!endl;break;}b-disp();}break;case3:{cout请输入作者名:;cinbauthor;b=query3(bookid,bauthor);if(b==NULL){cout该作者不存在!endl;break;}b-disp();}break;}break;case5:disp();break;case6:clear();break;}}coutendl★☆谢谢您的支持!欢迎下次继续使用☆★endlendlendl;};voidmain(){system(color2f);coutendl;coutendl;cout******************************************************endl;cout请登录!endl;cout******************************************************endl;coutendl;coutendl;intq=0,w=1001;number:inte;cout请输入账号endl;cine;if(q==e){number1:intr;cout请输入密码endl;cinr;if(w==r){fstreamiofile;if(!iofile){cout打开文件失败!endl;}system(cls);BD