Составление спецификаций. Изучение строковых типов данных и функций для их обработки, страница 8

#include "Cstring.h"

int _tmain(int argc, _TCHAR* argv[])

{

       setlocale(LC_ALL,"");

       int c=1;

       CParent* T[3]; // Выдялем память под массив указателей типа виртуальный класс Parent

       while(c!=0){

       cout<<"Здравствуйте!!! Выберите с чем вы будете работать? 1 - Выражения, 2 - Структуры, 3 - Строки и 0 - Выход"<<endl;

       cin>>c;

       //Выбираем с чем будем работать

       if(c==1)

       {

       T[0]= new CCalc();//Выделяем память под класс CCalc

       int c1=0;

       cout<<"Как вы хотите заполнить данные? 1 - Ввод с клавиатуру, 2 - Заполнение с файла"<<endl;

       cin>>c1;

       //Выбор заполнения данными

       switch (c1)//Выполняеться действие с заполнением

       {

       case 1: { T[0]->InputData(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу с данными"<<endl; cin.getline(C,30); cin.getline(C,30); T[0]->ReadFromFile(C); break;}

       }

       cout<<"Как выхотите использовать результат? 1 - Вывести на экран, 2 - Вывести в файл"<<endl;

       cin>>c1;

       //Выбираем как хотим использовать результат

       switch (c1)

       {

       case 1: { T[0]->Show(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу в который необходим сохранить результаты: "<<endl; cin.getline(C,30); cin.getline(C,30); T[0]->SaveToFile(C); break;}

       }

       T[0]->~CParent();

       }

       //2 класс

       if(c==2)

       {

       T[1]= new CStruct();//Выделяем память под класс структуру

       int c1=0;

       cout<<"Как вы хотите заполнить данные? 1 - Ввод с клавиатуру, 2 - Заполнение с файла"<<endl;

       cin>>c1;

       //Выбираем с чем будем работать

       switch (c1)

       {

       case 1: { T[1]->InputData(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу с данными"<<endl; cin.getline(C,30); cin.getline(C,30); T[1]->ReadFromFile(C); break;}

       }

       cout<<"Как выхотите использовать результат? 1 - Вывести на экран, 2 - Вывести в файл"<<endl;

       cin>>c1;

       //Выбираем как хотим использовать результат

       switch (c1)

       {

       case 1: { T[1]->Show(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу в который необходим сохранить результаты: "<<endl; cin.getline(C,30); cin.getline(C,30); T[1]->SaveToFile(C); break;}

       }

       T[1]->~CParent();

       }

       //3 класс

       if(c==3)

       {

       T[2]= new Cstring();//Выделяем память под класс структуру

       int c1=0;

       cout<<"Как вы хотите заполнить данные? 1 - Ввод с клавиатуру, 2 - Заполнение с файла"<<endl;

       cin>>c1;

       //Выбираем с чем будем работать

       switch (c1)

       {

       case 1: { T[2]->InputData(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу с данными"<<endl; cin.getline(C,30); cin.getline(C,30); T[2]->ReadFromFile(C); break;}

       }

       cout<<"Как выхотите использовать результат? 1 - Вывести на экран, 2 - Вывести в файл"<<endl;

       cin>>c1;

       //Выбираем как хотим использовать результат

       switch (c1)

       {

       case 1: { T[2]->Show(); break;}

       case 2: { char C[30]; cout<<"Введите путь к файлу в который необходим сохранить результаты: "<<endl; cin.getline(C,30); cin.getline(C,30); T[2]->SaveToFile(C); break;}

       }

       T[2]->~CParent();

       }

       }

       system("pause");

       return 0;

}

Результат: