好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

(精)图书管理系统(改后).doc

28页
  • 卖家[上传人]:ss****gk
  • 文档编号:232238394
  • 上传时间:2021-12-30
  • 文档格式:DOC
  • 文档大小:180KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • include #include #include #include int adflag=0;〃管理员权限标志const char initialCode[30]=”000000”;//!!!!!!!!!!!!!!!管理员密码 000000,管理员切记!!!!!!!!!!!!!class Book;//类声明struct Bnode//书库结构(char b_name[30];// 书名char b_niim[30];〃 编号bool b_flag;//借阅情况Bnode *next;};struct Rnode//读者库结构{char r_name[30];〃读者名char 读者编号int num;//读者借书数量char r_code[3()];〃读者密码Bnode r_borrow[5];〃读者所借书籍,借书上限为5本 Rnode *next;);class Reader//读者类{public:Reader(); 〃构造函数void addReader();//^加读者bool deleReader。

      //删除读者,管理员有强制删除权限void find//查找读者,管理员权限,有密码显示功能,用于找回密码void showReader//显示所有读者void saveReader//保存读者数据void getReader//读取读者数据bool check(char[]);//S找比对void format//格式化void boirow(Rnode*,Biiode*);〃借阅书籍bool identify(char*,char*,char*,Rnode*&);//^份验证;void backBook(Rnode*,Bnode*);//jE书void rewrite(Rnode*);〃修改个人信息void readerCheck(Rnode*);〃读者查询,无密码显示功,且只能查阅自己借书情况 private:Rnode *Rhead;};Reader: :Reader()〃读者类构造函数定义(Rhead=new Rnode;strcpy(Rhead・>r_name,"administrator");〃设置为循环指针,将管理员信息放在表头中 strcpy(Rhead->r_num,,-r,);Rhead->num=O;Rhead->next=Rhead;}void Reader::readerCheck(Rnode*p)//^者自己查询{if(p・>num==0)//借书为空(coutn无借书记录nendl;}else(for(int i=0;iv5;i++)〃显示借阅书籍情况(if(strcmp((p->r_borrow[i]).b_name,MM)!=0)//当书籍名中为空的情况下不输 出,即该记录为无借书记录{coutM 书名:H(p->r_borrovv[i]).b_namen\t\t 编号U(p->r_borrow[i]).b_numendl;//$fe 出)}}system(,pause,);//M统命令,等待用户}bool Reader::check(char mim[])〃对比{Rnode *h=Rhead;while(h->next!=Rhead)//^E读者库中比对编号,确保编号的唯一性(if(strcmp(num,h->next->r_num)==O){coutvv”该读者编号已存在,申请失败!!!Hendl;system(MpauseM);return 1;}h=h->next;}return 0;void Reader::addReader。

      //添加读者定义{char flag9flagl9code[30]9flag2= 1;Rnode *temp,*tail=Rhead;while(tail・>next!=Rhead)〃使得每一次添加都放在末尾,即表头前一位(tail=tail->next;}do(temp=new Rnode;coutn请输入姓名:”;//ignore(lOO);cin.ignore( 1);//清除缓冲区,只清除一个字节//cin.getline(temp->r_name,2);cin.getline(temp->r_naine,30);coutvv”请输入读者编号:“;cintemp->r_num;//system (*1 pause M);do{ Hag2=T;cout "请输入密码”;cintemp->r_code;cout ”请重复输入密码”;cincode;if(strcmp(temp->r_code,code)==0)//W 次密码比对{flag2=,0,;temp->num=0;if(check(temp->r_num)==O)// 检查(temp->next=Rhead;tail->next=temp;tail=temp;for(int i=0;iv5;i++)〃读者个人书库初始化strcpy((temp->r_borrow[i])eb_name/fM);strcpy((temp->r_borrow[i]).b_num/,lf);coutvv”添加成功 nendl;coutn继续添加请按1,结束添加请按Ouendl;do{cinflag;flagl=T;if(flag!=,l*&&flag!=,O,)(coutvv”输入的字符有误,请重新输入:”vvendl;)}while(flagl==*O,);} else{coutvv”请重新输入所有信息:” vvendl;flag=T;)}else(coutvv”密码重复有误,请重新输入两次密码nendl;}} while(flag2==* 1 *);}while(flag==,l,);bool Reader: :deleReader()〃删除读者{int flag;char flagl,flag3;char num[30];Rnode *p=Rhead;cout ”请输入读者编号:”;cinnum;if(Rhead->next==Rhead)// 当读者库为空时(cout读者库空!!Mendl;system。

      pause");return false;)while(p・>next!=Rhead)〃扫 描编号if(strcmp(p->next->r_nuin,num)==O)(flag=l;break;)p=p->next;if(p->next==Rhead)//ja描完毕,但未发现标号匹配(coutn不存在该读者"endl;system(n pause*);return false;}}if(flag==1 &&p->next->num==O)//匹配且借书记录为空,顺利删除{coutvv”您确定要删除?vy/n>”;cinflag3;if(flag3==y)(Rnode *h=p・>next;p->next=p->next->next;delete h;cout删除成功!!! endl;systempause");return true;}else(return false;)}if(flag==l&&p->next->num!=O)//匹配,但有书籍未还(coutn该读者有1 p->next->num1本书未还,暂时无法删除!!!"vvendl; if(adflag==l)//管理员权限,强制删除(coutvv”是否强制删除?”;cinflagl;if(flagl==y)Rnode *h=p・>next;p->next=p->next->next;delete h;coutn 删除成功!!!"vvendl; system(,pause,);return true;)}system(n pause");return false;)}void Reader::find()〃查找读者,管理员权限(char *p=new char[30];Rnode *h=Rhead;bool flag=0;char way;coutnl以读者姓名方式Hendl;cout"2以读者编号方式nendlendl;coutn请选择以什么方式查找读者:”; cinway;switch(way)//两种方式(case T:〃已读者姓名方式coutvv”请输入读者姓名”; cin.getline(p,2);cin.getline(p,30);vvhile(h->next!=Rhead)if(strcmp(p,h->next->r_name)==O)//it 名匹配flag=l;cout" 姓名:Hh->next->r_nameM\t\t 编号:,,h->next->r_num,\t\t 密码:Mh->next->r_codeendl;//示读者信息 if(h->next->num!=0)coutH 所借图书:” vvendl;for(int i=O;inext->num;i++)//M示借书信息(if(strcmp((h->next->r_borrow[i]).b_name/,M)!=0)(coutnn(h->next->r_borrow[i]).b_namen\t\tn(h->next->r_borrow[i]).b_numendl;}}elsecoutvv”该读者无借书记录Hendl;}}h=h->next;}delete p;break;case 2://已读者编号方式coutn请输入读者编号”;cinp;while(h->next!=Rhead){if(strcmp(p,h->next->r_num)==O)(flag=l;coutn 姓名:Kh->next->r_namen\t\t 编号:nh->next->r_numM\t\t 密码:Hh->next->r_codeendl;//同上if(h->num!=0)(cout "所借图书:"endl;for(int i=O;ivh・>num;i++)//同上{if(strcmp((h->next->r_borrow[i]).b_name,nM)!=0)(cout"n(h->next->r_borrow[i]).b_namen\t\tn(h->next->r_borrow[i]).b_numendl;}}}else(coutn该读者无借书记录nendl;}}h=h->next;}delete p;。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.