#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
class CONTRY
{
char* name;
double temp_summer = 0, temp_autumn = 0, temp_winter = 0, temp_spring = 0;
public:
CONTRY() { name = NULL; temp_summer, temp_autumn, temp_winter, temp_spring; };
CONTRY(char*, double, double, double, double);
~CONTRY() { delete[]name; }
CONTRY& operator=(const CONTRY& p);
char* getname() { return name; }
double gettemp_winter() { return temp_winter; }
double gettemp_spring() { return temp_spring; }
double gettemp_summer() { return temp_summer; }
double gettemp_autumn() { return temp_autumn; }
friend ostream& operator<<(ostream& s, const CONTRY& p);
friend istream& operator>>(istream& s, CONTRY& p);
CONTRY(const CONTRY&);
};
CONTRY::CONTRY(char* aname, double atemp_winter, double atemp_spring, double atemp_summer, double atemp_autumn)
{
int n;
n = strlen(aname);
name = new char[n + 1];
strcpy(name, aname);
temp_winter = atemp_winter;
temp_spring = atemp_spring;
temp_summer = atemp_summer;
temp_autumn = atemp_autumn;
}
CONTRY::CONTRY(const CONTRY& p)
{
int n = strlen(p.name);
name = new char[n + 1];
strcpy(name, p.name);
temp_winter = p.temp_winter;
temp_spring = p.temp_spring;
temp_summer = p.temp_summer;
temp_autumn = p.temp_autumn;
}
CONTRY& CONTRY::operator=(const CONTRY& p)
{
if (this != &p)
{
delete[]name;
name = new char[strlen(p.name) + 1];
strcpy(name, p.name);
temp_winter = p.temp_winter;
temp_spring = p.temp_spring;
temp_summer = p.temp_summer;
temp_autumn = p.temp_autumn;
}
return *this;
}
ostream& operator<<(ostream& s, const CONTRY& p)
{
s << p.name << setw(17) << p.temp_winter << setw(21) << p.temp_spring << setw(10) << p.temp_summer << setw(10) << p.temp_autumn << setw(10);
return s;
}
istream& operator>>(istream& s, CONTRY& p)
{
char lol[100];
s >> lol >> p.temp_winter >> p.temp_spring>>p.temp_summer>> p.temp_autumn;
int n = strlen(lol);
delete[]p.name;
p.name = new char[n + 1];
strcpy(p.name, lol);
return s;
}
int main()
{
setlocale(LC_ALL, "Russian");
CONTRY *a[100];
int n, i;
cout << "Введите кол-во стран: ";
cin >> n;
cout << "СТРАНА,ТЕМПЕРАТУРА ЗИМОЙ,ВЕСНОЙ,ЛЕТОМ И ОСЕНЬЮ: ";
for (i = 0; i < n; i++)
cin >> a[i];
cout << "Название изделия | Средний срок работы | Стоимость|\n";
for (i = 0; i < n; i++)
cout << a[i] << "\n";
int winter = a[0]->gettemp_winter();
int summer = a[0]->gettemp_summer();
for (i = 0; i < n; i++)
{
if (winter < a[i]->gettemp_winter())
winter = a[i]->gettemp_winter();
if (summer > a[i]->gettemp_summer())
summer = a[i]->gettemp_summer();
}
for (i = 0; i < n; i++)
{
if (a[i]->gettemp_winter() == winter)
cout << "СТРАНА С САМОЙ ТЕПЛОЙ ЗИМОЙ \n" << a[i]->getname << "ТЕМПЕРАТУРА ЗИМОЙ = " << winter << endl;
if (a[i]->gettemp_summer() == summer)
cout << "СТРАНА С САМЫМ ХОЛОДНЫМ ЛЕТОМ \n " << a[i]->getname << "ЛЕТНЯЯ ТЕМПЕРАТУРА = " << summer << endl;
}
system("pause");
}