图书馆管理系统C++代码_第1页
图书馆管理系统C++代码_第2页
免费预览已结束,剩余27页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、专业.专注/ tushugua nli.cpp : Defines the entry point for the con sole applicati on.#in elude #i nclude #in clude /using n amespace std; const int BMAX=50;/图书数据库类 class bdatabasepublic:book btarrayBMAX;int top;public:bdatabase()book b;top=-1;fstream file(book.txt,ios:i n);while (1)/打开文件专业.专注file.read(ch

2、ar *)&b,sizeof(b);if (!file) break;top+;btarraytop = b;file.close();/ 关闭文件bdatabase()/ 析构函数,文件中fstream file(book.txt,ios:out);for (int i=0;i=top;i+)if (btarrayi.b_del=1)file.write(char *)&btarrayi,sizeof(btarrayi);file.close();专业.专注void addbooks()将 btarray写到 book.txt/往图书数据库中加图专业.专注book bk;in

3、t no;char bn ame20;cout请输入书号:;cinno;coutendl请输入书名:;cinbn ame;coute ndl;bk.b_flag=1;bk.addbook (no, bn ame);top+;btarraytop=bk;return;int findbooks(int suffix)/查找图书,这个函数用于借书这书操作是数组下标int no;,suffix专业.专注cout请输入书号:;专业.专注cinno;for(i nt i=0; i=top; i+)if(btarrayi. no=no & btarrayi.b_del=1)return i;ret

4、urn -1;int findbooks()/查找图书,这个函数用于图书int no;char value6;cout请输入书号:;cinno;for(i nt i=0; i=top; i+)维护专业.专注if(btarrayi. no=no & btarrayi.b_del=1)if(btarrayi.b_flag=1) strcpy(value,在架”);if(btarrayi.b_flag=2) strcpy(value,借出);cout 书号:btarrayi. no书的名称btarrayi. name图书状态:valuee ndl;return i;return -1;voi

5、d editbooks()/ 编辑图书int cur;cur = fin dbooks();if (cur=-1) cout没有这本书endl;return;cout 书 号:btarraycur. no书 的 名 称专业.专注btarraycur .n amee ndl;cout请修改数据:endl;coutendl btarraycur. name;return ;void delbooks()/ 删除图书int cur;cur = fin dbooks();if (cur=-1)return;if(btarraycur.b_flag=2)/ 删除时判断图书是否借出cout该图书已经借出,

6、请在归还后再删除。endl;return;专业.专注btarraycur.b_del=2;return;void listbooks()书char value6;for(i nt i=0; i=top; i+)if(btarrayi.b_del=1)if(btarrayi.b_flag=1) strcpy(value,在架);if(btarrayi.b_flag=2) strcpy(value,借出);cout 书号:btarrayi. no书的名称btarrayi. name 图书状态:valuee ndl; return; class book/显示全部图专业.专注public:专业.专注

7、int no;char n ame20;int b_flag;int b_del;public :book()void set no(i nt n)no=n;int get no()return no;/返回图书编号值void set name(char n a)strcpy(name, na);/ 字符串复制char* get name()return name; /返回图书名称图书编号/图书名称专业.专注void borbook()b_flag=2;借书标志void delbook()b_del=2; /删除标志void addbook(i nt no ,char n a)set no(n

8、o);set name( na);b_flag=1;b_del=1;/读者类 class readerpublic: int no;char n ame20;int r_del;1 存在,2 删除/增加图书功能专业.专注int r_bor;1 借过书,2 没有借书book brbook;public:void addreader(i nt id, char na)增加读者no = id;strcpy (n ame, n a);r_del=1;void setbrbook(book bt)/ 设置借书标记brbook = bt;book getbrbook()return brbook; /返回

9、借书信息;/读者数据库类classdatabase专业.专注public:reader rdarrayBMAX;int top;public:rdatabase()reader rd;top=_1;fstream file(reader.txt,ios:in); /while (1)file.read(char *)&rd,sizeof(rd);if (!file) break;top+;rdarraytop=rd;file.close(); / 关闭文件rdatabase() 析构函数打开文件专业.专注fstream file(reader.txt,ios:out);for (int

10、 i=0;i=top;i+)if (rdarrayi.r_del=1)file.write(char *)&rdarrayi,sizeof(rdarrayi);file.close();void addreaders()reader rd;int no;char rn ame20;cout请输入学号:;cinno;coutendl请输入姓名:cinrn ame;/添加读者专业.专注coute ndl;rd.addreader( no, rn ame);rd.r_bor=2;top+;rdarraytop=rd;return;int fin dreaders。ntsuffix) /查找读

11、者,这个函数用于借书还书操作suffix 是数组下标int no;cout请输入学号:;cinno;for(i nt i=0; i=top; i+)if(rdarrayi. no=no & rdarrayi.r_del=1)return i;return -1;参数专业.专注int findreaders()者维护操作int no;char value3;cout请输入学号:;cinno;for(i nt i=0; i=top; i+)if(rdarrayi. no=no & rdarrayi.r_del=1) if(rdarrayi.r_bor=1) strcpy(value

12、,if(rdarrayi.r_bor=2) strcpy(value,cout学号:rdarrayi.no 是否借书:valueendl;return i;return -1;void editreaders()/查找读者,这个函数用于读借);无);姓名:/编辑读者专业.专注int cur;cur = fin dreaders();信息int cur;cur = fin dreaders();if (cur=-1) cout没有该学生endl; return;cout请修改数据:endl;coutendl rdarraycur .n ame;return ;void书

13、后才能删除delreaders()II删除读者, 读者如果借书要还专业.专注if (cur=-1)return;是否借书 :valuee ndl;专业.专注if(rdarraycur.r_bor=1)cout该用户借了图书,请还书后再删除endl;return;rdarraycur.r_del=2;return;void listreaders()/ 显示char value3;for(i nt i=0; i=top; i+)if(rdarrayi.r_del=1)if(rdarrayi.r_bor=1) strcpy(value,if(rdarrayi.r_bor=2) strcpy(val

14、ue,cout学号:rdarrayi.no所有读者借);无);姓名:cout|e ndl;专业.专注 return;void bookjiemain()护子菜单cout|- |e ndl;cout|图书维护|endl;cout|(1)增加endl;cout|更改endl;cout|删除endl;cout|查找endl;cout|显示endl;cout|(6)返回上一层endl;/图书维cout*借书*e ndl;专业.专注void readerjiemian()维护子菜单cout|-|”e ndl;cout|读者维护|endl;cout|(1)增 加endl;cout

15、|更 改endl;cout|删 除endl;cout|查 找endl;cout|(5)显示endl;cout|(6)返回上一层endl;cout|-|e ndl;/主界面cout*图书管理系统*endl;cout*e ndl;voidmainjiemian()/读者cout*endl;专业.专注cout*e ndl;cout*(2)还书*e ndl;cout*e ndl;cout*(3)图书管理*e ndl;cout*e ndl;cout*(4)用户管理*e ndl;cout*e ndl;cout*(0)退出*e ndl;void borrowtoretur n( char br)/借书还书函

16、数参数 br 用来判断是 借书”还是 还书”1 为借书”,2 为 还书int rdid=0;int bkid=0;int rsuffix, bsuffix;bdatabase t_bd;rdatabase t_rd;if(br=1)/ 借书rsuffix=t_rd.fi ndreaders(rdid);cout*endl;bsuffix=t_bd.fi ndbooks(bkid);专业.专注if (rsuffix=-1 | bsuffix=-1)return;if(t_bd.btarraybsuffix.b_flag=2)cout图书已经借出,请选择其它图书endl; return;if(t_

17、rd.rdarrayrsuffix.r_bor=1)cout你已经借过图书,请先归还再借其它图书return;t_bd.btarraybsuffix.b_flag=2;t_rd.rdarrayrsuffix.r_bor=1;t_rd.rdarrayrsuffix.brbook=t_bd.btarraybsuffix;return;if(br=2)rsuffix=t_rd.fi ndreaders(rdid);endl;bsuffix=t_bd.fi ndbooks(bkid);专业.专注if (rsuffix=-1 | bsuffix=-1 )return; if(t_rd.rdarrayrs

18、uffix.brbook .no=t_bd.btarraybsuffix. no)t_bd.btarraybsuffix.b_flag=1;t_rd.rdarrayrsuffix.r_bor=2;t_rd.rdarrayrsuffix.brbook=t_bd.btarraybsuffix;elsecout请重新输入,读者借的图书号不正确 i n;switch (in)case 1:bd.addbooks(); break;case 2:bd.editbooks(); break;case 3:bd.delbooks(); break;case 4:bd.fi ndbooks(); break;case 5:bd.listbooks(); break;case 6:break;default:cout 输入错误,请从新输入。” i n;switch (in)case 1:bd.addreaders();break;case 2:bd.editreaders();break;case 3:bd.delreaders();break;case 4:bd.fi ndread

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论