Програма розв’язку розгалужених прикладів
Створення програми розв’язку розгалужених прикладів. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Попередня підготовка вхідних даних. Формат, описання та спосіб їх кодування. Опис і тестування програми, її виклик і завантаження.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 01.04.2016 |
Размер файла | 150,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Зміст
Вступ
1. Загальні відомості
1.1 Позначення та назва програми
1.1 Програмне забезпечення, необхідне для її функціонування
1.2 Мови програмування, на яких написана програма
2. Опис логічної структури
2.1 Алгоритм програми
3. Методи та елементи, що використовуються
3.1 Структура програми з описом функцій складових частин і зв'язків між ними
3.2 Зв'язок програми з іншими програмами
4. Необхідні технічні засоби
4.1 Типи комп'ютерів та пристроїв, що використовуються при роботі програми
5. Виклик і завантаження
5.1 Способи виклику програм
5.2 Адреса завантаження програми
5.4 Обсяг програми
6. Вхідні дані
6.1 Характер вхідних даних
6.2 Організація вхідних даних
6.3 Попередня підготовка вхідних даних
7. Вихідні дані
7.1 Характер вихідних даних
7.2 Організація вихідних даних
7.3 Формат, описання та спосіб кодування даних
8.Опис і тестування програми
Висновок
Список використаної літератури
Додаток А
Вступ
програма розгалужений приклад
Курсовий проект (робота) - це самостійно виконана і відповідно оформлена творча робота студента з вирішення конкретного практичного завдання з однієї або декількох загальнотехнічних чи спеціальних дисциплін на основі набутих теоретичних знань та умінь.
Курсовий проект виконується протягом навчального семестру у відповідності з навчальним планом спеціальності
Основною метою курсового проектування є:
навчання та набуття навиків практичного застосування теоретичних знань для вирішення конкретних практичних задач;
розвиток творчого мислення, виявлення та формування професійних навиків студентів;
набуття навиків конструювання виробів, виконання розрахунків, письмового викладу технічних рішень та аналізу одержаних результатів;
закріплення, поглиблення та систематизація отриманих студентами в процесі навчання теоретичних знань з різних дисциплін;
набуття навиків узагальнення та аналізу результатів, отриманих іншими розробниками та дослідниками;
навчання та набуття студентами досвіду користування довідковою літературою і нормативними документами.
Мета курсового проектування з дисципліни «Основи програмування та алгоритмічні мови»:
закріпити знання, одержані під час вивчення дисципліни «Основи програмування та алгоритмічні мови;
засвоїти основні етапи розробки програмних виробів;
набути навиків при оформлення документів на програмні вироби;
одержати практичні навички з розробки програм і програмних документів.
1. Загальні відомості
1.1 Позначення та назва програми
Програма розв'язку розгалужених прикладів, дискове ім'я файлу app3.cpp, після компіляції - app3.exe.
1.1 Програмне забезпечення, необхідне для її функціонування
Для використання програми не треба специфічного програмного забезпечення. Для виконання приграми вистачає будь-якої ОС сімейства Windows та мінімальних системних частин комп'ютера.
1.2 Мови програмування, на яких написана програма
Microsoft Visual C++ (MSVC) -- інтегроване середовище розробки програмного забезпечення на мові C++, розроблена фірмою Microsoft. Постачається або як частина комплекту Microsoft Visual Studio, або окремо у вигляді безкоштовного функціонально обмеженого комплекту Visual C++ Express Edition.
В першу чергу Visual C++ -- це компілятор C++, але це також і середовище, компоненти якого, взаємодіючи один з одним, спрощують процес розроблення застосунків. Середовище Visual C++ пропонує великі можливості для програмування Windows-застосунків. Найхарактернішою його компонентою є бібліотека основних класів Microsoft (Microsoft Foundation Classes -- MFC). Великий набір класів С++ інкапсулює основну частину API (Application Standart Interface) і пропонує могутню основу для написання типових застосунків.
Компілятор Visual C++ містить багато нових інструментальних засобів і поліпшених можливостей для створення Windows -- застосунків.
Застосунки Windows прості у використанні, але створювати їх досить складно. Щоб полегшити програмістам роботу, фахівці Microsoft розробили бібліотеку Microsoft Foundation Classes -- MFC. Використовуючи готові класи C++, можна набагато швидше і простіше розв'язувати багато задач. Бібліотека MFC істотно полегшує програмування в середовищі Windows. Ті, хто володіє достатнім досвідом програмування на C++, можуть допрацьовувати класи або створювати нові, похідні від існуючих. Класи бібліотеки MFC використовуються як для керування об'єктами Windows, так і для розв'язання певних загальносистемних задач. Наприклад, у бібліотеці є класи для керування файлами, рядками, часом, обробленням виключень тощо. По суті, в MFC представлені практично всі функції WindowsAPI. У бібліотеці є засоби оброблення повідомлень, діагностики помилок й інші засоби, звичні для застосунків Windows. MFC має такі переваги:
Представлений набір функцій та класів відрізняється логічністю й повнотою. Бібліотека MFC відкриває доступ до всіх часто використовуваних функцій Windows API, включаючи функції управління вікнами застосунків, повідомленнями, елементами управління, меню, діалоговими вікнами, об'єктами GDI (Graphics Device Interface -- інтерфейс графічних пристроїв), такими як шрифти, кисті, пера та растрові зображення, функції роботи з документами тощо.
Програмний код бібліотеки досить ефективний. Швидкість виконання застосунків, заснованих на MFC, буде приблизно такою ж як і швидкість виконання застосунків, написаних з використанням стандартних функцій Windows API, а додаткові витрати оперативної пам'яті будуть досить незначними.
MFC містить засоби автоматичного керування повідомленнями. Бібліотека MFC усуває необхідність в організації циклу оброблення повідомлень поширеного джерела помилок в Windows -- застосунках. У MFC передбачений автоматичний контроль за появою кожного повідомлення.
MFC дозволяє організувати автоматичний контроль за виконанням функцій. Ця можливість реалізується за рахунок того, що можна записувати в окремий файл інформацію про різні об'єкти й контролювати значення змінних-членів об'єкта у зручному для розуміння форматі.
MFC має чіткий механізм оброблення виняткових ситуацій. Бібліотека MFC була розроблена так, щоб тримати під контролем появу таких ситуацій. Це дозволяє об'єктам MFC відновлювати роботу після появи помилок типу «outofmemory» (брак пам'яті), неправильного вибору команд меню або проблем із завантаженням файлів або ресурсів.
MFC забезпечує динамічне визначення типів об'єктів. Це надзвичайно потужний програмний засіб, що дозволяє відкласти перевірку типу динамічно створеного об'єкта до моменту виконання програми. Завдяки цьому можна вільно маніпулювати об'єктами, не піклуючись про попередній опис типу даних. Оскільки інформація про тип об'єкта повертається під час виконання програми, програміст звільняється від цілого етапу роботи, пов'язаного з типізацією об'єктів.
MFC може використовуватися спільно з підпрограмами, написаними на мові С++. Важливою особливістю бібліотеки MFC є те, що вона може «співіснувати» з застосунками, заснованими на WindowsAPI. У одній і тій же програмі програміст може використовувати класи MFC і викликати функції WindowsAPI. Така прозорість середовища досягається за рахунок узгодженості програмних позначень в двох архітектурах. Іншими словами, файли заголовків, типи та глобальні константи MFC не конфліктують з іменами з WindowsAPI. Ще одним ключовим моментом, що забезпечує таку взаємодію, є узгодженість механізмів управління пам'яттю.
2. Опис логічної структури
2.1 Алгоритм програми
Для комп'ютерних програм алгоритм є списком деталізованих інструкцій, що реалізують процес обчислення, який, починаючи з початкового стану, відбувається через послідовність логічних станів, яка завершується кінцевим станом. Перехід з попереднього до наступного стану не обов'язково детермінований -- деякі алгоритми можуть містити елементи випадковості.
Поняття алгоритму належить до підвалин математики. Обчислювальні процеси алгоритмічного характеру (як-то арифметичні дії над цілими числами, знаходження НСД двох чисел тощо) відомі людству з глибокої давнини. Проте, чітке поняття алгоритму сформувалося лише на початку XX ст
Наша програма повинна мати чіткий, сформований алгоритм, який дозволить швидко працювати програмі і безперебійно оброблювати вхідні і вихідні дані.
Алгоритм нашої програми виглядає наступним чином:
Початок роботи програми. Запуск скомпільованого нами файлу.
Ініціалізація об'єктів програми.
Введення даних в поле для вводу
Виклик DLL функцій
Обчислення виразу
Вивід результатів
Збереження даних у файл
Кінець програми
Для кращого розуміння алгоритму програми складемо його блок-схему (див.рис.2.1.1)
.
Рис.2.1.1. Блок-схема програми
3. Методи та елементи, що використовуються
Для реалізації алгоритму програми використовуються стандартні методи та елементи середовища програмування MS Visual C++.
Опишемо основні елементи програми, що використовуються у нашій програмі:
menuStip
Меню служать для розміщення логічно згрупованих команд.
Елемент управління MenuStrip з'явився в цій версії Visual Studio .NET і Framework. С допомогою нього можна створювати меню, аналогічні меню Microsoft Office.
Елемент управління MenuStrip підтримує інтерфейс MDI, злиття меню, спливаючі підказки і переповнення. Зручність використання меню можна підвищити, додавши в них клавіші швидкого доступу, поєднання клавіш, прапорці, значки і роздільники.
Елемент управління MenuStrip замінює елемент управління MainMenu і розширює його функціональні можливості; проте при необхідності елемент управління MainMenu можна зберегти для зворотної сумісності і використання в майбутньому.
Способи використання елементу управління MenuStrip
Елемент управління MenuStrip може використовуватися в наступних цілях.
Створення легко настроюються, стандартних меню, що підтримують широкий набір можливостей компоновки і користувальницького інтерфейсу, таких як впорядкування і вирівнювання тексту і зображень, операції перетягування, інтерфейс MDI, переповнення і альтернативні режими доступу до пунктів меню.
Підтримка типового вигляду і поведінки операційної системи.
Узгоджена обробка подій для всіх контейнерів і які у них елементів аналогічно обробці подій для інших елементів управління.
2.Label
Для відображення різних написів на формі використовуються в основному компоненти Label, StaticText і Panel. Перші два з цих компонентів - мітки, спеціально призначені для відображення текстів. Основне призначення панелі Panel - компоновка компонентів у вікні форми, проте можна використовувати і для виведення текстів.
Тексти, які відображаються в компонентах, визначаються значенням їх властивості Caption. Його можна встановлювати в процесі проектування або задавати і змінювати програмно під час виконання програми. Наприклад:
Label1-> Caption = "Новий текст";
Властивість Caption має тип рядка AnsiString. При присвоєнні цього типу числової інформації відбувається її автоматичне перетворення в рядок. Тому ви можете безпосередньо здійснювати подібні присвоювання. Наприклад:
Label1-> Caption = 5.1;
Оператор призведе до появи в мітці напису «5,1». Але якщо ви хочете занести в мітку змішану інформацію, що складаються з рядків символів і чисел, ви повинні скористатися функціями FloatToStr і IntToStr, що переводять відповідно числа з плаваючою комою і цілі в рядок. Для формування тексту, що складається з декількох фрагментів, можна використовувати операцію "+", яка для рядків означає їх склеювання (конкатенацію). Наприклад, якщо в програмі є ціла змінна I, що відображає число співробітників деякої організації, то вивести в мітку Label1 інформацію про це можна оператором:
Label1-> Caption = "Число співробітників:" + IntToStr (I);
У всіх компонентах колір фону визначається властивістю Color, а колір напису подсвойством Color властивості Font. Якщо колір спеціально не задавати, то колір фону зазвичай зливається з кольором контейнера, що містить мітку, так що фон просто не помітний.
Для мітки Label колір і шрифт - єдино доступні елементи оформлення напису. Компоненти StaticText і Panel мають крім того властивість Border - Style, визначальне рамку тексту - бордюр. При стилі sbsNone мітка StaticText по виду не відрізняється від мітки Label. Ймовірно, якщо вже використовувати бордюр, то найбільш приємний стиль sbsSunken.
Компонент Panel крім властивості BorderStyle має ще властивості Bevellnner, BevelOuter, BevelWidth, BorderWidth, які надають багаті можливості оформлення напису. Таким чином, з точки зору оформлення виведеного тексту максимальні можливості дає Panel і мінімальні Label.
Розміщення всіх текстових компонентів на формі визначається, зокрема, властивостями Top, Left, Height, Width, Aline, спільними для всіх віконних компонентів. Ці властивості, що визначають координати компонента, його розміри і їх зміну при зміні користувачем розмірів батьківського компонента.
Розмір міток Label і StaticText визначається також властивістю AutoSize. Якщо ця властивість встановлено в true, то вертикальний і горизонтальний розміри компонента визначаються розміром напису. Якщо ж AutoSize одно false, то вирівнювання тексту всередині компонента визначається властивістю Alignment, яке дозволяє вирівнювати текст по лівому краю, правому краю або центру клієнтської області мітки. У панелі Panel також є властивість AutoSize, але воно не відноситься до розмірів написи Caption. Однак властивість вирівнювання Alignment працює і для панелі.
У мітці Label є властивість WordWrap - допустимість переносу слів довгою написи, що перевищує довжину компонента, на нову сходинку. Щоб такий перенос міг здійснюватися, треба встановити властивість WordWrap в true, властивість AutoSize в false (щоб розмір компоненту не визначався розміром напису) і зробити висоту компонента такий, щоб у ньому могло поміститися кілька рядків. Якщо WordWrap не встановлено у true при AutoSize рівному false, то довгий текст, що не міститься в рамці мітки, просто обрізається.
3.textBox
Елемент управління Windows Forms RichTextBox використовується для відображення, введення та зміни тексту з форматуванням. Елемент управління RichTextBox виконує ті ж функції, що і елемент управління TextBox, але крім цього він дозволяє відображати шрифти, кольори і посилання, завантажувати текст і вкладені зображення з файлів, а також шукати задані знакі. Елемент управління RichTextBox зазвичай використовується для надання можливостей зміни і відображення тексту, схожих з можливостями текстових редакторів, як Microsoft Таких Word.Елемент управління RichTextBox, як і TextBox, дозволяє відображати смуги прокрутки, проте на відміну від TextBox, він за замовчуванням відображає і горизонтальну, і вертикальну смуги прокручування в залежності від необхідності, а також підтримує додаткові параметри їх налаштування.
Робота з елементом управління RichTextBox
Як і для елемента керування TextBox, що відображається текст задається властивістю Text.В елементі управління RichTextBox міститься безліч властивостей для форматування текста.Сведенія про ці властивості див. в розділах Практичне керівництво. Завдання атрибутів шрифту для елементу управління RichTextBox в Windows Forms і Практичний посібник. Встановлення відступів, виступів і маркерів абзаців за допомогою елемента керування RichTextBox в Windows, Forms.Для управління файлами використовуються методи LoadFile і SaveFile, які відображатимуть і зберігають безліч форматів файлів, у тому числі звичайний текст, звичайний текст Юнікод і форматується текст (RTF) .Можливо формати файлів представлені у .frlrfSystemWindowsFormsRichTextBoxStreamTypeClassTopicС допомогою методу Знайти виконується пошук текстових рядків або певних символів.
Елемент управління RichTextBox можна також використовувати для створення веб-посилань; для цього треба задати для властивості DetectUrls значення вірно і створити код для обробки події LinkClicked.. Відображення посилань веб-типу за допомогою елемента керування RichTextBox в Windows, Forms. Можна заборонити користувачеві управляти частиною тексту або всім текстом в елементі управління, задавши для властивості SelectionProtected значення вірно.
Більшу частину операцій редагування в елементі управління RichTextBox можна скасувати і відновити за допомогою виклику методів Скасувати і Redo. Метод CanRedo дозволяє визначити, чи можна заново застосувати виконане останнім і скасоване дію, до елементу управління.
3.1 Структура програми з описом функцій складових частин і зв'язків між ними
Структура програми являє собою набір функцій. Наша програми містить 6 функцій:
Void inputToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню input. Під час виконання цієї функції ми здійснюємо зчитування даних з поля для вводу, і відповідно до введеного числа відображаємо наступні поля для вводу чисел.
Void runToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню run. Під час виконання цієї функції ми здійснюємо зчитування даних з поля для вводу, і скриваємо ці поля.
Void resultToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню result. Під час виконання цієї функції ми здійснюємо виклик необхідної функції з dll і запускаємо її на виконання. Результати виводимо на екран.
Void deleteToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню delete. Під час виконання цієї функції ми здійснюємо очищення всіх полів і повертаємо початкове вікно на екран.
Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню save. Функція зберігає поточний результат у файл.
Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
Функція викликається шляхом натиснення клавішою миші на вкладку меню open. Функція зчитує з файлу останній збережений результат.
3.2 Зв'язок програми з іншими програмами
Програма під час виконання використовує DLL бібліотеку, яка містить описані функції для обчислення поставленого виразу.
4. Необхідні технічні засоби
4.1 Типи комп'ютерів та пристроїв, що використовуються при роботі програми
При роботі програми використовується IBM-сумісний комп'ютер. Будь-яких інших специфічних чи додаткових пристроїв програма не потребує
5. Виклик і завантаження
5.1 Способи виклику програми
Виклик програми виконується завантаженням на виконання файлу app3.exe
5.2 Адреса завантаження програми
Адреса завантаження визначається операційною системою автоматично.
5.3 Відомості про використання оперативної пам'яті
Програма при роботі не ініціює запити на виділення оперативної пам'яті, крім тої, що виділена їй для роботи операційною системою.
5.4 Обсяг програми
Файл Project1.cpp має обсяг 21 Кб , файл Project1.exe - 103 Кб
6. Вхідні дані
6.1 Характер вхідних даних
Вхідні дані для роботи програми являють введені початкові дані для обчислень з клавіатури в поле для вводу
6.2 Організація вхідних даних
Вхідні дані організовуються у вигляді вхідних цифр.
6.3 Попередня підготовка вхідних даних
Попередня підготовка вхідних даних не обов'язкова.
7. Вихідні дані
7.1 Характер вихідних даних
Вихідними даними є результати обчислень програми.
7.2 Організація вихідних даних
Вихідні дані організовані у вигляді повідомлення, що видає програма на екран.
7.3 Формат, описання та спосіб кодування даних
Текстові повідомлення, що виводяться на екран.
8.Опис і тестування програми
Після програмування нашого проекту його необхідно відкомпілювати. Для цього натискаємо клавішу F5. Якщо програма не містить помилок то компілятор видасть повідомлення про успішне завершення і запустить наш проект на виконання. Тут ми вже зможемо протестувати створену програму. Тестування повинне забезпечити перевірку працездатності функцій для всіх варіантів вхідних даних.
Тестування програмного забезпечення (англ. Software Testing) -- це процес технічного дослідження, призначений для виявлення інформації про якість продукту відносно контексту, в якому він має використовуватись. Техніка тестування також включає як процес пошуку помилок або інших дефектів, так і випробування програмних складових з метою оцінки. Може оцінюватись:
відповідність вимогам, якими керувалися проектувальники та розробники
правильна відповідь для усіх можливих вхідних даних
виконання функцій за прийнятний час
практичність
сумісність з програмним забезпеченням та операційними системами
відповідність задачам замовника.
Оскільки число можливих тестів навіть для нескладних програмних компонент практично нескінченне, тому стратегія тестування полягає в тому, щоб провести всі можливі тести з урахуванням наявного часу та ресурсів. Як результат програмне забезпечення (ПЗ) тестується стандартним виконанням програми з метою виявлення баґів (помилок або інших дефектів).
Тестування ПЗ може надавати об'єктивну, незалежну інформацію про якість ПЗ, ризики відмови, як для користувачів так і для замовників.
Тестування може проводитись, як тільки створено виконуваний код (навіть частково завершено). Процес розробки зазвичай передбачає коли та як буде відбуватися тестування. Наприклад, при поетапному процесі, більшість тестів відбувається після визначення системних вимог і тоді вони реалізуються в тестових програмах. На противагу цьому, відповідно до вимог гнучкої розробки ПЗ, програмування і тестування часто відбувається одночасно.
Тестування -- це одна з технік контролю якості, що включає в себе
Планування робіт (Test Management)
Проектування тестів (Test Design)
Виконання тестування (Test Execution)
Аналіз отриманих результатів (Test Analysis).
Верифікація (Verification) -- це процес оцінки системи або її компонентів з метою визначити чи задовольняють результати поточного етапу розробки умовам, сформованим на початку цього етапу. Тобто чи виконуються цілі, терміни, завдання з розробки проекту, визначені на початку поточної фази. Валідація (Validation) -- це визначення відповідності розроблюваного програмного забезпечення між очікуваннями і потребами користувача, вимогам до системи.
План Тестування (Test Plan) -- це документ, що описує весь обсяг робіт з тестування, починаючи з опису об'єкта, стратегії, розкладу, критеріїв початку і закінчення тестування, до необхідного в процесі роботи обладнання, спеціальних знань, а також оцінки ризиків з варіантами їх вирішення.
Тест дизайн (Test Design) -- це етап процесу тестування програмного забезпечення, на якому проектуються і створюються тестові випадки (тест кейси), відповідно до визначених раніше критеріями якості та цілями тестування.
Тестовий випадок (Test Case) -- це документ, що описує сукупність кроків, конкретних умов і параметрів, необхідних для перевірки реалізації тестованої функції або її частини.
Баг/Дефект Репорт (Bug Report) -- це документ, що описує ситуацію або послідовність дій (Steps), що призвела до некоректної роботи об'єкта тестування (Misbehavior), із зазначенням причин та очікуваного результату (Expected Result).
Тестове Покриття (Test Coverage) -- це одна з метрик оцінки якості тестування, що представляє із себе щільність покриття тестами вимог або коду, що виконується.
Деталізація Тест Кейсів (Test Case Specification) -- це рівень деталізації опису тестових кроків і необхідного результату, при якому забезпечується розумне співвідношення часу проходження до тестового покриття.
Час Проходження Тест Кейса (Test Case Pass Time) -- це час від початку проходження кроків тест кейса до отримання результату тесту.
Отже перейдемо до безпосередньої перевірки нашої програми на працездатність.
Наша програма розпочинатиметься виводом на екран монітора комп'ютера головного вікна (див рис.8.1).
Рис.8.1. Головне вікно програми
В даному вікні ми вводимо значення х і натискаємо вкладку Input. (див. рис.8.2)
Рис.8.2. Введення х
Перед нами з'явилось вікно вводу змінних. Тут ми вводимо початкові дані для обчислення (див рис 8.3).
Рис.8.3. Введення змінних
Після цього ми можем вибрати вкладку Calc і в списку натиснути Run а потім Result для обчислення і виводу результату (див рис 8.4)
Рис.8.4. Виведення результату
Поточний результат ми можемо зберегти в текстовому файлі. Для цього вибираємо вкладку File і пункт Save. Поточний результат збережеться у зовнішньому файлі (див рис 8.5)
Рис.8.5. Збережений результат
Висновок
В ході виконання завдання курсової роботи мною було розроблено проект програми для обчислення заданого виразу з використанням dll.
Програма повноцінно працює при будь-яких вхідних даних і може бути впроваджена у виробництво і застосовуватись кінцевими користувачами для проведення математичних обчислень
Список використаної літератури
Інформатика. Мова програмування С++. Спецкурс. 10-12 класи. Навчальний посібник / Лєхан С.А. - Шепетівка, «Аспект», 2007 - 160 с.
Об'єтно-орієнтоване програмування мовою С++, Навчальний посібник,Т.Є.Рак, Львів,2011 - 401с
Борис Пахомов - C C++ и MS Visual С++ 2010 для начинающих - БХВ-Петербург, 2011 - 736 с.
Додаток А
#pragma once
#include "classHeader.h"
#include <fstream>
#include <stdio.h>
#include <string>
#include <vcclr.h>
namespace app3 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
using namespace System::IO;
using namespace System::Text;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::MenuStrip^ menuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^ calcToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ runToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ resultToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ inputToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ aboutToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ quitToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ saveToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ deleteToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ renameToolStripMenuItem;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::TextBox^ textBox5;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::TextBox^ textBox6;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::TextBox^ textBox7;
private: System::Windows::Forms::Label^ label7;
protected:
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->label1 = (gcnew System::Windows::Forms::Label());
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
this->calcToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->runToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->resultToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->inputToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->aboutToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->quitToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->renameToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->deleteToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->label3 = (gcnew System::Windows::Forms::Label());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->label4 = (gcnew System::Windows::Forms::Label());
this->textBox5 = (gcnew System::Windows::Forms::TextBox());
this->label5 = (gcnew System::Windows::Forms::Label());
this->textBox6 = (gcnew System::Windows::Forms::TextBox());
this->label6 = (gcnew System::Windows::Forms::Label());
this->textBox7 = (gcnew System::Windows::Forms::TextBox());
this->label7 = (gcnew System::Windows::Forms::Label());
this->menuStrip1->SuspendLayout();
this->SuspendLayout();
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(51, 48);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(54, 13);
this->label1->TabIndex = 0;
this->label1->Text = L"Введіть а";
this->label1->Visible = false;
//
// menuStrip1
//
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(5) {this->calcToolStripMenuItem,
this->inputToolStripMenuItem, this->aboutToolStripMenuItem, this->quitToolStripMenuItem, this->fileToolStripMenuItem});
this->menuStrip1->Location = System::Drawing::Point(0, 0);
this->menuStrip1->Name = L"menuStrip1";
this->menuStrip1->Size = System::Drawing::Size(262, 24);
this->menuStrip1->TabIndex = 1;
this->menuStrip1->Text = L"menuStrip1";
//
// calcToolStripMenuItem
//
this->calcToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->runToolStripMenuItem,
this->resultToolStripMenuItem});
this->calcToolStripMenuItem->Name = L"calcToolStripMenuItem";
this->calcToolStripMenuItem->Size = System::Drawing::Size(42, 20);
this->calcToolStripMenuItem->Text = L"Calc";
//
// runToolStripMenuItem
//
this->runToolStripMenuItem->Name = L"runToolStripMenuItem";
this->runToolStripMenuItem->Size = System::Drawing::Size(106, 22);
this->runToolStripMenuItem->Text = L"Run";
this->runToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::runToolStripMenuItem_Click);
//
// resultToolStripMenuItem
//
this->resultToolStripMenuItem->Name = L"resultToolStripMenuItem";
this->resultToolStripMenuItem->Size = System::Drawing::Size(106, 22);
this->resultToolStripMenuItem->Text = L"Result";
this->resultToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::resultToolStripMenuItem_Click);
//
// inputToolStripMenuItem
//
this->inputToolStripMenuItem->Name = L"inputToolStripMenuItem";
this->inputToolStripMenuItem->Size = System::Drawing::Size(47, 20);
this->inputToolStripMenuItem->Text = L"Input";
this->inputToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::inputToolStripMenuItem_Click);
//
// aboutToolStripMenuItem
//
this->aboutToolStripMenuItem->Name = L"aboutToolStripMenuItem";
this->aboutToolStripMenuItem->Size = System::Drawing::Size(52, 20);
this->aboutToolStripMenuItem->Text = L"About";
//
// quitToolStripMenuItem
//
this->quitToolStripMenuItem->Name = L"quitToolStripMenuItem";
this->quitToolStripMenuItem->Size = System::Drawing::Size(42, 20);
this->quitToolStripMenuItem->Text = L"Quit";
//
// fileToolStripMenuItem
//
this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->renameToolStripMenuItem,
this->saveToolStripMenuItem, this->deleteToolStripMenuItem});
this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem";
this->fileToolStripMenuItem->Size = System::Drawing::Size(37, 20);
this->fileToolStripMenuItem->Text = L"File";
//
// renameToolStripMenuItem
//
this->renameToolStripMenuItem->Name = L"renameToolStripMenuItem";
this->renameToolStripMenuItem->Size = System::Drawing::Size(107, 22);
this->renameToolStripMenuItem->Text = L"Open";
this->renameToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::renameToolStripMenuItem_Click);
//
// saveToolStripMenuItem
//
this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
this->saveToolStripMenuItem->Size = System::Drawing::Size(107, 22);
this->saveToolStripMenuItem->Text = L"Save";
this->saveToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::saveToolStripMenuItem_Click);
//
// deleteToolStripMenuItem
//
this->deleteToolStripMenuItem->Name = L"deleteToolStripMenuItem";
this->deleteToolStripMenuItem->Size = System::Drawing::Size(107, 22);
this->deleteToolStripMenuItem->Text = L"Delete";
this->deleteToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::deleteToolStripMenuItem_Click);
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(51, 64);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(54, 20);
this->textBox1->TabIndex = 2;
this->textBox1->Visible = false;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(51, 109);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(54, 20);
this->textBox2->TabIndex = 4;
this->textBox2->Visible = false;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(51, 93);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(54, 13);
this->label2->TabIndex = 3;
this->label2->Text = L"Введіть b";
this->label2->Visible = false;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(51, 155);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(54, 20);
this->textBox3->TabIndex = 6;
this->textBox3->Visible = false;
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(51, 139);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(54, 13);
this->label3->TabIndex = 5;
this->label3->Text = L"Введіть c";
this->label3->Visible = false;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(156, 64);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(54, 20);
this->textBox4->TabIndex = 8;
this->textBox4->Visible = false;
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(156, 48);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(54, 13);
this->label4->TabIndex = 7;
this->label4->Text = L"Введіть d";
this->label4->Visible = false;
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(156, 109);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(54, 20);
this->textBox5->TabIndex = 10;
this->textBox5->Visible = false;
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(156, 93);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(54, 13);
this->label5->TabIndex = 9;
this->label5->Text = L"Введіть c";
this->label5->Visible = false;
//
// textBox6
//
this->textBox6->Location = System::Drawing::Point(156, 155);
this->textBox6->Name = L"textBox6";
this->textBox6->Size = System::Drawing::Size(54, 20);
this->textBox6->TabIndex = 12;
this->textBox6->Visible = false;
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(156, 139);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(54, 13);
this->label6->TabIndex = 11;
this->label6->Text = L"Введіть а";
this->label6->Visible = false;
//
// textBox7
//
this->textBox7->Location = System::Drawing::Point(104, 96);
this->textBox7->Name = L"textBox7";
this->textBox7->Size = System::Drawing::Size(54, 20);
this->textBox7->TabIndex = 14;
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(104, 80);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(53, 13);
this->label7->TabIndex = 13;
this->label7->Text = L"Введіть x";
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(262, 196);
this->Controls->Add(this->textBox7);
this->Controls->Add(this->label7);
this->Controls->Add(this->textBox6);
this->Controls->Add(this->label6);
this->Controls->Add(this->textBox5);
this->Controls->Add(this->label5);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->label4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->label3);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->label2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->label1);
this->Controls->Add(this->menuStrip1);
this->MainMenuStrip = this->menuStrip1;
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->menuStrip1->ResumeLayout(false);
this->menuStrip1->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void inputToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
int x=System::Convert::ToInt32(this->textBox7->Text);
if(x==2)
{
this->label1->Text = L"Введіть a";
this->label2->Text = L"Введіть b";
this->label5->Text = L"Введіть d";
this->label4->Text = L"Введіть c";
this->label7->Visible = false;
this->textBox7->Visible = false;
this->label1->Visible = true;
this->label2->Visible = true;
this->label3->Visible = false;
this->label4->Visible = true;
this->label5->Visible = true;
this->label6->Visible = false;
this->textBox1->Visible = true;
this->textBox2->Visible = true;
this->textBox3->Visible = false;
this->textBox4->Visible = true;
this->textBox6->Visible = false;
this->textBox5->Visible = true;
}
if (x>5)
{
this->label1->Text = L"Введіть m1";
this->label2->Text = L"Введіть m2";
this->label3->Text = L"Введіть m3";
this->label5->Text = L"Введіть m5";
this->label4->Text = L"Введіть m4";
this->label6->Text = L"Введіть d";
this->label7->Visible = false;
this->textBox7->Visible = false;
this->label1->Visible = true;
this->label2->Visible = true;
this->label3->Visible = true;
this->label4->Visible = true;
this->label5->Visible = true;
this->label6->Visible = true;
this->textBox1->Visible = true;
this->textBox2->Visible = true;
this->textBox3->Visible = true;
this->textBox4->Visible = true;
this->textBox6->Visible = true;
this->textBox5->Visible = true;
}
}
private: System::Void runToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
this->label1->Visible = false;
this->label2->Visible = false;
this->label3->Visible = false;
this->label5->Visible = false;
this->label4->Visible = false;
this->label6->Visible = false;
this->textBox1->Visible = false;
this->textBox2->Visible = false;
this->textBox3->Visible = false;
this->textBox5->Visible = false;
this->textBox6->Visible = false;
this->textBox4->Visible = false;
}
private: System::Void resultToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
int x;
double y;
x=System::Convert::ToInt32(this->textBox7->Text);
if(x==2)
{
int a,b,c,d;
a=System::Convert::ToInt32(this->textBox1->Text);
b=System::Convert::ToInt32(this->textBox2->Text);
c=System::Convert::ToInt32(this->textBox4->Text);
d=System::Convert::ToInt32(this->textBox5->Text);
y=MathFuncs::MyMathFuncs::Add(a, b, c, d);
}
if (x>5)
{
int m1,m2,m3,m4,m5,d;
m1=System::Convert::ToInt32(this->textBox1->Text);
m2=System::Convert::ToInt32(this->textBox2->Text);
m3=System::Convert::ToInt32(this->textBox3->Text);
m4=System::Convert::ToInt32(this->textBox4->Text);
m5=System::Convert::ToInt32(this->textBox5->Text);
d=System::Convert::ToInt32(this->textBox6->Text);
y=MathFuncs::MyMathFuncs::Multiply(m1, m2, m3, m4, m5, d);
}
this->label7->Text = L"Результат:";
textBox7->Text = y.ToString();
this->label7->Visible = true;
this->textBox7->Visible = true;
}
private: System::Void deleteToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
this->label7->Text = L"Введіть x";
textBox1->Text = "";
textBox2->Text = "";
textBox3->Text = "";
textBox4->Text = "";
textBox5->Text = "";
textBox6->Text = "";
textBox7->Text = "";
this->label7->Visible = true;
this->textBox7->Visible = true;
this->label1->Visible = false;
this->label2->Visible = false;
this->label3->Visible = false;
this->label5->Visible = false;
this->label4->Visible = false;
this->label6->Visible = false;
this->textBox1->Visible = false;
this->textBox2->Visible = false;
this->textBox3->Visible = false;
this->textBox5->Visible = false;
this->textBox6->Visible = false;
this->textBox4->Visible = false;
}
private: System::Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
System::String^ S_path = textBox7->Text;;
std::string myString = "";
for(int i = 0; i < S_path->Length; i++)
myString += (char)S_path[i];
const char * stt = myString.c_str();
FILE *file;
file = fopen( "file.txt", "w" );
fputs(stt, file );
fclose( file );
// F<<textBox7->Text;
}
private: System::Void renameToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e)
{
char load_string[15] = "";
FILE *file;
file = fopen( "file.txt", "r" );
fgets( load_string, 15 , file );
fclose( file );
std::string str2 = "";
System::String^ strCLR = gcnew System::String(load_string);
//System::String^ strCLR2 = gcnew System::String(str2.c_str());
this->label7->Text = L"Результат:";
textBox7->Text =strCLR;
this->label7->Visible = true;
this->textBox7->Visible = true;
this->label1->Visible = false;
this->label2->Visible = false;
this->label3->Visible = false;
this->label5->Visible = false;
this->label4->Visible = false;
this->label6->Visible = false;
this->textBox1->Visible = false;
this->textBox2->Visible = false;
this->textBox3->Visible = false;
this->textBox5->Visible = false;
this->textBox6->Visible = false;
this->textBox4->Visible = false;
}
};
}
Размещено на Allbest.ru
Подобные документы
Позначення і назва програми, забезпечення, необхідне для її функціонування. Опис логічної структури, алгоритм, структура. Типи комп'ютерів і пристроїв, що використовуються при роботі програми. Формат, описання та спосіб кодування вхідних і вихідних даних.
курсовая работа [163,6 K], добавлен 01.04.2016Мови програмування. Алгоритм програми, функціональні обмеження на застосування. Опис логічної структури. Типи комп'ютерів, що використовуються при роботі програми. Виклик і завантаження. Організація, характер та попередня підготовка вихідних даних.
курсовая работа [95,0 K], добавлен 01.04.2016Методи та елементи, що використовуються для реалізації алгоритму програми. Структура додатку з описом функцій складових частин і зв'язків між ними. Типи комп'ютерів та пристроїв, що використовуються при роботі програми. Організація вхідних даних.
курсовая работа [363,2 K], добавлен 01.04.2016Позначення та назва програми, технічне забезпечення, необхідне для функціонування. Призначення програми, функціональні обмеження на застосування. Опис логічної структури, алгоритм. Типи комп'ютерів та пристроїв, що використовуються при роботі програми.
курсовая работа [284,0 K], добавлен 01.04.2016Програма чисельного розв'язку систем лінійних алгебраїчних рівнянь (СЛАР) з розрідженою матрицею, економне витрачання оперативної пам'яті дозволяє розв’язувати багато систем високих ступенів за допомогою персональних комп'ютерів. Методи розв’язку СЛАР.
дипломная работа [1,1 M], добавлен 01.08.2009Розробка та налагодження програми "Заробітна плата" на мові високого рівня С++ для комп'ютерів з операційною системою Windows 7. Текстуальний опис алгоритму. Створення UML-діаграми та обробка інформації з бази даних. Інструкція по роботі з програмою.
курсовая работа [698,4 K], добавлен 14.10.2012Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.
курсовая работа [1,0 M], добавлен 28.06.2012Характеристики методів стискання інформації. Дворівневе кодування, алгоритм Лемпеля-Зіва. Блок-схема алгоритму кодування. Вибір мови, середовища програмування. Опис інтерфейсу, тестування програми. Бібліотеки, які використовуються при написанні програми.
курсовая работа [728,9 K], добавлен 17.01.2014Методи, засоби та алгоритми розв'язування задачі. Розробка інтерфейсу програми для забезпечення діалогу: ком'ютер - користувач при роботі з базою даних довідкової системи навчальних закладів. Програма та її опис, призначення. Логічна структура програми.
курсовая работа [234,8 K], добавлен 14.03.2010Побудова інформаційно-математичної моделі та алгоритм задачі. Визначення структури даних. Розробка інтерфейсу програми з користувачем. Складання коду програми. Реалізація проекту у візуальному середовищі. Тестування та інструкція з експлуатації програми.
курсовая работа [1,3 M], добавлен 14.04.2009