Задания для самостоятельного выполнения
Задание 1.
В среде Visual C++6.0 создайте проект SysInfo – приложение, выводящее на экран (в диалоговое окно) информацию о памяти, возвращаемую функцией GetSystemInfo.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Уберите строку заголовка, иконку разместите в левом верхнем углу диалогового окна, для закрытия окна создайте кнопку “Ok”.
Создайте консольный вариант приложения. Используйте заготовку SysInfoC.
Задание 2.
В среде Visual C++6.0 создайте проект VMStat – приложение, выводящее на экран (в диалоговое окно) результаты вызова функции GlobalMemoryStatus.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Уберите строку заголовка, иконку разместите в левом верхнем углу диалогового окна, для закрытия окна создайте кнопку “Ok”.
Создайте консольный вариант приложения. Используйте заготовку VMStat_C.
Задание 3.
В среде Visual C++6.0 создать проект VMMap – приложение, показывающее регионы памяти и блоки внутри них своего адресного пространства. Изучите готовое решение этой задачи: запустите приложение; изучите код приложения и опишите выводимую им карту памяти собственного адресного пространства.
В среде Visual C++6.0 создайте приложение с диалоговым окном, позволяющим по заданному адресу определять характеристики региона и блока, которым принадлежит этот адрес. Для ввода адреса предусмотрите поле ввода. Вывод информации осуществите в метки. Для запуска функции определения характеристик предусмотрите кнопку “Ok”. Для разработки приложения используйте соответствующие фрагменты кода приложения VMMap и заготовку VNQ.
Задание 4.
В среде Visual C++6.0 создайте проект VMALLOC – приложение, резервирующее регион памяти некоторого размера после нажатия по соответствующей кнопке управления. Обеспечьте возможность установки произвольных страниц региона используемыми и, наоборот, свободными с помощью соответствующих элементов управления. Обеспечьте также возврат освобожденной памяти по щелчку кнопки (уборка мусора). Отобразите карту памяти региона, пометив используемые, свободные, свободные, но невозвращенные страницы региона.
Изучите готовое решение этой задачи.
Создайте проект.
Используя заготовку VM, создайте приложение, выполняющее следующие функции: по команде резервирует регион и выделяет ему физическую память для массива вещественных чисел заданного размера, а затем заполняет его случайными вещественными числами от -100 до 100; по команде отображает значение заданного элемента массива.
Задание 5.
В среде Visual C++6.0 создайте проект MMFShare – приложение, диалоговое окно которого содержит поле ввода данных “Данные”, кнопку «Создание отображения данных», кнопку «Закрытие проекции данных» и кнопку “Открытие проекции и получение данных”. Данные, введенные в поле ввода одного экземпляра приложения после нажатия в нем кнопки «Создание отображения данных», должны отображаться в поле ввода второго приложения после нажатия в нем кнопки “Открытие проекции и получение данных”. Обмен данными обеспечить через проецируемый в память файл. Решить задачу с использованием системного страничного файла. Нажатие на кнопке «Закрытие проекции данных» должно приводить к закрытию проекции.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Добавьте еще одно поле ввода данных и обеспечьте отправку данных из обоих полей другому экземпляру приложения через проецируемый файл.
Задание 6.
Используя функции по работе с кучей, в среде Visual C++6.0 создайте проект VHList – приложение, оперирующее двухсвязным списком (хранится в куче). Элемент списка имеет 7 полей: интенсивность синего, зеленого и красного составляющих цвета закраски прямоугольника; положения левой верхней и правой нижней вершин прямоугольника. Параметры вводятся в поля ввода и при нажатии на кнопку «добавить» добавляются в список и одновременно в окне приложения строится прямоугольник. С помощью кнопок «®» и «¬» осуществить просмотр списка с отображением текущего прямоугольника. Кнопка «удалить» должна позволять удалить любой элемент из списка.
Сравните Ваше решение с имеющимся вариантом выполнения. Видоизмените приложение следующим образом.
Замените двухсвязный список на циклический односвязный. Уберите ставшую ненужной одну из кнопок навигации по списку. Внесите необходимые изменения в код приложения для обеспечения вставки и удаления элементов списка; перемещения по списку.
Задание 7.
В среде Visual C++6.0 создайте проект HM – приложение, выполняющее следующие функции. По команде создает в стандартной куче двухсвязный список записей (одно значащее поле – вещественное число), а затем заполняет его записи случайными вещественными числами от -100 до 100. С помощью кнопок навигации позволяет перемещаться по записям списка, при этом отображается значение поля. Используйте заготовку HM.
