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


 

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

35103. Политология. Шпаргалки к госекзамену. Государство и личность 710.61 KB
  Законе Российской Федерации О безопасности национальная безопасность трактуется как состояние защищенности жизненно важных интересов личности общества государства от внутренних и внешних угроз. Конституционные основы организации публичной власти в Российской Федерации. Государственную власть в РФ осуществляют Президент РФ Федеральное Собрание парламент состоит из двух палат: Совета Федерации и Государственной Думы Правительство РФ суды РФ существует единая судебная система РФ ее высшими звеньями являются Конституционный Суд РФ...
35104. Заболевания носоглотки 98.5 KB
  Врожденные аномалии наружного носа в виде полного его отсутствия расщепления кончика носа двойного носа и пр. встречаются крайне редко и не имеют такого практического значения как врожденные и приобретенные изменения в полости носа ведущие к нарушению проходимости носовой полости для вдыхаемого и выдыхаемого воздуха. Сужение и зарастание полости носа.
35105. Заболевания голосовых связок и глотки 74.5 KB
  Отмечено что чаще всего узелки голосовых складок появляются у женщин в возрасте 20 – 50 лет. Перегрузка голосовых складок приводит к формированию на них небольших уплотнений. Обычно узелки на голосовых складках расположены симметрично.
35106. Причины и проблемы заболеваний слуха 37.31 KB
  Врождённые аномалии наружного уха. Врожденные пороки развития наружного уха: анотия врождённое отсутствие ушной раковины; микротия – недоразвитие ушной раковины например нет только мочки; деформация ушной раковины например обезьяньи уши – оттопырены; атрезия – заращение наружного слухового прохода. Врожденные пороки развития среднего уха: заполнение барабанной полости косной тканью; отсутствие слуховых косточек; сращение слуховых косточек.
35107. Обзор международного опыта применения сделок РЕПО. Операции РЕПО на российском рынке 1.63 MB
  Операции по кредитованию ценными бумагами и операции РЕПО: понятие и классификация. Обзор международного опыта применения сделок РЕПО. Операции РЕПО на российском рынке Операции РЕПО и операции кредитования ценными бумагами составляющие мощнейший сегмент международного финансового рынка в российской практике появились относительно недавно. Среди основных причин такого роста необходимо выделить следующие: вопервых без рынка РЕПО без финансирования позиций...
35108. Важнейшие пропорции и диспропорции мирового рынка прямых инвестиций. Привлечение прямых инвестиций 1.1 MB
  Мировая практика статистического учёта прямых инвестиций в понятиях 1. Важнейшие пропорции и диспропорции мирового рынка прямых инвестиций 2. Создание универсального индекса для качественной оценки потенциала страны в получении прямых иностранных инвестиций 2. Индекс реальной динамики ввоза прямых иностранных инвестиций 2.
35109. Дифференциальные уравнения 4.15 MB
  Обыкновенные дифференциальные уравнения. Обыкновенными дифференциальными уравнениями о. называются уравнения вида: 1 где известная функция – независимая переменная – неизвестная функция. Порядком дифференциального уравнения д.
35110. ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА 3.33 MB
  В традиционных областях математическими моделями служат функции производные интегралы дифференциальные уравнения. Значения этой функции при каждом фиксированном x можно получить измерениями или вычислениями. Для запоминания этой функции в памяти компьютера необходимо приближенно описать ее таблицей значений на некотором конечном множестве отдельных точек . Это – простейший пример дискретизации задачи: от задачи запоминания функции на отрезке [0 1] мы перешли к задаче запоминания таблицы значений на дискретном множестве точек из этого...
35111. МЕХАНИКА 1.35 MB
  Кинематика вращательного движения 1 Виды движения твердого тела. Основные понятия по теме При описании вращательного движения в кинематике удобно пользоваться угловыми кинематическими величинами: и Если за время тело совершает поворот на малый угол то углу формально ставиться в соответствие вектор модуль которого равен углу поворота тела за время . Существуют такие системы отсчета в которых материальная точка тело сохраняет состояние покоя или равномерного прямолинейного движения до тех пор пока взаимодействие с другими...