视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
图书资料管理
2025-10-02 19:25:47 责编:小OO
文档
图书借阅管理系统具有以下功能:

图书资料管理

   图书资料管理主要完成图书资料的新增、修改和报废,并生成图书资料库的功能。按采购员的要求,供书商提供需要的书籍。进行分类新增修改处理。并对已报废图书进行处理。

读者资料管理

   读者资料管理主要完成读者资料的新增、修改和撤消,并生成读者资料库。按读者要求进行读者资料的新增、修改和撤消。

借书操作

   借书操作主要完成读者的借书、续借及预订处理,并生成读者借阅库。首先进行读者资格的审核,符合要求后查阅书库是否有书,如有则修改图书资料库,书库取书书交读者。书库无书则进行预订处理。用户续借则修改还书日期。并将借书信息汇总后交统计员。

还书操作

    还书操作主要完成读者的还书及罚款处理,并修改读者借阅库。首先进行读者资格的审核,符合要求后则修改图书资料库,读者还书书还书库。书籍逾期或遗失则进行罚款处理。并将还书信息汇总后交统计员。

查询处理

    查询处理主要完成读者对书是否逾期、书是否未借、书籍排行榜的查询处理。并及时地把查询结果反馈给读者,并将查询信息汇总给统计员。

系统维护

    包括权限管理、数据恢复和数据备份。数据恢复和数据备份是对数据的有效保护。权限管理是对系统使用者规定相关的权限,以免系统数据被非法访问和使用。

(访问时需要密码,密码错误要有提示重输,登陆分为管理员登陆和用户登陆两项,用户只能进行查询操作,而管理员能进行所有操作)

#include

#include

class Book{ // 书籍基类 

protected: 

char Title[40]; // 书名 

long Code; // 条码 

int Type; // 0表示书,1表示杂志 

public: 

Book(); 

Book(char *title,long code); 

void SetCode(long code){ Code = code; } 

void SetTitle(char* tl){ strcpy(Title,tl); } 

void SetType(bool type){Type = type; } 

int GetType(){ return Type; } 

long GetCode(){ return Code;} 

virtual void Show(); // 显示书的信息 

friend ostream& operator<<(ostream& , Book&); // 重载插入运算符 

friend istream& operator>>(istream& is, Book&); // 重载提取运算符 

Book *Next; // 为创建每个读者所借书链表而定义指针 

}; 

class Item :public Book{ //书的款目 

// char Title[40]; // 书名 

char Author[20]; // 著者名 

char IndexCode[10]; // 分类号 

// long Code; // 条码 

public: 

Item(); 

Item(char *author,char *title,char *index,int code); 

Item(Item &); 

void SetAuthor(char*); 

void SetIndexCode(char*); 

virtual void Show(); // 显示书的信息 

friend ostream& operator<<(ostream& os, Item&); // 重载插入运算符 

friend istream& operator>>(istream& is, Item&); // 重载提取运算符 

public: 

}; 

class Magazine:public Book { //杂志类 

int Volume; 

enum LANG {CHINESE=1,ENGLISH} Lang; // 枚举变量,确定语言类别 

public: 

Magazine():Book(){Volume = 0; Lang = CHINESE; Type = 1; } 

Magazine(char *title,int vol,LANG lang,int code); 

Magazine(Magazine&); 

void SetVolume(int vol){Volume = vol;} 

void SetLang(int lang){Lang = (LANG)lang;} 

virtual void Show(); // 显示杂志的信息 

friend ostream& operator<<(ostream& os, Magazine&); // 重载插入运算符 

friend istream& operator>>(istream& is, Magazine&); // 重载提取运算符 

}; 

class Reader{ // 读者信息类 

char Name[20]; // 姓名 

char Position[20]; // 职务 

int Age; // 年龄 

long Code; // 借书证号 

Book* items; // 所借书链表 

public: 

Reader(); 

Reader(char *name,char *posi,int age,int code); 

// Reader(Reader&); 

~Reader(); 

long GetCode(){return Code;} 

void SetName(char*); 

void SetPosition(char*); 

void SetAge(int); 

void SetCode(long); 

void AddBook(Item); // 添加所借书 

void AddBook(Magazine); // 添加所借杂志 

void DelBook(Book it); // 还书后减少所借书 

void ShowBooks(); // 显示所借书 

void Show(); // 显示读者信息 

friend ostream& operator<<(ostream& os, Reader&); // 重载插入运算符 

friend istream& operator>>(istream& is, Reader&); // 重载提取运算符 

public: 

int Counter; //计数器,统计所借书数目 

}; 

class Manager{ // 管理员类 

char Name[20]; // 姓名 

int Age; // 年龄 

int Code; // 工号 

friend class Library; // 将图书馆类声明为友元 

public: 

Manager(){} 

Manager(char*,int,int); 

long GetCode(){ return Code;} 

void Show(); 

friend ostream& operator<<(ostream& os, Manager&); // 重载插入运算符 

friend istream& operator>>(istream& is, Manager&); // 重载提取运算符 

}; 

class Loan { // 借阅信息类 

int Type; // 0表示书,1表示杂志 

Item item; // 借阅书 

Magazine mag; // 借阅杂志 

Reader reader; // 借阅者 

Manager manager; // 借书操作员 

int Code; 

friend class Library; // 将图书馆类声明为友元 

public: 

Loan(){ } 

Loan(Loan & l); 

int GetCode(){ return Code;} 

void Show(); 

friend ostream& operator<<(ostream& os, Loan&); // 重载插入运算符 

friend istream& operator>>(istream& is, Loan&); // 重载提取运算符 

}; 

、、、、、、、、、、、、、、、、、、、、、、、 

#include

#include

class Reader; 

template class DblList; 

template class DblNode{ 

public: 

T Info;//数据域 

DblNode *llink,*rlink; //前驱(左链)、后继(右链)指针 

public: 

DblNode(T data);//一般结点 

DblNode();//头结点 

T GetInfo(){return Info;}; 

friend class DblList;

friend class Library; 

}; 

templateclass DblList{ 

DblNode *head,*current;

public: 

DblList(); 

~DblList(); 

void Insert(const T& data); 

DblNode* Remove(DblNode* p);

void Print(); 

int Length();//计算链表长度 

DblNode *Find(T data);//搜索数据与定值相同的结点 

DblNode* Find(int data);//按某个关键字查找 

void MakeEmpty(); //清空链表 

void ShowList(); //显示链表各结点 

friend istream& operator>>(istream&, DblList&); // 重载输入流运算符 

friend ostream& operator<<(ostream& os, DblList& dlist); // 重载输出流运算符 

friend class Library; 

//其它操作 

}; 

template DblNode::DblNode(){ 

llink=rlink=NULL; 

template DblNode::DblNode(T data){ 

info=data; 

llink=NULL; 

rlink=NULL; 

template DblList::DblList(){//建立表头结点 

head=new DblNode();

head->rlink=head->llink=head; 

current=NULL; 

template DblList::~DblList(){ 

MakeEmpty();//清空链表 

delete head; 

template void DblList::MakeEmpty(){ 

DblNode *tempP; 

while(head->rlink!=head){ 

tempP=head->rlink; 

head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离 

tempP->rlink->llink=head;//处理左指针 

delete tempP; //删除(释放)脱离下来的结点 

current=NULL; //current指针恢复 

template void DblList::Insert(const T & data){//新节点在链尾 

current=new DblNode;

current->Info=data;

current->rlink=head;//注意次序 

current->llink=head->llink; 

head->llink->rlink=current; 

head->llink=current;//最后做 

template DblNode* DblList::Remove(DblNode* p){ // 删除结点 

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; 

return current; 

template DblNode* DblList::Find(T data){ // 按结点查找 

current=head->rlink; 

while(current!=head&¤t->Info!=data) current=current->rlink; 

if(current==head) current=NULL; 

return current; 

template DblNode* DblList::Find(int data){ // 按数据值查找结点 

current=head->rlink; 

int temp =current->Info.GetCode(); 

while(current!=head&&temp!=data){ 

current=current->rlink; 

temp = current->Info.GetCode(); 

if(current==head) current=NULL; 

return current; 

template void DblList::Print(){ // 输出链表 

current=head->rlink; 

while(current!=head){ 

cout<Info<<'\';

current=current->rlink; 

cout<

template int DblList::Length(){ // 取得链表长度 

int count=0; 

current=head->rlink; 

while(current!=head){ 

count++; 

current=current->rlink; 

return count; 

template void DblList::ShowList(){ // 输出链表各结点 

int count=0; 

current=head->rlink; 

while(current!=head){ 

current->GetInfo().Show(); 

current=current->rlink; 

return ; 

template

istream& operator>>(istream& is, DblList &dlist){ 

int len; 

T tt; // 定义局部变量读入一个结点 

is>>len; 

for(int i= 0 ;iis>>tt; 

dlist.Insert(tt); 

return is; 

template

ostream& operator<<(ostream& os, DblList &dlist){ 

DblNode *tempP; 

int len = dlist.Length(); 

os<tempP=dlist.head->rlink; 

while(tempP!=dlist.head){ // 循环输出链表各结点 

os<Info;

tempP = tempP->rlink; 

return os; 

#include "class.h" 

#include "dblist.h" 

#include

class Library{ // 封装图书馆流通业务的类 

DblList item; // 在馆图书链表 

DblList mag; // 在馆杂志链表 

DblList reader; // 读者链表 

DblList loan; // 借阅信息链表 

DblList manager; // 管理员信息链表 

int itemNum; // 记录在馆图书数目 

int magNum; // 记录在馆杂志数目 

int readerNum; // 记录读者数目 

int loanNum; // 记录借阅信息数目 

int managerNum; // 记录管理员数目 

ofstream itemFileOut; // 文件流对象,保存图书馆书籍数据 

ifstream itemFileIn; // 文件流对象,读入图书馆书籍数据 

ofstream magFileOut; // 文件流对象,保存图书馆杂志数据 

ifstream magFileIn; // 文件流对象,读入图书馆杂志数据 

ofstream readerFileOut; // 文件流对象,保存图书馆读者数据 

ifstream readerFileIn; // 文件流对象,读入图书馆读者数据 

ofstream loanFileOut; // 文件流对象,保存图书馆借阅信息数据 

ifstream loanFileIn; // 文件流对象,读入图书馆借阅信息 

ofstream managerFileOut; // 文件流对象,保存图书馆管理员数据 

ifstream managerFileIn; // 文件流对象,读入图书馆管理员数据 

public: 

Library(); // 构造函数 

~Library(); //析构函数 

void Run(); // 图书馆类的运行函数 

void CreateBibliotheca(); // 创建书目 

void CreateReader(); // 创建读者库 

void CreateManager(); // 创建管理员信息 

int ShowMainMenu(); // 显示主菜单函数 

void Borrow(); // 借书操作 

void Return(); // 还书操作 

void Require(); // 查询操作 

void SaveInfo(); // 保存图书馆信息 

void OpenInfo(); // 读入图书馆信息 

};下载本文

显示全文
专题