《c++图书管理系统(完整精华排版)(2)46651.pdf》由会员分享,可在线阅读,更多相关《c++图书管理系统(完整精华排版)(2)46651.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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(
2、)return no;/获取图书编号 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(
3、author,au);void setno2(char n)/设置分类号 strcpy(no2,n);void setdan(char d)/设置出版单位 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,au);strcpy(no2,n2
4、);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.txt,ios:in);w
5、hile (1)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;return 0;Book *query(int bookid)/查找图书 for (i
6、nt 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*author)/按作者查找图书 for(int i=0;i=top;i+)if(strcmp
7、(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 i=0;i=top;i+)if (booki.gettag()=0)booki.disp();BDatabase()/析构函数,将 book写入 book.tx
8、t 文件中 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 bname40;char bauthor10;char bno220;char bdan20;char btime20;int bprice;int bookid;B
9、ook *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 choice;/如果输入的编号在菜单里不存在的情况-在 for 循环内部如果出现这样的错的时候 while(choice!=1&choice!=2&choice!=3&choice!=4&cho
10、ice!=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,bno2,bdan,btime,bprice);cout图书编号bookid添加成功;按任意键返回菜单 ;break;case 2:cout bookid;b=query(bookid);i
11、f (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;coutchoice2;switch(choice2)case 1:cout bname;b-setname(bname);break;case 2:coutbauthor;b-setauthor(bauthor);break;case
12、3:coutbno2;b-setno2(bno2);break;case 4:coutbdan;b-setdan(bdan);break;case 5:coutbtime;b-settime(btime);/修改出版时间 break;break;case 3:cout bookid;b=query(bookid);if (b=NULL)cout 该图书不存在 delbook();break;case 4:cout查找方式:endlchoice3;switch(choice3)case 1:cout bookid;b=query(bookid);if (b=NULL)cout 该图书不存在 di
13、sp();break;case 2:coutbname;b=query2(bookid,bname);if(b=NULL)cout该图书不存在啊!disp();break;case 3:coutbauthor;b=query3(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;co
14、utendl;cout *endl;cout 请登录!endl;cout *endl;coutendl;coutendl;int q=0,w=1001;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;if(nb=1)BookDB.bookdata();else cout *密码错误!请重新输入*endl;goto number1;else cout *账号错误!请重新输入*endl;goto number;