1、c+图书管理系统完整精华排版/图书管理系统#include iostream include iomanip include string #include fstream 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: Bo
2、ok() char getname() return name; /获取姓名 int getno() 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 n
3、a) /设置书名 strcpy(name,na); void setauthor(char au) /设置作者名 strcpy(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) /
4、增加图书 tag=0; no=n; price=pr;strcpy(name,na); strcpy(author,au);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; /图书记录 publ
5、ic: BDatabase() /构造函数,将book.txt读到book中 Book b; top=1; fstream file(”book.txt”,ios:in); while (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 (
6、p=NULL) top+; booktop。addbook(n,na,au,n2,da,ti,pr); return 1; 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)
7、bookid=booki。getno(); return &booki; return NULL;Book *query3(int bookid,char author) /按作者查找图书 for(int i=0;i=top;i+) 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(1
8、0)出版单位”setw(10)出版时间”setw(10)价格”endl;for (int 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 cho
9、ice=1; int choice2=1;int choice3=1;int choice4=1;char bname40; char bauthor10;char bno220;char bdan20;char btime20;int bprice;int bookid; Book *b; while (choice!=0) coutendlendl;cout” * * * * * endl;cout” 1 添加信息 *endl;cout 2 修改信息 ”endl;cout” * 3 删除信息 endl;cout” 4 信息查询 endl;cout” 5 显示信息 ”endl;cout” *
10、 6 全部删除 endl;cout” * 0 退出 *”endl;cout * * * * * * ”endlendl;coutendl choice; /如果输入的编号在菜单里不存在的情况-在for循环内部如果出现这样的错的时候while(choice!=1&choice!=2&choice!=3&choice!=4&choice!=5choice!=6&choice!=0) coutendl” 您输入的编号在菜单里不存在,请重新输入 choice;switch (choice) case 1: cout ”输入图书编号:”; cin bookid; cout bname; cout bau
11、thor;cout bno2;coutbdan;cout输入出版时间:”; cinbtime;coutbprice;addbook(bookid,bname,bauthor,bno2,bdan,btime,bprice); cout图书编号bookid”添加成功;按任意键返回菜单 ;break; case 2: cout bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 endl; break; coutendlendl;cout” * * * * * * * endl;cout” 1 书名 *”endl;cout 2 作者 *endl;cout
12、” * 3 分类号 *”endl;cout” 4 出版单位 ”endl;cout 5 出版时间 endl;cout 0 退出系统 *”endl;cout * * * * * * * endlendl;coutchoice2;switch(choice2)case 1:cout bauthor;b-setauthor(bauthor);break;case 3:coutbno2;bsetno2(bno2);break;case 4:coutbdan;bsetdan(bdan);break;case 5:cout输入新的出版时间:”;cinbtime;bsettime(btime); /修改出版时
13、间break;break; case 3: cout ” 输入图书编号:; cin bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 delbook(); break; case 4: cout”查找方式:endl”1按图书编号查询 2按图书名查询 3按作者名查询 0退出:”; cinchoice3;switch(choice3)case 1: cout bookid; b=query(bookid); if (b=NULL) cout 该图书不存在 endl; break; b-disp(); break;case 2: coutbname;
14、b=query2(bookid,bname); if(b=NULL) cout该图书不存在啊!”disp(); break;case 3: cout”请输入作者名:; cinbauthor; b=query3(bookid,bauthor); if(b=NULL) coutdisp(); break;break; case 5: disp(); break; case 6: clear(); break; coutendl” 谢谢您的支持! 欢迎下次继续使用 endlendlendl;; void main() system(color 2f); coutendl; coutendl; cou
15、t *”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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1