Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <math.h>
- #include <string>
- using namespace std;
- int TakeNum(const int MIN, const int MAX) {
- const string ERROR_CHOISE = "Проверьте корректность введнных данных!\n";
- bool isIncorrect;
- int num;
- do {
- isIncorrect = false;
- cin >> num;
- if (cin.fail()) {
- isIncorrect = true;
- cout << ERROR_CHOISE;
- cin.clear();
- while (cin.get() != '\n');
- }
- if (!isIncorrect && cin.get() != '\n') {
- cin.clear();
- while (cin.get() != '\n');
- cout << ERROR_CHOISE;
- isIncorrect = true;
- }
- if (!isIncorrect && (num < MIN || num > MAX)) {
- isIncorrect = true;
- cout << ERROR_CHOISE;
- }
- } while (isIncorrect);
- return num;
- }
- int rdn(int y, int m, int d) {
- if (m < 3)
- y--, m += 12;
- return 365 * y + y / 4 - y / 100 + y / 400 + (153 * m - 457) / 5 + d - 306;
- }
- int main() {
- setlocale(LC_ALL, "");
- int year, A, B, C;
- char f;
- bool isIncorrect = false;
- cout << "Задание 1\n";
- cout << "Введите год\n";
- year = TakeNum(1, 10000);
- year = year % 12;
- switch (year) {
- case 0: {
- cout << "Это год Обезьяны\n";
- break;
- }
- case 1: {
- cout << "Это год Петуха\n";
- break;
- }
- case 2: {
- cout << "Это год Собаки\n";
- break;
- }
- case 3: {
- cout << "Это год Свиньи\n";
- break;
- }
- case 4: {
- cout << "Это год Мыши\n";
- break;
- }
- case 5: {
- cout << "Это год Быка\n";
- break;
- }
- case 6: {
- cout << "Это год Тигра\n";
- break;
- }
- case 7: {
- cout << "Это год Кролика\n";
- break;
- }
- case 8: {
- cout << "Это год Дракона\n";
- break;
- }
- case 9: {
- cout << "Это год Змеи\n";
- break;
- }
- case 10: {
- cout << "Это год Лошади\n";
- break;
- }
- case 11: {
- cout << "Это год Козла\n";
- break;
- }
- }
- cout << "Задание 2\n";
- cout << "Введите признак фигуры: к - круг, т - треугольник, п - прямоугольник\n";
- do {
- isIncorrect = false;
- cin >> f;
- if ((f != -86) && (f != -30) && (f != -81)) {
- isIncorrect = true;
- cout << "Ошибка ввода.\n";
- }
- } while (isIncorrect);
- switch (f) {
- case (-86): {
- cout << "Введите радиус круга\n";
- int R;
- R = TakeNum(1, 1000);
- cout << "Периметр длины круга равен: " << 2 * 3.14 * R << '\n';
- cout << "Площать круга равна: " << 3.14 * R * R << '\n';
- break;
- }
- case(-81): {
- cout << "Введите стороны прямоугольника A и B\n";
- A = TakeNum(1, 1000);
- B = TakeNum(1, 1000);
- cout << "Периметр прямоугольника равен: " << 2 * (A + B) << '\n';
- cout << "Площадь прямоугольника равна: " << A * B << '\n';
- break;
- }
- case(-30): {
- cout << "Введите стороны треугольника A, B, C\n";
- A = TakeNum(1, 1000);
- B = TakeNum(1, 1000);
- C = TakeNum(1, 1000);
- cout << "Периметр треугольника равен: " << A + B + C << '\n';
- int P = (A + B + C) / 2;
- cout << "Площадь треугольника равна: " << P * (P - A) * (P - B) * (P - C) << '\n';
- break;
- }
- }
- cout << "Задание 3\n";
- int count = 0, date, choice1, choice2, choice3, days, day_f, month_f, year_f, day_s, month_s, year_s;
- double price = 0;
- do {
- isIncorrect = false;
- cout << "Дата покупки билета\n";
- cout << "День: ";
- day_f = TakeNum(1, 31);
- cout << "Месяц: ";
- month_f = TakeNum(1, 12);
- cout << "Год: ";
- year_f = TakeNum(2023, 2025);
- cout << "Дата вылета\n";
- cout << "День: ";
- day_s = TakeNum(1, 31);
- cout << "Месяц: ";
- month_s = TakeNum(1, 12);
- cout << "Год: ";
- year_s = TakeNum(2023, 2025);
- if (year_f > year_s || (year_f == year_s && month_f > month_s) || (year_f == year_s && month_f == month_s && day_f > day_s)) {
- isIncorrect = true;
- cout << "Дата вылета должна быть позже даты покупки билета\n";
- }
- } while (isIncorrect);
- days = rdn(2024, 3, 23) - rdn(2023, 11, 1);
- if (days > 40)
- days = 1;
- else if (days > 20)
- days = 2;
- else days = 0;
- string country[3] = { "Киев", "Москва", "Варшава" };
- cout << "Выберите страну для рейса, где 0 - Киев, 1 - Москва, 2 - Варшава\n";
- choice1 = TakeNum(0, 2);
- cout << "Выберите тип полета, где 1 - В одном направлении, 2 - В двух направлениях\n";
- choice2 = TakeNum(1, 2);
- switch (choice1) {
- case(0): {
- price = 450;
- switch (choice2) {
- case(2): {
- price = 750;
- break;
- }
- }
- break;
- }
- case(1): {
- price = 250;
- switch (choice2) {
- case(2): {
- price = 400;
- break;
- }
- }
- break;
- }
- case(2): {
- price = 400;
- switch (choice2) {
- case(2): {
- price = 650;
- break;
- }
- }
- break;
- }
- }
- switch (days) {
- case(1):
- price -= 0.2 * price;
- break;
- case(2):
- price -= 0.1 * price;
- break;
- }
- cout << "Итоговоая стоимость заказа составит: " << price << " руб.";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment