• 大小: 38KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-08-05
  • 语言: C/C++
  • 标签: C++课程设  

资源简介

程序主要目标是实现图书馆对读者信息和图书信息的管理,并实现借书,还书,读者管理,图书管理和退出系统等功能。 1、借书操作:读者需要输入读者编号,图书编号,系统会自动判断该读者和图书是否存在,若都存在则显示借书成功,并且给图书标记上借阅标记,同时需输入借阅时间和还书最后期限。否则给出提示信息,读者不存在不能借书,或者图书不存在不能借书。 2、还书操作:还书者需要输入读者编号,图书编号,系统会自动判断该读者和图书是否存在。若都存在则需输入还书时间,并判断借阅日期是否超出允许借阅期限30天,若超出期限给出提示信息,应付罚金x元。交钱后,由管理员确认无误后,给图书去掉借阅标记,并输出信息还书成功!若读

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
const int Maxreader=200;//最多的读者
const int Maxbook=200;  //最多的图书
const int Maxbor=10;    //读者最多借10本书
//读者类实现对读者的信息的描述
class Reader       
{   
private:
int tag;            //删除标记 1:已删 0:未删
int nu;             //读者编号
char name[20];      //读者姓名
char work[20];      //工作单位或班级
int borbook[Maxbor];//所借图书编号
    public:
        int gettag() {return tag;}                   //获取删除标记
int getnu() {return nu;}                     //获取读者编号
char* getna() {return name;}                   //获取读者姓名
        void setname(char na[]){ strcpy(namena);}   //设置姓名
void setwork(char wo[]){ strcpy(workwo);}   //设置工作单位
void delreader()  {tag=1;}                   //删出读者
    void addreader(int nchar *nachar *wo)      //增加读者
{ tag=0;nu=n;
  strcpy(namena);strcpy(workwo);
  for(int i=0;i borbook[i]=0;
}
    void borrowbook(int booknu)    //借书操作
{  for(int i=0;i       if (borbook[i]==0)
  {borbook[i]=booknu; break;}
}
    void retbook(int booknu)       //还书操作
{  for(int i=0;i        if(borbook[i]==booknu)
   {borbook[i]=0; break;}
}
    void display()                 //输出读者信息
{ cout<<“读者编号:“<   cout<<“工作单位:“<          for(int i=0;i         if(borbook[i]!=0)   cout<   cout << “]“< }
};
//读者库类,建立读者的资料
class RDatabase
{  
private:
 int tp;                  //读者记录标记
     Reader reader[Maxreader];//各读者记录
public:
 RDatabase()                           //构造函数,将reader.txt读到read[]中
 {  Reader s; tp=-1;
fstream file(“reader.txt“ios::in);//打开一个输入文件
while (1)
{  file.read((char *)&ssizeof(s));
if (!file)break;
tp++;
reader[tp]=s;
}
file.close();//关闭 reader.txt
}
    void allclear()//删除所有读者信息
{    tp=-1;   }
void addreader(int nchar *nachar *wo)//添加读者
{   Reader *r=find(n);
if (r==NULL)
{ tp++;
  reader[tp].addreader(nnawo);
}
}
Reader *find(int readernu)//按编号查找
{    for (int i=0;i<=tp;i++)
if (reader[i].getnu()==readernu&&reader[i].gettag()==0)
{   return &reader[i];  }
return NULL;
}
    Reader *finda(char na[])//按读者姓名查找
{    for (int i=0;i<=tp;i++)
if (strcmp(reader[i].getna()na)==0&&reader[i].gettag()==0)
{   return &reader[i];  }
return NULL;
}
void display()  //输出所有读者信息    
{  for (int i=0;i<=tp;i++)
     if (reader[i].gettag()==0)
   reader[i].display();
}
void preader();//读者库维护
~RDatabase()  //析构函数,将read[]写到reader.txt文件中
{ fstream file(“reader.txt“ios::out);
        for (int i=0;i<=tp;i++)
if (reader[i].gettag()==0)
file.write((char *)&reader[i]sizeof(reader[i]));
file.close();
}
};
void RDatabase::preader()
{   int choose;
char na[10];
char wo[20];
int  nu;
    int a;//用来判断
int b;//用来判断
int

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

     文件        288  2010-07-13 16:11  图书管理系统\book.txt

     文件        264  2010-07-13 16:11  图书管理系统\reader.txt

     文件      16040  2009-07-06 16:27  图书管理系统\图书管理系统.cpp

     文件      86016  2011-06-27 18:17  图书管理系统\图书管理系统.doc

     文件       3475  2010-07-13 16:09  图书管理系统\图书管理系统.dsp

     文件        532  2010-07-13 16:12  图书管理系统\图书管理系统.dsw

     文件      33792  2010-07-13 16:12  图书管理系统\图书管理系统.ncb

     文件      48640  2010-07-13 16:12  图书管理系统\图书管理系统.opt

     文件        782  2010-07-13 16:09  图书管理系统\图书管理系统.plg

     目录          0  2011-06-27 18:17  图书管理系统

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

               189829                    10


评论

共有 条评论