C++实现图书管理程序

这篇文章主要为大家详细介绍了C++实现图书管理程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C++实现图书管理程序的具体代码,供大家参考,具体内容如下

主文件

#include  #include "library.h" #include "info.h"//读取帮助文件    using namespace std;   int main()  {     char choice='w';      string bookid;     int readerid;//图书、读者编号      RDatabase ReaderDB; //读者库      Reader *r;      BDatabase BookDB; //图书库      Book *b;      int i=1;          while(choice!='0')      {          cout <<"\n\n\t\t\t 图 书 管 理 系 统\n\n\n";          cout <<"\t\t\t1: 借 书\n\n\t\t\t2: 还 书 \n\n\t\t\t3: 图 书 维 护\n\n\t\t\t4: 读 者 维 护\n\n\t\t\t5: 帮 助\n\n\t\t\t0: 退 出"<> choice;          switch (choice)          {              case '1':                      cout <<" |借书|\n读者编号(1~"<>readerid;                     r=ReaderDB.query(readerid);//按编号查找                      if (NULL==r) //查找是否有该读者                      {                          cout <<"不存在该读者,不能借书"<borrowbook()==0)//存在该书的情况下查找该书是否已借出                      {                          cout << " 该图书已借出,不能借书"<< endl;                          break;                      }                      r->borrowbook(b->getISBN());//成功借书                     cout<<"借书成功!"<>readerid;                     if (r==NULL)                      {                          cout <<"不存在该读者,不能还书" << endl;                          break;                      }                                           cout <<"图书编号(n-n-n-x):";                      bookid=input_ISBN();                     r=ReaderDB.query(readerid);                      b=BookDB.query(bookid);                      if (b==NULL)                      {                          cout <<"不存在该图书,不能还书" <retbook();                       r->retbook(b->getISBN()); //还书成功                      break;              case '3':                      BookDB.bookdata(); //图书维护                      break;              case '4':                      ReaderDB.readerdata(); //读者维护                      break;             case '5':                     read_info();              case '0':                     break;              default:                     cout<<"输入错误,请重新输入:";                   }      }           return 0;  } 

acquire_date.h

//获取系统时间  #include  #include  /* time.h in C */ using namespace std;   struct Time {        int y;        int m;        int d; };     Time acquire_time() {     time_t now;         struct tm *fmt;     Time t;          time(&now);     fmt = localtime(&now);          t.y=fmt->tm_year%100;//获取年月日      t.m=fmt->tm_mon+1;     t.d=fmt->tm_mday;     cout<

delete_space.h

//去空格  #include  #include    using namespace std;   string input_ISBN() {     bool ifGo=1;     char n='0';     string names="0";     cout<<"(输入ISBN)"<>n)                      {                         if(n>='0'&&n<='9'&&i<3){                            names+=n;                            f++;}                         else if(n=='-'&&i<3&&f!=0){                                names+=n;                                i++;                                }                             else if(i==3&&((n>='a'&&n<='z')||(n>='A'&&n<='Z')||(n>='0'&&n<='9')))                                 {                                    names+=n;                                    cin.clear();                                    cin.sync();                                    ifGo=0;                                    break;                                 }                                 else{                                     cout<<"输入错误!请重新输入:";                                     names="0";                                     ifGo=1;                                     cin.clear();                                     cin.sync();                                     i=0;                                     f=0;                                     }                      }                     }     string names1;     for(int j=1;j

info.h

//读取帮助文件  #include  #include    using namespace std;   const int l=100;//每一行的长度   void read_info() {     ifstream ios("help.txt");     char s[l];//用于读取文件中的一行          for(int j=0;j

library.h

//主功能实现  #include   #include   #include   #include //输入/输出文件流类   #include "delete_space.h" #include "acquire_date.h"//获取系统日期    using namespace std;   const int Maxr=100;//最多的读者  const int Maxb=100;//最多的图书  const int Maxbor=8;//每位读者最多借八本书  const int bkNlen=20;//图书名字长度 const int rdNlen=20;//读者及作者名字长度  const int Maxday=60;//读书借阅期(以日算)  enum Genre{fic,nfic,per,bio,chi,unk};/*fic-fiction,nfic-nonfiction,per-periodical,                                        bio-biography,chi-children,unk-unknown*/   //读者类,实现对读者的信息的描述  class Reader  {  private:         bool tag; //删除标记 1:已删 0:未删          int num; //读者编号          char name[rdNlen]; //读者姓名          string borbook[Maxbor];//所借图书         Time bortime[Maxbor];//借书时间  public:          Reader() {}          char *getname() {return name;} //获取姓名          bool gettag() {return tag;} //获取删除标记          int getnum() {return num;} //获取读者编号                   void setname(char na[]) //设置姓名          {            strcpy(name,na);          }          void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删                   void addreader(int n,char *na)//增加读者          {              tag=0;              num=n;              strcpy(name,na);              for(int i=0;iMaxday)                         cout<<"欠费"<> choice;          switch (choice)          {              case '1':                      cout << "输入读者编号(1~"<> readerid;                      cout << "输入读者姓名:";                      cin >> rname;                      addreader (readerid,rname);                      break;              case '2':                      cout << "输入读者编号(1~"<> readerid;                      r=query(readerid);                      if (r==NULL)                      {                          cout << " 该读者不存在 "<> rname;                      r->setname(rname);                      break;              case '3':                      cout << " 输入读者编号(1~"<> readerid;                      r=query(readerid);                      if (r==NULL)                      {                          cout <<" 该读者不存在" << endl;                          break;                      }                      r->delbook();                      break;              case '4':                      cout << "输入读者编号(1~"<> readerid;                      r=query(readerid);                      if (r==NULL)                      {                          cout <<"该读者不存在"<< endl;                          break;                      }                      r->disp();                      break;              case '5':                      disp();                      break;              case '6':                      clear();                      break;              default:                     cout<<"输入错误,请重新输入:";          }      }  }    //图书类,实现对图书的描述,图书的编号,书名,借出,还入等  class Book  {  private:          bool tag;//删除标记 1:已删 0:未删          string ISBN;//图书编号          char name[bkNlen];//书名          char author[rdNlen];//作者名          Genre kind;//图书类型          bool onshelf;//是否在架 1:在架 0:已借  public:          Book(){}          char *getname() { return name; }//获取书名         char *getauthor(){return author;}//获取作者         string getkind(); //获取图书类型          string getISBN(){ return ISBN; }//获取图书ISBN          bool gettag(){ return tag; }//获取删除标记                   void setname(char na[])//设置书名          {              strcpy(name,na);          }                   void setauthor(char au[])//设置作者名          {              strcpy(author,au);          }                  void setkind(Genre g)//设置图书类型          {              kind=g;         }                  void delbook(){ tag=1;}//删除图书                   void addbook(string s1,char *na,char *au,Genre g)//增加图书          {              tag=0;              ISBN=s1;              strcpy(name,na);              strcpy(author,au);              kind=g;             onshelf=1;          }                   bool borrowbook()//借书操作 (并查找是否在架)          {              if (onshelf==1)              {              onshelf=0;              return 1;              }              return 0;          }                   void retbook()//还书操作          {              onshelf=1;          }          void disp()//输出图书          {              cout <> choice;          switch (choice)          {              case '1':                      cout <<"输入图书编号(n-n-n-x):"<>bname;                     cout<<"输入作者姓名:"<>aname;                     cout<<"输入图书类型:\n1-fiction,2-nonfiction,3-periodical,4-biography,5-children"<>bkind;                     if(bkind<6&&bkind>0)                        bkind1=Genre(bkind-1);                     else                        bkind1=Genre(5);                     addbook(bookid,bname,aname,bkind1);                      break;              case '2':                      cout << "输入图书编号(n-n-n-x):"<> bookid;                      b=query(bookid);                      if (b==NULL)                      {                          cout << " 该图书不存在 "<>bname;                      b->setname(bname);                     cout <<"输入新的作者名:"<>aname;                      b->setauthor(aname);                     cout <<"输入新的类型:\n1-fiction,2-nonfiction,3-periodical,4-biography,5-children"<>bkind;                     if(bkind<6&&bkind>0)                        bkind1=Genre(bkind-1);                     b->setkind(bkind1);                      break;              case '3':                      cout <<"输入图书编号(n-n-n-x):"<> bookid;                      b=query(bookid);                      if (b==NULL)                      {                          cout <<"该图书不存在" << endl;                          break;                      }                      b->delbook();                      break;              case '4':                      cout <<"输入图书编号(n-n-n-x):"<> bookid;                      b=query(bookid);                      if (b==NULL)                      {                          cout <<"该图书不存在"<< endl;                          break;                      }                      b->disp();                      break;              case '5':                      disp();                      break;              case '6':                      clear();                      break;              case '0':                     break;             default:                     cout<<"输入错误,请重新输入:";              }      }  } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是C++实现图书管理程序的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » C语言