21xrx.com
2024-12-22 22:20:35 Sunday
登录
文章检索 我的文章 写文章
C++图书馆管理系统代码
2023-07-04 19:28:40 深夜i     --     --
C++ 图书馆管理系统 代码 数据库 用户界面

C++图书馆管理系统是一款基于C++语言开发的图书馆管理软件,它具有图书的借阅、归还、查询等功能。该软件实现了图书的信息管理,管理者可以轻松地添加、删除和修改图书信息。

以下是C++图书馆管理系统代码的示例:


#include<iostream>

#include<fstream>

#include<ctime>

#include<cstdlib>

#include<string>

using namespace std;

struct book //图书结构体

  string name; //图书名称

  string author; //图书作者

  string publisher; //出版社

  int num; //图书总数

  int remain; //剩余数量

;

void save(book *b, int n)//用于保存图书信息

{

  ofstream outfile("library.txt", ios::out); //以写模式打开二进制文件

  if (!outfile) //打开文件失败

  

    cout << "打开文件失败!" << endl;

    return;

  

  for (int i = 0; i < n; i++)

  {

    outfile << b[i].name << " " << b[i].author << " " << b[i].publisher << " " << b[i].num << " " << b[i].remain;

    if (i != n - 1)

    

      outfile << endl;

    

  }

  outfile.close(); //关闭文件

}

void load(book *b, int &n) //用于加载图书信息

{

  ifstream infile("library.txt", ios::in); //以读方式打开图书信息文件

  if (!infile) //打开文件失败

  

    cout << "打开文件失败!" << endl;

    return;

  

  while (!infile.eof() && n < 20)

  {

    infile >> b[n].name >> b[n].author >> b[n].publisher >> b[n].num >> b[n].remain;

    n++;

  }

  infile.close(); //关闭文件

}

void add(book *b, int &n) //用于添加图书信息

{

  if (n == 20) //超出图书数量

  

    cout << "图书数量已达上限

  string name, author, publisher;

  int num;

  cout << "请输入书名:" << endl;

  cin >> name;

  for (int i = 0; i < n; i++) //判断是否已经存在该书

  {

    if (b[i].name == name)

    添加失败!" << endl;

      return;

    

  }

  cout << "请输入作者:" << endl;

  cin >> author;

  cout << "请输入出版社:" << endl;

  cin >> publisher;

  cout << "请输入总数:" << endl;

  cin >> num;

  b[n].name = name;

  b[n].author = author;

  b[n].publisher = publisher;

  b[n].num = num;

  b[n].remain = num;

  n++;

  cout << "添加成功!" << endl;

  save(b, n); //保存图书信息

}

void del(book *b, int &n) //用于删除图书信息

{

  string name;

  bool flag = false;

  cout << "请输入要删除的书名:" << endl;

  cin >> name;

  for (int i = 0; i < n; i++)

  {

    if (b[i].name == name)

    {

      for (int j = i; j < n - 1; j++)

      {

        b[j].name = b[j + 1].name;

        b[j].author = b[j + 1].author;

        b[j].publisher = b[j + 1].publisher;

        b[j].num = b[j + 1].num;

        b[j].remain = b[j + 1].remain;

      }

      n--;

      cout << "删除成功!" << endl;

      flag = true;

      break;

    }

  }

  if (!flag)

  删除失败!" << endl;

    return;

  

  save(b, n); //保存图书信息

}

void borrow(book *b, int n) //用于借阅图书

{

  string name;

  bool flag = false;

  cout << "请输入要借阅的书名:" << endl;

  cin >> name;

  for (int i = 0; i < n; i++)

  {

    if (b[i].name == name)

    {

      if (b[i].remain == 0) //剩余数量为0,无法借阅

      无法借阅!" << endl;

        return;

      

      b[i].remain--;

      cout << "借阅成功!" << endl;

      flag = true;

      break;

    }

  }

  if (!flag)

  

    cout << "未找到该书

  save(b, n); //保存图书信息

}

void ret(book *b, int n) //用于归还图书

{

  string name;

  bool flag = false;

  cout << "请输入要归还的书名:" << endl;

  cin >> name;

  for (int i = 0; i < n; i++)

  {

    if (b[i].name == name)

    {

      b[i].remain++;

      cout << "归还成功!" << endl;

      flag = true;

      break;

    }

  }

  if (!flag)

  归还失败!" << endl;

    return;

  

  save(b, n); //保存图书信息

}

void search(book *b, int n) //用于查询图书

{

  string name;

  bool flag = false;

  cout << "请输入要查询的书名:" << endl;

  cin >> name;

  for (int i = 0; i < n; i++)

  {

    if (b[i].name == name)

    {

      cout << "书名:" << b[i].name << endl;

      cout << "作者:" << b[i].author << endl;

      cout << "出版社:" << b[i].publisher << endl;

      cout << "总数量:" << b[i].num << endl;

      cout << "剩余数量:" << b[i].remain << endl;

      flag = true;

      break;

    }

  }

  if (!flag)

  

    cout << "未找到该书!" << endl;

    return;

  

}

void menu() //用于显示菜单

  cout << "欢迎使用图书馆管理系统!" << endl;

  cout << "1. 添加图书" << endl;

  cout << "2. 删除图书" << endl;

  cout << "3. 借阅图书" << endl;

  cout << "4. 归还图书" << endl;

  cout << "5. 查询图书" << endl;

  cout << "0. 退出系统" << endl;

int main()

{

  book b[20];

  int n = 0;

  srand((unsigned)time(NULL));

  load(b, n); //加载图书信息

  int choice;

  do

  {

    menu(); //显示菜单

    cin >> choice;

    switch (choice)

    {

    case 1:

      add(b, n); //添加图书

      break;

    case 2:

      del(b, n); //删除图书

      break;

    case 3:

      borrow(b, n); //借阅图书

      break;

    case 4:

      ret(b, n); //归还图书

      break;

    case 5:

      search(b, n); //查询图书

      break;

    case 0:

      cout << "感谢使用本系统!" << endl;

      break;

    default:

      cout << "输入有误,请重新输入!" << endl;

      break;

    }

  } while (choice != 0);

  return 0;

}

以上就是C++图书馆管理系统代码的示例,它可以帮助大家更好地理解和掌握C++图书馆管理系统的实现方法。当然,这只是部分代码,如果想要更全面地了解和使用该软件,还需要自己深入学习相关知识和技能。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复