Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursova_Stolyar_A_P_ispr.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
541.58 Кб
Скачать

5 Використання засобів програмування winapi

Для правильної роботи программи потрібно настроїти початкові данні. Для цього в функції WndProc ми створили секцію, яка виконуєтся лише раз при старті программи. В ній створюются декілька початкових об’єктів і запускаєтся таймер[5].

Так як программа повинна реагувати на команди користувача, тоді необхідно забеспечити обробку параметра message в функції WndProc. Було забезпечено реакцію на

    • Таймер,

    • Клік лівою кнопкою миші,

    • Натиснення клавіш.

У відповідь на повідомлення про таймер студенти будуть рухатися по аудиторії.

У відповідь на повідомлення про клік лівою кнопкою миші виконується перевірка на виділення/де виділення студентів.

Обробка натиснень клавіш описана у розділі 2.1. Одразу після обробки сигналу конкретної клавіші відбувається рух студентів за командою, якщо така поступила і перевірка чи не змінює мікроорганізм свій макрооб’єкт.

Також у функції WndProс виконується обробка меню, яке містить пункти «Файл», що містить підпункти «Відкрити», «Зберегти як…» і «Вихід», і пункт «Справка», який містить підпункт «Про програму».

В якості діалогових вікон для реалізації збереження та завантаження з файлу використані стандартні діалоги із бібліотеки «commdlg.h» а також функції «GetOpenFileName» та «GetSaveFileName». Для використання данних процедур необхідною є структура «OPENFILENAME».

Для створення нових мікрооб’єктів було створено новий діалог, який окрім кнопок «Ок» та «Відміна». Для отримання інформації із діалогового вікна виконані такі кроки:

  • Отримання дескриптору вікна за допомогою функції «GetDlgItem», яка повертає дескриптор обраного вікна, що належить діалоговому вікну.

  • Отримання тексту із полів для вводу тексту, використана функція «GetWindowTextA», яка дозволяє дізнатись текст вікна.

6 Розробка підсистеми серіалізації/десеріалізації даних

6.1 Розробка формату файлу

Серіалізація (в програмуванні) — процесперетворення будь-якої структуриданих в послідовність бітів. Зворотною до операціїсеріалізації є операціядесеріалізації - відновлення початкового стану структуриданих з бітовоїпослідовності.

Серіалізаціявикористовується для передачі об'єктів по мережі і для збереженняїх у файли. Наприклад, потрібностворитирозподілений додаток, різнічастиниякогомаютьобмінюватисяданимизі складною структурою. У такому випадку для типівданих, якіпередбачаєтьсяпередавати, пишеться код, якийздійснюєсеріалізацію[5] і десеріалізацію.Об'єктзаповнюєтьсяпотрібнимиданими, потімвикликається код серіалізації, в результатівиходить, наприклад, XML-документ. Результат серіалізаціїпередаєтьсяприймаючійстороні, наприклад, по електроннійпошті або HTTP. Додаток-одержувачстворюєоб'єкт того ж типу і викликає код десеріалізації, в результатіотримуючиоб'єкт з тими ж даними, щобуливоб'єктіпрограми-відправника. За такою схемою працює,наприклад, серіалізаціяоб'єктів через SOAP в Microsoft.NET.

Таблиця 6.1 - Формат файлу

Стрічка

Опис

1686 380

Координати х /у студента.

105 63

Довжина /висота студента.

0.3

Розміри студента

123

Швидкість студента.

R5

Ім’ястудента.

3

Номер студента.

false

Чи виділений студент

Water

Означає, що далі описані студента в аудиторії.

1500 5 400

Довжина / поточна позиція / розмір аудиторії.

0

Кількість студентів в аудиторії.

Важливо, щоб спочатку був опис студентів в аудиторії, потім студентів у деканаті. Якщо послідовність змінити правильна серіалізація не гарантуєтся. Дані в файлі можна змінювати, але так, щоб вони відповідали типу змінної, яка буде зчитана з тієї позиції.

6.2 Механізми введення виведення мови С++/Сі

Для роботи з файлами необхідно підключити заголовний файл «fstream». У «fstream» визначені кілька класів і підключені заголовні файли «ifstream» - файловий ввід і «ofstream» - файлове виведеннях[5].

Файловий ввід / вивід аналогічний стандартному вводу / виводу, єдина відмінність - це те, що введення / висновок виконані не на екран, а у файл. Якщо введення / виведення на стандартні пристрої виконується за допомогою об'єктів «cin» і «cout», то для організації файлового введення / виведення досить створити власні об'єкти, які можна використовувати аналогічно операторам «cin» і «cout».

Для виведення даних в файл необхідно створити об’єкт класу «ofstream», потім його можна використовувати як «cout».

Для введення даних з файлу необхідно створити об’єкт класу «ifstream», потім його можна використовувати як «cin».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]