//---------------------------------------------------------------------------
#include "stdafx.h"
//#pragma hdrstop
#include <iostream.h>
#include <fstream.h>
#include <string.h>
//---------------------------------------------------------------------------
//====================My VALUES=========================================
// Запись для хранения информации об
// названиях книг и авторах
struct book
{
// Автор
char Autor[50];
// Навзание книги
char Book_Name[50];
// Признак конца списка
bool Off;
};
//====================My VALUES=========================================
// Заполнение списка Library из текстового
// файла base.txt
int Enter(book Library[])
{
// Открываем поток для чтения из файла
ifstream Input("base.txt");
// В цикле заполняем список Library
// из открытого потока
int i=0 ;
while(Input)
{
Input>>Library[i].Autor;
Input>>Library[i].Book_Name;
i++ ;
}
// Возвращаем номер последней записи
// в списке Library
return i-1;
};
// Сохранение списка Library в текстовый
// файл base.txt
void Save(book Library[],int k)
{
// Открываем поток для записи в файл
ofstream Base("Base.txt") ;
// В цикле читаем из потока данные в
// в список Library
for(int i=0;i<k;i++)
{
if(Library[i].Off==false)
{
Base<<Library[i].Autor<<'\n'
<<Library[i].Book_Name<<'\n';
}
}
};
// Удаление записи из списка
void Delete(book Library[100],int k)
{
char Autor[50];
cout<<"Enter second name of autor"<<'\n';
cin>>Autor;
for(int i=0;i<k;i++)
{
if(strcmp(Library[i].Autor,Autor )==0)
{
Library[i].Off=true;
}
}
};
// Добавление записи в список Library
int Add(book Library[],int k)
{
k++;
cout<<"Enter second name of autor"<<'\n';
cin>>Library[k-1].Autor;
cout<<"Enter a name of book"<<'\n';
cin>>Library[k-1].Book_Name;
Library[k-1].Off=false;
return k;
};
//======================MAIN============================================
// Главная функция
int main(int argc, char* argv[])
{
// Объявляем массив из 100 элементов
// структуры book - будет служить списком
book Library[100] ;
book *Ukazatel ;
int j=5 ;
bool End=false ;
ifstream Input("base.txt") ;
int k=0 ;
// Инициируем массив Library
for(int i=0;i<100;i++)
{
Library[i].Off=false;
}
// Читаем данные из файла
k=Enter(Library);
// Объявляем бесконечный, который выводит меню
// и принимает от пользователя команды
while(!End)
{
// Вывести меню, если пользователь ввёл цифру 5
if(j==5)
{
cout<<"For printing all array -1 "
<<'\n'
<<"For deleting from array -2 "
<<'\n'
<<"For add information to array -3 "
<<'\n'
<<"For exit -4 "
<<'\n';
}
cout<<"For drawing meny -5"<<'\n'<<'\n'<<'\n';
cin>>j;
// Выйти из программы, если пользователь ввёл
// цифру 4
if(j==4)
{
End=true;
};
// Добавить запись в список Library
if(j==3)
{
k=Add(Library,k);
//cout<<k;
};
// Вывести все записи из списка Library
if(j==1)
{
for(int i=0;i<k;i++)
{
if(Library[i].Off==false)
{
cout<<"Autor :"<<Library[i].Autor<<'\n'
<<"Book name :"<<Library[i].Book_Name<<'\n';
}
}
};
// Удалить текущий элемент из списка Library
if(j==2)
{
Delete(Library,k);
};
}
// Сохранить результаты работы в текстовом файле
Save(Library, k) ;
return 0;
} |