7075

Знакомство с методами проектирования программ на языках высокого уровня С++

Лабораторная работа

Информатика, кибернетика и программирование

1. Цель работы Знакомство с методами проектирования программ на языках высокого уровня С++. 2. Задание на работу В программе калькулятор необходимо реализовать: пункт главного меню Справка, состоящий из двух подпунктов Информация об авторе...

Русский

2013-01-14

280 KB

3 чел.

1. Цель работы

Знакомство с методами проектирования программ на языках высокого уровня С++.

2. Задание на работу

В программе калькулятор необходимо реализовать:

  •  пункт главного меню «Справка», состоящий из двух подпунктов «Информация об авторе» и «Помощь по выполнению заданных операций/функций»;
  •  реализовать функции sin, cos, tg, ctg.

3. Листинг программы:

#include <vcl.h>

#pragma hdrstop

#include <math.h>

#include "Ucalc.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

boolean f=true, vv=true;

float GetValue()

{

return StrToFloat(Form1->Memo1->Text);

}

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b0Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+'0';

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b1Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"1";

else Memo1->Text="1";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b2Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"2";

else Memo1->Text="2";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b3Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"3";

else Memo1->Text="3";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b4Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"4";

else Memo1->Text="4";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b5Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"5";

else Memo1->Text="5";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b6Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"6";

else Memo1->Text="6";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b7Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"7";

else Memo1->Text="7";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b8Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"8";

else Memo1->Text="8";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::b9Click(TObject *Sender)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"9";

else Memo1->Text="9";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::bcClick(TObject *Sender)

{

f=true;

Memo1->Text="0";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::bpointClick(TObject *Sender)

{

if (f==true){

if (Memo1->Text=="0")

Memo1->Text=Memo1->Text+",";

else

if(Memo1->Text=="0,")

Memo1->Text=Memo1->Text+"";

else

if (Memo1->Text>"0")

Memo1->Text=Memo1->Text+",";

else Memo1->Text="0";}

f=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::bequClick(TObject *Sender)

{

vv=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

Memo1->Text="0";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)

{

switch(Key){

case 48:b0->Click(); break; case 49:b1->Click();break;

case 50:b2->Click();break;  case 51:b3->Click(); break;

case 52:b4->Click(); break; case 53:b5->Click(); break;

case 54:b6->Click();break; case 55:b7->Click(); break;

case 56:b8->Click();break; case 57:b9->Click(); break;

case 8:bc->Click(); break; case 13:bequ->Click();break;

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Memo1->Text = FloatToStr(sin(GetValue()));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Memo1->Text = FloatToStr(cos(GetValue()));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Memo1->Text = FloatToStr(tan(GetValue()));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

try {

Memo1->Text = FloatToStr(1/tan(GetValue()));

} catch(...)

{

if (vv==false){

bc->Click();  vv=true;}

if (Memo1->Text!="0")

Memo1->Text=Memo1->Text+"";

else Memo1->Text="Ошибка";

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

Form2->ShowModal();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

Form3->ShowModal();

}

//---------------------------------------------------------------------------

Отладка прошла успешно.

  1.  Результаты функционирования разработанного ПО.

Рисунок 1. Результат вычисления  функции sin 1 в радианах.                         

 

Рисунок 2. Результат вычисления функции cos 1 в радианах.

Рисунок 3. Результат вычисления функции tg 1 в радианах.

Рисунок 4. Результат    вычисления функции ctg 1 в радианах.

  

Рисунок 5. Результат вычисления функции ctg 0 в радианах (так как ctg 0 – бесконечность, то на дисплее появиться сообщение «Ошибка»)

Вывод

Ознакомились с некоторыми методами проектирования программ на С++.

Ответы на контрольные вопросы:

  1.  Какие переменные (с указанием типа) необходимы для реализации операций калькулятора ‘+’, ‘-’, ‘’, ‘:’,?

8) Как создается главное меню экранной формы (компонент типа TMainMenu)?


 

А также другие работы, которые могут Вас заинтересовать

10500. Ферум: будова атома, поширення в природі. фізичні та хімічні властивості. взаємодія з киснем, сіркою 49.5 KB
  Тема уроку: Ферум: будова атома поширення в природі. фізичні та хімічні властивості. взаємодія з киснем сіркою. Вид заняття: комбінований урок урок повторення і засвоєння нових знань на якому активізування чуттєвого досвіду учнів закріплення знань умінь та навичок пр
10501. Фізичні і хімічні властивості етилену і ацетилену. Одержання етилену і ацетилену 81 KB
  Тема:Фізичні і хімічні властивості етилену і ацетилену. Одержання етилену і ацетилену. Навчальна мета: ознайомити учнів з фізичними і хімічними властивостями ненасичених вуглеводнів розкрити механізм реакції приєднання показати що реакції цього типу є характерними...
10502. Фізичні і хімічні явища. Хімічні реакції 74 KB
  Тема: Фізичні і хімічні явища. Хімічні реакції. Навчальна мета: сформувати поняття про фізичні та хімічні явища їх відмінності, розглянути зовнішні ефекти що супроводжують хімічні реакції визначити умови виникнення та перебігу хімічних реакцій, розкрити значення хім
10503. Кристалічні гратки. Атомні, молекулярні та йонні кристали 57 KB
  Тема: Кристалічні гратки. Атомні молекулярні та йонні кристали. Мета: визначити особливості будови твердих речовин та встановити залежність властивостей речовин від їхньої будови. Тип уроку: комбінований. Обладнання: періодична система хімічних елементів Д. І. Менде...
10504. Хімічний звязок та будова у неорганічних речовинах 100.5 KB
  Тема: Хімічний звязок та будова у неорганічних речовинах. Тип уроку: уроклекція. Навчальна мета: Узагальнити та систематизувати знання учнів про хімічний звязок, характеризувати взаємозвязки між складом будовою і властивостями речовин, виробити вм...
10505. Хімічні властивості металів 68 KB
  Тема: Хімічні властивості металів. Навчальна мета: вивчити загальні хімічні властивості металів взаємодію їх з киснем галогенами сіркою кислотами солями розглянути хімічну активність металів та відповідно їх відновні властивості повторити окисно відновні реакці...
10506. Хімічні властивості алкенів: повне і часткове окиснення, приєднання Н2, Gal, НGal, полімеризація. Правило Марковнікова. Механізм реакції приєднання за подвійним зв’язком 38.5 KB
  Тема: Хімічні властивості алкенів: повне і часткове окиснення приєднання Н2 Gal НGal полімеризація. Правило Марковнікова. Механізм реакції приєднання за подвійним звязком. Навчальна мета: ознайомити з хімічними властивостями алкенів; розкрити механізм реакції приєднан...
10507. Хімічні властивості основ. Реакція нейтралізації 57.5 KB
  Тема: Хімічні властивості основ. Реакція нейтралізації. Навчальна мета: вивчити хімічні властивості основ лугів і нерозчинних у воді основ порівняти їх поглибити знання про індикатори і їх застосування визначити суть реакції нейтралізації. Виховна мета: виховуват...
10508. Хімічні властивості спиртів 48.5 KB
  Тема:Хімічні властивості спиртів. Навчальна мета: розглянути хімічні властивості спиртів визначити вплив функціональної групи спиртів на їхні хімічні властивості поглибити знання про хімічні властивості органічних речовин, порівняти властивості одноатомних і бага