




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/图书管理系统#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; /获取图书编号 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 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);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); 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 (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) 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(10)出版单位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 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; 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 choice; /如果输入的编号在菜单里不存在的情况-在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,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 * 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 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 该图书不存在 disp(); 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; coutendl; 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南假肢制作装配工五级(初级工)历年参考题库含答案解析
- 2024版电子商务合同的法律问题与对策
- 2025年事业单位工勤技能-河北-河北汽车驾驶与维修员五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-新疆-新疆计算机文字录入处理员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水土保持工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西印刷工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西保安员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东园林绿化工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-北京-北京造林管护工五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-北京-北京下水道养护工三级(高级工)历年参考题库含答案解析
- 技师论文 变频器的维修与保养
- 非标自动化设备项目进度表
- 诊断学教学胸部查体
- 桥梁安全事故案例警示
- 育婴员理论模拟考试试题及答案
- YY/T 1095-2015肌电生物反馈仪
- SB/T 10460-2008商用电开水器
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GA 1800.2-2021电力系统治安反恐防范要求第2部分:火力发电企业
- 细胞生物学实验课件:细胞组分的分级分离
- 欣旺集团种禽养殖管理制度手册
评论
0/150
提交评论