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

  Юрий  | 

  Обновл. 16 Сен 2021  | 

 31207

 ǀ   38 

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

Easy: Задание №1

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

Medium: Задание №2


Напишите программу, которая проверяет, является ли введенная пользователем строка целым числом.

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

Введите строку: 36.7
36.7 не является целым числом

Hard: Задание №3

Напишите программу учета оценок студентов. Для этого создайте текстовый файл с именем input_data.txt, содержащий список из 10 студентов и их оценки по трем предметам: математика, физика и информатика.

Содержимое файла:

   в первой строке находится общее количество студентов;

   в каждой последующей строке находится ФИО студента и три целых числа (оценки);

   данные в строке разделены пробелами, а оценки варьируются в диапазоне от 1 до 5.

Затем создайте класс, с помощью которого вы будете считывать данные из файла. На экран выведите ФИО студентов с оценками в порядке убывания их среднего балла.


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

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

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

  1. Andrew:

    №1 Тут облегчил себе задачу с реализацией без прерывания нажатием на клавишу, так как показалось на первый взгляд, что сделать это встроенными средствами нельзя

  2. Andrew:

    №2

  3. Филипп:

    Задание №2.

  4. Finchi:

    Задание №3:

  5. Finchi:

    Задание №1 для любой ОС с использованием chrono:

  6. Dmitry:

    Задание 2.

  7. Og:

    //№ 2

  8. WAR:

    Задание №1 (доработал появление нулей перед цифрами):

  9. WAR:

    Задание №1:

  10. WAR:

    Задание №2:

  11. Rock:

    Задание 1: Хоть оно и стоит в easy но таковым назвать его трудно ибо программе нужно и выводить часы и ждать ввода пользователя а это в 1 поток не вписывается и потому пришлось изучить многопоточность)

    Задание 2:

    Задание 3: стало настоящим испытанием но было достаточно интересно его делать в конце кода в коментах написана одна проблема которую не удалось решить.Если у кого будет желание помочь то буду благодарен!

  12. RockNRullz:

    Задание №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:

  13. Владимир:

    // Задание №2

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

    На третьем задании я тоже очень надолго застряла, так как хотела сделать класс-контейнер полегче, то есть чтобы он содержал указатели, а не сами структуры студентов. Я хотела использовать умные указатели, но не могла нормально запустить программу, компилятор на что-то длинно и непонятно ругался, отладка тоже не помогала. В итоге я плюнула на умные указатели и сделала с обычными. А потом до меня дошло, что не так было с умными.

    НО программа работает только с данными в файле на латинице, если там кириллица, возникает run-time error на этапе проверки строк файла на корректность формата (видит непонятные символы вместо букв). Как с этим бороться, я не знаю.
    Итак, с гордостью представляю моё решение задания №3 (итого три файла, три куска кода):

    Файл Student_data.h:

    Файл The_list_of_students.h:

    Файл main.cpp:

    1. Владимир:

      Анастасия, для работы программы с кириллицей, нужно стейтмент (файл main.cpp, стр.71):

      заменить на:

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

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

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

      Комментарий в 13 строчке — левый =(

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

    Седьмая часть практикума застала меня врасплох, первое "Easy" задание я не могла решить больше недели, так как мы такого не проходили, а советы из интернета сначала и вовсе не работали, а потом работали не так, как надо. И так, вот моё вымученное решение задания №1, пока без учёта прерывания по нажатию любой клавиши.

    P.S. многочисленные комментарии, поясняющие работу всех новых для меня вещей, я убрала, чтобы никого не пугать длинющим кодом.

  17. Алена:

    Задача 2.

  18. Алена:

    Задача 1.

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

      Алёна, Вы хорошо поработали. Очень короткий код и работает, как надо. Я, правда, не проверила, что если, например 59 минут, как он три минуты прибавит, нормально? И формат часов немного непривычный, если меньше 10, то 0 не добавляется. Но за такую короткую рабочую программку эти мелочи простительны.

  19. Владимир:

    Задание №1

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

      Владимир, очень интересно получилось. И коротко. У Алёны (выше) решение на Ваше похоже, но Вы ещё после 60 сбрасываете. Поэтому лучше у Вас спрошу: как Вы пришли к этому решению, что читали? Для меня эта задача была очень сложной, поэтому и спрашиваю.

      1. Владимир:

        Анастасия, я уже не помню, что конкретно читал, но это не литература, у меня методы наверное не отличаются от остальных, запрос в поисковик, а там уже сайты для всех вероятно знакомые.
        Посмотрел мельком на Ваше выполнение, а там у Вас с ноликами, для заполнения отсутствия цифр, у меня так не получилось почему-то, хотя я об этом думал

    2. Максим:

      Владимир, очень интересный код. Это отличный пример того, зачем нужны практические задачи и комментарии с решениями.

      Для себя из него подчерпнул сразу несколько практичных фишек:
      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.

      Пример:

  20. Alexandr:

    Задание №3:

  21. Shom:

    Задание №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

    ****************************************************
    ————————————————————————————————-*/

  22. Shom:

    Задание №2.

  23. Shom:

    Задание №1.

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

      Какой короткий и в то же время богатый незнакомыми терминами код! Жаль, что он не годится для Windows, у меня компилятор выдаёт ошибку "Не удается открыть файл включение: unistd.h: No such file or directory"

      1. Shom:

        Можете скачать этот unistd.h в папку с проектом) Но, по большому счёту, в этом нет необходимости — на Виндовс есть своя функция Sleep(). Да и вообще, на Виндовс программа бы получилась короче — можно было бы самописную функцию void getch() заменить стандартной библиотечной функцией getch().

  24. Илья:

    Задание №2:

  25. Илья:

    Задание №1:

    1. Илья:

      Вот так правильнее, если нажать пробел, программа завершится досрочно (подключена библиотека SFML)

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

        fatal error C1083: Не удается открыть файл включение: SFML\Graphics.hpp: No such file or directory

  26. Евгений Павлов:

    Задание №2:

    1. Илья:

      А если я буквы введу

Добавить комментарий для Илья Отменить ответ

Ваш E-mail не будет опубликован. Обязательные поля помечены *