if (out == 1)
{
A[1]->Show();//Выводим результат на экран
}
if (out == 2)
{
char CFile[30];
cout<<"Введите путь к файлу:"<<endl;
cin.getline(CFile,30); // вызов пропускаеться
cin.getline(CFile,30);
A[1]->SaveToFile(CFile);//Выводим результат в файл
}
}
A[1]->~CParent();//Деструктор
}
}
system("PAUSE");
return 0;
}
Parent.h
#pragma once
#include <iostream>
#include <math.h>
using namespace std;
class CParent
{
public:
CParent(void);
virtual void Show (void){};
virtual void InputData (void)=0;// чистая виртуальная функция
virtual void SaveToFile (char *FileName){};
virtual void ReadFromFile (char *FileName){};
virtual ~CParent(void); // виртуальный деструктор нужен чтобы в предках так же вызывался деструктор
};
Parent.cpp
#include "StdAfx.h"
#include "Parent.h"
CParent::CParent(void)
{
setlocale (LC_ALL,".1251");// перевод на русский язык
}
CParent::~CParent(void)
{
}
Cstring.h
#pragma once
#include "parent.h"
class Cstring :
public CParent
{
public:
Cstring(void);// конструктор по умолчанию
Cstring(char *file); // конструктор считывания с файла
Cstring(char *a1,char *b1, char *c1,char *d1); // конструктор заполнения данных
void Show (void) ; // метод вывода р-та
void InputData (void) ; // метод заполнения с клавиатуры
void SaveToFile (char *FileName) ; // метод сохранения в файл
void ReadFromFile (char *FileName) ; // метод считывания с файла
~Cstring(void);
private:
bool slovo();
int Predl();
void Zamena ();
int Kolvo();
char *a,*b,*c,*d;
};
Cstring.cpp
#include "StdAfx.h"
#include "Cstring.h"
#include <fstream>
char* Read1()//считывание без ограничения с клавиатуры в переменную указательного типа char
{
int ch, str_size = 0;
char * str = (char *) calloc(str_size, sizeof(char));
while ((ch = getchar()) != '\n')
{
str = (char *) realloc(str, ++str_size);
str[ str_size - 1 ] = (char) ch;
}
str = (char *) realloc(str, ++str_size);
str[ str_size - 1 ] = '\0';
return str;
}
Cstring::Cstring()// конструктор по умолчанию, ничего не делает
{
}
Cstring::Cstring(char *file)//конструктор считывания с файла
{
ReadFromFile(file); // вызов функции считывания с файла
}
Cstring::Cstring(char *a1,char *b1, char *c1,char *d1)//конструктор ввода данных
{
strcpy(a,a1);
strcpy(b,b1);
strcpy(c,c1);
strcpy(d,d1);
}
bool Cstring::slovo()//функция проверки первого и последнего элемента
{
return (a[0]==a[strlen(a)-1]) ? 1 : 0 ; // возрваращет правду если первый и последний элемент одинаковы
}
int Cstring::Predl()//ищет количество букв 'о'
{
int k=0;
for(int i=0;i<strlen(b);i++)
if(b[i]=='o') k++;
return k;
}
void Cstring::Zamena ()//функция замены ax на yx
{
for(int i=0;i<strlen(c)-1;i++)
if(c[i]=='a') if(c[i+1]=='x') c[i]='y';// проверка условия
}
int Cstring::Kolvo()//функция счета количества цифр
{
int k=0;
for(int i=0;i<strlen(d);i++)
if(d[i]>=char('0') && d[i]<=char('9')) k++;
return k;
}
void Cstring::Show(void)// вывод результата
{
cout<<"Ответ на первое задание:";
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.