- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++图书管理系统代码.doc
??????一些基本的功能:
?? 1:添加图书以及图书编号
?? 2:能够实行基本的借书还还书的功能。
?? 3:? 删除图书信息等
?#include iostream#include iomanip#include string#include fstream//输入/输出文件流类using namespace std;const int Maxr=100;//最多的读者const int Maxb=100;//最多的图书const int Maxzf=5;//每位读者最多借五本书//读者类,实现对读者的信息的描述
class Reader?????? {?? ??? private:?int tag;? //删除标记 1:已删 0:未删?int no;?? //读者编号?char name[10];? //读者姓名?int zfbook[Maxzf];//所借图书??? public:??Reader() {}??? ?char *getname() {return name;}????? //获取姓名??int gettag() {return tag;}???????? //获取删除标记???? int getno() {return no;}?????????? //获取读者编号??? ?void setname(char na[])??????????? //设置姓名??{ ???? strcpy(name,na);????}?void delbook(){? tag=1;? }//设置删除标记 1:已删 0:未删?void addreader(int n,char *na)//增加读者?{ ??tag=0;??no=n;??strcpy(name,na);??for(int i=0;iMaxzf;i++)???zfbook[i]=0;?}?void zfrowbook(int bookid)//借书操作?{??for(int i=0;iMaxzf;i++)??{ ???if (zfbook[i]==0)???{????zfbook[i]=bookid;????return;???????}??}???}?int retbook(int bookid)//还书操作?{ ??for(int i=0;iMaxzf;i++)??{ ???if(zfbook[i]==bookid)???{???zfbook[i]=0;???return 1;??????}??}??return 0;?}?void disp()//读出读者信息?{ ??cout setw(5) no setw(10) name借书编号:[;??for(int i=0;iMaxzf;i++)???if(zfbook[i]!=0)????cout zfbook[i] |;??cout ]endl;????}};
?
//读者类库,实现建立读者的个人资料?class RDatabase{? private:?? int top;?????? //读者记录指针?? Reader read[Maxr];//读者记录public:?RDatabase()?? //构造函数,将reader.txt读到read[]中?{??Reader s;??top=-1;??fstream file(reader.txt,ios::in);//打开一个输入文件??while (1)??{???file.read((char *)s,sizeof(s));???if (!file)break;???top++;???read[top]=s;??}??file.close();???? //关闭 reader.txt?}??? void clear()//删除所有读者信息?{??top=-1;?}?int addreader(int n,char *na)//添加读者时先查找是否存在?{??Reader *p=query(n);??if (p==NULL)??{??? top++;??? read[top].addreader(n,na);??? return 1;??}??return 0;
?}?Reader *query(int readerid)//按编号查找?{??for (int i=0;i=top;i++)???if (read[i].getno()==readerid ???read[i].gettag()==0)???{????ret
文档评论(0)