c++之图书馆信息管理系统终结篇.docx
- 文档编号:6908659
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:13
- 大小:17.08KB
c++之图书馆信息管理系统终结篇.docx
《c++之图书馆信息管理系统终结篇.docx》由会员分享,可在线阅读,更多相关《c++之图书馆信息管理系统终结篇.docx(13页珍藏版)》请在冰豆网上搜索。
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<<"图书编号"< 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() {system("color2f"); cout< cout< cout<<"******************************************************"< cout<<"请登录! "< cout<<"******************************************************"< cout< cout< intq=0,w=1001; number: inte; cout<<"请输入账号"< cin>>e; if(q==e) { number1: intr; cout<<"请输入密码"< cin>>r; if(w==r) { fstreamiofile; if(! iofile) { cout<<"打开文件失败! "< } system("cls"); 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(); } else cout<<"*********************密码错误! 请重新输入*******************"< gotonumber1;} else cout<<"**********************账号错误! 请重新输入*******************"< gotonumber; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 图书馆 信息管理 系统 终结