
- •1 Аналіз індивідуального завдання
- •2 Загальна структура проекту
- •3 Розробка меню програми
- •4 Панель інструментів та рядок стану
- •4.1 Створення панелі інструментів
- •4.2 Рядок стану
- •5 Створення діалогових вікон
- •5.1 Етапи розробки діалогових вікон
- •5.2 Створення діалогу
- •6 Реалізація математичної функції мовою assembler
- •7 Створення та підключення бібліотеки dll
- •8 Основні операції над файлами
- •8.1 Відкриття файлу
- •8.2 Збереження файлу
- •8.3 Видалення файлу
- •9 Виведення результатів обчислень
- •9.1 Числове виведення результату
- •9.2 Графічне виведення результату
- •10 Керівництво системного програміста
- •11 Керівництво оператора
- •Висновки
- •Перелік посилань
- •Додаток а
- •Додаток б
ЗМІСТ
ВСТУП 5
1 АНАЛІЗ ІНДИВІДУАЛЬНОГО ЗАВДАННЯ 8
2 ЗАГАЛЬНА СТРУКТУРА ПРОГРАМИ 9
3 РОЗРОБКА МЕНЮ 11
4 ПІДКЛЮЧЕННЯ ПАНЕЛІ ІНСТРУМЕНТІВ ТА РЯДКУ СТАНУ 15
4.1 Створення панелі інструментів 15
4.2 Створення рядку стану 17
5 СТВОРЕННЯ ДІАЛОГОВИХ ВІКОН 19
5.1 Основні етапи створення діалогу 19
5.2 Створення діалогу для введення змінних 20
6 МАТЕМАТИЧНЕ ОБЧИСЛЕННЯ 22
7 СТВОРЕННЯ ТА ПІДКЛЮЧЕННЯ БІБЛІОТЕКИ DLL 24
8 РОБОТА З ФАЙЛАМИ 27
8.1 Відкриття файлу 27
8.2 Збереження файлу 28
8.3 Видалення файлу 29
9 ВИВЕДЕННЯ РЕЗУЛЬТАТІВ ОБЧИСЛЕНЬ 30
9.1 Числове виведення результату 30
9.2 Графічне виведення результату 32
10 КЕРІВНИЦТВО СИСТЕМНОГО ПРОГРАМІСТА 36
11 КЕРІВНИЦТВО ОПЕРАТОРА 37
ВИСНОВКИ 38
ПРЕЛІК ПОСИЛАНЬ 39
ДОДАТКИ 40
Додаток А 41
Додаток Б 52
ВСТУП
C++ - мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Розроблена Б'ярном Страуструпом в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «Сі з класами». Страуструп перейменував мову у C++ у 1983 р. Базується на мові С. Визначена стандартом ISO/IEC 14882:2003.
У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення. Мову використовують для системного програмування, розробки програмного забезпечення, написання драйверів, потужних серверних та клієнтських програм, а також для розробки розважальних програм таких як відео- ігри та багато інших. С++ суттєво вплинула на інші, популярні сьогодні, мови програмування, такі як: С# та Java. [1]
Переваги мови C++:
Швидкодія. Швидкість роботи програм на С++ практично не поступається програмам на С, хоча програмісти отримали в свої руки нові можливості і нові засоби.
Масштабованість. На мові C++ розробляють програми для самих різних платформ і систем.
Можливість роботи на низькому рівні з пам'яттю, адресами, портами. (Що, при необережному використанні, може легко перетворитися на недолік.)
Можливість створення узагальнених алгоритмів для різних типів даних, їх спеціалізація, і обчислення на етапі компіляції, з використанням шаблонів.
Підтримуються різні стилі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси).
Недоліки мови C++:
Більшість проблем типобезпеки С++ успадкована від С, але важливу роль в цьому питанні грає і відмова автора мови від ідеї використовувати автоматичне управління пам'яттю (наприклад, збірку сміття). Так візитною карткою С++ стали вразливості типу «переповнювання буфера».
Деякі перетворення типів неінтуїтивні. Зокрема, операція над беззнаковим і знаковим числами видає беззнаковий результат.
Хоча декларується, що С++ мультипарадигмена мова, реально в мові відсутня підтримка функціонального програмування. Частково, даний пропуск усувається різними бібліотеками (Loki, Boost) що використовують засоби метапрограмування для розширення мови функціональними конструкціями, але якість подібних рішень значно поступається якості вбудованих у функціональні мови рішень. Такі можливості функціональних мов, як зіставлення зі зразком взагалі украй складно емулювати засобами метапрограмування.
Структура програм в середовищі Windows значно спрощується при використанні спеціальної бібліотеки Microsoft Foundation Classes (MFC). Перехід до бібліотеки MFC означає перехід до об’єктно-орієнтованого програмування мовою С++.[2]
Бібліотека MFC побудована за ієрархічним принципом. На вершині ієрархії знаходиться єдиний клас CObject. Всі інші класи можна умовно розбити на дві категорії: похідні від класу CObject, і класи, що не залежать від CObject. Класи, які описують окремі компоненти Windows (вікна, діалоги, графіку тощо), як правило, створюють локальну ієрархію зі своїм базовим класом.
Кожен клас надає програмісту велику кількість різноманітних функцій. Оскільки в програмах можна використовувати як АРІ-функції, так і функції класів, тому, щоб їх розрізнити, останні будемо називати MFC-функціями або методами.
Бібліотека MFC розроблялася для спрощення завдань, що стоять перед програмістом. Як відомо, традиційний метод програмування під Windows вимагає написання досить довгих і складних програм, що мають ряд специфічних особливостей. Бібліотека MFC дає змогу швидко та ефективно реалізувати графічний інтерфейс та обробляти потрібні функції та повідомлення. [1]
Microsoft Visual Studio — серія продуктів фірми Майкрософт, які включають інтегроване середовище розробки програмного забезпечення та ряд інших інструментальних засобів. Ці продукти дозволяють розробляти як консольні програми, так і програми зграфічним інтерфейсом, в тому числі з підтримкою технології Windows Forms, а також веб-сайти, веб-додатків, веб-служби як врідному, так і в керованому кодах для всіх платформ, що підтримуються Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework та Microsoft Silverlight.
Visual Studio 2008 сконцентрувала свою увагу на розробці додатків для Windows Vista, Microsoft Office 2007 та веб – додатків. Для візуальної розробки було презентовано Windows Presentation Foundation та новий HTML/CSS редактор. Маючи понад 250 нових функціональних можливостей, Visual Studio 2008 пропонує істотні поліпшення кожної з версій, включаючи Visual Studio Express та Visual Studio Team System. [3]
1 Аналіз індивідуального завдання
В результаті виконання даної курсової роботи буде створено виконуваний файли типу *.ехе та файлу динамічної бібліотеки *.dll, що має знаходитись в тому ж самому каталозі, що й програма для коректної роботи програми. Даний проект в результаті виконання повинен видавати інформацію про розробника, забезпечувати введення в діалоговому режимі вхідних даних з клавіатури, виведення результату роботи програми в числовому та графічному вигляді у різних діалогових вікнах, виконувати стандартні операції з файлами: Rename, Save, Delete. В файлі *.dll повинна міститись функція обчислення математичного виразу згідно із індивідуальним завданням, яка написана мовою Assembler. Динамічна бібліотека повинна отримувати з основної програми необхідні їй дані, проводити потрібні обчислення та передавати результат назад у програму типу *.exe.
Для зручності користування програмою всі необхідні операції мають бути відображені в головному меню програми та в панелі інструментів. Введення даних має відбуватись в діалоговому вікні. При натисненні кнопки Run має відбуватись обмін даними між динамічною бібліотекою та головним файлом програми. Результат виводиться як і в текстовому форматі, так і графічному. При чому в залежності від результату графічний результат має змінюватись. Операція з файлами при натисненні кнопки Save програма має зберегти дані про свою роботу, при Rename перейменувати відповідний файл який задасть користувач, та при натисненні Delete відповідно видалити заданий користувачем файл (Рис. 1.1). [1]
Рис. 1.1 – Вигляд завершеної програми
2 Загальна структура проекту
Дана курсова робота складається з двох проектів:
Перший проект включає файл з текстом самої програми – Main.CPP, файли проекту, що автоматично створюються середовищем, заголовочний файл Resource.h, файл ресурсів Meri.rc, а також файли типу *.bmp та *.ico, що містять рисунок меню та значок програми відповідно. Загальна структура програми в Visual Studio 2008 зображено на рисунку 2.1.
Другий проект використовується для створення DLL бібліотеки (DLL.dll). Він складається з безпосередньо самого файлу з текстом програми – Main.cpp, файлів проекту, що автоматично створюються середовищем та файлу DLL.def в якому вказується ім'я бібліотеки що створюється, та ім'я функції що експортується, яка прописується відповідно синтаксису calc @1 з вказанням номеру функції (@1). [1]
2.1 - Загальна структура програми
В основній програмі використовується наступні класи:
CMyFrameWin, CTextWnd, CGraphdWnd, які є похідними від бібліотечного класу CFrameWnd і використовуються для створення основного вікна і вікна для виведення числового і графічного результату;
class CMyFrameWin:public CFrameWnd
class CTextWnd:public CFrameWnd
class CGraphWnd:public CFrameWnd
клас CMyDialog – похідний від класу CDialog і використовується для створення діалогового вікна і введення даних;
class CMyDialog:public CDialog
контекстне меню створюється за допомогою класу CMenu:
CMenu menu;
клас CStatusBar для об’єкта – рядка стану
CStatusBar m_wndStatusBar;
конструктори класу CFileDialog – DlgOpen і DlgSave - для роботи з файлами, а саме д ля відкриття і збереження файлів.
клас CClientDC – клас контексту пристрою для забезпечення доступу до робочої області вікна.
CClientDC myDC(TextWnd);
клас CAboutDlg – похідний від класу CDialog і використовується для створення діалогового вікна з інформацією про розробника.
class CAboutDlg : public Cdialog.