21xrx.com
2024-09-19 23:55:03 Thursday
登录
文章检索 我的文章 写文章
C++ 图书管理系统源代码
2023-06-26 19:22:18 深夜i     --     --
C++ 图书管理系统 源代码

如今,计算机已经广泛应用于各种各样的领域,包括图书管理系统。图书管理系统是图书馆或书店必备的一种软件,它帮助用户管理和检索所拥有的图书。C++语言是一种广泛应用于计算机科学领域的编程语言,因为它具有高效、快速和可靠的特性,所以它被广泛用于图书管理系统的开发。下面给大家介绍一下C++语言编写的图书管理系统源代码。

1.头文件

在C++语言中,头文件是包含函数原型和变量声明的文本文件。头文件通常包含以下内容:

#include  //输入输出流

#include  //用于字符串处理

#include  //标准库的通用服务

#include //输入输出流

using namespace std; //命名空间

2.定义结构体

在C++语言中,结构体是定义新的数据型变量的一种方式,它允许你使用一组不同类型的数据来定义一个结构。以下是定义一个结构体的方式:

struct Books{

char bookNo[20];         //图书编号

char bookName[20];       //图书名称

int  bookCount;          //图书数量

float bookPrice;         //图书价格

};

3.定义主函数

在C++语言中,主函数是程序的入口。在此图书管理系统中,主函数主要用于搜索、添加、删除、更新和查看图书信息,代码如下:

int main(){

int  select;

bool flag = true;

while(flag) {

 cout << "请输入需要操作的编号:1.插入 2.删除 3.更新 4.查找 5.退出" << endl;

 cin >> select;

 switch(select) {

  case 1: //插入图书

    writeData();

    break;

  case 2: //删除图书

    deleteData();

    break;

  case 3: //更新图书

    updateData();

    break;

  case 4: //查找图书

    searchData();

    break;

  case 5: //退出

    flag = false;

    cout << "谢谢使用!" << endl;

    break;

  default: //不正确的选择

    cout << "请您输入正确的编号!" << endl;

    break;

 }

}

return 0;

}

4.定义输入和输出函数

在C++语言中,输入和输出函数是将数据写到文件或从文件中读取数据的函数。以下是定义输入和输出函数的方式:

//插入图书

void writeData() {

 ofstream ofs("books.dat", ios::out | ios::binary | ios::app);

 if(!ofs)

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

   return;

 Books books;

 cout << "请输入图书编号:" << endl;

 cin >> books.bookNo;

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

 cin >> books.bookName;

 cout << "请输入图书数量:" << endl;

 cin >> books.bookCount;

 cout << "请输入图书价格:" << endl;

 cin >> books.bookPrice;

 ofs.write(reinterpret_cast (&books), sizeof(Books));

 ofs.close();

}

//删除图书

void deleteData() {

 char bookNo[20];

 cout << "请输入要删除的图书编号:" << endl;

 cin >> bookNo;

 ifstream ifs("books.dat", ios::in | ios::binary);

 ofstream ofs("temp.dat", ios::out | ios::binary);

 if(!ifs || !ofs)

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

   return;

 Books books;

 bool isDelete = false;

 while(ifs.read(reinterpret_cast (&books), sizeof(Books))) {

   if(strcmp(bookNo, books.bookNo) != 0) {

     ofs.write(reinterpret_cast (&books), sizeof(Books));

   }

   else

     isDelete = true;

 }

 ifs.close();

 ofs.close();

 if(isDelete) {

   remove("books.dat");

   rename("temp.dat", "books.dat");

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

 }

 else {

   remove("temp.dat");

   cout << "不存在该图书编号!" << endl;

 }

}

// 更新图书

void updateData() {

 char bookNo[20];

 cout << "请输入要更新的图书编号:" << endl;

 cin >> bookNo;

 ifstream ifs("books.dat", ios::in | ios::binary);

 ofstream ofs("temp.dat", ios::out | ios::binary);

 if(!ifs || !ofs)

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

   return;

 Books books;

 bool isUpdate = false;

 while(ifs.read(reinterpret_cast (&books), sizeof(Books))) {

   if(strcmp(bookNo, books.bookNo) != 0) {

     ofs.write(reinterpret_cast (&books), sizeof(Books));

   }

   else {

     isUpdate = true;

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

     cin >> books.bookName;

     cout << "请输入图书数量:" << endl;

     cin >> books.bookCount;

     cout << "请输入图书价格:" << endl;

     cin >> books.bookPrice;

     ofs.write(reinterpret_cast (&books), sizeof(Books));

   }

 }

 ifs.close();

 ofs.close();

 if(isUpdate) {

   remove("books.dat");

   rename("temp.dat", "books.dat");

   cout << "更新成功!" << endl;

 }

 else {

   remove("temp.dat");

   cout << "不存在该图书编号!" << endl;

 }

}

//查找图书

void searchData() {

 char bookNo[20];

 cout << "请输入要查找的图书编号:" << endl;

 cin >> bookNo;

 ifstream ifs("books.dat", ios::in | ios::binary);

 if(!ifs)

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

   return;

 Books books;

 while(ifs.read(reinterpret_cast (&books), sizeof(Books))) {

   if(strcmp(bookNo, books.bookNo) == 0) {

     cout << "图书编号:" << books.bookNo << endl;

     cout << "图书名称:" << books.bookName << endl;

     cout << "图书数量:" << books.bookCount << endl;

     cout << "图书价格:" << books.bookPrice << endl;

     ifs.close();

     return;

   }

 }

 ifs.close();

 cout << "不存在该图书编号!" << endl;

}

总之,C++语言是一种强大而灵活的编程语言,它非常适合用于图书管理系统的开发。以上是一个简单的图书管理系统源代码,其中包含了插入、删除、更新和查找图书的功能。当然,这只是一个非常基础的代码示例,你可以根据你的需求进行修改或升级。

  
  

评论区

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