Тема:
Розробка об¢єктно-орієнтованих програм мовоюC++ в середовищі Windows 95/98
(на основі бібліотеки MFC пакетуVISUALC++ 6.0)
Технічне завдання.
1. Головна програма повинна реалізовувати діалоговий інтерфейс користувача на основі класів бібліотеки MFC.
2. Програма на Assemblerповинна отримувати початкові дані від головної програми, виконувати задану операцію над матрицею і отриманий результат передавати в основну програму.
3. Інтерфейс в головній програмі повинен бути реалізований за допомогою меню і діалогових вікон, які повинні бути визначені в файлі ресурсів.
4. Результати виконання арифметичних операцій повинні бути представлені в аналітичному і графічному вигляді.
5. Повинні бути реалізовані додаткові функції інтерфейсу користувача.
6. Реалізувати паралельне виконання головної програми і програми на Assembler за варіантом.
Програма на Assembler :
Скласти програму на мові Assembler для знаходження максимального елемента побічної діагоналі, заданих в форматі байта, слова чи подвійного слова.
Головне меню :
File | Info | Help | Result | Quit |
Open | Input | |||
Save As | Run | |||
Delete | Result |
Зміст
Вступ…………………………………………..................................... |
1. Загальна структура курсової роботи.......………………………... |
2.Основні класи та функції.................................. …………………. |
3. Cтворення меню…………………………………………………… |
4. Створення діалогових вікон.........………………………………… |
5. Робота з графікою..................…………………………………….. |
6. Виконання обробки матриці на Асемблері.............................…... |
7. Робота з файлами в VisualC++6.0………………………………… |
Висновки...............................…………………………………………. |
Література.............................…………………………………………. |
Додатки................................………………………………………….. |
Анотація.
Курсова робота присвячена розробці об¢єктно-орієнтованої програми мовоюC++ в середовищі Windows 95/98 на основі бібліотеки MFC пакетуVISUALC++ 6.0. Інтерфейс в головній програмі реалізований за допомогою меню і діалогових вікон на основі класів бібліотеки MFC. Також виконана зручна робота з файлами: відкриття, збереження, видалення. Створення власних діалогових вікон. При створенні меню задається бажана кількість кнопок їх вигляд та розміщення.
Реалізоване паралельне виконання головної програми і програми на Assembler.
Результати виконання арифметичних операцій представлені в аналітичному і графічному вигляді.
ВСТУП
Visual С++ 6.0представляє собою потужний та складний інструмент для створення 32-розрядних приложень Windows 95 таWindowsNT. Ці приложення набагато переважають як за об’ємом так і по складності своїх попередників для 16-розрядних Windows та ще набагато древніших програм, які звгалі обходяться без графічного інтерфейса. Але не дивлячись на те, що об’єм та складніст програм збільшуються, для їх створення програмісту потрібно не більше, а набагато менше зусиль, по крайній мірі для тих, хто правильно вибираєнеобхідні інструментальні засоби.
Саме таким інструментом є Visual С++ 6.0. Visual С++ 6.0 - це універсальний пакет програмування, який дозволяє створювати модулі з графічним інтерфейсом під операційну систему Windows 95(98). Окрім можливостей, які дає C, С++ надає гнучкі та ефективні засоби визначення нових типів. Використовуючи визначення нових типів, що точно відповідають концепціям прикладних програм, програміст може розділяти розроблювану програму на частини, що легко піддаються контролю. Такий метод побудови програм часто називають абстракцією даних. Інформація про типи міститься у деяких об’єктах типів, визначених користувачем. Такі об’єкти прості та надійні у використанні у тих ситуаціях, коли їх тип не можна встановити на стадії компіляції. Програмування з застосуванням таких об’єктів часто називають об’єктно-орієнтованим. При правильному використанні цей метод дає коротші, простіші в налагодженні та використанні модулі та програми.
Відмінною особливістю мови С++ є поняття класу, яке ще більш широко і яскраво реалізоване в Visual С++ 6.0. Клас – це новий тип змінної, що визначається користувачем. Класи забезпечують приховування даних, гарантовану ініціалізацію даних, неявне перетворення типів, динамічне завдання типу, управління, що контролюється користувачем, механізми перевантаження операцій. В Visual С++ 6.0 збережені можливості мови C по роботі з основними об’єктами апаратного забезпечення (біти, байти, слова, адреси і т.п.).
Visual С++ 6.0 та його бібліотеки, як стандартні, так і MFC спроектовані так, щоб забезпечувати мобільність. Бібліотека MFC дає змогу швидко та ефективно реалізувати графічний інтерфейс та обробляти потрібні функції та повідомлення.
1. Загальна структура програми
Курсова робота складається з декількох окремих блоків (файлів):
– proba.cpp – основна програма, написана мовою С++ на базі пакету VisualC++6.0, в якій створено графічний інтерфейс з використанням меню, діалогових вікон, повідомлень, графіки, роботи з файлами. Вона реалізує введення з клавіатури в діалоговому вікні матриці чисел із послідуючим записом даних у файл IN.DAT, який має знаходитись в робочому каталозі; якщо в робочому каталозі даного файлу немає, програма створить новий з таким же ім’ям.
– Proba.rc – файл ресурсів, який використовується головною програмою і в якому створені такі об’єкти як меню, діалогові вікна для вводу інформації, обробки даних та виведення результатів; в файлі Lab.rc задаються та визначаються всі ре
сурси головного вікна, а саме: тип та структура панелі меню,форма та вигляд діалогових вікон, іконки;
– oks.asm – програма на мові Асемблер, яка відкриває файл in.dat і зчитує інформацію, записану головною програмою. Програма передає зчитані дані в головну програму; програма знаходить номер рядка, де є мінімальний елемент побічної діагоналі матриці. Результат роботи програма передає в out.dat.
Для програми пакету VISUALC++ 6.0 були використані стандартні класи та функції з бібліотеки MFC. Розглянемо та коротко опишемо основні з них.
class CPashaWnd: public CFrameWnd - клас робочого вікна, що є похідним від стандартного CFrameWnd. Він складається з функцій:
- void OnOpen(), void OnSaveAs(), void OnDelete(), void OnInput(), void OnRun(), void OnResult(), void OnInfo(), void OnQuit() – функції реакцій на вибір команд меню;
class CMyDialog:public CDialog – ініціалізація діалогового вікна;
class CPashaApp:public CWinApp – клас, від якого ми створюємо свій власний похідний клас, що в роботі створюватиме програму.
BOOL CPashaApp::InitInstance() – функція ініціалізації головного вікна;
AfxMessageBox() – функція, яка виводить вікно повідомлення з вказаним повідомленням та заголовком до нього.
CChecButton, СListBox, CcomboBox, CEdit – стандартні класи з відповідними функціями обробки активних елементів діалогових вікон.
DoDataExchange() – функція викликається автоматично під час ініціалізації діалогового вікна, вона має набір DDX макросів;
DDX макроси встановлюють зв‘язок між елементом керування і відповідною змінною;
4. Створення діалогових вікон
Створення діалогових вікон заданої конфігурації в VISUALC++ 6.0 з використанням бібліотеки MFC. Для цього потрібно відкрити новий ресурс (діалогове вікно) в створеному проекті і задати (виділивши маніпулятором миша) потрібний розмір діалогового вікна. Після цього можна задавати у новоствореному вікні потрібні об¢єкти, вибравши тип потрібного об¢єкту на верхній панелі інструментів. Місце розташування потрібного об¢єкта (рамка, напис, вікно для редагування (Edit), селекторні кнопки(RadioButton), контрольні перемикачі (CheckBox), комбіновані списки (ComboBox), списки (ListBox) та багато інших) потрібно вказати курсором мишки і задати для деяких із них розмір. Після того, як зображення елемента з¢явилось можна задати йому певних параметрів та властивостей. Все це відбувається візуально.
Створивши всі необхідні об¢єкти, програма автоматично запише весь текст програми, який відповідатиме за створення даного діалогового вікна, у файл ресурсів Script.RC. На цьому візуальна частина створення діалогових вікон скіінчилась. Для того, щоб таке вікно працювало, потрібно описати в головній програмі project.CРР власні класи діалогових вікон, які будуть потомками стандартних класів. Для ініціалізації потрібно створити змінні певних типів для всіх активних елементів діалогового вікна у створеному для нього класі і задати їм початкові значення.
Для передачі даних, які були введені в діалоговому вікні, найпростішим способом є закріплення за цим діалоговим вікном структури, в якій будуть описані глобальні змінні відповідно до порядку ініціалізації активних елементів вікна.
Етапи створення діалогового вікна в даній курсовій роботі:
1.Створення власного класу діалогового вікна classCMyDialog:publicCDialog. Об‘ява для елементів керування змінних властивостей класу :
- змінні другої категорії Control – CEdit m_text, що забезпечують прямий доступ до елементів керування.
2.Ініціалізація змінних властивостей класу:
m_text=_T();
m_List=_T();
3.Обмін даними з елементами діалога
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX,IDC_EDIT,m_text);
DDX_LBString(pDX,IDC_LIST,m_List);
}
4.Організація результатів виконання діалогу після натиснення кнопок OK, Cancel
void CMyDialog::OnOK() void CMyDialog::OnCancel()
5.Організація ініціалізації елементів керування за допомогою функції OnInitDialog():