GVA SUPPORT

Відповідь на запитання № 1306272609
Text:
	ФІО = Горбаченко В.А.

 Запитання:/*
  Горбаченко В.А. 25052011 0026
  Створити клас бібліотека, де існує назва книги і автор. 
  Реалізвати пошук книги по автору та ралізувати додавання та 
  видалення книги із спику
*/
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <cstring>
#define n 100
#define sdata1 "Nazva knugu"
#define sdata2 "Avtor"

using namespace std;

//===========================================================================
class Tlibrary{
      public:
      char data1[n]; // назва книги
      char data2[n]; // автор
      
      
      void EnterInfo(){
           fflush(stdin);
           cout<<" Enter "<<sdata1<<" : ";
           cin.getline(&data1[0],n);

           cout<<" Enter "<<sdata2<<" : ";
           cin.getline(&data2[0],n);           
      } 
      void ShowInfo(){
           fflush(stdin);
           cout<<"  \t"<<sdata1<<" : \t"<<&data1[0];
           cout<<"  \t"<<sdata2<<" : \t"<<&data2[0];
      } 
      
};
//===========================================================================
int confirm(){// функція виводить підтвердження на екран
	char key; // зчтьувана клавіша
	do // цикл
	{
		cout<<endl<<" Confirm [Y/N]? "<<endl;
		key=getch();
		cout<<key;
	} while (key!='n' && key!='N' && key!='Y' && key!='y' ); // якщо натиснуто одну з перелічених клавіщ - вийти з циклу
	if (key=='y' || key=='Y') return 1; else return 0; //якщо y - повернути 1, інакше - 0
		
}
//===========================================================================
long EnterNumber(long max){  // функція повертає зчитане введене з клавіатури число, і в випадку, якщо число не з діапазону [0;max] просить користувача, переввести число
	long nn; // в цю змінну буде зчитуватись число введенне з клавіатури
	do{
		cout<<endl<<"Enter number [ 0 - "<<max-1<<" ] :";
		cin>>nn;
	if (nn<0 || nn>max-1) {cout<<endl<<" ERROR!!! "<<endl;}
	}while (nn<0 || nn>max-1); // умова виходу з циклу
	return nn; // воертає ввдеене число
}

//===========================================================================

void AddRecord(Tlibrary *lib,int &count){
     system("cls");
/*
     if (count==0){
          cout<<" No records found!"<<endl;
          system("pause");
        return ;
     }
*/
     Tlibrary temp;
     cout<<"Entering data at "<<count<<" position\n";
     temp. EnterInfo();
     if (confirm()){
        *(lib+count)=temp;
        count++;
     }
}
//===========================================================================
void EditRecord(Tlibrary *lib,int &count){
     system("cls");

     if (count==0){
          cout<<" No records found!"<<endl;
          system("pause");
        return ;
     }
     int nn=EnterNumber(count);
     Tlibrary temp=*(lib+nn);
     cout<<"Editing data at "<<nn<<" position\n";
     temp.ShowInfo();
     cout<<endl<<"===================================================="<<endl;
     temp. EnterInfo();
     if (confirm()){
        *(lib+nn)=temp;
     }
}
void DeleteRecord(Tlibrary *lib,int &count){
     system("cls");

     if (count==0){
          cout<<" No records found!"<<endl;
          system("pause");
        return ;
     }
     int nn=EnterNumber(count);
     Tlibrary temp=*(lib+nn);
     cout<<"Delete data at "<<nn<<" position\n";
     temp.ShowInfo();
     cout<<endl<<"===================================================="<<endl;

     if (confirm()){
        for (int i=nn+1 ; i<count ; i++)
        {
         *(lib+i-1)=*(lib+i);
         }
         count--;
     }
}

//===========================================================================
void ShowRecord(Tlibrary *lib,int &count){
     system("cls");

     if (count==0){
          cout<<" No records found!"<<endl;
          system("pause");
        return ;
     }
     int nn=EnterNumber(count);
     Tlibrary temp=*(lib+nn);
     cout<<"Data at "<<nn<<" position\n";
     temp.ShowInfo();
     cout<<endl<<"===================================================="<<endl;
    system("pause");
}
//===========================================================================
void FindRecord(Tlibrary *lib,int &count){
     system("cls");

     if (count==0){
          cout<<" No records found!"<<endl;
          system("pause");
        return ;
     }
     char *query = new char [n*3];
     cout<<"\nEnter find query : ";
     cin.getline(query,n*3);
     int founded=0;
     for (int i = 0 ; i < count ; i++){
         if ( 
         (strcmp(((lib+i)->data1), (query) )==0)
         ||
         (strcmp(((lib+i)->data2), (query) )==0)

         )
         {
          cout<<i<<" : ";
                  (lib+i)->ShowInfo(); 
                  cout<<endl;
                  founded++;
         }

         

     }
         cout<<"Founded "<<founded<<" record(s)\n";
     cout<<endl<<"===================================================="<<endl;
    system("pause");
}

//===========================================================================
void showmenu(){
//     setlocale(LC_ALL,"cp1251");
      Tlibrary *lib=new Tlibrary[n];
      int count=0;
     char key;
     do
     {
          system("cls");
          cout<<" Your database have "<<count<<" record(s) "<<endl<<endl;
          cout<<" Program main menu: "<<endl<<endl;
          cout<<" 1) Add record"<<endl;
          cout<<" 2) Edit record "<<endl;                    
          cout<<" 3) Delete record "<<endl;                              
          cout<<" 4) Show record "<<endl;                     
          cout<<" 5) Find record "<<endl;                     
          
          cout<<" ESC) Exit "<<endl;                     
          key=getch();          
          switch (key){
                 case '1': AddRecord(lib,count); break;
                 case '2': EditRecord(lib,count); break;
                 case '3': DeleteRecord(lib,count); break;
                 case '4': ShowRecord(lib,count); break;                                                   
                 case '5': FindRecord(lib,count); break;
          }
                              

     } while (key!=27);
}
//===========================================================================
int main(){
    showmenu();
    return 0;
}


====================================	
Ваша відповідь