Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!
Easy: Задание №1
Напишите программу, которая выводит на экран работающие «электронные часы», которые работают в течение, например, 3 минут или до тех пор, пока пользователь не нажмет любую клавишу.
Medium: Задание №2
Напишите программу, которая проверяет, является ли введенная пользователем строка целым числом.
Пример результата выполнения программы:
Введите строку: 36.7
36.7 не является целым числом
Hard: Задание №3
Напишите программу учета оценок студентов. Для этого создайте текстовый файл с именем input_data.txt
, содержащий список из 10 студентов и их оценки по трем предметам: математика, физика и информатика.
Содержимое файла:
в первой строке находится общее количество студентов;
в каждой последующей строке находится ФИО студента и три целых числа (оценки);
данные в строке разделены пробелами, а оценки варьируются в диапазоне от 1 до 5.
Затем создайте класс, с помощью которого вы будете считывать данные из файла. На экран выведите ФИО студентов с оценками в порядке убывания их среднего балла.
Задание №2.
Задание №3:
Задание №1 для любой ОС с использованием chrono:
Задание 2.
//№ 2
Задание №1 (доработал появление нулей перед цифрами):
Задание №1:
Задание №2:
Задание 1: Хоть оно и стоит в easy но таковым назвать его трудно ибо программе нужно и выводить часы и ждать ввода пользователя а это в 1 поток не вписывается и потому пришлось изучить многопоточность)
Задание 2:
Задание 3: стало настоящим испытанием но было достаточно интересно его делать в конце кода в коментах написана одна проблема которую не удалось решить.Если у кого будет желание помочь то буду благодарен!
Задание №3:
ВНИМАНИЕ: чтобы адекватно считывались русские символы, txt файл должен быть в кодировке ANSI
Список
*****************************************************************************
10
Абатуров Константин Иванович 2 1 4
Аверченко Аркадий Тимофеевич 1 3 5
Асов Александр Игоревич 3 3 3
Бень Евгений Моисеевич 2 1 5
Вагин Всеволод Иванович 2 3 4
Белокрылов Василий Алексеевич 1 2 3
Гершензон Михаил Осипович 4 5 2
Домашнев Сергей Герасимович 1 2 3
Волков Константин Сергеевич 3 2 1
Инбер Вера Михайловна 2 1 1
**********************************************************************
main.cpp:
Задание №3
https://pastebin.com/R3PjrD5X
// Задание №2
На третьем задании я тоже очень надолго застряла, так как хотела сделать класс-контейнер полегче, то есть чтобы он содержал указатели, а не сами структуры студентов. Я хотела использовать умные указатели, но не могла нормально запустить программу, компилятор на что-то длинно и непонятно ругался, отладка тоже не помогала. В итоге я плюнула на умные указатели и сделала с обычными. А потом до меня дошло, что не так было с умными.
НО программа работает только с данными в файле на латинице, если там кириллица, возникает run-time error на этапе проверки строк файла на корректность формата (видит непонятные символы вместо букв). Как с этим бороться, я не знаю.
Итак, с гордостью представляю моё решение задания №3 (итого три файла, три куска кода):
Файл Student_data.h:
Файл The_list_of_students.h:
Файл main.cpp:
Анастасия, для работы программы с кириллицей, нужно стейтмент (файл main.cpp, стр.71):
заменить на:
Моё решение задания №2:
Комментарий в 13 строчке — левый =(
Седьмая часть практикума застала меня врасплох, первое "Easy" задание я не могла решить больше недели, так как мы такого не проходили, а советы из интернета сначала и вовсе не работали, а потом работали не так, как надо. И так, вот моё вымученное решение задания №1, пока без учёта прерывания по нажатию любой клавиши.
P.S. многочисленные комментарии, поясняющие работу всех новых для меня вещей, я убрала, чтобы никого не пугать длинющим кодом.
Задача 2.
Задача 1.
Алёна, Вы хорошо поработали. Очень короткий код и работает, как надо. Я, правда, не проверила, что если, например 59 минут, как он три минуты прибавит, нормально? И формат часов немного непривычный, если меньше 10, то 0 не добавляется. Но за такую короткую рабочую программку эти мелочи простительны.
Задание №1
Владимир, очень интересно получилось. И коротко. У Алёны (выше) решение на Ваше похоже, но Вы ещё после 60 сбрасываете. Поэтому лучше у Вас спрошу: как Вы пришли к этому решению, что читали? Для меня эта задача была очень сложной, поэтому и спрашиваю.
Анастасия, я уже не помню, что конкретно читал, но это не литература, у меня методы наверное не отличаются от остальных, запрос в поисковик, а там уже сайты для всех вероятно знакомые.
Посмотрел мельком на Ваше выполнение, а там у Вас с ноликами, для заполнения отсутствия цифр, у меня так не получилось почему-то, хотя я об этом думал
Владимир, очень интересный код. Это отличный пример того, зачем нужны практические задачи и комментарии с решениями.
Для себя из него подчерпнул сразу несколько практичных фишек:
1. Структура SYSTEMTIME Time для работы со временем.
2. Управляющий символ "\r" для перезаписи строки в цикле.
3. Функция _kbhit() для контроля нажатия клавиши.
4. Функция system("color 1e") для настройки цвета фона и шрифта в консоли.
В свою очередь хотел бы поделиться способом вывода времени.
Чтобы выводить время в формате "01:01:01" многие используют циклы проверки (число < 10), чтобы потом дорисовать к цифрам "0".
Из урока 209 подчерпнул функцию-заполнитель std::cout.fill('char').
В связке с std::setw(2) и std::right, позволяет автоматически дорисовывать "0" в часах, когда значение часов, минут или секунд меньше 10.
Пример:
Задание №3:
Задание №3.
/*—————————————————————————————————
Текстовой файл "students.txt":
*****************************************************
10
Иванов Сергей Петрович 3 3 4
Фёдоров Александр Сергеевич 4 3 5
Кирк Джим Тибальд 4 4 4
Вайт Волтер Валерьянович 5 5 4
Бинг Чендлер Чарльзович 4 3 4
Петров Василий Олегович 3 3 3
Васечкин Пётр Александрович 3 3 4
Барашкова Настясья Филлиповна 3 4 3
Сполдинг Дуглас Леонардович 4 4 4
Сполдинг Томас Леонардович 4 5 5
****************************************************
————————————————————————————————-*/
Задание №2.
Задание №1.
Какой короткий и в то же время богатый незнакомыми терминами код! Жаль, что он не годится для Windows, у меня компилятор выдаёт ошибку "Не удается открыть файл включение: unistd.h: No such file or directory"
Можете скачать этот unistd.h в папку с проектом) Но, по большому счёту, в этом нет необходимости — на Виндовс есть своя функция Sleep(). Да и вообще, на Виндовс программа бы получилась короче — можно было бы самописную функцию void getch() заменить стандартной библиотечной функцией getch().
Задание №2:
Задание №1:
Вот так правильнее, если нажать пробел, программа завершится досрочно (подключена библиотека SFML)