Темы для предварительной проработки: графический интерфейс пользователя

Лабораторная работа № 5

Оконные приложения в среде WIN32.

 

Цель работы: изучить возможности по созданию оконных приложений для обеспечения удобного графического интерфейса пользователя.

 

Темы для предварительной проработки: графический интерфейс пользователя, структура оконного приложения в среде WIN32, интерфейс прикладного программирования API WIN32.

 

Теоретические сведения

Графический интерфейс пользователя делает возможным использование графики на растровом экране дисплея. Графика дает лучшее восприятие информации и… Рассмотрим простейшую оконную программу (при ее запуске на выполнение легко…  

Порядок выполнения работы

1. Ознакомиться с постановкой задачи и исходными данными. В соответствии с номером по журналу определить вариант задачи. 2. Согласно рекомендациям, приведенным в исходных данных, сконструировать… 3. Составить тексты программ и утвердить их у преподавателя.

Содержание отчета

 

1. Тема лабораторной работы.

2. Цель работы.

3. Индивидуальное задание.

4. Метод и алгоритм решения задачи.

5. Текст программы.

6. Результаты работы программы.

7. Выводы по работе.

 

Индивидуальные задания

  1. В текстовом файле перевести все символы к верхнему регистру. Использовать отображение файла в память. Для взаимодействия с пользователем использовать кнопки и поле для ввода имени файла.
  2. Организовать умножение матриц заданного размера с параллельными вычислениями с использованием нитей. Для синхронизации использовать семафоры. Для взаимодействия с пользователем использовать меню.
  3. Организовать запись и выборку данных в циклическом буфере разными нитями одного процесса. Для решения задачи „производители-потребители” использовать критические секции. Для взаимодействия с пользователем использовать ввод данных из клавиатуры.
  4. Организовать умножение матриц заданного размера с использованием отдельного волокна для формирования каждой строки, но результат формировать по столбцам. Для взаимодействия с пользователем использовать мышь, при нажатии на левую клавишу которой в заданной области окна программы начинается расчет.
  5. Организовать при нажатии на кнопку запуск программы – калькулятора, которая должна завершаться через 15 секунд. Количество запущенных копий программы – калькулятора не ограничивается. Использовать нити. Для взаимодействия с пользователем использовать кнопки.
  6. В текстовом файле перевести все символы к нижнему регистру. Использовать отображение файла в память. Для взаимодействия с пользователем использовать меню, имя файла фиксированное.
  7. Выполнить передачу данных от одного экземпляра программы другому через почтовые ящики. Для взаимодействия с пользователем использовать мышь, при нажатии на левую клавишу которой в заданной области окна программы выполняется передача. Результат отображать по центру окна в каждом экземпляре программы.
  8. Организовать определение количества запущенных на выполнение копий программы. Для решения использовать события. Результат отображать по центру окна в каждом экземпляре программы и динамически его корректировать. Размер шрифта при отображении зависит от количества активных экземпляров программы.
  9. Разработать программу, количество запущенных экземпляров на выполнение которой не должно превышать 5. Для решения использовать семафоры. Завершение программы должно выполняться по нажатию кнопки в окне программы.
  10. Выполнить передачу данных от одного экземпляра программы другому через каналы. Для взаимодействия с пользователем использовать кнопки. Результат отображать по центру окна в каждом экземпляре программы.
  11. В текстовом файле перевести все символы к верхнему регистру. Для работы с файлом использовать функции работы с файловой системой (не использовать отображение файла в память). Для взаимодействия с пользователем использовать короткие клавиши, имя файла фиксированное.
  12. Организовать запись и выборку данных в буфере типа „стек” разными нитями одного процесса. Для решения задачи „производители-потребители” использовать семафоры. Для взаимодействия с пользователем использовать меню.
  13. Реализовать решение задачи „читатели-писатели” на событиях. Для взаимодействия с пользователем использовать ввод данных из клавиатуры.
  14. Написать программу, которая накапливает статистику нажатий на клавиши и на кнопки мыши. Результат отображать по центру окна в каждом экземпляре программы и динамически его корректировать.
  15. Выполнить передачу данных от одного экземпляра программы другому через отображение файлов в память. Для взаимодействия с пользователем использовать меню. Результат отображать по центру окна в каждом экземпляре программы.
  16. Разработать программу, количество запущенных экземпляров на выполнение которой не должно превышать 2. Для решения использовать события. Завершение программы должно выполняться с помощью меню.
  17. Реализовать решение задачи „читатели-писатели” на семафорах. Для взаимодействия с пользователем использовать меню.
  18. Организовать при нажатии на одну кнопку запуск программы – калькулятора, которая должна завершаться при нажатии на другую кнопку. Количество запущенных копий программы – калькулятора не ограничивается. Для взаимодействия с пользователем использовать кнопки.
  19. Разработать программу, которая рассылает сообщения всем своим копиям в памяти при нажатии на кнопку. Результат отображать по центру окна в каждом экземпляре программы.
  20. Разработать программу, которая определяет время, которое она выполнялась в режиме ядра и пользователя. Результат отображать по центру окна программы.
  21. Разработать программу, в состав которой входят нити с разными (всеми возможными приоритетами). Каждая нить в цикле отображает и стирает в заданном месте окна значение своего приоритета.
  22. Организовать запись и выборку данных в циклическом буфере разными нитями одного процесса. Для решения задачи „производители-потребители” использовать мьютексы. Для взаимодействия с пользователем использовать короткие клавиши.
  23. Выполнить копирование файла с помощью отображения файла в память. Для взаимодействия с пользователем использовать мышь, при нажатии на левую клавишу которой в заданной области окна программы выполняется копирование.
  24. Организовать умножение матриц заданного размера с использованием нитей. Для синхронизации использовать события. Для взаимодействия с пользователем использовать кнопки.
  25. Организовать определение количества запущенных на выполнение нитей программы. Запуск новой нити выполнять по нажатию на кнопку. Для решения использовать события. Результат отображать по центру окна в каждом экземпляре программы и динамически его корректировать.
  26. Экспериментальным методом определить максимальное количество нитей, которое может создать одна программа. Результат отображать по центру окна программы и динамически его корректировать.