ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:18.68KB ,
资源ID:27128728      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27128728.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书信息管理系统.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书信息管理系统.docx

1、图书信息管理系统图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作?图书信息录入功能(图书信息用文件保存)输入?图书信息浏览功能输出?查询和排序功能:(至少一种查询方式)算法? 按书名查询? 按作者名查询图书信息的删除与修改(可选项)#include #include #include #include struct bookData int booknumber; char bookname30; int store; ; struct Person char name20; char studynumbe

2、r10; int count; bookData Rbook2; /bookData Rbook; ; class History public: History(fstream& a)readerbook=a; void writehistory(); void readhistory(fstream&); private: fstream readerbook; ; class Liberian; void Find(fstream&); void CreateTxt(fstream&); class Reader friend Liberian; public: Reader(fstre

3、am&); void print(); void handlebook(fstream&); void change(); bool findreader(); void Addreader(); void deletereader(); private: fstream file; Person person; ; class Liberian public: Liberian(char *,char *); void changeReader(Reader&); void selfprint(); void Append(fstream&); private: char workname2

4、0; char worknumber20; ; int main() fstream bookRecord( book.dat,ios:in| ios:out); if(!bookRecord) cerr Cant open,try again!endl; exit(1); fstream readerRecord(reader.dat,ios:in|ios:out); if(!readerRecord) cerr Cant open,try again!endl; exit(1); int choice; int key; Reader reader(readerRecord);/读者管理系

5、统 Liberian liberian(李天,123456);/图书管理员 History rec(readerRecord);/声明显示历史记录类 while(1) cout 请输入您的选择:nn 1-图书管理员n 2-读者系统n choice; switch(choice) case 1: cout Hello,图书管理员:n; liberian.selfprint();coutendl; cout1- 增加新图书n 2- 改变读者的属性n 3- 显示历史记录n key; switch(key) case 1: liberian.Append(bookRecord); break; cas

6、e 2: liberian.changeReader(reader); break; case 3: rec.readhistory(readerRecord); case 0: break ; break; case 2: cout学生读者n; int iflag=1; /reader.findreader(); cout1- 借书与还书信息n 2- 修改个人信息n key; switch(key) case 1: reader.handlebook(bookRecord); break; case 2: reader.change(); break; case 0: break; brea

7、k; default: return 0; return 0; /增加书籍 void Liberian:Append(fstream& storef) bookData book; int choice; int key; int num; storef.seekp(0,ios:end); int posEnd=storef.tellp(); cout*书籍入库*endl; while(1) cout Please enter your choice:endl; cout1-添加新书n2-已有书籍nchoice; switch(choice) case 1: cout 书号, 书名, 数量?b

8、ook.booknumberbook.booknamebook.store; storef.write(reinterpret_cast(&book),sizeof(bookData); break; case 2: storef.seekg(0,ios:beg); coutkey; do storef.read(reinterpret_cast(&book),sizeof(bookData); while(book.booknumber!=key&storef.tellg()!=posEnd); if(book.booknumber=key) coutbook.booknumber-book

9、.bookname-book.storeendl; cout 输入已有书增加的数量:num; if(num0) book.store+=num; else cout Invalid inputendl; storef.seekp(-long(sizeof(bookData),ios:cur);/ storef.write(reinterpret_cast(&book),sizeof(bookData); cout现在书籍: book.bookname 余量为: book.storeendl; else cout找不到此书,请重新查阅书号是否正确!endl; break; case 0: ret

10、urn ; /书籍查询 void Find(fstream & f) bookData book; int key; int choice; f.seekg(0,ios:end); int posEnd=f.tellp(); cout*书籍查询*endl; while(1) cout 请输入您的选择n 1- 检索一本书n 2- 显示全部书籍n choice; switch(choice) case 1: f.seekg(0,ios:beg); cout输入你想检索书的书号key; do f.read(reinterpret_cast(&book),sizeof(bookData); while

11、(book.booknumber!=key&f.tellg()!=posEnd); if(book.booknumber=key) coutbook.booknumber-book.bookname-book.storeendl; else cout找不到此书,请重新确认!endl; break; case 2: f.seekg(0,ios:beg); do f.read(reinterpret_cast(&book),sizeof(bookData); coutbook.booknumber-book.bookname-book.storeendl; while(f.tellg()!=pos

12、End); break; case 0: return ; Reader:Reader(fstream& c) file=c; Person person=0,0,0,0,0,0, 0,0,0; void Reader:print() coutName-person.namennstudynumber-person.studynumber=3) return; /coutperson.name; while(1) cout1- 借书n 2- 还书n 3- 查找一本书n 0- 返回choice; switch(choice) case 1: filee.seekp(0,ios:end); int

13、 posEnd=filee.tellp(); if(person.count=1) cout 输入你要借阅图书的书号:key; filee.seekg(0); do filee.read(reinterpret_cast(&book),sizeof(bookData); while(book.booknumber!=key&filee.tellp()!=posEnd); /coutbook.booknumberendl; if(book.booknumber=key) /cout 找到你想借阅的图书,成功借阅!0) person.Rbookperson.count=book; person.c

14、ount+=1; book.store-=1; filee.seekp(-long(sizeof(bookData),ios:cur); filee.write(reinterpret_cast(&book),sizeof(bookData); cout 找到你想借阅的图书,成功借阅!endl; cout书籍 :book.bookname剩余的本数为:book.storeendl; else cout 现在此图书已经被借完了,请耐心等待几天!endl; else cout 找不到你想要的图书endl; else cout0) / int iflag=0; filee.seekg(0); cou

15、t 输入你想要还的书的书号:key; for(int i=0;i2;i+) if(key=person.Rbooki.booknumber) person.Rbooki=blankbook; cout成功归还此书!; iflag=1; person.count-; do filee.read(reinterpret_cast(&book),sizeof(bookData); while(book.booknumber!=key&filee.tellp()!=posEnd); if(book.booknumber=key) book.store+=1; filee.seekp(-long(siz

16、eof(bookData),ios:cur); filee.write(reinterpret_cast(&book),sizeof(bookData); cout书籍 :book.bookname余本量为: book.storeendl; if(!iflag) cout 你没有借阅那本书,请确认!endl; / / else / cout=3) return; cout 请输入你的选择!endl; cout1-改变名字!n 2-修改学号rn choice; switch(choice) case 1: coutnewname; strcpy(person.name,newname); bre

17、ak; case 2: coutnewnumber; strcpy(person.studynumber,newnumber); break; default: break; file.seekp(-long(sizeof(Person),ios:cur); file.write(reinterpret_cast(&person),sizeof(Person); cout信息修改成功!endl; void Liberian:selfprint() cout 图书管理员 :n worknumber-workname 为您服务!n; Liberian:Liberian(char *a,char*b

18、) strcpy(workname,a); strcpy(worknumber,b); void Liberian:changeReader(Reader& a) int choice; char newname20;char newnumber10; cout修改读者的数据信息!n; cout1- 增加一个读者n 2- 删除一个读者n choice; switch(choice) case 1: a.Addreader(); break; case 2: a.deletereader(); break; case 0: return; void Reader:Addreader() Pers

19、on temp;bookData book=0,0,0; file.seekp(0,ios:end); int Posend=file.tellp(); cout输入你想要增加的读者的名字temp.name; cout新读者的学号:temp.studynumber; temp.Rbook1=book; temp.Rbook0=book; temp.count=0; file.write(reinterpret_cast(&temp),sizeof(Person); cout 成功添加!temp.nameendl; void Reader:deletereader() file.seekp(0,

20、ios:end); int Posend=file.tellp(); Person person; char name20; cout输入要删除的读者的名字!name; file.seekg(0); do file.read(reinterpret_cast(&person),sizeof(Person); while(strcmp(name,person.name)&file.tellp()!=Posend); if(!strcmp(name,person.name) bookData blankbook=0,0,0; Person guest=0,0,0,0,0,0,0,0,0; file

21、.seekp(-long(sizeof(Person),ios:cur); file.write(reinterpret_cast(&guest),sizeof(Person); cout成功删除!person.nameendl; else cout查无此人!endl; bool Reader:findreader() file.seekp(0,ios:end); int Posend=file.tellp(); char name20; Person guest=0,0,0,0,0,0,0,0,0; coutname; file.seekg(0); do file.read(reinterp

22、ret_cast(&person),sizeof(Person); while(strcmp(name,person.name)&file.tellp()!=Posend); if(!strcmp(name,person.name) cout查到此人:person.nameendl; return true; else cout找不到此人,请重新确认!endl; return false; /借阅历史 void History:readhistory(fstream& a) readerbook=a; char name10=0; readerbook.seekp(0,ios:end); in

23、t Posend=readerbook.tellp(); Person guest; int iflag=1; cout 书籍借阅信息如下:endl; cout姓名 学号 借书量 书籍名endl; readerbook.seekg(0,ios:beg); do readerbook.read(reinterpret_cast(&guest),sizeof(Person); if(strcmp(guest.Rbook1.bookname,name) | strcmp(guest.Rbook1.bookname,name) coutguest.name guest.studynumber guest.count ; for(int i=0;i2;i+) if(st

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1