问题补充说明:主要分为两大功能:1)图书管理(增加图书,查询图书,删除图书,图书借阅,还书);2)会员管理(增加会员,查询会员,删除会员,借书信息); 最好能有截图 谢谢
图书借阅管理系统具有以下功能:
图书资料管理
图书资料管理主要完成图书资料刻计目望乙脱端弦的新增、修改和报废,并生成图书资料库的功能。按采购员的要求,供书商提供需要的书籍。进行分类新增修改处理。并对已报废图书进行处理。
读者资料管理
读者资料管理主要完成读者资料的新增、修改和撤消,并生成读者资料库。按读者要求进行读者资料的新增、修改和撤消。
借书操作
借书操作主要完成读者的借书、续借及预订处理,并生成读者借阅库。首先进行读者资格的审核,符合要求后测物查阅书库是否有书,如有则修改图书资料库,书库取书书交读者。书库载征才雷卫画货队概程无书则进行预订处扩取说理。用户续借则修改还书日期。并将借书信息汇总后交统计员。
还书操作
还书操作主要完成读者的还书及罚款处理,并修改读者借阅库。首先进行读者资格的审核,符合要求后则修改图书资料库,读者还书书还书库。书籍逾期或遗失则进行罚款处理。并将还书信息汇总后交统计员。
查询处理
查询处理主要完成读者对书是否逾期、书便是否未借、书籍排唱每握是谁经数的行榜的查询处理。并及时地把查询结果反馈给读者,并将查询信息汇总给统计员。
系统维护
包括权限管理、数据恢复和数据备份。数据恢复和数据备份是对数皮起转协生组只算据的有效保护。权限管理是对系统使用者规定相关的应及背钱半充权限,以免系统数据被非法访问和使用。
(访问时需要密码,密码错误要有提示重输,登陆分为管理员登陆和用户登陆两项,用户只能进山巴较装绝宗夜兴保行查询操作,而管理员能进行所有操作)
#include
#include
classBook{//书籍基类
protected:
charTitle[40];//书名
longCode;//条居酸阻利府尽大码
intType;//0表示书,1表示杂志
public:
Book();
Book(char*title,longcode)财速;
voidSetCode(longcode){Code=code;}
voidSetTitle(char*tl){strcpy(Title,tl);}
voidSetType(booltype){Type=type;挥烧大着选落之田蛋}
intGetTyp武研空础会显营达冲容e(){returnType;}
longGetCode(){returnCode;}
virtualvoidShow();//显示你错书的信息
frien村液深投济降财电命吸dostream&operator<<(ostream&,Book&);//重载插入运算符
friendistrea观取选社续毫m&operator>>(istream&is,Book&);//重载提取运算符
Book*Next;//为创建每个读者所借书链表而定义又声富正深答视饭推铁指针
};
classItem:publicBook{//书的款目
//charTitle[40];//书名
charAuthor[20];//著者名
charIndexCode[10];//分类号
//longCode;//条码
public:
Item();
Item(char*author,char*title,char*index,intcode);
Item(Item&);
voidSetAuthor(char*);
voidSetIndexCode(char*);
virtualvoidShow();//显示书的信息
friendostream&operator<<(ostream&os,Item&);//重载插入运算符
friendistream&operator>>(istream&is,Item&);//重载提取运算符
public:
};
classMagazine:publicBook{//杂志类
intVolume;
enumLANG{CHINESE=1,ENGLISH}Lang;//枚举变量,确定语言类别
public:
Magazine():Book(){Volume=0;Lang=CHINESE;Type=1;}
Magazine(char*title,intvol,LANGlang,intcode);
Magazine(Magazine&);
voidSetVolume(intvol){Volume=vol;}
voidSetLang(intlang){Lang=(LANG)lang;}
virtualvoidShow();//显示杂志的信息
friendostream&operator<<(ostream&os,Magazine&);//重载插入运算符
friendistream&operator>>(istream&is,Magazine&);//重载提取运算符
};
classReader{//读者信息类
charName[20];//姓名
charPosition[20];//职务
intAge;//年龄
longCode;//借书证号
Book*items;//所借书链表
public:
Reader();
Reader(char*name,char*posi,intage,intcode);
//Reader(Reader&);
~Reader();
longGetCode(){returnCode;}
voidSetName(char*);
voidSetPosition(char*);
voidSetAge(int);
voidSetCode(long);
voidAddBook(Item);//添加所借书
voidAddBook(Magazine);//添加所借杂志
voidDelBook(Bookit);//还书后减少所借书
voidShowBooks();//显示所借书
voidShow();//显示读者信息
friendostream&operator<<(ostream&os,Reader&);//重载插入运算符
friendistream&operator>>(istream&is,Reader&);//重载提取运算符
public:
intCounter;//计数器,统计所借书数目
};
classManager{//管理员类
charName[20];//姓名
intAge;//年龄
intCode;//工号
friendclassLibrary;//将图书馆类声明为友元
public:
Manager(){}
Manager(char*,int,int);
longGetCode(){returnCode;}
voidShow();
friendostream&operator<<(ostream&os,Manager&);//重载插入运算符
friendistream&operator>>(istream&is,Manager&);//重载提取运算符
};
classLoan{//借阅信息类
intType;//0表示书,1表示杂志
Itemitem;//借阅书
Magazinemag;//借阅杂志
Readerreader;//借阅者
Managermanager;//借书操作员
intCode;
friendclassLibrary;//将图书馆类声明为友元
public:
Loan(){}
Loan(Loan&l);
intGetCode(){returnCode;}
voidShow();
friendostream&operator<<(ostream&os,Loan&);//重载插入运算符
friendistream&operator>>(istream&is,Loan&);//重载提取运算符
};
、、、、、、、、、、、、、、、、、、、、、、、
#include
#include
classReader;
template
template
public:
TInfo;//数据域
DblNode
public:
DblNode(Tdata);//一般结点
DblNode();//头结点
TGetInfo(){returnInfo;};
friendclassDblList
friendclassLibrary;
};
template
DblNode
public:
DblList();
~DblList();
voidInsert(constT&data);
DblNode
voidPrint();
intLength();//计算链表长度
DblNode
DblNode
voidMakeEmpty();//清空链表
voidShowList();//显示链表各结点
friendistream&operator>>(istream&,DblList
friendostream&operator<<(ostream&os,DblList
friendclassLibrary;
//其它操作
};
template
llink=rlink=NULL;
}
template
info=data;
llink=NULL;
rlink=NULL;
}
template
head=newDblNode
head->rlink=head->llink=head;
current=NULL;
}
template
MakeEmpty();//清空链表
deletehead;
}
template
DblNode
while(head->rlink!=head){
tempP=head->rlink;
head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离
tempP->rlink->llink=head;//处理左指针
deletetempP;//删除(释放)脱离下来的结点
}
current=NULL;//current指针恢复
}
template
current=newDblNode
current->Info=data;
current->rlink=head;//注意次序
current->llink=head->llink;
head->llink->rlink=current;
head->llink=current;//最后做
}
template
current=head->rlink;
while(current!=head&¤t!=p)current=current->rlink;
if(current==head)current=NULL;
else{//结点摘下
p->llink->rlink=p->rlink;
p->rlink->llink=p->llink;
p->rlink=p->llink=NULL;
}
returncurrent;
}
template
current=head->rlink;
while(current!=head&¤t->Info!=data)current=current->rlink;
if(current==head)current=NULL;
returncurrent;
}
template
current=head->rlink;
inttemp=current->Info.GetCode();
while(current!=head&&temp!=data){
current=current->rlink;
temp=current->Info.GetCode();
}
if(current==head)current=NULL;
returncurrent;
}
template
current=head->rlink;
while(current!=head){
cout<
current=current->rlink;
}
cout< } template intcount=0; current=head->rlink; while(current!=head){ count++; current=current->rlink; } returncount; } template intcount=0; current=head->rlink; while(current!=head){ current->GetInfo().Show(); current=current->rlink; } return; } template istream&operator>>(istream&is,DblList intlen; Ttt;//定义局部变量读入一个结点 is>>len; for(inti=0;i is>>tt; dlist.Insert(tt); } returnis; } template ostream&operator<<(ostream&os,DblList DblNode intlen=dlist.Length(); os< tempP=dlist.head->rlink; while(tempP!=dlist.head){//循环输出链表各结点 os< tempP=tempP->rlink; } returnos; } #include"class.h" #include"dblist.h" #include classLibrary{//封装图书馆流通业务的类 DblList DblList DblList DblList DblList intitemNum;//记录在馆图书数目 intmagNum;//记录在馆杂志数目 intreaderNum;//记录读者数目 intloanNum;//记录借阅信息数目 intmanagerNum;//记录管理员数目 ofstreamitemFileOut;//文件流对象,保存图书馆书籍数据 ifstreamitemFileIn;//文件流对象,读入图书馆书籍数据 ofstreammagFileOut;//文件流对象,保存图书馆杂志数据 ifstreammagFileIn;//文件流对象,读入图书馆杂志数据 ofstreamreaderFileOut;//文件流对象,保存图书馆读者数据 ifstreamreaderFileIn;//文件流对象,读入图书馆读者数据 ofstreamloanFileOut;//文件流对象,保存图书馆借阅信息数据 ifstreamloanFileIn;//文件流对象,读入图书馆借阅信息 ofstreammanagerFileOut;//文件流对象,保存图书馆管理员数据 ifstreammanagerFileIn;//文件流对象,读入图书馆管理员数据 public: Library();//构造函数 ~Library();//析构函数 voidRun();//图书馆类的运行函数 voidCreateBibliotheca();//创建书目 voidCreateReader();//创建读者库 voidCreateManager();//创建管理员信息 intShowMainMenu();//显示主菜单函数 voidBorrow();//借书操作 voidReturn();//还书操作 voidRequire();//查询操作 voidSaveInfo();//保存图书馆信息 voidOpenInfo();//读入图书馆信息 }; 多给点分吧