#include <string>
#include "Main.h"
#include <iostream>

Person::Person(void) //реализация конструктора 
// инициализируем переменнные
: Nom_p(0)     // номер по порядку
, Sex(false)  // мальчик или девочка
, LET(0)     // возраст
, FIO()     // ФИО
{
	strcpy(FIO," ");
}

Person::~Person(void) //реализация деструктора 
{
//пусто
}


long Person::get_Nom_p(void) //метод получения номера человека
{
	return Nom_p;
}

char Person::get_FIO(void) //метод получения ФИО человека
{
	return FIO[100];
}

bool Person::get_Sex(void) //метод получения пола
{
	return Sex;
}

int Person::get_LET(void) //метод получения возраста человека
{
	return LET;
}


void Person::set_Nom_p(long Numb)//метод записи номера человека
{
	if (Numb>=0) {Nom_p = Numb;}
	else {std::cout << " Ошибка, номер должен быть >0 \ Error, number should be> 0" << std::endl;} 
}

void Person::set_Sex(char Sex_in[]) //пол 
{
	//входные данные тип array of char (man or woman)
	if (strcmp(Sex_in,"M") == 0 ) {Sex=true;}; 
	if (strcmp(Sex_in,"W") == 0 ) {Sex=false;};
	if ((strcmp(Sex_in,"W") != 0) && (strcmp(Sex_in,"M")) != 0) {std::cout << "Введите W или М \ Man or Women"<< std::endl;};
}	

void Person::set_LET(int LET_in) //метод записи возраста человека
{
	if ((LET_in>0) && (LET_in<100))  {LET = LET_in;}
	else {std::cout << "Вводите возраст от 1 до 99 лет \ Enter age from 1 till 99 years " << std::endl;};
}


void Person::set_FIO(char FIO_in[]) //метод записи ФИО человека
{
	if (sizeof(FIO_in) <= 40) {strcpy(FIO,FIO_in);} 
	else {std::cout << "Ошибка, ненормально большое ФИО \ Error, abnormally big FIO" << std::endl;};	
}


void Person::Print(void) //вывод данных 
{
	char s[10]="";
	std::cout << "Номер: / N" << Nom_p <<std::endl;
	if (Sex == false) {strcpy(s,"M");} else {strcpy(s,"W");};
	std::cout << "пол / sex: " << s << std::endl;
	std::cout << "Лет / AGE: " << LET << std::endl;
	std::cout << "ФИО / FIO: " << FIO << std::endl;
 }

void Person::Input(void)// ввода данных
{
	//ввод номера
	std::cout << "Номер / N" << std::endl;
	long Numb; std::cin >> Numb; Person::set_Nom_p(Numb);
	//ввод пола
	std::cout << "ПОЛ (M или W) / sex ( M or W)" << std::endl;
	char Sex_in[10]; std::cin >> Sex_in; set_Sex(Sex_in);
        //ввод возраста
	std::cout << "ЛЕТ / AGE" << std::endl;
	short i; std::cin >> i; Person::set_LET(i);        
        //ввод ФИО
	std::cout << "input FIO" << std::endl;
	std::cin >> FIO;
}

int main(void)
{
	
	Person iper; //создание обьекта iper типа Person
	//ввод данных
	iper.set_FIO("Владимир Геннадьевич Колмогоров");
	iper.set_Nom_p(1);
	iper.set_Sex("M");
	iper.set_LET(35);
	//вывод
	std::cout << "object iper" << std::endl;
	iper.Print(); //использование метода Print(); для вывода данных
	std::cout << std::endl;
	
	//создание указателя iper2 на обьект типа Person
	Person *iper2=new Person;
	//проверка: удалось создать или нет, если да то делаем
	if (iper2 == NULL) {std::cout << "No free memory" << std::endl;}
    else 
	{
		//ввод данных
		iper2->set_FIO("Татьяна Владимировна Колмогорова");
		iper2->set_Nom_p(2);
		iper2->set_Sex("W");
		iper2->set_LET(5);
		//вывод
		std::cout << "object iper2" << std::endl;
		iper2->Print(); //использование метода Print(); для вывода данных
		std::cout << std::endl;
		//удаление обьекта
		delete iper2;
	};
		
	//создание обьекта iper3
	Person iper3;
	std::cout << "object iper3" << std::endl;
	iper3.Input(); //использование метода Input(); для ввода данных.

	//вывод
	std::cout << "object iper3, print" << std::endl;
	iper3.Print();
		
	return 0;
}


Соседние файлы в папке LB1