Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Контрольний приклад та аналіз результатів комп’ютерної реалізації програми

Читайте также:
  1. I. Аналіз структури та динаміка податкових надходжень до Зведеного бюджету України
  2. Out3 -програмирование выходаOUT3
  3. SWOT-аналіз Запорізької області
  4. XI. Санітарно-гігієнічні вимоги до постачання, умов зберігання і реалізації продуктів харчування, технології приготування страв
  5. А.1 Приклад оформлення титульного аркуша дипломного проекту (роботи)
  6. А.9 Приклад оформлення завдання на курсовий проект (роботу)
  7. Аналіз беззбитковості

Для програми «інженерний калькулятор» вхідними даними є числові дані, тому в якості прикладу та аналізу результатів, я використав набір різних чисел до яких застосував різні функції.

Послідовність виконання:

1. 23+24+12-33= 26

2. 44*55*77= 186340

3. 33 ‘+/-‘ – 22= -55

4. 44443 ‘beakspace’= 4444

5. 25 mod 2= 1

6. 25 div 2= 12

7. 64 ‘sqrt’= 8

8. 4 ‘x^y’ 2= 16

9. 5 ‘n!’ = 120

10. 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;

};

}

}

};

void Calculate(TEdit *Edit1, cCalc *Tc, char cd)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (!Tc->end)

{

if (Tc->d==cd || Tc->d=='\0')

{

Tc->d=cd;

if (Tc->a1 &&!Tc->b1 &&!Tc->flag)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->flag=true;

}

else if (!Tc->a1 &&!Tc->b1)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->flag=true;

}

}

Else

{

if (!Tc->flag)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

Tc->a1=Tc->flag=true;

Tc->b1=false;

Tc->a=StrToFloat(Edit1->Text);

}

Tc->d=cd;

}

}

else if (!Tc->flag)

{

Tc->d=cd;

Tc->b1=Tc->end=false;

Tc->a1=Tc->flag=true;

Tc->a=StrToFloat(Edit1->Text);

}

}

}

void Numbers(TEdit *Edit1, cCalc *Tc, char num)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (Tc->flag || (Tc->point==false && Edit1->Text=="0,"))

{

Edit1->Clear();

Tc->flag=false;

Tc->point=false;

}

Edit1->Text=Edit1->Text+num;

}

}

TForm1 *Form1;

cCalc *Tc= new cCalc;

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//============================================================

//======================' + '====================================

void __fastcall TForm1::Button13Click(TObject *Sender)

{

Calculate(Edit1, Tc,'+');

}

//======================' - '====================================

void __fastcall TForm1::Button14Click(TObject *Sender)

{

Calculate(Edit1, Tc,'-');

}

//======================' * '====================================

void __fastcall TForm1::Button15Click(TObject *Sender)

{

Calculate(Edit1, Tc,'*');

}

//======================' / '====================================

void __fastcall TForm1::Button16Click(TObject *Sender)

{

Calculate(Edit1, Tc,'/');

}

//======================' Mod '==================================

void __fastcall TForm1::Button25Click(TObject *Sender)

{

Calculate(Edit1, Tc,'%');

}

//======================' Div '==================================

void __fastcall TForm1::Button26Click(TObject *Sender)

{

Calculate(Edit1, Tc,'d');

}

//======================' x^y '==================================

void __fastcall TForm1::Button29Click(TObject *Sender)

{

Calculate(Edit1, Tc,'^');

}

//===============================================================

//==========================================================

//========================' 1 '==================================

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Numbers(Edit1, Tc, '1');

}

//========================' 2 '==================================

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Numbers(Edit1, Tc, '2');

}

//========================' 3 '==================================

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Numbers(Edit1, Tc, '3');

}

//========================' 4 '==================================

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Numbers(Edit1, Tc, '4');

}

//========================' 5 '==================================

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Numbers(Edit1, Tc, '5');

}

//========================' 6 '==================================

void __fastcall TForm1::Button7Click(TObject *Sender)

{

Numbers(Edit1, Tc, '6');

}

//========================' 7 '==================================

void __fastcall TForm1::Button8Click(TObject *Sender)

{

Numbers(Edit1, Tc, '7');

}

//========================' 8 '==================================

void __fastcall TForm1::Button9Click(TObject *Sender)

{

Numbers(Edit1, Tc, '8');

}

//========================' 9 '==================================

void __fastcall TForm1::Button10Click(TObject *Sender)

{

Numbers(Edit1, Tc, '9');

}

//========================' 0 '==================================

void __fastcall TForm1::Button1Click(TObject *Sender)

{

if (Tc->point) Numbers(Edit1, Tc, '0');

else if (StrToFloat(Edit1->Text)>0) Numbers(Edit1, Tc, '0');

}

//===============================================================

//========================BeakSpace==============================

void __fastcall TForm1::Button18Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (Edit1->Text.Length()==1 ||

(Edit1->Text.Length()==2 && Edit1->Text.operator [](1)=='-'))

{

Edit1->Text="0,";

Tc->point=false;

}

Else

if (Edit1->Text.Length()==4 && Edit1->Text.operator [](1)=='-' &&

Edit1->Text.operator [](2)=='0' && Edit1->Text.operator [](3)==',')

{

Edit1->Text="0,";

Tc->point=false;

}

Else

if (Edit1->Text.operator [](Edit1->Text.Length())==',' &&

Edit1->Text!="0,")

{

Tc->point=false;

Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);

}

Else

if (Edit1->Text!="0,") Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);

}

}

//===============================================================

//========================' +/- '================================

void __fastcall TForm1::Button11Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (Edit1->Text.operator [](1)=='-')

Edit1->Text=Edit1->Text.Delete(1,1);

else if (Edit1->Text!="0,") Edit1->Text=Edit1->Text.Insert("-",1);

}

}

//===============================================================

//========================', '==================================

void __fastcall TForm1::Button12Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (Edit1->Text!="0," && Tc->point==false)

Edit1->Text=Edit1->Text+',';

Tc->point=true;

}

}

//===============================================================

//========================' = '==================================

void __fastcall TForm1::Button17Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (Tc->a1)

{

Edit1->Text=FloatToStr(Tc->Action(StrToFloat(Edit1->Text)));

if (Tc->d=='e') Edit1->Text="Error!";

if (!Tc->b1) Tc->b1=true;

Tc->end=true;

}

}

}

//===============================================================

//========================================

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Tc->point=false;

}

//===============================================================

//================'корінь квадратний '==========================

void __fastcall TForm1::Button27Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (StrToFloat(Edit1->Text)>=0)

{

Edit1->Text=FloatToStr(pow(StrToFloat(Edit1->Text),0.5));

Tc->flag=true;

Tc->a1=false;

Tc->b1=false;

Tc->d='\0';

}

Else

{

Edit1->Text="Error!";

Tc->d='e';

}

}

}

//===============================================================

//====================='квадрат'===============================

void __fastcall TForm1::Button28Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

Edit1->Text=FloatToStr(pow(StrToFloat(Edit1->Text),2));

Tc->flag=true;

Tc->a1=false;

Tc->b1=false;

Tc->d='\0';

}

}

//===============================================================

//===================='факторіал'==============================

void __fastcall TForm1::Button30Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (StrToFloat(Edit1->Text)>=0)

{

long double fact;

fact=1.0;

for (int i=1; i<(int)StrToFloat(Edit1->Text)+1; i++)

fact*=i;

Edit1->Text=FloatToStr(fact);

Tc->flag=true;

Tc->a1=false;

Tc->b1=false;

Tc->d='\0';

}

Else

{

Edit1->Text="Error!";

Tc->d='e';

}

}

}

//===============================================================

//======================' Ln(x) '================================

void __fastcall TForm1::Button31Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (StrToFloat(Edit1->Text)>0)

{

Edit1->Text=log(StrToFloat(Edit1->Text));

Tc->flag=true;

Tc->a1=false;

Tc->b1=false;

Tc->d='\0';

}

Else

{

Edit1->Text="Error!";

Tc->d='e';

}

}

}

//===============================================================

//======================' Lg(x) '================================

void __fastcall TForm1::Button32Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (StrToFloat(Edit1->Text)>0)

{

Edit1->Text=FloatToStr(log10(StrToFloat(Edit1->Text)));

Tc->flag=true;

Tc->a1=false;

Tc->b1=false;

Tc->d='\0';

}

Else

{

Edit1->Text="Error!";

Tc->d='e';

}

}

}

//===============================================================

//======================' Sin(x) '===============================

void __fastcall TForm1::Button33Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

float p;

if (RadioButton1->Checked) p=StrToFloat(Edit1->Text)*M_PI/180;

else p=StrToFloat(Edit1->Text);

Edit1->Text=FloatToStr(sin(p));

}

}

//======================' Cos(x) '===============================

void __fastcall TForm1::Button34Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

float p;

if (RadioButton1->Checked) p=StrToFloat(Edit1->Text)*M_PI/180;

else p=StrToFloat(Edit1->Text);

Edit1->Text=FloatToStr(cos(p));

}

}

//===============================================================

//===================' ArcSin(x) '===============================

void __fastcall TForm1::Button35Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (abs(StrToFloat(Edit1->Text))>1) Tc->d='e';

Else

if (RadioButton1->Checked)

Edit1->Text=asin(StrToFloat(Edit1->Text))/M_PI*180;

Else

Edit1->Text=asin(StrToFloat(Edit1->Text));

}

}

//===============================================================

//===================' ArcCos(x) '===============================

void __fastcall TForm1::Button36Click(TObject *Sender)

{

if (Tc->d=='e') Edit1->Text="Error!";

Else

{

if (abs(StrToFloat(Edit1->Text))>1) Tc->d='e';

Else

if (RadioButton1->Checked)

Edit1->Text=acos(StrToFloat(Edit1->Text))/M_PI*180;

Else

Edit1->Text=acos(StrToFloat(Edit1->Text));

}

}

//===============================================================

//========================' MS '=================================

void __fastcall TForm1::Button21Click(TObject *Sender)

{

Tc->memory=StrToFloat(Edit1->Text);

Tc->mem=true;

}

//===============================================================

//========================' MR '=================================

void __fastcall TForm1::Button22Click(TObject *Sender)

{

if (Tc->mem) Edit1->Text=FloatToStr(Tc->memory);

}

//===============================================================

//========================' MC '=================================

void __fastcall TForm1::Button23Click(TObject *Sender)

{

Tc->mem=false;

}

//===============================================================

//========================' M+ '=================================

void __fastcall TForm1::Button24Click(TObject *Sender)

{

Tc->memory+=StrToFloat(Edit1->Text);

}

//===============================================================

//==========================' CE '===============================

void __fastcall TForm1::Button19Click(TObject *Sender)

{

Tc->a1=Tc->b1=Tc->point=Tc->end=Tc->flag=Tc->memory=false;

Tc->d='\0';

Edit1->Text="0,";

}

//===============================================================

//=========================' C '==================================

void __fastcall TForm1::Button20Click(TObject *Sender)

{

if (Tc->d!='e') Edit1->Text="0,";

}

//===============================================================

ЛІТЕРАТУРА

1) Кравець П. О. Методичні вказівки до виконання лабораторних робіт з дисципліни “Проблемно-орієнтовані мови програмування”, 2005.

2) Кравець П. О. Методичні вказівки до виконання курсової роботи з дисципліни “Проблемно-орієнтовані мови програмування”, 2005

3) Культин Н. С, С++ в задачах и примерах, Санкт-Петербург 2005.

4) Ричард Хезфилд, Лоуренс Кирби Исскуство программирования на С, Москва, Санкт-Петербург 2001

5) Павловская Т. А., Щупак Ю. А. С,С++ - программирование на языке високого уровня (Структурное программирование), Санкт-Петербург 2003

6) Романов Е. Л. Практикум по программированию на С++, Санкт-Петербург 2004

7) В.В. Войтенко С/С++ теорія та практика, навчально-методичний посібник.

8) Программирование в С++Builder 6 и 2006 (Архангельский А.Я., Тагин М.А., 2007)

9) Стівен Прата, Язык программирование С, 2002.

 


Дата добавления: 2015-10-31; просмотров: 115 | Нарушение авторских прав


Читайте в этой же книге: Включить в расчет услугу по переводу денег в Китай по нашему контракту? | Формулювання задачі | Методи та засоби розв’язування задачі | Програма та її опис | Технологія програмування, виконання та відлагодження програми | Розділ IІІ. Створення програми із описом основних функцій | Додаток. Лістинг програми мовою С |
<== предыдущая страница | следующая страница ==>
Інструкція користувачеві| Розділ I. Аналіз завдання

mybiblioteka.su - 2015-2024 год. (0.091 сек.)