Часть №6: Практические задания по С++

  Юрий  | 

  Обновл. 27 Май 2021  | 

 15936

 ǀ   37 

Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!

Easy: Задание №1

Напишите программу, которая сравнивает два введенных с клавиатуры числа. Программа должна указать, какое число меньше, или, если числа равны — вывести соответствующее сообщение.

Пример результата выполнения программы:

Введите 2 целых числа: 48 54
48 меньше 54

Medium: Задание №2


Напишите программу, которая выводит на экран сообщение в «телеграфном» стиле: буквы сообщения должны появляться по одной с некоторой задержкой.

Hard: Задание №3

Напишите программу, которая содержит текущую информацию о десяти заявках на авиабилеты. Каждая заявка должна иметь:

   пункт назначения;

   номер рейса;

   ФИО пассажира;

   желаемую дату вылета.

Программа должна обеспечивать:

   хранение всех заявок в виде списка;

   добавление и удаление заявок;

   вывод всех заявок.


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (21 оценок, среднее: 4,76 из 5)
Загрузка...

Комментариев: 37

  1. Rock:

    Задание 1:

    Задание 2:

    Задание 3: пришлось серьезно попотеть над прогой, была изначально мысль наследовать все от абстракции как задел под другой вид транспорта , и юзать полиморфизм но пока не хватило знаний

  2. andrej:

    Мое задание №3 :

  3. Slava:

    Task #2

  4. Slava:

    Quest #1

  5. Gever:

    Задание 3

    Class Ticket

    Класс инициализации и запуска

    Имплементация .cpp

  6. RockNRullz:

    Задание №3. Программа запрашивает текущую дату, поэтому временем вылета не может быть вчерашнее число:

  7. Алена:

    Задача 2.

  8. Алена:

    Задача 1.

  9. Владимир:

    Задание №3

    air_ticket.h:

    air_ticket.cpp:

    main.cpp:

  10. Анастасия:

    Моё решение задания №3.
    Разбила на несколько файлов и класс-контейнер сделала с оригиналами заявок. В планах переделать с умными указателями, но я в них пока не уверенно себя чувствую, поэтому здесь пусть будет этот вариант.

    Файл "Passenger.h":

    Файл Date.h:

    Файл Ticket.h:

    main:

    1. Анастасия:

      Спасибо, что разместили моё решение. Я и не знала, что код превращается в "красивый" вручную… Поэтому произошла небольшая накладка:
      строка "Файл Tickets_list.h:" это не часть Файла "Ticket.h:", это оповещение о том, что далее идёт код следующего файла.
      Буду признательна, если Вы поправите соответственно. В остальном всё хорошо.

      1. Coprak:

        Меня одно интересует, какого хрена с такими знаниями ты сидишь на этих задачках?

        1. Анастасия:

          Интереснейшее замечание))) Все знания взяты только из этого курса. А на практике я их усваиваю, так сказать.

  11. Владимир:

    Задание №2

  12. Владимир:

    Задание №1

    1. Анастасия:

      И здесь без флага не обошлось)) Ваш фирменный стиль? А если серьёзно, то на мой взгляд, перемудрили Вы здесь Владимир. Всего-то вводится два числа, а столько кода…

  13. Анастасия:

    Моё решение задания №2:

  14. Анастасия:

    Моё решение задания №1:

  15. Юлия:

    Задача №3
    Решила решать через структуру, т.к. задача не слишком объемная.
    Не отшлифовывала "Уверены ли Вы" и ввод даты, все внимание уделила работе с векторами и стрингами

    1. Анастасия:

      У Вас я впервые увидела функцию удаления элемента вектора, это полезная функция, но я её пока ещё не испытала.
      В целом — очень компактно получилось, но было бы ещё компактнее без функции get_s(), просто поражает воображение как Вы из символов собираете строку, зачем? Ведь можно же было, к примеру, std::getline(std::cin, строковая переменная).
      Главными недостатками кода я считаю строковую (!!!) дату, вместо которой пользователь может написать "здесь был Вася" к примеру, и обилие магических чисел, которые вы используете как коды символов char (13, 27), причём никак это не комментируя. Ну, и названия переменных могли бы быть понятней, но это уже мелочи.

  16. Shom:

    Задание №3.

    1. Анастасия:

      Изучив Ваш код после кода Юлии, я нашла множество пересечений в логике)) Но Ваш код мне нравится больше, так как он более цивилизованный, и Вы умело работаете со строками и выводом.
      В целом мне не нравятся лишь две вещи — строковая дата (Юлия это "наследовала") и то, что

      в одном классе как два равноценных члена, хотя понятно, что второй состоит из первых. Это как-то странновато и немного не логично, сделали бы полноценную обработку Application отдельно, а в этом классе оставили бы только работу со списком, это было бы более правильно.

      1. Shom:

        Всё верно: обработку ввода даты и работу с Application лучше (и удобнее) было бы сделать в отдельных классах. Здесь же всё в кучу собранно для компактности.

  17. Shom:

    Задание №2

    1. Анастасия:

      Ваше "massage" повеселило))
      И зачем Вы используете std::flush? Проверить Ваш способ задержки мне не удалось, т.к. не подключается <unistd.h>, "fatal error C1083: Не удается открыть файл включение: unistd.h: No such file or directory,"

      1. Shom:

        Как же в C++ без юмора)
        std::flush освобождает буфер, то есть, выводит символ из буфера на экран. Без этой функции они бы копились в буфере до конца цикла, а потом одной строкой вывелись. flush можно было бы заменить endl, но тогда каждый следующий символ выводился бы в новой строке. <unistd.h> — это для функции usleep(), flush входит в <iostream>.

  18. Shom:

    Задание №1.

  19. Илья:

    Задание №3, никогда я не писал столько кода сразу,я знаю, что 325 строк это немного для реальных проектов, но всё же: