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

上传人:ss****gk 文档编号:232238394 上传时间:2021-12-30 格式:DOC 页数:28 大小:180KB
返回 下载 相关 举报
(精)图书管理系统(改后)_第1页
第1页 / 共28页
(精)图书管理系统(改后)_第2页
第2页 / 共28页
(精)图书管理系统(改后)_第3页
第3页 / 共28页
(精)图书管理系统(改后)_第4页
第4页 / 共28页
(精)图书管理系统(改后)_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《(精)图书管理系统(改后)》由会员分享,可在线阅读,更多相关《(精)图书管理系统(改后)(28页珍藏版)》请在金锄头文库上搜索。

1、#include #include #include #include int adflag=0;管理员权限标志const char initialCode30=”000000”;/!管理员密码 000000,管理员切记!class Book;/类声明struct Bnode/书库结构(char b_name30;/ 书名char b_niim30; 编号bool b_flag;/借阅情况Bnode *next;;struct Rnode/读者库结构char r_name30;读者名char读者编号int num;/读者借书数量char r_code3();读者密码Bnode r_borrow

2、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*);借阅书

3、籍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(Rheadr_name,administrator);设置为循环指针,将管理员信息放在表头中 strcpy(Rhead-r_num,-r,);R

4、head-num=O;Rhead-next=Rhead;void Reader:readerCheck(Rnode*p)/者自己查询if(pnum=0)/借书为空(coutn无借书记录nendl;else(for(int i=0;iv5;i+)显示借阅书籍情况(if(strcmp(p-r_borrowi).b_name,MM)!=0)/当书籍名中为空的情况下不输 出,即该记录为无借书记录coutM书名:H(p-r_borrovvi).b_namentt 编号U(p-r_borrowi).b_numendl;/$fe 出)system(,pause,);/M统命令,等待用户bool Reader

5、: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 flag9flagl9code309flag2= 1;Rnode *temp,*tail=Rhead;while(tailnext!=Rhead)使得每一次添加都放在末尾,即表头前一位(

6、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

7、=,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_borrowi)eb_name/fM);strcpy(temp-r_borrowi).b_num/,lf);coutvv”添加成功 nendl;coutn继续添加请按1,结束添加请按Ouendl;docinflag;flagl=T;if(flag!=,l*&flag!=,O,)(coutvv”输入的字符有误,请重新输入:”vvendl;)whi

8、le(flagl=*O,); elsecoutvv”请重新输入所有信息:” vvendl;flag=T;)else(coutvv”密码重复有误,请重新输入两次密码nendl; while(flag2=* 1 *);while(flag=,l,);bool Reader: :deleReader()删除读者int flag;char flagl,flag3;char num30;Rnode *p=Rhead;cout ”请输入读者编号:”;cinnum;if(Rhead-next=Rhead)/ 当读者库为空时(cout读者库空!Mendl;system。pause);return false;

9、)while(pnext!=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=pnext;p-next=p-next-next;delete h;cout删除成功! endl;syst

10、em。pause);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=pnext;p-next=p-next-next;delete h;coutn 删除成功!vvendl; system(,pause,);return true;)system(n pause);return false;)v

11、oid Reader:find()查找读者,管理员权限(char *p=new char30;Rnode *h=Rhead;bool flag=0;char way;coutnl以读者姓名方式Hendl;cout2以读者编号方式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;c

12、out姓名:Hh-next-r_nameMtt 编号:,h-next-r_num,tt 密码:Mh-next-r_codeendl;/示读者信息 if(h-next-num!=0)coutH 所借图书:” vvendl;for(int i=O;inext-num;i+)/M示借书信息(if(strcmp(h-next-r_borrowi).b_name/,M)!=0)(coutnn(h-next-r_borrowi).b_namenttn(h-next-r_borrowi).b_numendl;elsecoutvv”该读者无借书记录Hendl;h=h-next;delete p;break;c

13、ase 2:/已读者编号方式coutn请输入读者编号”;cinp;while(h-next!=Rhead)if(strcmp(p,h-next-r_num)=O)(flag=l;coutn姓名:Kh-next-r_namentt 编号:nh-next-r_numMtt 密码:Hh-next-r_codeendl;/同上if(h-num!=0)(cout 所借图书:endl;for(int i=O;ivhnum;i+)/同上if(strcmp(h-next-r_borrowi).b_name,nM)!=0)(coutn(h-next-r_borrowi).b_namenttn(h-next-r_borrowi).b_numendl;else(coutn该读者无借书记录nendl;h=h-next;delete p;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号