#include <iostream>
#include <conio.h>
#include <windows.h>
#include <string>
#include <stdlib.h>
using namespace std;
/*Класс описывает животное*/
class Animal
{
string animalName;//Имя животного
double weight;//вес животного
double age;//возраст животного
public:
Animal(string name, double w, double a):animalName(name), weight(w),age(a)//Основной конструктор
{
if(weight<0)
weight=0;
if(age<0)
age=0;
}
Animal(const Animal& obj)//Конструктор копирования
{
animalName = obj.animalName;
weight = obj.weight;
age = obj.age;
}
string GetAnimalName()const
{
return animalName;
}
double GetAnimalWeight()const
{
return weight;
}
double GetAnimalAge()const
{
return age;
}
bool Eat(unsigned food) //Метод "есть" - вы кормите животное
{
int i = rand();
i %= 2;
if(i)//оно может быть сытым и не будет кушать
{
Weight += food;
cout<<"Ваше животное съело "<<food<<" кг пищи.\n";
return true;
}
cout<<"Ваше животное ещё не проголодалось.\n";
return false;
}
void SetAnimalName(string s)
{
animalName=s;
}
bool SetAnimalAge(double a)
{
if(a>=0)
{
Age = a;
return true;
}
return false;
}
void Output()const
{
cout<<"Имя животного: "<<animalName<<
"\nВес: "<<weight<<
"\nВозраст: "<<age<<endl;
}
};
int main()
{
//Настройки шрифтов и региональных стандартов:
if(SetConsoleCP(1251)==0)
//проверка правильности установки кодировки символов для ввода
{
cerr<<"Fialed to set codepage!"<<endl;
/* если не удалось установить кодовую страницу, вывод сообщения об ошибке */
}
if(SetConsoleOutputCP(1251)==0)//тоже самое для вывода
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
Animal a("Кошка", 10, 0.5);
a.Output();
for(int i=0; i<10; i++)
a.Eat(1);
a.Output();
Animal b(a);
b.SetAnimalName("Собака");
b.Output();
b.Eat(5);
b.Output();
_getch();
return 0;
}