явлення змінних, що відповідатимуть чисельнику та знаменнику дробів. Нам також знадобиться тип «float» на випадок отримання не цілих значень.
Структура програми «Звичайний дріб»
В першій частині міститься весь теоретичний матеріал, який допоможе засвоїти дії над дробами і підготовить користувача тдо роботи у другому розділі. З допомогою другого розділу користувач зможе виконувати різні дії над звичайними дробами. Якщо користувачу щось не зрозуміло він завжди зможе перейти до першого розділу.
1.4Система програмування
Програмний додаток «Обыкновенная дробь» розроблено в візуальному середовищі Builder C++.++ Builder - програмний продукт, інструмент швидкої розробки додатків (RAD), інтегрована середа програмування (IDE), система, яка використовується програмістами для розробки програмного забезпечення на мові програмування C + +.
Спочатку розроблявся компанією Borland Software, а потім її підрозділом CodeGear, нині належить компанії Embarcadero Technologies.+ + Builder об'єднує в собі комплекс об'єктних бібліотек (STL, VCL, CLX, MFC тощо), компілятор, відладчик, редактор коду і багато інших компонентів. Цикл розробки аналогічний Delphi. Більшість компонентів, розроблених в Delphi, можна використовувати і в C + + Builder без модифікації, але зворотне твердження не вірно.
Замість окремого інструментарію, що оперує візуальними елементами управління, в C++ Builder інтегрована так звана Палітра компонентів, розділена картотечними вкладками на декілька функціональних груп. Функціональні можливості що поставляються компонентам, можна досить просто модифікувати, а також розробляти компоненти, що володіють абсолютно новою оригінальною поведінкою.
Дизайнер форм, Інспектор об'єктів і інші засоби залишаються доступними під час роботи програми, тому вносити зміни можна в процесі відладки.
2. Спеціальна частина
2.1 Декомпозиція вихідної задачі на функціональні модулі
Задачу треба «розкласти по полицям» так ретельно, щоб кожна дія була визначена і весь ланцюг таких дій був також вірним. Іноді це дуже важко зробити, але саме це є головною метою вивчення дисциплін циклу програмування.
В цьому розділі слід викласти перелік та призначення візуальних елементів на формі програми в середовищі Builder C++.
Для реалізації даної програми було використано декілька функцій. Перша функція - це Порівняння. В цій функції ми порівнюємо звичайні дроби. В ній ми передбачили всі можливі варіанти звичайних дробів. Друга функція - це додавання. В ній ми додаємо дроби. Також було переглянуто всі можливі варіанти дробів. Третя функція - це віднімання. Вона по структурі аналогічна до додавання, за винятком того, що за її допомогою віднімаємо дроби. Наступна функція - це множення. Найпростіша функція. В ній ми реалізовуємо множення дробів вже в незалежності від варіантів. Функція ділення виконується аналогічно до множення.
На формі ми використали такі візуальні елементи як Button - кнопки, для переходу між формами(сторінками), а також для обчислення виразів; Label - для коментарі та пунктів плану на сторінках змісту; Timer - для встановлення часу на головній формі; Image - для оформлення фону; Edit - для введення даних, а також для виведення результатів обчислення; MounthCalendar - для відображення календаря на головній формі. В першій частині програми - теоретичній - було використано BitBtn для створення кольорових кнопок переходу між розділами. В другій - практичній - Button, а також було підключено два файли xpstyle.manifest та xpstyle.rc для того, щоб надати звичайним кнопкам вигляду кнопок Windows XP. Всі дії та підключення файлів були успішними.
2.2.Програма задачі та її опис
// Теория__fastcall TForm1: BitBtn1Click (TObject *Sender)
{->Show();->Visible=0;
}
// практика__fastcall TForm1: BitBtn2Click (TObject *Sender)
{->Show();->Visible=0;
}
// Время в программе__fastcall TForm1: Timer1Timer (TObject *Sender)
{->Caption = FormatDateTime («hh:nn:ss», Time());->Interval=1000; // меньше число, больше точность
}
// о программе__fastcall TForm1: BitBtn4Click (TObject *Sender)
{->Show();->Visible=0;
}
// выход__fastcall TForm1: BitBtn3Click (TObject *Sender)
{();
}
// закрытие
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form2;
// программа
__fastcall TForm2:TForm2 (TComponent* Owner)
: TForm(Owner)
{
}
// Окружность и круг__fastcall TForm2: Button1Click (TObject *Sender)
{->Show();();
}
// Доли. Обыкновенные дроби__fastcall TForm2: Button2Click (TObject *Sender)
{->Show();();
}
// сравнение дробей__fastcall TForm2: Button3Click (TObject *Sender)
{->Show();();
}
// сложение и вычитание дробей__fastcall TForm2: Button4Click (TObject *Sender)
{->Show();();
}
// деление и дроби__fastcall TForm2: Button5Click (TObject *Sender)
{->Show();();
}
// смешаные числа__fastcall TForm2: Button6Click (TObject *Sender)
{->Show();();
}
// правильные и не правильные дроби__fastcall TForm2: BitBtn1Click (TObject *Sender)
{->Show();();
}
// правила__fastcall TForm2: Button8Click (TObject *Sender)
{->Show();();
}
// на главную__fastcall TForm2: BitBtn2Click (TObject *Sender)
{->Show();();
}
// на главную__fastcall TForm2: Button7Click (TObject *Sender)
{->Close();->Show();
}
// правила__fastcall TForm2: Button9Click (TObject *Sender)
{->Show();();
}
Коло і круг
// окружность и круг
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit3.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form3;
// программа
__fastcall TForm3:TForm3 (TComponent* Owner)
: TForm(Owner)
{
}
// на главную__fastcall TForm3: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm3: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm3: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Звичайні дроби
// Доли. Обыкновенные дроби.
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit4.h»
#include «Unit5.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form4;
// программа
__fastcall TForm4:TForm4 (TComponent* Owner)
: TForm(Owner)
{
}
// следуйщая__fastcall TForm4: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm4: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm4: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Звичайні дроби
// Доли. Обыкновенные дроби.
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit3.h»
#include «Unit4.h»
#include «Unit5.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form5;
// программа
__fastcall TForm5:TForm5 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm5: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm5: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm5: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Порівняння дробів
// сравнение дробей
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form6;
// программа
__fastcall TForm6:TForm6 (TComponent* Owner)
: TForm(Owner)
{
}
// следуйщая__fastcall TForm6: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm6: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm6: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Порівняння дробів
// Сравнение дробей
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form7;
// программа
__fastcall TForm7:TForm7 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm7: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm7: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm7: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Додавання і віднімання дробів
// сложение и вычитание дробей
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit8.h»
#include «Unit9.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form10;
// программа
__fastcall TForm10:TForm10 (TComponent* Owner)
: TForm(Owner)
{
}
// следуйщая__fastcall TForm10: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm10: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm10: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Додавання і віднімання дробів
// сложение и вычитание дробей
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit8.h»
#include «Unit9.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form11;
// программа
__fastcall TForm11:TForm11 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm11: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm11: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm11: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Правильні і не правильні дроби
// Правильные и не правильные дроби
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form8;
// программа
__fastcall TForm8:TForm8 (TComponent* Owner)
: TForm(Owner)
{
}
// следуйщая__fastcall TForm8: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm8: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm8: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
// правильные и не правильные дроби
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form9;
// программа
__fastcall TForm9:TForm9 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm9: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm9: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm9: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Ділення дробів
/ Деление и дроби
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form12;
// программа
__fastcall TForm12:TForm12 (TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm12: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm12: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm12: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Ділення дробів
// Деление и дроби
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form13;
// программа
__fastcall TForm13:TForm13 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm13: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm13: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm13: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Мішані числа
// смешааные числа
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form14;
// программа
__fastcall TForm14:TForm14 (TComponent* Owner)
: TForm(Owner)
{
}
// следуйщая__fastcall TForm14: BitBtn1Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm14: BitBtn2Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm14: BitBtn3Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Мішані числа
// смешаные числа
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form15;
// программа
__fastcall TForm15:TForm15 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm15: BitBtn1Click (TObject *Sender)
{->Show();();
}
// следуйщая__fastcall TForm15: BitBtn2Click (TObject *Sender)
{->Show();();
}
// теория__fastcall TForm15: BitBtn3Click (TObject *Sender)
{->Show();();
}
// выход__fastcall TForm15: BitBtn4Click (TObject *Sender)
{->Close();->Show();
}
// закрытие
Мішані числа
// смешаные числа
#include <vcl.h>
#include <math.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#pragma hdrstop
#include «Unit1.h»
#include «Unit2.h»
#include «Unit15.h»
#include «Unit16.h»
#include «Unit17.h»
// библиотеки
#pragma package (smart_init)
#pragma resource «*.dfm»*Form16;
// программа
__fastcall TForm16:TForm16 (TComponent* Owner)
: TForm(Owner)
{
}
// назад__fastcall TForm16: BitBtn1Click (TObject *Sender)
{->Show();();
}
2.3 Тестування та відлагодження програми
У процесі створення програми було допущено декілька помилок.
На початку створення теоретичної частини програми виникла помилка з відображенням форм. Під час запуску програми одночасно зявлялося дві форми, причому друга форма працювала не правильно. Під час переходу на неї програма переставала працювати. Картинка зміщувалася, текст був незрозумілим, а також кнопки зміщувалися і не працювали. Усунути цю помилку вдалося лише шляхом її остаточної заміни. Форма була видалена, створена її альтернатива та підключена до існуючої програми. Після чого програма стала працювати нормально без помилок.
Далі зявилася помилка з перетворення неправильних дробів. Вона полягала у тому, що не правильно виконувалося обчислення. На формі розташовано два віконця порівняння, код використовувався один і той же, але перше віконце працювало не правильно, на відміну від другого. Виявити причину цієї помилки не вдалося, після повторної компіляції виявилося, що було не вірно розміщено компоненти Edit, цю помилку виявлено і виправлено.
У процесі створення програми синтаксичних помилок не було допущено.
2.4 Інструкція користувача для роботи з програмою
1)Запустити файл obyknovenna_drob.exe з диску.
)Для переходу до теорії натиснути кнопку «Теоретический материал».
.1) Для переходу до одного з розділів теорії натисніть кнопку «Перейти»
.1.1) Для переходу між вікнами теорії натисніть на кнопки «Следуйщая»/» Назад»
.1.2) Для переходу в вікно теорії натисніть - «Теория».
)Для переходу до практичної частини натиснути на кнопку «Практический материал».
.1) Для переходу до одного з розділів практики натисніть кнопку «Перейти»
.1.1) Для порівняння дробів натисніть кнопку «Сравнить»
.1.2) Для обчислення суми, різниці, добудку чи частки наисніть кнопку «Решить».
.1.3) Для Перетворення неправильного дробу натисніть кнопку «Перевести».
.1.4) Для переходу до вікна практики натисніть кнопку «Действия с дробями».
)Для переходу до вікна інформації про програму натиснути на кнопку «О программе».
)Для виходу з програми натиснути на кнопку «Выход».
Висновки
На початку роботи над курсовим проектом «Реалізація обєкту звичайний дріб на мові С++» було поставлене завдання створення зрозумілої та навчальної програми для учнів 5 класів. Яка була б цікавою та пізнавальною. В результаті була отримана програма «Обыкновенная дробь».
Програма була відлагоджена. Все, що було заплановано на початку створення було виконано в повній мірі і навіть більш удосконалено в процесі відладки.
До програми було додано такі елементи як годинник та календар. Програму умовно можна розділити на три розділи «Теорія», «Практика» та «Про Програму». В першому розділі були створені звичайні кольорові кнопки, в другому та третьому більш удосконалені, які виглядають як кнопки ОС Windows XP.
Перелік джерел
1. Холзнер С. VISUAL С++6: учебный курс - СПб: Издательство «Питер», 2000. -576 с.
. Подбельский В.В. Язык Си++: Учеб. пособие - 5-е изд. - М.: Финансы и статистика, 2000. -560 с.
. Павловская Т.А. C/C++. Программирование на языке высокого уровня - СПб: Издательство «Питер», 2001. - 464 с.
. Глушаков СВ. и др. Язык программирования С++: учебный курс - Харьков: Фолио; М: ООО «Издательство ACT», 2001. -500 с.
. Керниган Б., Ритчи Д. Язык программирования Си: Пер. с англ. - М.:
Финансы и статистика, 1992. - 272 с.
. Страуструп Б. Язык программирования Си++. Часть 1. - Киев: «ДиаСофт», 1993. - 264 с.
. Страуструп Б. Язык программирования С++. Часть 2. - Киев: «ДиаСофт», 1993. - 296 с.
. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. - М.: 1991.
. ДСТУ 3008-95 «ЗВІТИ У СФЕРІ НАУКИ і ТЕХНІКИ. Структура та правила оформлення».
. Путятин Е.П. Смагин ДМ. Степанов В.П. Турбо Паскаль в курсе высшей математики: Учеб. пособие. - Харьков: Каравелла, 1997.-352 с.
. КозинА.С, Лященко Н.Я. Вычислительная математика. К.: Рад. школа, 1983.-191 С.
. Яремчук Ф.П., Рудченко П.А. Алгебра и элементарные функции. Справочник. К.: Наукова думка, 1987.-649С.