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


 

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

48233. Конспект лекцій з логіки 682 KB
  Відповідно до нормативних вимог Закону Про освіту і Болонського процесу курс лекцій з дисципліни “Логіка†включає в себе такі теми: предмет структура і призначення дисципліни поняття судження основні закони логіки умовивід логічні основи теорії аргументації доведення тести й самостійні завдання з логіки. Засвоївши курс “Логіка†студенти повинні: Знати: основний зміст усіх тем світоглядний потенціал законів логіки категорій особливості логічного...
48234. Конспект лекцій з релігієзнавства 492 KB
  Релігієзнавство являє собою комплекс суспільних наук, об'єктом вивчення котрих є релігія. Кожна з цих наукових дисциплін, виходячи з специфіки свого предмета, розглядає ту чи іншу сторону цього складного явища, що дозволяє в рамках релігієзнавства представити його цілісну картину
48235. Теорія соціальної роботи 141 KB
  Вступ до соціальної роботи: Підручник для студентів вищих навчальних закладів За ред. Вступ Зв'язки соціальної роботи з іншими дисциплінами мають взаємний характер. Адже здійснення соціальної допомоги передбачає попередній збір інформації її системний аналіз висування гіпотез побудову моделей розвитку.
48236. ЕКОНОМІЧНИЙ АНАЛІЗ (ТЕОРЕТИЧНІ ОСНОВИ) 802.03 KB
  Розглядаються теоретичні основи економічного аналізу, зокрема його значення та роль у системі управління підприємством, предмет та види економічного аналізу, його метод, методика факторного аналізу, характеристика способів детермінованого факторного аналізу, використання економіко-математичних методів в економічному аналізі, методика виявлення і розрахунку резервів, організація та інформаційне забезпечення аналітичних досліджень. Після кожної теми наведені контрольні питання для перевірки засвоєння матеріалу.
48237. ДВИГАТЕЛИ ВНУТРЕННЕГО СГОРАНИЯ 5.35 MB
  Остов двигателя Уравновешивание одноцилиндрового двигателя. Уравновешивание четырехцилиндрового однорядного двигателя Уравновешивание двухцилиндрового Vобразного двигателя.
48238. Л.Д. Малевич. Українська мова професійного спілкування 282.5 KB
  Стилі і норми української літературної мови в професійному спілкуванні Мовне законодавство в Україні Природа і функції мови. Місце української мови серед мов світу. Правовий статус української мови.
48239. УКРАЇНСЬКА МОВА ЗА ПРОФЕСІЙНИМ СПРЯМУВАННЯМ 888.5 KB
  Усне ділове спілкування. Етика ділового спілкування її предмет та завдання. Структура ділового спілкування. Мовленнєвий етикет Правила усного спілкування фахівця зустрічі переговори телефонне спілкування.
48240. ІСТОРІЯ УКРАЇНИ 430.5 KB
  Програма з курсу Історія України Укл. ВСТУПНЕ СЛОВО Пропоновані матеріали підготовлено з урахуванням проекту навчальної програми з курсу Історія України для вищих навчальних закладів освіти і передбачають розвязання таких завдань: а використання останніх досягнень світової і вітчизняної історичної науки в процесі викладання історії України; б постійне підвищення і вдосконалення наукового і виховного рівня викладання; в забезпечення реалізації в ході навчання принципів історизму та обєктивності в оцінці конкретних подій і явищ; г...
48241. УКРАЇНСЬКА КУЛЬТУРА 102.5 KB
  Ульяновський Українська наукова і культурницька еміграція у ЧехоСловаччині між двома світовими війнами Українська культура: розвиток ідеї та історія книги Автори Української культури: Дмитро Антонович Василь Біднов Дмитро Дорошенко Олександр Лотоцький Симон Наріжний Степан Сірополко Володимир Січинський Дмитро Чижевський Андрій Яковлів Українська культура: Лекції за редакцією Дмитра Антоновича Упор. Ця книжка унікальна спроба цілісного дослідження феномена української культури з найдавніших до...