Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (09.11.2007 в 14:46)
Как-то так...
//---------------------------------------------------------------------------
#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;
}


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: