72.36K
Категория: ПрограммированиеПрограммирование

Вопросы по дисциплине "Системное программирование". Подготовка к экзаменационной задаче

1.

Вопросы по дисциплине
Системное программирование
1. Системное программное обеспечение, функции ОС, взаимодействие
программ на языках С++ и С# с операционной системой.
2. Основные возможности системного программирования в среде Builder
C++. Компоненты вкладки System. Работа с сообщениями.
3. Главная программа приложения Windows. Основные функции. Цикл
обработки сообщений.
4. Основы WIN API: типы функций, регистрация класса окна, окна и
сообщения. Правила написания программы под Windows.
5. Шаблон программы под Windows (создание приложения, назначение
программы WinMain, класс окна, оконная процедура).
6. Программирование управляемое событиями. Основные особенности.
Порядок взаимодействия программы и операционной системы.
7. Сообщения с точки зрения операционной системы, программного
приложения и пользователя программного обеспечения.
8. Сообщения. Принципы обработки. Сообщения мыши.

2.

9.
Структура приложения Windows, порядок создания приложения.
Ресурсы доступные для использования в приложении.
10.
Особенности работы с мышью, работа с рабочей и нерабочей
областью окна. Программное управление курсором.
11.
Объекты ОС Windows. Дескрипторы и их использование. Окна –
основные объекты ОС.
12.
Окна (создание, типы и стили, определение размера и
местоположения). Окна нестандартной формы.
13.
Сообщения (источники сообщений, сообщения управляющих
элементов).
14.
Управляющие элементы интерфейса пользователя (создание,
взаимодействие с родительским окном, типы кнопок и особенности
их работы, статический элемент и элемент редактирования текста).
15.
Управление окнами в WinAPI. Состояние окна, свойства окна и их
изменение.
16.
Оконный класс, стили окна, регистрация оконного класса. Создание
окна.
17.
Порядок работы с окнами. Z-порядок окон.
18.
Управление окнами в WinAPI: поиск окна, посылка
сообщений, вызов функций WinAPI.

3.

19.
Управление окнами в WinAPI. Типы окон, родительские и дочерние
окна, порядок расположения окон. Поиск окон (функции высших
порядков и Callback – функции).
20.
Работа с графикой в Builder C++, свойство Canvas, инструменты
рисования.
21.
Работа с графикой в Builder C++, свойство Canvas, основные
графические функции.
22.
GDI. Контексты графических устройств, режимы отображения,
изменение координат.
23.
GDI. Правила работы с инструментами, работа с цветом.
24.
Использование инструментов GDI, порядок работы. Событие
WM_PAINT. Область отсечения.
25.
Функции GDI: основные графические функции, заливка области,
работа с отдельными пикселями.
26.
GDI. Режимы рисования, функция SetROP2. Копирование
изображений.
27.
Основы GDI+: основные особенности, объект Graphics,
событие WM_PAINT, функции рисования.

4.

28.
Основы GDI+: особенности работы с графическими инструментами.
29.
GDI. Битовые карты и порядок работы с ними.
30.
GDI. Метафайлы. Назначение, создание и сохранение.
Преимущества использования.
31.
GDI+. Битовые карты и особенности работы с ними.
32.
Битовые карты создание и особенности использования в различных
инструментальных средах.
33.
Метафайлы. Порядок создания и работы, добавление информации в
файл
34.
Клавиатура, особенности использования, фокус ввода. Основные
сообщения.
35.
Клавиатура. Виртуальные коды клавиш. Получение информации о
состоянии клавиатуры. Сообщение WM_CHAR.
36.
Аппаратное обеспечение компьютера: служба времени (часы
реального времени, таймер, использование функций WinAPI).
37.
Функции WinAPI: получение информации о компьютерной системе.

5.

38.
Разработка многопоточных Windows-приложений. Назначение.
Основные понятия.
39.
Механизмы синхронизации потоков и процессов в Windows. Объекты
синхронизации. Примеры использования.
40.
Объекты библиотеки .NET для получения информации о среде
выполнения программы (программное окружение) на языке С#.
41.
Реестр Windows: назначение, основные разделы, получение
информации о компьютерной системе.
42.
Инструментарий WMI: порядок работы и получение информации о
компьютерной системе.
43.
Управляемый код .NET, вызов функций WinAPI из программы на
языке C#, работа с различными типами параметров. Примеры.
44.
COM – технология. Определение, назначение, основные понятия.
45.
OLE – технология. Назначение, создание сложных
структурированных документов, способы вставки объектов в
документ.
46.
Организация многозадочности в Windows.
47.
Операционные системы: прерывания, механизм обработки
прерывания, типы прерываний.

6.

Подготовка к экзаменационной задаче
В билете:
1. Один теоретический вопрос (всего 47
вопросов) – на него надо отвечать устно.
2. Задача. На каком языке требуется реализовать
приложение указано в билете (либо программа
WinAPI на языке С, либо программа на языке C#).

7.

Возможные действия приложения
Установить заданные размеры окна приложения.
Разделить экран между окнами (окно в левой половине экрана,
а другое в правой).
Перед началом работы проверить размер экрана (сколько
дюймов). Проверить разрешение экрана.
Высветить часы, минуты, секунды
Запускается только через заданное время после загрузки
компьютера. Запускается только в заданный интервал времени.
Заканчивает работу в заданное время.
Информирует пользователя о продолжительности работы
(например, при нажатии на клавишу – F8).
Приложение должно работать только на компьютере с
заданным именем и с заданным именем пользователя.
Программа начинает работу только, если запущено другое
(заданное) приложение.
Программа требует закрытия другого приложения.
Программа создает окно заданной формы.

8.

Работа с битовыми картами
Загружается битовая карта, создается новая карта,
изображение копируется из одной карты в другую.
Программа выводит на экран картинку, которая
постепенно исчезает или проявляется (по времени, по
щелчку, по двойному щелчку и т.д.):
- появляются (исчезают) расширяющиеся круги
заданного цвета (или другие геометрические
фигуры);
- пикселы меняют цвет на заданный случайным
образом (по времени или по щелчку пользователя).

9.

Организация работы приложения
Действия по щелчку (или по двойному щелчку).
Двойной щелчок возобновляет работу (например, закрашивает всю картинку).
Передать фокус ввода заданному окну (родительскому окну).
Изменение размера окна (сообщение не приводит к изменению размеров).
Если мышь движется над заголовком окна, должен выводиться текст (или
закрашиваться область клиента).
Выполнять действие по кнопке и в соответствии с установленным флажком или
по радио-кнопкам (кнопки возможно придется переключать вручную).
Выполнить действия при нажатии системной клавиши, например, ESC.
Получать и выводить символы по событию WM_CHAR.
Действия по нажатию любой клавиши (по срабатыванию клавиатуры) или по
действию с мышью.
Действия по событиям:
Действия по таймеру (несколько таймеров).
Действия по событию WM_PAINT (рисование в клиентской области окна).
Действия при создании окна (событие WM_CREATE).

10.

Оформление работы
1.
Первый вопрос билета: перечислить основные проблемы, которые вы бы хотели
затронуть при ответе на поставленный вопрос.
2.
3.
4.
Задача: разработка приложения на языке С#, либо приложение на С под Windows.
Написать надо только код, который должен внести в шаблон программист.
При этом должно быть четко указано в каком обработчике события находится код.
Например,
// Глобальные переменные
Объявление переменных
// Класс окна
Изменение полей
// Создание окон (кнопок и др. )
Соответствующий код
// Процедура WndProc (на языке С)
case <имя>: код
// Заголовок функции (на языке C#)
Код обработчика событий
Можно написать вспомогательные функции и вызывать их из основного кода.

11.

Программа должна работать эффективно и учитывать
особенности работы ОС
Например:
Если предполагается вывод изображения по какому-то
событию (в течении определенного времени), то контекст
устройства должен быть глобальным.
Если идет вывод (например, изображений), то это не должно
мешать параллельной работе пользователя и возможным
переключениям (даже в приложении на языке С#).
Нельзя событие WM_PAINT нагружать лишней работой.
Использовать область отсечения для вывода нужных
фрагментов.

12.

Рекомендации
В приложении может быть несколько битовых карт
(определение: Bitmap определяет цвет и положение пикселей
на экране. Позволяет подготовить изображение
в памяти, а затем быстро вывести его на экран).
Cобытие WM_PAINT предназначено для обновления рабочей
области окна (в нем можно скопировать заранее
подготовленное изображение в эту область).
Событие WM_TIMER позволяет программе совершать
многократно (с необходимыми изменениями) некоторые
действия с равными временными промежутками (цикл).
Событие WM_CREATE приходит одним из первых и в его
обработчике очень уместно настроить необходимые параметры
приложения, а также установить значения некоторых
глобальных переменных.
При этом неважно на каком языке программирования
реализовано то или иное приложение.
English     Русский Правила