Система управления книжным магазином с использованием файловой системы

Опубликовано: 5 Января, 2022

Задача состоит в том, чтобы построить систему управления книжным магазином с использованием обработки файлов на C ++, которая помогает отслеживать все книжные записи в файле. Ниже перечислены функции, которые необходимо реализовать:

  • Добавьте новую книгу, и подробности о книге:
    • Идентификатор книги
    • Название книги
    • Имя автора
    • Количество книг
  • Удалить книгу
  • Обновить книгу
  • Посмотреть все книги
  • Выход

Подход:

  • Все функции будут реализованы в корпусах переключателей.
  • Концепция обработки файлов будет использоваться для записи данных в текстовый файл, а также для чтения записанных данных.
  • Требуемая функция будет записана под переключателями, которые будут выполняться в соответствии с вводом пользователя.
  • Для разработки кода используются простые концепции передачи файлов, такие как открытие файла, закрытие файла, запись в файл и чтение файла и т. Д.
  • IDE для компиляции кода языка C ++.

Ниже представлена реализация описанного выше подхода:

C ++

// C++ program to illustrate bookshop
// management system using File Handling
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
// Bookshop Class
class bookshope {
public :
void control_panel();
void add_book();
void show_book();
void check_book();
void update_book();
void del_book();
};
// Function to display the menus
void bookshope::control_panel()
{
system ( "cls" );
cout << " CONTROL PANEL" ;
cout << " 1. ADD BOOK" ;
cout << " 2. DISPLAY BOOKS" ;
cout << " 3. CHECK PARTICULAR BOOK" ;
cout << " 4. UPDATE BOOK" ;
cout << " 5. DELETE BOOK" ;
cout << " 6. EXIT" ;
}
// Function to add book
void bookshope::add_book()
{
system ( "cls" );
fstream file;
int no_copy;
string b_name, a_name, b_id;
cout << " ADD BOOKS" ;
cout << " Book ID : " ;
cin >> b_id;
cout << " Book Name : " ;
cin >> b_name;
cout << " Author Name : " ;
cin >> a_name;
cout << " No. of Books : " ;
cin >> no_copy;
// Open file in append or
// output mode
file.open( " D:// book.txt" ,
ios::out | ios::app);
file << " " << b_id << " "
<< b_name << " " << a_name
<< " " << no_copy << " " ;
file.close();
}
// Function to display book
void bookshope::show_book()
{
system ( "cls" );
fstream file;
int no_copy;
string b_name, b_id, a_name;
cout << " All BOOKS" ;
// Open the file in input mode
file.open( " D:// book.txt" , ios::in);
if (!file)
cout << " File Opening Error!" ;
else {
cout << " Book ID Book"
<< " Author No. of "
"Books " ;
file >> b_id >> b_name;
file >> a_name >> no_copy;
// Till end of file is reached
while (!file.eof()) {
cout << " " << b_id
<< " " << b_name
<< " " << a_name
<< " " << no_copy
<< " " ;
file >> b_id >> b_name;
file >> a_name >> no_copy;
}
system ( "pause" );
// Close the file
file.close();
}
}
// Function to check the book
void bookshope::check_book()
{
system ( "cls" );
fstream file;
int no_copy, count = 0;
string b_id, b_name, a_name, b_idd;
cout << " Check "
<< "Particular Book" ;
// Open the file in input mode
file.open( " D:// book.txt" , ios::in);
if (!file)
cout << " File Opening Error!" ;
else {
cout << " Book ID : " ;
cin >> b_idd;
file >> b_id >> b_name;
file >> a_name >> no_copy;
while (!file.eof()) {
if (b_idd == b_id) {
system ( "cls" );
cout << " "
<< "Check Particular Book" ;
cout << " Book ID : "
<< b_id;
cout << " Name : "
<< b_name;
cout << " Author : "
<< a_name;
cout << " No. of Books : "
<< no_copy;
cout << endl
<< endl;
count++;
break ;
}
file >> b_id >> b_name;
file >> a_name >> no_copy;
}
system ( "pause" );
file.close();
if (count == 0)
cout << " Book ID Not"
<< " Found..." ;
}
}
// Function to update the book
void bookshope::update_book()
{
system ( "cls" );
fstream file, file1;
int no_copy, no_co, count = 0;
string b_name, b_na, a_name;
string a_na, b_idd, b_id;
cout << " Update Book Record" ;
file1.open( " D:// book1.txt" ,
ios::app | ios::out);
file.open( " D:// book.txt" , ios::in);
if (!file)
cout << " File Opening Error!" ;
else {
cout << " Book ID : " ;
cin >> b_id;
file >> b_idd >> b_name;
file >> a_name >> no_copy;
// Till end of file is reached
while (!file.eof()) {
if (b_id == b_idd) {
system ( "cls" );
cout << " "
<< "Update Book Record" ;
cout << " New Book Name : " ;
cin >> b_na;
cout << " Author Name : " ;
cin >> a_na;
cout << " No. of Books : " ;
cin >> no_co;
file1 << " " << b_id << " "
<< b_na << " "
<< a_na << " " << no_co
<< " " ;
count++;
}
else
file1 << " " << b_idd
<< " " << b_name
<< " " << a_name
<< " " << no_copy
<< " " ;
file >> b_idd >> b_name;
file >> a_name >> no_copy;
}
if (count == 0)
cout << " Book ID"
<< " Not Found..." ;
}
cout << endl;
system ( "pause" );
// Close the files
file.close();
file1.close();
remove ( " D:// book.txt" );
rename ( " D:// book1.txt" ,
" D:// book.txt" );
}
// Function to delete book
void bookshope::del_book()
{
system ( "cls" );
fstream file, file1;
int no_copy, count = 0;
string b_id, b_idd, b_name, a_name;
cout << " Delete a Book" ;
// Append file in output mode
file1.open( " D:// book1.txt" ,
ios::app | ios::out);
file.open( " D:// book.txt" ,
ios::in);
if (!file)
cout << " File Opening Error..." ;
else {
cout << " Book ID : " ;
cin >> b_id;
file >> b_idd >> b_name;
file >> a_name >> no_copy;
while (!file.eof()) {
if (b_id == b_idd) {
system ( "cls" );
cout << " "
<< "Delete a Book" ;
cout << " Book is Deleted "
"Successfully... " ;
count++;
}
else
file1 << " " << b_idd
<< " " << b_name
<< " " << a_name
<< " " << no_copy
<< " " ;
file >> b_idd >> b_name;
file >> a_name >> no_copy;
}
if (count == 0)
cout << " Book ID "
<< "Not Found..." ;
}
system ( "pause" );
// Close the file
file.close();
file1.close();
remove ( " D:// book.txt" );
rename ( " D:// book1.txt" ,
" D:// book.txt" );
}
// Function for book shop record
void bookShopRecord()
{
int choice;
char x;
bookshope b;
while (1) {
b.control_panel();
cout << " Enter your choice : " ;
cin >> choice;
switch (choice) {
case 1:
do {
b.add_book();
cout << " Want to add"
<< " another book? "
"(y/n) : " ;
cin >> x;
} while (x == 'y' );
break ;
case 2:
b.show_book();
break ;
case 3:
b.check_book();
break ;
case 4:
b.update_book();
break ;
case 5:
b.del_book();
break ;
case 6:
exit (0);
break ;
default :
cout << " INVALID CHOICE " ;
}
}
}
// Driver Code
int main()
{
// Function Call
bookShopRecord();
return 0;
}

Выход:

Хотите учиться на лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для языка и STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .