《2022年c++图书管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年c++图书管理系统 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、/图书管理系统#include#include#include#include using namespace std;const int Maxb=10000;/最多的图书class Book/图书类 int tag;/删除标记1:已删 0:未删int no;/图书编号char name20;/书名char author10;/作者名char no210;/输入分类号char dan20;/输入出版单位char time20;/出版时间int price;/价格public:Book()char*getname()return name;/获取姓名int getno()return no;/
2、获取图书编号int gettag()return tag;/获取删除标记char*getauthor()return author;/获取作者名char*getno2()return no2;/获取分类号char*getdan()return dan;/获取出版单位char*gettime()return time;/获取出版时间char getprice()return price;/获取图书价格void setname(char na)/设置书名 strcpy(name,na);void setauthor(char au)/设置作者名 strcpy(author,au);void set
3、no2(char n)/设置分类号 strcpy(no2,n);void setdan(char d)/设置出版单位名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -strcpy(dan,d);void settime(char t)/设置出版时间 strcpy(time,t);void delbook()tag=1;/删除图书void addbook(int n,char*na,char*au,char*n2,char*da,char*ti,int pr)/增加图书 tag=0;no=n;price=pr;strcpy(name,na);strcpy(author,a
4、u);strcpy(no2,n2);strcpy(dan,da);strcpy(time,ti);void disp()/输出图书 cout setw(10)no setw(10)name setw(10)setw(10)authorsetw(10)no2setw(10)dansetw(10)timesetw(10)priceendl;class BDatabase/图书库类 int top;/图书记录指针Book bookMaxb;/图书记录public:BDatabase()/构造函数,将 book.txt 读到 book 中 Book b;top=-1;fstream file(book
5、.txt,ios:in);while(1)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -file.read(char*)&b,sizeof(b);if(!file)break;top+;booktop=b;file.close();void clear()/全删 top=-1;int addbook(int n,char*na,char*au,char*n2,char*da,char*ti,int pr)/增加图书 Book*p=query(n);if(p=NULL)top+;booktop.addbook(n,na,au,n2,da,ti,pr);return 1
6、;return 0;Book*query(int bookid)/查找图书 for(int i=0;i=top;i+)if(booki.getno()=bookid&booki.gettag()=0)return&booki;return NULL;Book*query2(int bookid,char*name)/按书名查找图书 for(int i=0;i=top;i+)if(strcmp(booki.getname(),name)=0)bookid=booki.getno();return&booki;return NULL;Book*query3(int bookid,char*auth
7、or)/按作者查找图书 for(int i=0;i=top;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -if(strcmp(booki.getauthor(),author)=0)bookid=booki.getno();return&booki;return NULL;void bookdata();/图书库维护void disp()coutsetw(10)图 书 编 号 setw(10)图 书 名 字 setw(10)图 书 作 者setw(10)图书分类 setw(10)出版单位 setw(10)出版时间 setw(10)价格endl;for(int
8、i=0;i=top;i+)if(booki.gettag()=0)booki.disp();BDatabase()/析构函数,将 book 写入 book.txt 文件中 fstream file(book.txt,ios:out);for(int i=0;i=top;i+)if(booki.gettag()=0)file.write(char*)&booki,sizeof(booki);file.close();void BDatabase:bookdata()int choice=1;int choice2=1;int choice3=1;int choice4=1;char bname4
9、0;char bauthor10;char bno220;char bdan20;char btime20;int bprice;int bookid;Book*b;while(choice!=0)coutendlendl;cout*endl;cout*1 添加信息*endl;名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -cout*2 修改信息*endl;cout*3 删除信息*endl;cout*4 信息查询*endl;cout*5 显示信息*endl;cout*6 全部删除*endl;cout*0 退出*endl;cout*endlendl;coutendl c
10、hoice;/如果输入的编号在菜单里不存在的情况-在 for 循环内部如果出现这样的错的时候while(choice!=1&choice!=2&choice!=3&choice!=4&choice!=5&choice!=6&choice!=0)coutendl*您输入的编号在菜单里不存在,请重新输入*aendlendl;coutchoice;switch(choice)case 1:cout bookid;cout bname;cout bauthor;cout bno2;coutbdan;coutbtime;coutbprice;addbook(bookid,bname,bauthor,bn
11、o2,bdan,btime,bprice);cout 图书编号 bookid 添加成功;按任意键返回菜单;break;case 2:cout bookid;b=query(bookid);if(b=NULL)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 10 页 -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;co
12、utchoice2;switch(choice2)case 1:cout bname;b-setname(bname);break;case 2:coutbauthor;b-setauthor(bauthor);break;case 3:coutbno2;b-setno2(bno2);break;case 4:coutbdan;b-setdan(bdan);break;case 5:coutbtime;b-settime(btime);/修改出版时间break;名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 10 页 -break;case 3:cout bookid;b=que
13、ry(bookid);if(b=NULL)cout 该图书不存在 delbook();break;case 4:cout 查找方式:endlchoice3;switch(choice3)case 1:cout bookid;b=query(bookid);if(b=NULL)cout 该图书不存在 disp();break;case 2:coutbname;b=query2(bookid,bname);if(b=NULL)cout 该图书不存在啊!disp();名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -break;case 3:coutbauthor;b=que
14、ry3(bookid,bauthor);if(b=NULL)cout该作者不存在!disp();break;break;case 5:disp();break;case 6:clear();break;coutendl 谢 谢 您 的 支 持!欢 迎 下 次 继 续 使 用 endlendlendl;void main()system(color 2f);coutendl;coutendl;cout*endl;cout 请登录!endl;cout*endl;coutendl;coutendl;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 10 页 -int q=0,w=1001
15、;number:int e;cout 请输入账号 e;if(q=e)number1:int r;cout请输入密码 r;if(w=r)fstream iofile;if(!iofile)cout 打开文件失败!endl;system(cls);BDatabase BookDB;Book*b;int nb;coutendlendl;cout endl;cout endl;cout endl;cout 欢迎使用图书馆信息管理系统endl;cout endl;cout endl;cout endl;coutendlendlnb;while(nb!=1)coutendl*您的输入有误*aendl;coutendlnb;名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 10 页 -if(nb=1)BookDB.bookdata();else cout*密码错误!请重新输入*endl;goto number1;else cout*账号错误!请重新输入*endl;goto number;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 10 页 -
限制150内