- •Міністерство освіти і науки України
- •На курсову роботу з дисципліни "Проблемно-орієнтовані мови програмування" студенту групи кн-15 Головку р.М.
- •1.Формулювання задачі
- •2. Методи та засоби розв’язування задачі
- •3.Алгоритми розв’язування задачі
- •4.Програма та її опис
- •5.Технологія програмування, виконання та відлагодження програми
- •6.Інструкція користувачеві
- •7.Контрольний приклад та аналіз результатів комп’ютерної реалізації програми
- •Void Calculate(tEdit *Edit1, cCalc *Tc, char cd)
- •Void Numbers(tEdit *Edit1, cCalc *Tc, char num)
- •Void __fastcall tForm1::Button11Click(tObject *Sender)
- •Void __fastcall tForm1::Button31Click(tObject *Sender)
6.Інструкція користувачеві
Інтерфейс програми реалізований у графічному режимі. Інтерфейс є зручним у користуванні і не потребує значних ресурсів комп’ютера для роботи у ньому.
Керування програмою здійснюється повністю за допомогою мишки.
Є два способи по запуску програми на виконання:
1) Запуск через середовище програмування
Цей спосіб зручний тим, що при наявності бажань користувача щось змінити у програмі можна одразу ж вийти з програми у середовище програмування і змінити певний код, при цьому відразу ж відкомпілювати новостворений код.
Певною незручністю є те, що не всі можуть мати саме середовище програмування чи компілятор. Для запуску програми потрібно мати щонайменше середовище Borland C++ Builder 6. На попередніх версіях програма не тестувалася.
Щоб запустити програму на виконання із середовища програмування потрібно натиснути клавіші F9. Або здійснити таку послідовність дій у меню самого середовища: Run -> Run .
2) Запуск програми через операційну систему
На мій погляд, цей спосіб є набагато зручнішим від попереднього. Щоб запустити програму через операційну систему потрібно знайти файл My_kursova.exe і два рази клікнути по ньому мишкою. В результаті програма буде запущена у вікні під керуванням операційної системи.
Недоліком цього способу є те, що зміни у програмний код програми вносити не можна.
Коли програма запустилась з’являється вікно, що має такий вигляд:

Зверху знаходиться рядок, де відображаються введені дані та результати обчислення. У верхньому правому куті є кнопки для переключення між градусами та радіанами, відповідно, якщо потрібно обчислити синус чи косинус від величини вказаної в градусах, потрібно, щоб відміченою була кнопка «градуси», в протилежному випадку відміченою має бути кнопка «радіани».
Нижче знаходяться такі кнопки: BeakSpace, C, CE. BeakSpace для стирання останньої цифри числа. C для очищення поля вводу/виведення. CE для видалення числа, що відображається в полі обчислення.
Далі розташовані такі кнопки: цифри від 0 до 9, зміна знаку +/-, кома « , » , дорівнює, дії: Додавання +, Віднімання -, Множення *, Ділення /, кнопки роботи з пам’ятю MR для виклику числа з пам’яті, MS для занесення числа в пам’ять, MC для очищення пам’яті, M+ для додавання довільного числа до числа в пам’яті, mod - остача від ділення, div - цілочисельне ділення, sin – синус, cos – косинус, ln - натуральний логарифм, lg – десятковий логарифм, n! – факторіал, sqrt - корінь квадратний, x^2 – квадрат, x^y - піднесення до довільного степеня числа, arcsin – арксинус, arccos - арккосинус.
7.Контрольний приклад та аналіз результатів комп’ютерної реалізації програми
Для програми «інженерний калькулятор» вхідними даними є числові дані, тому в якості прикладу та аналізу результатів, я використав набір різних чисел до яких застосував різні функції.
Послідовність виконання:
23+24+12-33= 26
44*55*77= 186340
33 ‘+/-‘ – 22= -55
44443 ‘beakspace’= 4444
25 mod 2= 1
25 div 2= 12
64 ‘sqrt’= 8
4 ‘x^y’ 2= 16
5 ‘n!’ = 120
30 ‘sin(x)’ = 0,5
Всі обчислення виконанні на калькуляторі, результати мають вигляд:
1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

При зміні вхідних даних результат правильний. Ніяких збоїв програми не відмічено.
Висновки
Після виконання своєї курсової роботи я набув практичних навичок роботи в середовищі об’єктно-орієнтованого програмування. Навчився програмувати в середовищі Builder C++ та працювати з об’єктами, створювати форму, програмувати кнопки, працювати з рядком редагування Edit, здійснювати доступ до елементів рядка Edit, виконувати операції над ними, також навчився оголошувати класи, працювати з елементами класу, закріпив навички роботи з циклами та створення функцій.
Отримана програма є якісною, швидкою при виконанні і не потребує значних ресурсів комп’ютера для її запуску.
Дана програма може згодитися для дуже багатьох користувачів, підприємств, навчальних установ. Вона є універсальною, оскільки калькулятор є невід’ємним атрибутом будь-якої комп’ютерної системи. Тому актуальність даної програми є надзвичайно великою.
Додаток 1. Текст програми на мові Сі++
//---------------------------------------------------------------------------
#include <math.h>
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
class cCalc
{
public:
long double a,b,last,memory;
bool a1,b1,end,flag,point, mem;
char d;
cCalc()
{
a1=b1=point=end=flag=memory=false;
}
long double Action(long double c)
{
if (a1==false && b1==false)
{
a1=true;
a=c;
return a;
}
else if (a1 && b1==false)
{
switch (d)
{
case '+': {
b=c;
a=a+b;
last=b;
b=0;
return a;
}
case '-': {
b=c;
a=a-b;
last=b;
b=0;
return a;
}
case '*': {
b=c;
a=a*b;
last=b;
b=0;
return a;
}
case '/': {
b=c;
if (b!=0)
{
a=a/b;
last=b;
b=0;
return a;
}
else d='e';
}
case '%': {
b=c;
if (b!=0)
{
b=c;
a=(int)a % (int)b;
last=b;
b=0;
return a;
}
else d='e';
}
case 'd': {
b=c;
if (b!=0)
{
b=c;
a=(int)a / (int)b;
last=b;
b=0;
return a;
}
else d='e';
}
case '^': {
b=c;
a=pow(a,b);
last=a;
b=0;
return a;
}
}
}
else if (a1 && b1)
{
switch (d)
{
case '+': return a=a+last;
case '-': return a=a-last;
case '*': return a=a*last;
case '/': {
if (last!=0)
{
a=a / last;
return a;
}
else d='e';
}
case '%': {
if (last!=0)
{
a=(int)a % (int)last;
return a;
}
else d='e';
}
case 'd': {
if (last!=0)
{
a=(int)a / (int)last;
return a;
}
else d='e';
}
case '^': return a*=last;
};
}
}
};
