Надежность программного обеспечения

Набор требований к программному продукту "Калькулятор". Тестовые сценарии для модульного тестирования. Использование системы визуального проектирования. Разработка программного кода. Вычисление цикломатического числа и построение графы каждого модуля.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 04.11.2014
Размер файла 170,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Международный институт дистанционного образования

Кафедра информационных технологий

КОНТРОЛЬНАЯ РАБОТА

Надежность программного обеспечения

Выполнила

Захарик В.Н.

Минск 2014

Содержание

Введение

  • 1. Общее описание
  • 1.1 Функции продукта
  • 1.1.1 Работа в роли пользователя
  • 1.2 Пользовательские характеристики
  • 1.3 Общие ограничения
  • 1.4 Допущения и зависимости
  • 1.4.1 Операционные системы
  • 1.4.2 Зависимость от процессора
  • 2. Специальные требования
  • 2.1 Функциональные требования
  • 2.1.1 Пользовательский интерфейс

2.1.2 Навигация

  • 2.1.3 Параметры геометрических фигур
  • 2.1.4 Вывод полученных данных
  • 2.1.5 Главное окно
  • Задание № 2.Модульное тестирование
  • 1. Обзор разработанного программного кода
  • 2. Вычисление цикломатического числа и построение графы каждого модуля
  • 3. Тестовые сценарии

5.Тестирование

  • Литература

Введение

Целью создания этого документа является определение набора требований к программному продукту «Калькулятор». Документ предназначен для разработчиков и тестировщиков ПП. Документ организован таким образом, что позволяет выделять, идентифицировать и выбирать отдельные требования. Требования излагаются на таком уровне детализации, что на их основе разработчики могут создавать программный продукт, а тестировщики - выполнять аттестацию этого продукта.

Программный продукт «Калькулятор», может использоваться для элементарных арифметических действий.

Программное средство обладает интуитивно понятным интерфейсом пользователю, не обладающему глубокими познаниями компьютерных программ. Не требует установки.

программный калькулятор модуль

1. Общее описание

1.1 Функции продукта

В этом разделе описываются функциональные высокоуровневые свойства программного продукта «Калькулятор». Более подробное описание требований находится в разделе 2.0.

1.1.1 Работа в роли пользователя

Программное средство Моделирование должен обеспечивать следующие возможности для пользования:

- возможность ввода начальных чисел;

- возможность выбора арифметических операций;

- средства отображения результатов расчета;

1.2 Пользовательские характеристики

Пользователями описываемого программного продукта могут являться любые люди умеющие обращаться с персональным компьютером.

1.3 Общие ограничения

Ниже перечислены ограничения, которые могут повлиять на возможности команды разработчиков программного обеспечения (ПО):

· Ограничения, связанные с оборудованием: должна быть возможность эксплуатации программы на архитектуре ПК основанной на процессоре PentiumII и выше;

· Требования, накладываемые языками высокого уровня: в качестве среды программирования выбрать Visual Studeo C++ 2008.

1.4 Допущения и зависимости

В этом разделе описаны допущения и зависимости, связанные с программным продуктом «Калькулятор». С целью упрощения будущих ссылок каждое допущение или зависимость помечается соответствующим заголовком. Перечисленные допущения следует принимать во внимание во время создания конфигураций для тестирования «Калькулятор».

1.4.1 Операционные системы

Предполагается, что пользователь выполняет приложение на компьютере, работающем под управлением одной из следующих операционных систем: MicrosoftWindowsXP, MicrosoftWindowsNT 3/51 или выше, MicrosoftWindows 2000, MicrosoftWindows 7 Максимальная.

1.4.2 Зависимость от процессора

Приложение не зависит от типа применяемого процессора. Перечисленные ранее допустимые операционные системы могут использоваться на платформах с процессорами x86, RISC, SPARC, Motorola или РРС.

2. Специальные требования

В этом разделе представлены детализованные требования, относящиеся к программному продукту «Калькулятор».

2.1 Функциональные требования

2.1.1 Пользовательский интерфейс

Пользовательский интерфейс для «Калькулятор» создается с использованием системы визуального проектирования, встроенной в Visual Studeo C++ 2008.

2.1.2 Навигация

Главное окно ПП Visual Studeo C++ 2008, включает в себя следующие пункты:

1. Отображение элементов управления для ввода данных

2. Кнопки для выбора арифметических операций

3. Отображение результата в текстовом окне

2.1.3 Калькулятор

Главное окно содержит поля для ввода начальных значений.

Таблица 1. Поля ввода данных

Поле

Тип

Ограничения

Описание, параметры, ограничения

textBox1

textBox

Поле предназначено только для ввода вещественных или целых числовых символов.

Вводится число для арифметической операции.

textBox2

TextBox

Поле предназначено только для ввода строковых символов.

Вводится знак арифметической операции.

textBox3

TextBox

Поле предназначено только для ввода вещественных или целых числовых символов.

Вводится число для арифметической операции.

Таблица 2. Кнопки назначения знака арифметической операции

Название кнопки

Тип

Ограничения

Описание

bPlus

Button

Знак арифметической операции «+»

bMinus

Button

Знак арифметической операции «-»

bUmnoz

Button

Знак арифметической операции «x»

bDelit

Button

Знак арифметической операции «/»

2.1.4 Вывод полученных данных

Результат выполнения арифметической операции выводится в поле textBox4.

Таблица 3Окно «textBox4»

Название элемента

Тип

Ограничения

Описание

textBox4

TextBox

Выводится результат арифметической операции.

2.1.5 Главное окно

Пользователь имеет возможность ознакомиться со списком арифметических операций которые производит данный программный продукт.

2.2 Требования к производительности

Требований к производительности не имеется.

Задание №2. Модульное тестирование

Провести обзор разработанного программного кода. В случае обнаружения ошибок составить отчет

Отдельные модули программы:

- процедура нажатия на кнопку bPlus_Click(System::Object^ sender, System::EventArgs^ e);

- процедура нажатия на кнопку bMinus_Click(System::Object^ sender, System::EventArgs^ e);

- процедура нажатия на кнопку bUmnoz_Click(System::Object^ sender, System::EventArgs^ e);

- процедура нажатия на кнопку bDelit_Click(System::Object^ sender, System::EventArgs^ e);

- процедура изменения содержимого текстового поля textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e);

- функция PlusMinus(System::String ^Znak);

- функция Rezultat(void);

1. В ходе проведения обзора разработанного программного кода были обнаружены следующие ошибки:

Таблица 1. Ошибки обзора

№ Ошибки

Название модуля/функции

Описание ошибки

Важность ошибки (высокая, средняя, низкая)

Ошибка исправлена Да/Нет

1

textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e);

В процедуре textBox1_TextChanged () не проводилась проверка входных данных на возможность преобразования их в вещественный или целый тип

высокая

Да

1. Для каждого модуля построить графы и вычислить цикломатические числа.

Метрический показатель сложности или цикломатическое число G потокового графа определяется по формуле:

G=R-V+2,

где G - минимальное количество тестовых проходов

R - количество ребер графа;

V - количество вершин графа.

Процедура нажатия на кнопку bPlus_Click(System::Object^ sender, System::EventArgs^ e);

G=1-2+2=1

Процедура нажатия на кнопку bMinus_Click(System::Object^ sender, System::EventArgs^ e);

G=1-2+2=1

Процедура нажатия на кнопку bUmnoz_Click(System::Object^ sender, System::EventArgs^ e);

G=1-2+2=1

Процедура нажатия на кнопку bDelit_Click(System::Object^ sender, System::EventArgs^ e);

G=1-2+2=1

процедура изменения содержимого текстового поля textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e);

G=6-5+2=3

функция PlusMinus(System::String ^Znak);

G=4-4+2=2

функция Rezultat(void);

G=13-9+2=6

2. Разработать тестовые сценарии для модульного тестирования

Таблица 2. Модуль bPlus _Click()

G

№ сце-нария

Описание прохода

Контрольные примеры, позволяющие реализовать описанную ситуацию

Тест пройден

Да/Нет

G=1

1

a-b

Z=1;

Да

Таблица 3. Модуль textBox1_TextChanged()

G

№ сценария

Описание прохода

Контрольные примеры, позволяющие реализовать описанную ситуацию

Тест пройден

Да/Нет

G=3

1

a-b-d-e-с

textBox3->Text=”10”

textBox2->Text=”+”

s=15

textBox4->Text=Rezultat();

Да

2

a-b-e-с

textBox3->Text=”10”

textBox2->Text=”+”

s=0

Да

3

a-с

textBox3->Text=””

textBox2->Text=””

Да

Таблица 4. Модуль PlusMinus

G

№ сце-нария

Описание прохода

Контрольные примеры, позволяющие реализовать описанную ситуацию

Тест пройден

Да/Нет

G=2

1

a-b-c

textBox4->Text="15"

Да

2

a-d-c

textBox4->Text=""

Да

Таблица 5. Модуль Rezultat

G

№ сценария

Описание прохода

Контрольные примеры, позволяющие реализовать описанную ситуацию

Тест пройден

Да/Нет

G=6

1

a-b-s-d-c

textBox1->Text=10

Z=1

Да

2

a-b-g-d-c

textBox1->Text=10

Z=2

Да

3

a-b-f-d-c

textBox1->Text=10

Z=3

Да

4

a-b-e-d-c

textBox1->Text=10

Z=4

Да

5

a-b-k-d-c

textBox1->Text=10

Z=0

Да

6

a-c

textBox1->Text=””

Z=0

Да

Все тесты пройдены.

Реализовать рассмотренные выше проходы Microsoft::VisualStudio::TestTools::UnitTesting.

Листинг тэста:

#include "StdAfx.h"

using namespace Microsoft::VisualStudio::TestTools::UnitTesting;

using namespace Calculator;

namespace TestProject1 {

using namespace System;

ref class Form1Test;

/// <summary>

///Это класс теста для Form1Test, в котором должны

///находиться все модульные тесты Form1Test

///</summary>

[TestClass]

public ref class Form1Test

{

private: Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ testContextInstance;

/// <summary>

///Получает или устанавливает контекст теста, в котором предоставляются

///сведения о текущем тестовом запуске и обеспечивается его функциональность.

///</summary>

public: property Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ TestContext

{

Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ get()

{

return testContextInstance;

}

System::Void set(Microsoft::VisualStudio::TestTools::UnitTesting::TestContext^ value)

{

testContextInstance = value;

}

#pragma region Дополнительные атрибуты теста

//

//При написании тестов можно использовать следующие дополнительные атрибуты:

//

//ClassInitialize используется для выполнения кода до запуска первого теста в классе

//public: [ClassInitialize]

//static System::Void MyClassInitialize(TestContext^ testContext)

//{

//ClassCleanup используется для выполнения кода после завершения работы всех тестов в классе

//public: [ClassCleanup]

//static System::Void MyClassCleanup()

//{

//TestInitialize используется для выполнения кода перед запуском каждого теста

//public: [TestInitialize]

//System::Void MyTestInitialize()

//{

//TestCleanup используется для выполнения кода после завершения каждого теста

//public: [TestCleanup]

//System::Void MyTestCleanup()

//{

#pragma endregion

/// <summary>

///Тест для PlusMinus

///</summary>

public: [TestMethod]

[DeploymentItem(L"Calculator.exe")]

void PlusMinusTest()

{

Calculator::Form1_Accessor^ target = (gcnew Calculator::Form1_Accessor()); // TODO: инициализация подходящего значения

String^ Znak = System::String::Empty; // TODO: инициализация подходящего значения

bool expected = false; // TODO: инициализация подходящего значения

bool actual;

actual = target->PlusMinus(Znak);

Assert::AreEqual(expected, actual);

Assert::Inconclusive(L"Проверьте правильность этого метода теста.");

}

/// <summary>

///Тест для Rezultat

///</summary>

public: [TestMethod]

[DeploymentItem(L"Calculator.exe")]

void RezultatTest()

{

Calculator::Form1_Accessor^ target = (gcnew Calculator::Form1_Accessor()); // TODO: инициализация подходящего значения

String^ expected = System::String::Empty; // TODO: инициализация подходящего значения

String^ actual;

actual = target->Rezultat();

Assert::AreEqual(expected, actual);

Assert::Inconclusive(L"Проверьте правильность этого метода теста.");

}

/// <summary>

///Тест для textBox1_TextChanged

///</summary>

public: [TestMethod]

[DeploymentItem(L"Calculator.exe")]

void textBox1_TextChangedTest()

{

Calculator::Form1_Accessor^ target = (gcnew Calculator::Form1_Accessor()); // TODO: инициализация подходящего значения

Object^ sender = nullptr; // TODO: инициализация подходящего значения

System::EventArgs^ e = nullptr; // TODO: инициализация подходящего значения

target->textBox1_TextChanged(sender, e);

Assert::Inconclusive(L"Невозможно проверить метод, не возвращающий значение.");

}

namespace TestProject1 {

}

Результат тестирования функции PlusMinus();

public: [TestMethod]

[DeploymentItem(L"Calculator.exe")]

void PlusMinusTest()

{

Calculator::Form1_Accessor^ target = (gcnew Calculator::Form1_Accessor()); // TODO: инициализация подходящего значения

String^ Znak = "+"; // TODO: инициализация подходящего значения

bool expected = true; // TODO: инициализация подходящего значения

bool actual;

actual = target->PlusMinus(Znak);

Assert::IsTrue(actual==expected);

}

Литература

1. Канер, C. Тестирование программного обеспечения / C. Канер [и др.]. - К.: ДиаСофт, 2001.- 544 с.

2. Калбертсон, Р. Быстрое тестирование / Р. Калбертсон, К. Браун, Г. Кобб. - М.: Вильямс, 2002. - 384 с.

3. Майерс, Г. Искусство тестирования программ / Г. Майерс. - М.: Финансы и статистика, 1982.

4. Майерс, Г. Надежность программного обеспечения / Г. Майерс. - М., 1980.

5. Липаев, В.В. Тестирование программных средств / В.В. Липаев. - М., 1999.

6. Липаев, В.В. Обеспечение качества программных средств: методы и стандарты / В.В. Липаев. - М., 2001.

7. Липаев, В.В. Надежность программных средств / В.В. Липаев. - М., 1998.

Приложение листинг программы

#pragma once

namespace Calculator {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

/// <summary>

/// Сводка для Form1

/// Внимание! При изменении имени этого класса необходимо также изменить

/// свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,

/// связанного со всеми файлами с расширением.resx, от которых зависит данный класс. В противном случае,

/// конструкторы не смогут правильно работать с локализованными

/// ресурсами, сопоставленными данной форме.

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

protected:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~Form1()

{

if (components)

{

delete components;

}

private: System::Windows::Forms::TextBox^ textBox1;

protected:

private: System::Windows::Forms::TextBox^ textBox2;

private: System::Windows::Forms::TextBox^ textBox3;

private: System::Windows::Forms::TextBox^ textBox4;

private: System::Windows::Forms::Label^ label1;

private: System::Windows::Forms::Button^ bPlus;

private: System::Windows::Forms::Button^ bMinus;

private: System::Windows::Forms::Button^ bUmnoz;

private: System::Windows::Forms::Button^ bDelit;

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

System::ComponentModel::Container ^components;

System::Int32 Z;

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>

void InitializeComponent(void)

{

this->textBox1 = (gcnew System::Windows::Forms::TextBox());

this->textBox2 = (gcnew System::Windows::Forms::TextBox());

this->textBox3 = (gcnew System::Windows::Forms::TextBox());

this->textBox4 = (gcnew System::Windows::Forms::TextBox());

this->label1 = (gcnew System::Windows::Forms::Label());

this->bPlus = (gcnew System::Windows::Forms::Button());

this->bMinus = (gcnew System::Windows::Forms::Button());

this->bUmnoz = (gcnew System::Windows::Forms::Button());

this->bDelit = (gcnew System::Windows::Forms::Button());

this->SuspendLayout();

//

// textBox1

//

this->textBox1->BorderStyle = System::Windows::Forms::BorderStyle::None;

this->textBox1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->textBox1->Location = System::Drawing::Point(76, 35);

this->textBox1->Name = L"textBox1";

this->textBox1->Size = System::Drawing::Size(162, 22);

this->textBox1->TabIndex = 0;

this->textBox1->TextChanged += gcnew System::EventHandler(this, &Form1::textBox1_TextChanged);

//

// textBox2

//

this->textBox2->BorderStyle = System::Windows::Forms::BorderStyle::None;

this->textBox2->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->textBox2->Location = System::Drawing::Point(208, 63);

this->textBox2->Name = L"textBox2";

this->textBox2->ReadOnly = true;

this->textBox2->Size = System::Drawing::Size(30, 22);

this->textBox2->TabIndex = 0;

//

// textBox3

//

this->textBox3->BorderStyle = System::Windows::Forms::BorderStyle::None;

this->textBox3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->textBox3->Location = System::Drawing::Point(76, 91);

this->textBox3->Name = L"textBox3";

this->textBox3->ReadOnly = true;

this->textBox3->Size = System::Drawing::Size(162, 22);

this->textBox3->TabIndex = 0;

//

// textBox4

//

this->textBox4->BorderStyle = System::Windows::Forms::BorderStyle::None;

this->textBox4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->textBox4->Location = System::Drawing::Point(76, 119);

this->textBox4->Name = L"textBox4";

this->textBox4->ReadOnly = true;

this->textBox4->Size = System::Drawing::Size(162, 22);

this->textBox4->TabIndex = 0;

//

// label1

//

this->label1->AutoSize = true;

this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->label1->Location = System::Drawing::Point(49, 117);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(21, 24);

this->label1->TabIndex = 1;

this->label1->Text = L"=";

//

// bPlus

//

this->bPlus->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->bPlus->Location = System::Drawing::Point(269, 34);

this->bPlus->Name = L"bPlus";

this->bPlus->Size = System::Drawing::Size(38, 32);

this->bPlus->TabIndex = 2;

this->bPlus->Text = L"+";

this->bPlus->UseVisualStyleBackColor = true;

this->bPlus->Click += gcnew System::EventHandler(this, &Form1::bPlus_Click);

//

// bMinus

//

this->bMinus->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->bMinus->Location = System::Drawing::Point(313, 35);

this->bMinus->Name = L"bMinus";

this->bMinus->Size = System::Drawing::Size(38, 32);

this->bMinus->TabIndex = 2;

this->bMinus->Text = L"-";

this->bMinus->UseVisualStyleBackColor = true;

this->bMinus->Click += gcnew System::EventHandler(this, &Form1::bMinus_Click);

//

// bUmnoz

//

this->bUmnoz->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->bUmnoz->Location = System::Drawing::Point(357, 35);

this->bUmnoz->Name = L"bUmnoz";

this->bUmnoz->Size = System::Drawing::Size(38, 32);

this->bUmnoz->TabIndex = 2;

this->bUmnoz->Text = L"x";

this->bUmnoz->UseVisualStyleBackColor = true;

this->bUmnoz->Click += gcnew System::EventHandler(this, &Form1::bUmnoz_Click);

//

// bDelit

//

this->bDelit->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,

static_cast<System::Byte>(204)));

this->bDelit->Location = System::Drawing::Point(401, 35);

this->bDelit->Name = L"bDelit";

this->bDelit->Size = System::Drawing::Size(38, 32);

this->bDelit->TabIndex = 2;

this->bDelit->Text = L"/";

this->bDelit->UseVisualStyleBackColor = true;

this->bDelit->Click += gcnew System::EventHandler(this, &Form1::bDelit_Click);

//

// Form1

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->ClientSize = System::Drawing::Size(593, 305);

this->Controls->Add(this->bDelit);

this->Controls->Add(this->bUmnoz);

this->Controls->Add(this->bMinus);

this->Controls->Add(this->bPlus);

this->Controls->Add(this->label1);

this->Controls->Add(this->textBox4);

this->Controls->Add(this->textBox3);

this->Controls->Add(this->textBox2);

this->Controls->Add(this->textBox1);

this->Name = L"Form1";

this->Text = L"Калькуляток";

this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

//нажимаем кнопку +

private: System::Void bPlus_Click(System::Object^ sender, System::EventArgs^ e)

{

PlusMinus("+");

Z=1;

}

// функция выстовления знаков

System::Boolean PlusMinus(System::String ^Znak)

{

if(this->textBox4->Text!="")

{

textBox3->Text=textBox4->Text;

textBox2->Text=Znak;

textBox1->Text="";

textBox4->Text="";

}

else

{

textBox2->Text=Znak;

textBox3->Text=textBox1->Text;

textBox1->Text="";

}

return true;

}

//нажимаем кнопку -

private: System::Void bMinus_Click(System::Object^ sender, System::EventArgs^ e)

{

PlusMinus("-");

Z=2;

}

//нажимаем кнопку x

private: System::Void bUmnoz_Click(System::Object^ sender, System::EventArgs^ e)

{

PlusMinus("x");

Z=3;

}

//нажимаем кнопку /

private: System::Void bDelit_Click(System::Object^ sender, System::EventArgs^ e)

{

PlusMinus("/");

Z=4;

}

//изменяем значение поля ввода данных

private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)

{

if(textBox3->Text!="" && textBox2->Text!="")

{//если текстовые поля не пусты

System::Double s=0;

if(System::Double::TryParse(textBox1->Text,s))//проверка на значение поля

textBox4->Text=Rezultat();

}

//результат вычислений

System::String ^Rezultat(void)

{

System::String ^Rez="";//результат вычислений

if(textBox1->Text!="")//если текстовое поле не пустое

{

switch(Z)

{

case 1: //если count = 2

{

Rez=System::Convert::ToString(System::Convert::ToDouble(textBox3->Text)+System::Convert::ToDouble(textBox1->Text)); // выполнить сложение

break;

}

case 2: // если count = 2

{

Rez=System::Convert::ToString(System::Convert::ToDouble(textBox3->Text)-System::Convert::ToDouble(textBox1->Text)); // выполнить сложение

break;

}

case 3: // если count = 3

{

Rez=System::Convert::ToString(System::Convert::ToDouble(textBox3->Text)*System::Convert::ToDouble(textBox1->Text)); // выполнить сложение

break;

}

case 4: // если count = 4

{

Rez=System::Convert::ToString(System::Convert::ToDouble(textBox3->Text)/System::Convert::ToDouble(textBox1->Text)); // выполнить сложение

break;

}

default: // если count равно любому другому значению

Rez="";

}

return Rez;

}

//загрузка формы

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {

Z=0;//значение знака

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.