Задания для самостоятельного выполнения
Задание 1.
В среде Visual C++6.0 создайте проект CtrlProc. Приложение должно запускать и завершать процессы. В окне создаваемого приложения разместите: 1) кнопку для запуска диалогового окна выбора приложения, для которого создается процесс; 2) поле для ввода командной строки запускаемого приложения; 3) кнопку, нажатие на которой должно запускать приложение, а повторное нажатие завершать запущенное ранее приложение. Создайте также необходимые элементы управления для изменения класса приоритета запущенного процесса: переключатели классов приоритетов и кнопку команды смены класса приоритета.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом. Удалите кнопку команды смены класса приоритета. Класс приоритета должен автоматически изменяться при смене выбранного переключателя. Первоначально в установленном положении должен быть переключатель, относящийся к нормальному классу приоритетов. Если класс приоритета изменяется иначе, например, с помощью диспетчера задач, то должен автоматически изменяться и выбранный переключатель классов приоритетов (создайте таймер и разработайте обработчик сообщения WM_TIMER).
Задание 2.
В среде Visual C++6.0 создайте проект TwoThreads – многопоточное приложение. Создайте два потока. Первый поток должен рисовать в клиентской области окна приложения разноцветные квадраты со случайным расположением и размером, а второй поток разноцветные эллипсы со случайным расположением и размером, каждый в своей четверти окна. Каждый поток должен завершаться после рисования 100000 фигур.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом. Добавьте еще два потока, рисующие разноцветные фигуры со случайным расположением и размером, каждый в своей четверти окна (из оставшихся четвертей). Один поток рисует равносторонние треугольники, а второй – правильные пятиугольники.
Задание 3.
В среде Visual C++6.0 создайте проект TwoCtrlThreads – многопоточное приложение. Создайте два потока. Первый поток должен рисовать в клиентской области окна приложения разноцветные квадраты со случайным расположением и размером, а второй поток разноцветные эллипсы со случайным расположением и размером, каждый в своей четверти окна. Создание и завершение потоков должно управляться двумя кнопками, расположенными в нижней части окна программы.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом. Добавьте еще два потока, рисующие разноцветные фигуры со случайным расположением и размером, каждый в своей четверти окна (из оставшихся четвертей). Один поток рисует равносторонние треугольники, а второй – правильные пятиугольники. Добавьте еще две кнопки для управления вновь созданными потоками.
Задание 4.
В среде Visual C++6.0 создайте проект TwoCngPriorThreads – многопоточное приложение. Создайте два потока. Первый поток должен рисовать в клиентской области окна приложения разноцветные квадраты со случайным расположением и размером, а второй поток разноцветные эллипсы со случайным расположением и размером, каждый в своей четверти окна. Создайте необходимые элементы управления для изменения приоритетов потоков. (Самостоятельно)
Задание 5.
В среде Visual C++6.0 создайте два проекта SndTxtMsg и RcvTxtMsg. Первое приложение (SndTxtMsg) должно пересылать второму небольшую текстовую строку, а второе приложение (RcvTxtMsg) - ее отображать. В окне первого приложения создайте поле для ввода небольшого текста и кнопку, при нажатии на которую окну второго приложения пересылается введенная текстовая строка. В окне второго приложения эта строка должна отобразиться (запустить одновременно оба приложения).
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом. В окне первого приложения создайте два поля ввода для ввода чисел A и B и кнопки с надписями “сумма”, “разность“, “произведениеx”, “частное”. При нажатии на одной из кнопок в окне второго приложения должен отобразиться результат операции над введенными числами, соответствующий надписи кнопки, и название операции. Расчет выполняется во втором приложении, в первое приложение лишь отправляет второму данные для расчета.
