C++图书馆管理系统,求解

初学求解

#include<iostream>
#include<string>
#include<vector>
#include<cstdio>
using namespace std;
class book
{
    public:
        book()
        {
            borrow_flag=false;
        }
        book(string name,string number,string author)
        :name(name),number(number),author(author)
        {
            borrow_flag=false;
        }
        void setreader(string reader,int id,string date);
        void setinfo(string name,string number,string author);
        void setborrow(bool b)
        {
            borrow_flag=b;
        }
        bool isborrow()
        {
            return borrow_flag;
        }
        string getnumber()
        {
            return number;
        }
        string getname()
        {
            return name;
        }
        int getID()
        {
            return ID;
        }
        string getdate()
        {
            return date;
        }
        string getauthor()
        {
            return author;
        }
        string getreader()
        {
            return reader;
        }
        void showinfo()
        {
            cout<<"图书名称:" <<name<<endl ;
            cout<<"图书编号:"<<number<<endl;
            cout<<"图书作者:"<<author<<endl;
            if(borrow_flag)
            {
                cout<<"图书已借出"<<endl; 
                cout<<"读者姓名:"<<reader<<endl;
                cout<<"借书证号:"<<ID<<endl;
                cout<<"借书日期:"<<date<<endl;    
                }
                else
                {
                    cout<<"图书未被借出"<<endl; 
                }
                }
    private:
        string name;
        string number;
        string author;
        bool borrow_flag;
        string reader;
        int ID;
        string date;
 } ;
 void book::setreader(string reader,int ID,string date)
 {
     this->reader.assign(reader);
     this->ID=ID;
     this->date.assign(date);
     this->borrow_flag=true;
 }
 void book::setinfo(string name,string number,string author)
 {
     this->name.assign(name);
     this->number.assign(number);
     this->author.assign(author);
 }
 class library 
 {
     public:
         void addbook();
         void addbook(string name,string number,string author);
         void deletebook();
         void borrowbook();
         void returnbook();
         int indexofnumber(string number);
     private:
         vector<book>books;
         int currentquantity;
         int borrowquantity;
 };
 int library::indexofnumber(string number)
 {
     
 }
 void library::addbook()
 {
     book b;
     string name,number,author;
     int temp;
     cout<<"***********增加界面**********"<<endl;
      do
      {
          cout<<"请输入图书名称,编号,作者"<<endl; 
          cin>>name>>number>>author;
          b.setinfo(name,number,author);
          if(indexofnumber(number)==-1)
          {
              books.push_back(b);
              currentquantity++;
              cout<<"添加成功"<<endl; 
              cout<<"输入1继续重新添加,输入2返回上一层"<<endl; 
              cin>>temp;
          }else
          {
              cout<<"已存在该编号的图书,添加失败"<<endl; 
              cout<<"输入1继续重新添加,输入2返回上一层"<<endl; 
              cin>>temp;
          }
       } while(temp==1);
 }
 void library::addbook(string name,string number,string author)
 {
     book b;
     b.setinfo(name,number,author);
     books.push_back(b);
 }
 void library::deletebook()
 {
     cout<<"**********删除界面**********"<<endl;
     string number;
     int temp;
     int index;
     do
     {
         cout<<"输入要删除的图书编号"<<endl;
         cin>>number; 
         index=indexofnumber(number);
         if(index!=-1)
         {
             if(books[index].getborrow_flag()==0)
             {
                 cout<<"删除图书的信息"<<endl; 
                 books[index]. showinfo();
                 books.erase(books.begin()+index);
                 currentquantity--;
                 cout<<"删除成功"<<endl; 
                     cout<<"输入1继续删除,输入2返回上一层"<<endl; 
              cin>>temp;
             }else
         {
             cout<<"删除失败,该图书已被借出"<<endl; 
                     cout<<"输入1继续重新删除,输入2返回上一层"<<endl; 
              cin>>temp;
         }
          } else
            {
              cout<<"删除失败,未找到编号为"<<number<<"的图书"<<endl; 
                     cout<<"输入1继续删除,输入2返回上一层"<<endl; 
              cin>>temp;
              } 
     }
         while (temp==1); 
 }
 int main()
 {
     return 0;
 }


154行报错,找不到哪里出错了,求解。

getborrow_flag()

getborrow_flag()改成isborrow()

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7461152
  • 你也可以参考下这篇文章:C++学生考勤管理系统报告
  • 除此之外, 这篇博客: C++程序设计基础知识学习中的 运算符: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 常用运算符:

    1. 算术运算符:+、-、*、/、%、++、–
    2. 关系运算符:>、<、>=、<=、==、!=
    3. 逻辑运算符:&&、|| 、!
    4. 位运算符:<<(按位左移)、>>(按位右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)
    5. 三目运算符:A?B;C(A为真时执行B,否则执行C)


  • 您还可以看一下 夏浡源老师的C++入门基础视频精讲课程中的 函数的递归调用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题:我想求解有关C++图书馆管理系统的问题,因为我是初学者。

    解决方案: 1. 首先,根据参考资料中的示例代码,你可以创建一个包含图书信息的结构体,其中包含图书名称、作者和出版日期等信息。然后,你可以使用链表或数组等数据结构来存储图书馆中的图书信息。

    struct Book {
        string name;
        string author;
        string publicationDate;
    };
    
    // 创建一个数组来存储图书信息
    Book library[100];
    int numBooks = 0;  // 记录图书馆中图书的数量
    
    1. 接下来,你可以实现以下功能: a. 添加图书:根据用户输入的图书信息,将新的图书添加到图书馆中。

    ```cpp void addBook() { if (numBooks >= 100) { cout << "图书馆已满,无法添加新的图书。" << endl; return; }

       Book newBook;
       cout << "请输入图书信息:" << endl;
       cout << "图书名称:";
       cin >> newBook.name;
       cout << "作者:";
       cin >> newBook.author;
       cout << "出版日期:";
       cin >> newBook.publicationDate;
    
       library[numBooks] = newBook;
       numBooks++;
    
       cout << "图书已成功添加到图书馆。" << endl;
    

    } ```

    b. 删除图书:根据用户输入的图书名称,从图书馆中删除相应的图书。

    ```cpp void removeBook() { string bookName; cout << "请输入要删除的图书名称:"; cin >> bookName;

       bool found = false;
       for (int i = 0; i < numBooks; i++) {
           if (library[i].name == bookName) {
               // 将最后一个图书覆盖要删除的图书
               library[i] = library[numBooks - 1];
               numBooks--;
               found = true;
               break;
           }
       }
    
       if (found) {
           cout << "图书已成功删除。" << endl;
       } else {
           cout << "未找到该图书。" << endl;
       }
    

    } ```

    c. 查找图书:根据用户输入的图书名称,从图书馆中查找相应的图书。

    ```cpp void searchBook() { string bookName; cout << "请输入要查找的图书名称:"; cin >> bookName;

       bool found = false;
       for (int i = 0; i < numBooks; i++) {
           if (library[i].name == bookName) {
               cout << "找到图书:" << endl;
               cout << "图书名称:" << library[i].name << endl;
               cout << "作者:" << library[i].author << endl;
               cout << "出版日期:" << library[i].publicationDate << endl;
               found = true;
               break;
           }
       }
    
       if (!found) {
           cout << "未找到该图书。" << endl;
       }
    

    } ```

    1. 在主函数中,你可以根据用户的选择来调用不同的功能函数。
    int main() {
        int choice;
        do {
            cout << "欢迎使用图书馆管理系统!" << endl;
            cout << "1. 添加图书" << endl;
            cout << "2. 删除图书" << endl;
            cout << "3. 查找图书" << endl;
            cout << "0. 退出系统" << endl;
            cout << "请输入你的选择:";
            cin >> choice;
    
            switch (choice) {
                case 1:
                    addBook();
                    break;
                case 2:
                    removeBook();
                    break;
                case 3:
                    searchBook();
                    break;
                case 0:
                    cout << "感谢使用图书馆管理系统,再见!" << endl;
                    break;
                default:
                    cout << "无效的选择,请重新输入。" << endl;
            }
        } while (choice != 0);
    
        return 0;
    }
    

    这样,你就可以根据需要在图书馆管理系统中添加、删除和查找图书了。请注意,以上代码仅为示例,你可以根据自己的需求进行相应的修改和扩展。例如,你可以给图书添加更多的属性,如ISBN、价格等。同时,你也可以考虑使用更高级的数据结构来实现图书馆管理系统,以提高效率和功能性。

你没有定义这个函数getborrow_flag()