• 大小: 109KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: 其他
  • 标签: 图书馆  管理  C  

资源简介

这是一个简单的图书馆管理,可以实现的功能包括1、 图书的管理,2、读者信息的管理,3、图书的借阅管理、4、图书的归还

资源截图

代码片段和文件信息

#include “iostream“
#include “iomanip“ 
#include “string“
#include “fstream“
using namespace std; 
//定义最多的读者 
const int Maxr=100;
//定义最多的图书 
const int Maxb=100;
//读者最多可借的书 
const int Maxbor=5;

class Reader
{
     private: 
      int tag; //删除标记 1:已删 0:未删 
      int no; //读者编号 
      char name[10]; //读者姓名 
      int borbook[Maxbor];//所借图书 
     public:
      Reader() {} 
      char *getname() {return name;} //获取姓名 
      int gettag() {return tag;} //获取删除标记 
      int getno() {return no;} //获取读者编号 
void setname(char na[]) //设置姓名 

     strcpy(namena); 
}       
void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删 
void addreader(int nchar *na)//增加读者 

     tag=0; 
     no=n; 
     strcpy(namena); 
     for(int i=0;i     borbook[i]=0; 

void borrowbook(int bookid)//借书操作 

     for(int i=0;i     { 
         if (borbook[i]==0) 
         { 
           borbook[i]=bookid; 
           return; 

          } 
     } 


int retbook(int bookid)//还书操作 

    for(int i=0;i    { 
      if(borbook[i]==bookid) 
       { 
       borbook[i]=0; 
       return 1; 
       } 
    } 
    return 0; 

void disp()//读出读者信息 

     cout << setw(5) << no <     for(int i=0;i     if(borbook[i]!=0) 
     cout << borbook[i] << “|“; 
     cout << “]“<

}; 



//读者类库,实现建立读者的个人资料 
class RDatabase 

  private: 
  int top; //读者记录指针 
  Reader read[Maxr];//读者记录 
  public: 
  RDatabase() //构造函数,将reader.txt读到read[]中 
  { 
    Reader s; 
    top=-1; 
    fstream file(“reader.txt“ios::in);//打开一个输入文件 
    while (1) 
    { 
      file.read((char *)&ssizeof(s)); 
      if (!file)break; 
      top++; 
      read[top]=s; 
    } 
    file.close(); //关闭 reader.txt 
  } 
void clear()//删除所有读者信息 

  top=-1; 

int addreader(int nchar *na)//添加读者时先查找是否存在 

  Reader *p=query(n); 
  if (p==NULL) 
  { 
    top++; 
    read[top].addreader(nna); 
    return 1;
  cout << “录入成功“<  }
  cout<<“该读者已存在“ <  


Reader *query(int readerid)//按编号查找 

  for (int i=0;i<=top;i++) 
  if (read[i].getno()==readerid && 
  read[i].gettag()==0) 
  { 
    return &read[i]; 
    } 
    return NULL; 

void disp() //输出所有读者信息 

  for (int i=0;i<=top;i++) 
  read[i].disp(); 

void readerdata();//读者库维护 
~RDatabase() //析构函数,将read[]写到reader.txt文件中 

  fstream file(“reader.txt“ios::out); 
  for (int i=0;i<=top;i++) 
  if (read[i].gettag()==0) 
  file.write((char *)&read[i]sizeof(read[i])); 
  file.close(); 


}; 
void RDatabase::readerdata() 

  char choice; 
  char rname[20]; 
  int readerid; 
  Reader *r; 
  while (choice!=‘0‘) 
  { 
cout             <<“|==============================================================|“<cout             <<“|                                                              |“<co

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      15386  2009-11-24 00:45  图书馆\图书馆.cpp

     文件     487738  2009-11-24 00:45  图书馆\图书馆.exe

     目录          0  2009-11-24 02:45  图书馆

----------- ---------  ---------- -----  ----

               503124                    3


评论

共有 条评论