Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!
Easy: Задание №1
Напишите программу, которая сравнивает два введенных с клавиатуры числа. Программа должна указать, какое число меньше, или, если числа равны — вывести соответствующее сообщение.
Пример результата выполнения программы:
Введите 2 целых числа: 48 54
48 меньше 54
Medium: Задание №2
Напишите программу, которая выводит на экран сообщение в «телеграфном» стиле: буквы сообщения должны появляться по одной с некоторой задержкой.
Hard: Задание №3
Напишите программу, которая содержит текущую информацию о десяти заявках на авиабилеты. Каждая заявка должна иметь:
пункт назначения;
номер рейса;
ФИО пассажира;
желаемую дату вылета.
Программа должна обеспечивать:
хранение всех заявок в виде списка;
добавление и удаление заявок;
вывод всех заявок.
№3
№2
№1
Ох и заморочился я с третьим заданием. Я решил сделать интерфейс меню в которое можно вставить любые опции(как мне кажется. Прям «любые» я не тестировал) и под это меню подогнал решение задачи. Получилось очень много кода(на мой взгляд) здесь продемонстрировать не получится, поэтому оставляю ссылку на гитхаб, если кому то будет интересно.
https://github.com/AlexandrJaw/Request-Menu.git
Все, вообще все проигнорили тз 3го задания
"хранение всех заявок в виде списка"
Где #include<list> граждане?
задание №2
Работает в Visual Studio 19 C++17
Задание 1:
Задание 2:
Задание 3: пришлось серьезно попотеть над прогой, была изначально мысль наследовать все от абстракции как задел под другой вид транспорта , и юзать полиморфизм но пока не хватило знаний
Очень интересно было посмотреть и почерпнуть что-то для себя)
Мое задание №3 :
Task #2
Quest #1
Задание 3
Class Ticket
Класс инициализации и запуска
Имплементация .cpp
Задание №3. Программа запрашивает текущую дату, поэтому временем вылета не может быть вчерашнее число:
Задача 2.
Задача 1.
Задание №3
air_ticket.h:
air_ticket.cpp:
main.cpp:
Моё решение задания №3.
Разбила на несколько файлов и класс-контейнер сделала с оригиналами заявок. В планах переделать с умными указателями, но я в них пока не уверенно себя чувствую, поэтому здесь пусть будет этот вариант.
Файл "Passenger.h":
Файл Date.h:
Файл Ticket.h:
main:
Спасибо, что разместили моё решение. Я и не знала, что код превращается в "красивый" вручную… Поэтому произошла небольшая накладка:
строка "Файл Tickets_list.h:" это не часть Файла "Ticket.h:", это оповещение о том, что далее идёт код следующего файла.
Буду признательна, если Вы поправите соответственно. В остальном всё хорошо.
Меня одно интересует, какого хрена с такими знаниями ты сидишь на этих задачках?
Интереснейшее замечание))) Все знания взяты только из этого курса. А на практике я их усваиваю, так сказать.
Задание №2
Задание №1
И здесь без флага не обошлось)) Ваш фирменный стиль? А если серьёзно, то на мой взгляд, перемудрили Вы здесь Владимир. Всего-то вводится два числа, а столько кода…
Моё решение задания №2:
Моё решение задания №1:
Задача №3
Решила решать через структуру, т.к. задача не слишком объемная.
Не отшлифовывала "Уверены ли Вы" и ввод даты, все внимание уделила работе с векторами и стрингами
У Вас я впервые увидела функцию удаления элемента вектора, это полезная функция, но я её пока ещё не испытала.
В целом — очень компактно получилось, но было бы ещё компактнее без функции get_s(), просто поражает воображение как Вы из символов собираете строку, зачем? Ведь можно же было, к примеру, std::getline(std::cin, строковая переменная).
Главными недостатками кода я считаю строковую (!!!) дату, вместо которой пользователь может написать "здесь был Вася" к примеру, и обилие магических чисел, которые вы используете как коды символов char (13, 27), причём никак это не комментируя. Ну, и названия переменных могли бы быть понятней, но это уже мелочи.
Задание №3.
Изучив Ваш код после кода Юлии, я нашла множество пересечений в логике)) Но Ваш код мне нравится больше, так как он более цивилизованный, и Вы умело работаете со строками и выводом.
В целом мне не нравятся лишь две вещи — строковая дата (Юлия это "наследовала") и то, что
в одном классе как два равноценных члена, хотя понятно, что второй состоит из первых. Это как-то странновато и немного не логично, сделали бы полноценную обработку Application отдельно, а в этом классе оставили бы только работу со списком, это было бы более правильно.
Всё верно: обработку ввода даты и работу с Application лучше (и удобнее) было бы сделать в отдельных классах. Здесь же всё в кучу собранно для компактности.
Задание №2
Ваше "massage" повеселило))
И зачем Вы используете std::flush? Проверить Ваш способ задержки мне не удалось, т.к. не подключается <unistd.h>, "fatal error C1083: Не удается открыть файл включение: unistd.h: No such file or directory,"
Как же в C++ без юмора)
std::flush освобождает буфер, то есть, выводит символ из буфера на экран. Без этой функции они бы копились в буфере до конца цикла, а потом одной строкой вывелись. flush можно было бы заменить endl, но тогда каждый следующий символ выводился бы в новой строке. <unistd.h> — это для функции usleep(), flush входит в <iostream>.
Задание №1.
Задание №3, никогда я не писал столько кода сразу,я знаю, что 325 строк это немного для реальных проектов, но всё же:
1) Здорово, что Вы написали такой подробный поясняющий комментарий к коду, многим авторам здесь такого подхода не хватает.
Сначала я подумала, что Вам удалось это сделать в самом коде, но, похоже, просто здесь так отформатировалось.
2) Вы проигнорировали часть задания о том, что билет должен содержать номер рейса. Но зато Вы сделали номер билета и
статическую переменную для этого. У меня была та же идея, поэтому мне это понравилось.
3) Ещё мне понравилась Ваша идея использовать целочисленные типы заданных размеров, у меня они без #include <cstdint> не работают.
4) Список билетов у Вас с одной стороны называется JournalOfDeparture (журнал вылетов), с другой — journalOfFlights (журнал полётов), хотя с …OfTickets было бы более уместно.
5) Почему addNewUser, deleteNewUser, printOneUser, deleteAllUsers, numberOfUserб почему "пользователь", когда речь — о билетах? Ну, или о заявках.
6) В методе deleteOneUser:
будет работать так, что пока не найдёт нужный номер билета будет писать, что билета нет в списке, что глупо. Представим, что билетов 100, удаляемый билет с номером 50, так вот до него она напишет это 49 раз, если я правильно понимаю. Если нет — поясните. Код не запускала.
7) У вас есть new (в addNewUser), но нигде нет delete, a это означает, что Ваш код провоцирует утечку памяти.
8) В deleteOneTicket:
можно было бы переписать короче:
И в том, что носит гордое имя "интерфейс" код:
то, что после return никогда не выполнится! В целом очевидна Ваша страсть к использованию
Если над этим поработать, код стал бы строк на 20 короче.
Задание №2:
Спасибо Евгению за функцию Sleep(timeMicroseconds),
я про неё раньше не слышал, надо будет получше изучить
библиотеку Windows.h
Задание №1:
В
пробел между num и 1 — критичен. У меня не запустилось, пока не исправила.
Проверки на корректность "чисел" не хватает, результат работы программы:
Введите два целых числа:
во 239
-9.25596e+61 меньше 0
Задание №2:
А здесь-то грязный хак зачем?И Вы бы сообщили пользователю, что Вы от него ждёте строку и зачем… А то запускаешь программу и ждёшь…
Задание №1:
Женя, а в чём, собственно, заключается твой "грязный хак"???
std::cin для double уже перегружены
max и min — шаблоны, они умеют работать со всеми числами
в чём смысл строки ios_base::sync_with_stdio(false);
Я попробовал скопировать твой код и удалить эту строку,
всё продолжило работать.
А ежели эти два числа окажутся равными? Та-да-да-дам….