#include <iostream>
#include <string>
#include <iomanip>
int integer(std::istream& inp, const char* msg) {
std::cout << msg;
int value;
inp >> value;
return value;
}
struct Corner {
int degree;
int minute;
int second;
std::string to_string()const {
return std::to_string(degree) + "° "
+ std::to_string(minute) + "\' "
+ std::to_string(second) + "\"";
}
double decimal()const {
static const auto m = 60.0;
static const auto s = 3600.0;
return degree + minute / m + second / s;
}
friend std::istream& operator>>(std::istream& inp, Corner& c) {
c.degree = integer(inp, "Введите градусы: ");
c.minute = integer(inp, "Введите минуты: ");
c.second = integer(inp, "Введите секунды: ");
return inp;
}
friend std::ostream& operator<<(std::ostream& out, const Corner& c) {
return out <<
c.to _string();
}
};
int main() {
Corner corner;
std::cin >> corner;
std::cout << "Вы ввели: " << corner << '\n';
std::cout << std::fixed << std::setprecision(10);
std::cout << "Десятичные градусы (deg): " << corner.decimal() << '\n';
}