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)?


 

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

49830. РАЗВИТИЕ ТВОРЧЕСКОГО МЫШЛЕНИЯ МЛАДШЕГО ШКОЛЬНИКА 299.5 KB
  КУРСОВАЯ РАБОТА РАЗВИТИЕ ТВОРЧЕСКОГО МЫШЛЕНИЯ МЛАДШЕГО ШКОЛЬНИКА Студентки НОИ0 Липатовой А. Теоретические методологические и педагогические основы развития творческого мышления младших школьников Понятие творческого мышления и педагогические принципы его развития Проблема развития и условия...
49832. Оценка стоимости квартир 354 KB
  Подходы к оценке стоимости квартир ПЕРСЕПТРОН И ВОЗМОЖНОСТЬ ЕГО ПРИМЕНЕНИЯ В ПРОФЕССИОНАЛЬНОЙ ОЦЕНКЕ НЕДВИЖИМОСТИ Подготовка входных и выходных параметров ПРИМЕНЕНИЕ ПЕРСЕПТРОНА В ОЦЕНКЕ СТОИМОСТИ КВАРТИР Исследование модели Заключение Список литературы Введение Оценка квартиры подразумевает определение рыночной стоимости права собственности или иных вещных прав например права аренды в отношении оцениваемого объекта.
49834. Работа со списками и таблицами в текстовом редакторе (MS Word, OOo Writer) 4.67 MB
  Приложение Writer – текстовый редактор, позволяющий разрабатывать и выпускать текстовые документы, содержащие графические объекты, таблицы и диаграммы. Документы могут быть затем сохранены в различных форматах, включая Microsoft Word, HTML или даже формат PDF (Adobe Portable Document Format).
49835. Расчет волновода. Расчет структуры переменных электромагнитных полей в волноводе 223.5 KB
  Для численных параметров задачи построить эпюры полей по осям x y z также картину распределения полей в плоскостях xy и xz. Рассчитать заданные характеристики полей и построить их зависимости от частоты. Поскольку характер изменения полей по оси z задается выражением.
49836. СОВЕРШЕНСТВОВАНИЕ МЕХАНИЗМА УПРАВЛЕНИЯ ЗАТРАТАМИ ОАО «ЭЛЕКТРОАГРЕГАТ» 990.5 KB
  Данная тема занимает важное место в процессе производства и реализации, так как в итоге от грамотного, рационального распределения затрат зависит финансовый результат (прибыль/убыток) деятельности фирмы, он то и является главной целью всего процесса.
49837. Расчет цепного конвейера 4.78 MB
  Общий коэффициент полезного действия привода определяется по формуле ɳобщ = ɳм1 ɳ1 ɳ3 ɳм2 ɳприв = 099 097 097 099 099 = 0913 где ==099 коэффициент полезного действия муфты М1 и М2; ==097 коэффициент полезного действия зубчатой передачи с цилиндрическими колесами; =099 коэффициент полезного действия подшипников. Мощность электродвигателя определяется по формуле Pэд = Ft V 103 ɳ общ = 6307 103 0913 = 483 кВт где =6300 Н окружное усилие на звездочках =07 м с...