Это старая версия Информатика/Aрхив/2022/11Д-2 за 26.11.2021 21:20 под редакцией DenisKirienko.

Просмотр кода страницы 11 Д-2 страница

((Поступление2022 Как поступать в вуз в 2022 году?))

==Первое полугодие: Qt==

((https://server.179.ru/tasks/qt/theory/ Конспекты уроков по работе с Qt))

((https://www.qt.io/download-qt-installer Установщик для Windows)). При установке выберите "Qt 6.1 for desktop development", и вы получите минимально работающий комплект Qt 6.1.  Подробнее смотрите в ((https://server.179.ru/tasks/qt/theory/01.html инструкции по установке)). Для установки в Linux лучше пользоваться пакетами из дистрибутива вашей системы, можно использовать версию 5 Qt. 

((https://doc.qt.io/qt-6/reference-overview.html Документация на Qt))

((http://server.179.ru/cgi-bin/new-client?contest_id=1273&locale_id=1 Вход в тестирующую систему))

((http://server.179.ru/ejudge/stand/mp/stand.php?contest=1273 Таблица результатов))
===27 ноября (9)===
((https://u.pcloud.link/publink/show?code=XZDOJAXZLiUopk1KSqV3yt9ulSelrpYXbJby Первый пример с урока - изменение размеров виджета "вручную")). Не рекомендуется использование такой технологии.

(https://u.pcloud.link/publink/show?code=XZigDIXZHoNSFYorFvLsg4hzI71kLVvkpp8y Второй пример с урока - использование менеджера компоновки для изменения размера виджетов)). Рекомендуется использование такой технологии.

((https://doc.qt.io/qt-6/qlayout.html Документация на QLayout))

Окно приложения должно содержать ~SpinBox, управляющий количеством итераций кривой Коха. Размеры кривой Коха должны меняться при изменении размеров окна. Сама кривая Коха должна быть максимального размера, допустимого для данного размера окна и располагаться в центре окна.

===20 ноября (8)===

((https://u.pcloud.link/publink/show?code=XZHUDIXZwhN0dBJm5u0fkuPmlWhJshWgDhOX Пример с урока))

Кривая Коха должна отрисовываться методом ~paintEvent. Виджет имеет слот, обновляющий значение числа итераций. Этот слот должен изменить значения члена класса, хранящего число итераций, и вызвать для виджета метод repaint() для обновления содержимого. 

Приложение имеет элемент управления, посылающий сигнал об изменении количества итераций, связанный с данным слотом. 

Размер окна приложения ~XxY определяется константами в начале программы, например:

X = 500
Y = 200

При изменении этих констант должны меняться размеры окна и виджета. Между тем метод repaint() для виджета должен использовать для определения размеров виджета не константы, а методы типа width() и height(). 

Кривая (именно кривая, а не нижняя линия кривой) должна размещаться в центре окна и целиком помещаться в окне, при этом быть максимально возможного размера.

===7 ноября (7)===
((https://u.pcloud.link/publink/show?code=XZhnqUXZeu1tJw79DjB7Bktm9VKYfhwjXsYX Пример с урока))

Создайте окно приложения и нарисуйте внутри виджета кривую Коха порядка N. Значение числа итераций должно определяться константой в одном месте кода. Например:

const int N = 5;

Кривая должна размещаться в центре окна и целиком помещаться в окне. Кривая должна «смотреть вверх». 

При рисовании QPainter нужно передавать действительные координаты (так кривая будет выглядеть лучше), это делается так:
%%(code)
QPainter::drawRect(QPointF(x1, y1), QPointF(x2, y2))
%%
===16 октября (5)===
Функциональность приложения. Хранение таблицы результатов лучших игроков (угадавших за минимальное число ходов). Должно храниться пять лучших результатов. При удачном окончании игры (если игрок будет добавлен в таблицу результатов), приложение запрашивает имя игрока (это удобно делать при помощи ((https://doc.qt.io/qt-6/qinputdialog.html InputDialog))), сохраняет его в файле с лучшими результатами. Должна быть возможность просмотра лучших результатов (можно при помощи ((https://doc.qt.io/qt-6/qmessagebox.html MessageBox))). Выдача лучших результатов – в порядке неубывания числа ходов, использованных при отгадывании.


Программа должна корректно работать как при наличии, так и при отсутствии таблицы результатов. Если файла с результатами не существует, то его нужно создать. Чтобы проверить корректность открытия файла можно использовать метод ((https://en.cppreference.com/w/cpp/io/basic_ifstream/is_open is_open)) у файлового потока.

===9 октября (4)===
Функциональность приложения - полноценный игровой режим с началом новой игры и подсчётом числа ходов.

В окне две кнопки "Угадать" и "Сдаться". Также ведется подсчет числа попыток, за которое было угадано число. Не учитывается в качестве попытки: ввод некорректного числа, ввод числа, совпадающего с тем числом, которое было введено последним перед этим.

При нажатии на кнопку "Угадать" идет проверка числа и выводится сообщение о результате проверки. Если в результате проверки было угадано задуманное число, то выводится сообщение об этом, выводится число ходов и на кнопке "Сдаться" текст меняется на "Новая игра", а нажатия на кнопку "Угадать" игнорируются (можно сделать кнопку неактивной). После нажатия на кнопку "Новая игра" задумывается новое число, текст кнопки меняется на "Сдаться" и все начинается заново.

При нажатии на кнопку "Сдаться" выводится задуманное число, после чего пользователю предлагается начать новую игру нажатием на кнопку "Новая игра".

Слова "быки" и "коровы" должны склоняться по правилам русского языка, например, "1 бык 2 коровы"

После начала новой игры информация о предыдущей игре из окна приложения должна быть убрана.

===2 октября (3)===
Реализация игры ((http://goo.gl/2UwG03 Быки и коровы)).
Функциональность приложения. После запуска программы компьютер генерирует случайное 4-значное число (все цифры различны, начинается не с нуля). **Число выводится на стандартный вывод (в cout), в отладочных целях**. Главное окно приложения содержит поле ввода (~QLineEdit) для ввода задуманного числа, кнопку "Проверить" (~QPushButton) и строчку для вывода сообщения (~QLabel). При нажатии на кнопку производится проверка введенного числа, и либо выводится сообщение о том, что число некорректно, либо выводится количество быков и коров для введенного числа. Сообщения выводятся путем изменения текста у объекта ~QLabel.

Все надписи должны быть на русском языке. Для этого используйте среду ~QtCreator, она будет сохранять файлы в кодировке UTF-8.

===26 сентября (2)===
((http://u.pc.cd/nxfrtalK Пример с урока))

Задание. Добавить в приложение три кнопки: увеличение значения на 1, уменьшения на 1 и сброса значения. Нажатие на эти кнопки должно приводить к изменению значения в классе ~MyCounter и всех элементах управления на экране (~LineEdit, ~SpinBox, ~Slider).

===18 сентября (1)===
((http://u.pc.cd/5hgctalK Пример с урока))

Задание 0. Установить дома Qt и ~QtCreator, сделать скриншот запущенной среды ~QtCreator и запущенного приложения, использующего библиотеку Qt. Скриншот сохранить в формате JPEG и сдать в тестирующую систему.

Задание 1. Создать приложение, содержащее четыре кнопки, связать их с разными слотами главного окна приложения (нельзя использовать слот hide). Приложение должно иметь приличный вид, надписи на кнопках должны быть понятными и соответствовать выполняемым действиям. 

((https://doc.qt.io/qt-6/qwidget.html Документация на слоты класса QWidget))

Требования к проектам, сдаваемых в систему:
  * Проект должен быть сжат при помощи архиватора zip.
  * Необходимо архивировать каталог с проектом, а не только файлы внутри него.