- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图书管理系统(改后).doc
#include iostream.h
#include fstream.h
#include string.h
#include fstream
int adflag=0;//管理员权限标志
const char initialCode[30]=000000;//!!!!!!!!!!!!!!!管理员密码000000,管理员切记!!!!!!!!!!!!!
class Book;//类声明
struct Bnode//书库结构
{
char b_name[30];//书名
char b_num[30];//编号
bool b_flag;//借阅情况
Bnode *next;
};
struct Rnode//读者库结构
{
char r_name[30];//读者名
char r_num[30];//读者编号
int num;//读者借书数量
char r_code[30];//读者密码
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[]);//查找比对
void format();//格式化
void borrow(Rnode*,Bnode*);//借阅书籍
bool identify(char*,char*,char*,Rnode*);//身份验证;
void backBook(Rnode*,Bnode*);//还书
void rewrite(Rnode*);//修改个人信息
void readerCheck(Rnode*);//读者查询,无密码显示功,且只能查阅自己借书情况
private:
Rnode *Rhead;
};
Reader::Reader()//读者类构造函数定义
{
Rhead=new Rnode;
strcpy(Rhead-r_name,administrator);//设置为循环指针,将管理员信息放在表头中
strcpy(Rhead-r_num,-1);
Rhead-num=0;
Rhead-next=Rhead;
}
void Reader::readerCheck(Rnode*p)//读者自己查询
{
if(p-num==0)//借书为空
{
cout无借书记录endl;
}
else
{
for(int i=0;i5;i++)//显示借阅书籍情况
{
if(strcmp((p-r_borrow[i]).b_name,)!=0)//当书籍名中为空的情况下不输出,即该记录为无借书记录
{
cout 书名:(p-r_borrow[i]).b_name\t\t编号(p-r_borrow[i]).b_numendl;//输出
}
}
}
system(pause);//系统命令,等待用户
}
bool Reader::check(char num[])//对比
{
Rnode *h=Rhead;
while(h-next!=Rhead)//在读者库中比对编号,确保编号的唯一性
{
if(strcmp(num,h-next-r_num)==0)
{
cout该读者编号已存在,申请失败!!!endl;
system(pause);
return 1;
}
h=h-next;
}
return 0;
}
void Reader::addReader()//添加读者定义
{
char flag,flag1,code[30],flag2=1;
Rnode *temp,*tail=Rhead;
while(tail-next!=Rhead)//使得每一次添加都放在末尾,即表头前一位
{
tail=tail-next;
}
do
{
temp=new Rnode;
cout请输入姓名:;
//ignore(100);
cin.ignore(1);//清除缓冲区,只清除一个字节
//cin.getline(temp-r_
文档评论(0)