21xrx.com
2025-04-28 05:37:44 Monday
文章检索 我的文章 写文章
C++图书馆管理系统代码
2023-07-04 19:28:40 深夜i     8     0
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++图书馆管理系统的实现方法。当然,这只是部分代码,如果想要更全面地了解和使用该软件,还需要自己深入学习相关知识和技能。

  
  

评论区