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


 

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

31735. CASE-средства, реализующие структурный подход 277.5 KB
  В состав этого семейства продуктов входят: llFusion Process Modeler ранее носивший название BPwin средство моделирования бизнеспроцессов; llFusion ERwin Dt Modeler ранее называвшийся ERwin средство моделирования данных являющееся самым популярным в мире в этой категории продуктов; llFusion Dt Model Vlidtor бывший ERwin Exminer средство проверки корректности моделей данных и их соответствия правилам нормализации; llFusion Model Mnger бывший ModelMrt серверный продукт обеспечивающий коллективную работу пользователей ERwin и...
31736. ИС: Основные понятия 78 KB
  Методологические основы проектирования ИС Процесс проектирования ИС это процесс принятия проектноконструкторских решении направленных на получение описания системы проекта ИС удовлетворяющего требования заказчика. Под проектированием ИС понимается процесс преобразования входной информации об объекте проектирования о методах проектирования и об опыте проектирования объектов аналогичного назначения в соответствии с ГОСТом в проект ИС. С этой точки зрения проектирование ИС сводится к последовательной формализации проектных решений на...
31737. Жизненный цикл ИС 92 KB
  Жизненный цикл ИС Потребность в создании ЭИС может обусловливаться либо необходимостью автоматизации или модернизации существующих информационных процессов либо необходимостью коренной реорганизации в деятельности предприятия проведении бизнесреинжиниринга. Потребности создания ЭИС указывают вопервых для достижения каких именно целей необходимо разработать систему; вовторых к какому моменту времени целесообразно осуществить разработку; втретьих какие затраты необходимо осуществить для проектирования системы. Проектирование ЭИС ...
31738. МОДЕЛИ ЖИЗНЕННОГО ЦИКЛА ПО 128.5 KB
  1 МОДЕЛИ И СТАДИИ ЖЦ ПО Под моделью ЖЦ ИС понимается структура определяющая последовательность выполнения и взаимосвязи процессов действий и задач на протяжении ЖЦ. Модель ЖЦ ЭИС определяет характер процесса его создания который представляет собой совокупность упорядоченных во времени взаимосвязанных и объединенных в стадии работ выполнение которых необходимо и достаточно для создания ПО соответствующего заданным требованиям. Под стадией создания ПО понимается часть процесса создания ПО ограниченная некоторыми временными рамками и...
31740. Роль и место ИПБ России в деле реформирования бухгалтерского учета 28.5 KB
  Формирование в РФ ИПБ явилось следствием осуществления реформы бухгалтерского учета в стране. ИПБ активно включился в процесс реформирования учета так как одна из основных целей его создания является разработка новой методологии и методики учета в стране. Являясь добровольным союзом квалифицированных аттестованных профессиональных бухгалтеров ИПБ России призван не только защищать интересы своих членов но и определять новые формы и методы организации учета.
31741. Российская Коллегия аудиторов (РКА) 34 KB
  Основными целями и задачами Коллегии являются: защита и представление законных интересов членов Коллегии в государственных и общественных организациях содействие в профессиональной подготовке и оказание всесторонней поддержки членами Коллегии; содействие разработке основных принципов организации аудита на территории Российской Федерации рекомендаций по совершенствованию форм и методов аудиторской деятельности; координация деятельности членов Коллегии. В соответствии со своими целями и задачами Коллегии осуществляет следующие виды...