图书管理系统_图书管理系统实施

其他范文 时间:2020-02-28 08:10:50 收藏本文下载本文
【www.daodoc.com - 其他范文】

图书管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“图书管理系统实施”。

图书管理系统源代码

#include #include cla 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>(istream& is, Book&);// 重载提取运算符 Book *Next;// 为创建每个读者所借书链表而定义指针 };cla 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>(istream& is, Item&);// 重载提取运算符 public: };cla 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>(istream& is, Magazine&);// 重载提取运算符 };cla 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>(istream& is, Reader&);// 重载提取运算符 public: int Counter;//计数器,统计所借书数目 };cla Manager{ // 管理员类 char Name[20];// 姓名 int Age;// 年龄 int Code;// 工号 friend cla Library;// 将图书馆类声明为友元 public: Manager(){} Manager(char*,int,int);long GetCode(){ return Code;} void Show();friend ostream& operator>(istream& is, Manager&);// 重载提取运算符 };cla Loan { // 借阅信息类 int Type;// 0表示书,1表示杂志 Item item;// 借阅书 Magazine mag;// 借阅杂志 Reader reader;// 借阅者 Manager manager;// 借书操作员 int Code;friend cla Library;// 将图书馆类声明为友元 public: Loan(){ } Loan(Loan & l);int GetCode(){ return Code;} void Show();friend ostream& operator>(istream& is, Loan&);// 重载提取运算符 };、、、、、、、、、、、、、、、、、、、、、、、#include #include cla Reader;template cla DblList;template cla DblNode{ public: T Info;//数据域 DblNode *llink,*rlink;//前驱(左链)、后继(右链)指针 public: DblNode(T data);//一般结点 DblNode();//头结点 T GetInfo(){return Info;};friend cla DblList;friend cla Library;};templatecla 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& dlist);// 重载输出流运算符 friend cla 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){ coutInforlink;} cout 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;i>tt;dlist.Insert(tt);} return is;} template ostream& operator &dlist){ DblNode *tempP;int len = dlist.Length();osrlink;while(tempP!=dlist.head){ // 循环输出链表各结点 osInfo;tempP = tempP->rlink;} return os;} #include “cla.h” #include “dblist.h” #include cla 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();// 读入图书馆信息 };

下载图书管理系统word格式文档
下载图书管理系统.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文