Объектно-ориентированное программирование

Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.02.2016
Размер файла 1,7 M

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

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

i = 0;

recursionMain(sourseArray, i, j);//i и j педедаются по ссылке(!)

walkthroughArray[j].lexeme = 127;

}

bool Expression::isExp(const std::string& str)

{

return isExp(str.c_str());

}

bool Expression::isNumber(char s) { return s >= '0' && s <= '9' || s == 'x' || s == 'y'; }

bool Expression::isLetter(char s) { return s >= 'a' && s <= 'z'; }

bool Expression::isExp(const char* St)

{

int i = -1, j = 0;

char* st = new char [strlen(St) * 2];

while(St[++i])//Проверка на наличие посторонних символов

if(St[i] != ' ' && St[i] != '\n')

if(St[i] >= 'A' && St[i] <= 'Z')

st[j++] = St[i] - ('A' - 'a');

else if(isLetter(St[i]) || isNumber(St[i]) ||

St[i] == '*' || St[i] == '/' || St[i] == '+' || St[i] == '-' ||

St[i] == '^' || St[i] == '(' || St[i] == ')' || St[i] == ',' || St[i] == '.')

st[j++] = St[i];

else if(St[i] == '}' || St[i] == ']')

st[j++] = ')';

else if(St[i] == '{' || St[i] == '[')

st[j++] = '(';

else

{

delete[] st;

return !true && !false;

}

i = -1;

while(st[++i])

if(st[i] == 'p' && st[i + 1] == 'i')//Если это pi, заменить его на 77, чтобы в дальнейшем анализировать как число

{

st[i] = '7';

st[++i] = '7';

}

else if(st[i] == 'e' || st[i] == 'x' || st[i] =='y' )//если это e, y или x

st[i] = '2';

st[j] = i = 0;

//std::cout << "Symbols is right.\nFree string is \"" << st << "\"\n";

if(*st != 0 && ( *st != '+' && *st != '-' && *st != '(' && !isNumber(*st) && !isLetter(*st) ) )//Проверка на порядок следования

{

delete[] st;

return !true && !false;

}

while(st[++i])

if( ( st[i] == '+' || st[i] == '-' || st[i] == '/' || st[i] == '*' || st[i] == '^' || st[i] == '(' || st[i] == ',' ) &&

!isNumber(st[i + 1]) && !isLetter(st[i + 1]) && st[i + 1] != '(' && st[i + 1] != '-' && st[i + 1] != '+'

|| st[i] == ')' &&

!isNumber(st[i + 1]) && !isLetter(st[i + 1]) && st[i + 1] != '(' && st[i + 1] != '-' && st[i + 1] != '+' && st[i + 1] != '^'

&& st[i + 1] != ')' && st[i + 1] != '*' && st[i + 1] != '/' && st[i + 1] != ',' && st[i + 1]

|| isLetter(st[i]) &&

( !st[i + 1] || !isLetter(st[i + 1]) && st[i + 1] != '(' ))

{

delete[] st;

return !true && !false;

}

//Тест последнего символа

--i;

if(st[i] != ')' && ( st[i] < '0' || st[i] > '9' ) )

{

delete[] st;

return !true && !false;

}

//std::cout << "Sequence is right.\n";

//qDebug() << "()...";

i = -1;

j = 0;

while(st[++i])//Проверка на скобочки

{

if(st[i] == '(')

++j;

else if(st[i] == ')')

--j;

if( j < 0 )

{

delete[] st;

return !true && !false;

}

}

if(j)

{

delete[] st;

return !true && !false;

}

//std::cout << "Brackets is right.\n";

//qDebug() << "funk...";

addCode(st);

i = -1;

while(st[++i])

{

if(isLetter(st[i]))//Если есть неопознанные функции - символы не заменённые на экваваленты

{

//std::cout << st << std::endl;

delete[] st;

return !true && !false;

}

}

delete[] st;

return true;

}

char* Expression::argTest(char* st)

{

int j = !isUnary(*st);

++(++st);

int lBr = 1, rBr = 0;

while ( *st && lBr != rBr)

{

j -= *st == ',';

lBr += *st == '(';

rBr += *st == ')';

if (*st < -100)

{

st = argTest(st);

if (!st)

{

return 0;

}

}

++st;

}

if ( lBr != rBr || j )

{

return 0;

}

return ++st;

}

bool Expression::isUnary(char s) { return s == '%' || s < -100 && s != -124 && s != -121; }

bool Expression::isOperation(char s) { return s && s != 'x' && s != 'y'; }

Expression::sintElem Expression::doIt(char op, sintElem a)

{

//std::cout << op << a.number << std::endl;

sintElem ret;

ret.lexeme = 0;

switch (op)

{

case '%':

ret.number = 0 - a.number;

break;

case -128:

ret.number = sin(a.number);

break;

case -127:

ret.number = cos(a.number);

break;

case -126:

ret.number = tan(a.number);

break;

case -125:

ret.number = 1 / tan(a.number);

break;

case -123:

ret.number = log10(a.number);

break;

case -122:

ret.number = log(a.number);

break;

case -120:

ret.number = pow(a.number,0.5);

break;

case -119:

ret.number = a.number * a.number;

break;

case -118:

ret.number = *numArray>0 ? a.number : 0 - a.number;

break;

case -117:

ret.number = asin(a.number);

break;

case -116:

ret.number = acos(a.number);

break;

case -115:

ret.number = atan(a.number);

break;

case -114:

ret.number = atan(1 / a.number);

break;

case -113:

ret.number = sinh(a.number);

break;

case -112:

ret.number = cosh(a.number);

break;

}

return ret;

}

Expression::sintElem Expression::doIt(char op, sintElem a, sintElem b)

{

//std::cout << a.number << op << b.number << std::endl;

sintElem ret;

ret.lexeme = 0;

switch (op)

{

case '+':

ret.number = a.number + b.number;

break;

case '*':

ret.number = a.number * b.number;

break;

case '-':

ret.number = a.number - b.number;

break;

case '/':

ret.number = a.number / b.number;

break;

case '^':case -121:

ret.number = pow(a.number, b.number);

break;

case -124:

ret.number = log(a.number)/log(b.number);

break;

}

return ret;

}

unsigned Expression::operatorCount(sintElem* op)

{

unsigned k = 1;

signed j = 0;

while(k)//проверку на достижение начала массива ставить не нужно, если мы предпологаем нотацию разрешаемой

k += isOperation(op[-++j].lexeme) ? !isUnary(op[-j].lexeme) : -1;//по моему это приведёс нас ко второму операнду

return j;

}

void Expression::delElements(sintElem* from, unsigned how)

{

for(unsigned i = 0; from[i + how - 1].lexeme != 127; ++i)

from[i] = from[i + how];

}

Expression& Expression::optimization()

{

unsigned counter = 0;

while(walkthroughArray[counter].lexeme != 127)

++counter;

sintElem* temp = new sintElem[counter + 1];

unsigned i = 0, j = 0;

while(walkthroughArray[i].lexeme != 127)

{

if(!walkthroughArray[i].lexeme || walkthroughArray[i].lexeme == 'x' || walkthroughArray[i].lexeme == 'y')

temp[j++] = walkthroughArray[i];

else

if(isUnary(walkthroughArray[i].lexeme))

if( !temp[j - 1].lexeme )

temp[j - 1] = doIt(walkthroughArray[i].lexeme, temp[j - 1]);

else

temp[j++] = walkthroughArray[i];

else

if( !temp[j - 1].lexeme && !temp[j - 2].lexeme )

temp[j - 1] = doIt(walkthroughArray[i].lexeme, temp[j - 1], temp[--j]);

else

temp[j++] = walkthroughArray[i];

++i;

}

temp[j].lexeme = 127;

i = j = 0;

if(temp[1].lexeme != 127)

++(++i);//речь о бинарных операциях, нет смысла изучать что там раньше третьего знака.

while(temp[i].lexeme != 127)

{

switch(temp[i].lexeme)

{

case '*':

if(!temp[i - 1].lexeme && temp[i - 1].number == 1)//правый операнд мы можем проверить сразу

{

delElements(temp + i - 1, 2);//убираем 1 и *

--(--i);

}

else if(!temp[i - 1].lexeme && temp[i - 1].number == 0)

{

temp[i].lexeme = 0;

temp[i].number = 0;//Чтобы не вызывать два удаления записываем 0 вместо *

j = operatorCount(temp + i - 1);//собираем второй операнд, удаляем его и *.

delElements(temp + i - j - 1, j + 1);

i -= j + 1;

}

else//иначе просто собираем всё что попадает в правый операнд

{

j = operatorCount(temp + i);

if(!temp[i - j - 1].lexeme && temp[i - j - 1].number == 1)

{//удаляем 1 и само умножение.

delElements(temp + i, 1);

delElements(temp + i - j - 1, 1);

--(--i);

}

else if(!temp[i - j - 1].lexeme && temp[i - j - 1].number == 0)

{

delElements(temp + i - j, j + 1);//удаляем всё кроме нуля

i -= j + 1;

}

}

break;

case '+': case '-':

if(!temp[i - 1].lexeme && temp[i - 1].number == 0)

{

delElements(temp + i - 1, 2);

--(--i);

}

else

{

j = operatorCount(temp + i);

if(!temp[i - j - 1].lexeme && temp[i - j - 1].number == 0)

{

delElements(temp + i, 1);

delElements(temp + i - j - 1, 1);

--(--i);

}

}

break;

case '/':

if(!temp[i - 1].lexeme && temp[i - 1].number == 1)

{

delElements(temp + i - 1, 2);

--(--i);

}

if(!temp[i - 1].lexeme && temp[i - 1].number == 0)

{

temp[i].lexeme = 0;

temp[i].number = 1;

j = operatorCount(temp + i - 1);

delElements(temp + i - j - 1, j + 1);

i -= j + 1;

}

else

{

j = operatorCount(temp + i);

if(!temp[i - j - 1].lexeme && temp[i - j - 1].number == 0)

{

delElements(temp + i - j, j + 1);

i -= j + 1;

}

}

break;

case '^': case -121:

if(!temp[i - 1].lexeme && temp[i - 1].number == 1)

{

delElements(temp + i - 1, 2);

--(--i);

}

else

{

j = operatorCount(temp + i);

if(!temp[i - j - 1].lexeme && ( temp[i - j - 1].number == 0 || temp[i - j - 1].number == 1 ) )

{

delElements(temp + i - j, j + 1);

i -= j + 1;

}

}

break;

}

++i;

}

delete[] walkthroughArray;

walkthroughArray = temp;

/*

std::cout << "Оптимизированная нотация:\n";

for(i = 0; walkthroughArray[i].lexeme != 127; ++i)

if(walkthroughArray[i].lexeme)

std::cout << walkthroughArray[i].lexeme << std::endl;

else

std::cout << walkthroughArray[i].number << std::endl;

//*/

return *this;

}

Приложение Б. Листинг

Листинг Б.1 - Файл zed.cpp, запускающий программу

Form1.h

#pragma once

#include <math.h>

#include "Form2.h"

#include "stdafx.h"

namespace zed {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace ZedGraph;

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

{

// Функция преобразования строки типа String в тип char, так как класс разбора работает только с Сhar

public:

char* SystemStringToChar(System::String^ string)

{

//возвращает значение ввиде Сhar

return (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(string);

}

// Функция преобразования компонента ZedGraph к необходимому виду

public:

void Load_Graw (void)

{

// Получим панель для рисования

ZedGraph::GraphPane ^myPane = zedGraphControl1->GraphPane;

// Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы

myPane->CurveList->Clear();

myPane->GraphObjList->Clear();

//Запрет на самосогласования и выход за установленные границы

myPane->XAxis->Scale->MaxGrace=0;

myPane->XAxis->Scale->MinGrace=0;

myPane->YAxis->Scale->MaxGrace=0;

myPane->YAxis->Scale->MinGrace=0;

// Установим размеры шрифтов для подписей по осям

myPane->XAxis->Title->FontSpec->Size = 14;

myPane->YAxis->Title->FontSpec->Size = 14;

// Установим размеры шрифта для легенды

myPane->Legend->FontSpec->Size = 12;

// Установим размеры шрифта для общего заголовка

myPane->Title->FontSpec->Size = 13;

myPane->Title->FontSpec->FontColor=System::Drawing::Color::Black;

myPane->Title->Text = "Область постороения графиков";

myPane->XAxis->Title->Text = "x";

myPane->YAxis->Title->Text = "y";

//Установка фона панели графиков (не рабочая часть)

myPane->Fill->Color=System::Drawing::Color::LightGray;

//Установка фона панели отображения графиков

myPane->Chart->Fill = gcnew Fill( Color::White, Color::White, 0 );

//Установка границы вывода графиков

myPane->Chart->Border->Color=System::Drawing::Color::Black;

// Устанавливаем интересующий нас интервал по оси X

myPane->XAxis->Scale->Min = -10;

myPane->XAxis->Scale->Max = 10;

//Ручная установка шага оси Х

myPane->XAxis->Scale->MinorStep = 1;

myPane->XAxis->Scale->MajorStep = 1;

// Устанавливаем интересующий нас интервал по оси Y

myPane->YAxis->Scale->Min = -10;

myPane->YAxis->Scale->Max = 10;

//Ручная установка шага оси Y

myPane->YAxis->Scale->MinorStep = 1;

myPane->YAxis->Scale->MajorStep = 1;

//Устанавливаем метки только возле осей!

myPane->XAxis->MajorTic->IsOpposite = false;

myPane->XAxis->MinorTic->IsOpposite = false;

myPane->YAxis->MajorTic->IsOpposite = false;

myPane->YAxis->MinorTic->IsOpposite = false;

//Рисуем сетку по X

myPane->XAxis->MajorGrid->IsVisible=false;

myPane->XAxis->MajorGrid->DashOn=5;

myPane->XAxis->MajorGrid->DashOff=5;

myPane->XAxis->MajorGrid->Color=System::Drawing::Color::Gray;

myPane->XAxis->Color=System::Drawing::Color::Gray;

//Рисуем сетку по Y

myPane->YAxis->MajorGrid->IsVisible=false;

myPane->YAxis->MajorGrid->DashOn=5;

myPane->YAxis->MajorGrid->DashOff=5;

myPane->YAxis->MajorGrid->Color=System::Drawing::Color::Gray;

myPane->YAxis->Color=System::Drawing::Color::Gray;

//******************************************************************************

// Добавляем информацию по регистрам вывода точек

//******************************************************************************

RollingPointPairList ^list1= gcnew RollingPointPairList (10000);

RollingPointPairList ^list2= gcnew RollingPointPairList (10000);

RollingPointPairList ^list3= gcnew RollingPointPairList (10000);

// Выводим пустые линии графиков на экран

LineItem ^F1Curve = myPane->AddCurve( "Функция f(x)", list1, Color::Blue, SymbolType::None);

LineItem ^F2Curve = myPane->AddCurve( "Функция g(x)", list2, Color::Red, SymbolType::None);

LineItem ^F3Curve = myPane->AddCurve( "Функция h(x)", list3, Color::Green, SymbolType::None);

// Ширина линии

F1Curve->Line->Width=2;

F2Curve->Line->Width=2;

F3Curve->Line->Width=2;

// Задаем что линии гладкии

F1Curve->Line->IsSmooth=true;

F2Curve->Line->IsSmooth=true;

F3Curve->Line->IsSmooth=true;

// Обновлем данные об осях

zedGraphControl1->AxisChange ();

// Обновляем график

zedGraphControl1->Invalidate();

}

// Функция построения графиков

public:

void Graw_Draw (void)

{

// Объявляем переменные, которые указывают диапазон значений X

double min_x = System::Convert::ToDouble(textBox_x1->Text);

double max_x = System::Convert::ToDouble(textBox_x2->Text);

// Построение первого графика

if(textBox11->Text != "")

{

// Преобразование строки типа String к типу Сhar

char *stroka1 = SystemStringToChar(textBox11->Text);

// Получаем линии от графиков

LineItem ^F1Curve=(LineItem ^)zedGraphControl1->GraphPane->CurveList[0];

IPointListEdit ^list1= (IPointListEdit ^) F1Curve->Points;

if(Expression::isExp(stroka1) == true)

{

// Вызов функции, которая разбирает строку типа Сhar, преобразуя ее в математическое выражение

Expression exp(stroka1);

for (double x =min_x; x <= max_x; x = x+0.01)

list1->Add(((double)(x)), exp.calculate(x));

}

else

MessageBox::Show("Не верный ввод даных","Ошибка",MessageBoxButtons::OK);

}

// Построение второго графика

if(textBox22->Text != "")

{

// Преобразование строки типа String к типу Сhar

char *stroka2 = SystemStringToChar(textBox22->Text);

// Получаем линии от графиков

LineItem ^F2Curve=(LineItem ^)zedGraphControl1->GraphPane->CurveList[1];

IPointListEdit ^list2= (IPointListEdit ^) F2Curve->Points;

if(Expression::isExp(stroka2) == true)

{

// Вызов функции, которая разбирает строку типа Сhar, преобразуя ее в математическое выражение

Expression exp(stroka2);

for (double x =min_x; x <= max_x; x = x+0.01)

list2->Add(((double)(x)), exp.calculate(x));

}

else

MessageBox::Show("Не верный ввод даных","Ошибка",MessageBoxButtons::OK);

}

// Построение третьего графика

if(textBox33->Text != "")

{

// Преобразование строки типа String к типу Сhar

char *stroka3 = SystemStringToChar(textBox33->Text);

// Получаем линии от графиков

LineItem ^F3Curve=(LineItem ^)zedGraphControl1->GraphPane->CurveList[2];

IPointListEdit ^list3= (IPointListEdit ^) F3Curve->Points;

if(Expression::isExp(stroka3) == true)

{

// Вызов функции, которая разбирает строку типа Сhar, преобразуя ее в математическое выражение

Expression exp(stroka3);

for (double x =min_x; x <= max_x; x = x+0.01)

list3->Add(((double)(x)), exp.calculate(x));

}

else

MessageBox::Show("Не верный ввод даных","Ошибка",MessageBoxButtons::OK);

}

// Обновлем данные об осях

zedGraphControl1->AxisChange ();

// Обновляем график

zedGraphControl1->Invalidate();

}

// Объявляем глобальные переменные, чтобы они запоминали значения в textBox_x1 и textBox_x2

double temp_x1, temp_x2;

public:

Form1(void)

{

InitializeComponent();

}

protected:

~Form1()

{

if (components)

{

delete components;

}

}

private: ZedGraph::ZedGraphControl^ zedGraphControl1;

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

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

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

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

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

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

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

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

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

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

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

private: System::Windows::Forms::CheckBox^ checkBox1;

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

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

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

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

private: System::Windows::Forms::ToolTip^ toolTip1;

private: System::ComponentModel::IContainer^ components;

#pragma region Windows Form Designer generated code

void InitializeComponent(void)

{

this->components = (gcnew System::ComponentModel::Container());

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

this->zedGraphControl1 = (gcnew ZedGraph::ZedGraphControl());

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

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

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

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

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

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

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

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

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

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

this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());

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

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

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

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

this->toolTip1 = (gcnew System::Windows::Forms::ToolTip(this->components));

this->SuspendLayout();

//

// button1

//

this->button1->Location = System::Drawing::Point(12, 129);

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

this->button1->Size = System::Drawing::Size(118, 53);

this->button1->TabIndex = 0;

this->button1->Text = L"Построить график";

this->toolTip1->SetToolTip(this->button1, L"Построение графиков");

this->button1->UseVisualStyleBackColor = true;

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

//

// zedGraphControl1

//

this->zedGraphControl1->Location = System::Drawing::Point(162, 128);

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

this->zedGraphControl1->ScrollGrace = 0;

this->zedGraphControl1->ScrollMaxX = 0;

this->zedGraphControl1->ScrollMaxY = 0;

this->zedGraphControl1->ScrollMaxY2 = 0;

this->zedGraphControl1->ScrollMinX = 0;

this->zedGraphControl1->ScrollMinY = 0;

this->zedGraphControl1->ScrollMinY2 = 0;

this->zedGraphControl1->Size = System::Drawing::Size(698, 503);

this->zedGraphControl1->TabIndex = 1;

//

// button_master

//

this->button_master->Location = System::Drawing::Point(770, 13);

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

this->button_master->Size = System::Drawing::Size(90, 91);

this->button_master->TabIndex = 2;

this->button_master->Text = L"Мастер функций";

this->toolTip1->SetToolTip(this->button_master, L"Мастер функций");

this->button_master->UseVisualStyleBackColor = true;

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

//

// button_End

//

this->button_End->Location = System::Drawing::Point(12, 467);

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

this->button_End->Size = System::Drawing::Size(118, 53);

this->button_End->TabIndex = 3;

this->button_End->Text = L"Выход";

this->toolTip1->SetToolTip(this->button_End, L"Выход");

this->button_End->UseVisualStyleBackColor = true;

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

//

// textBox11

//

this->textBox11->Location = System::Drawing::Point(208, 12);

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

this->textBox11->Size = System::Drawing::Size(556, 20);

this->textBox11->TabIndex = 4;

this->toolTip1->SetToolTip(this->textBox11, L"выражение f(x)");

//

// label1

//

this->label1->AutoSize = true;

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

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

this->label1->Location = System::Drawing::Point(162, 12);

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

this->label1->Size = System::Drawing::Size(40, 20);

this->label1->TabIndex = 5;

this->label1->Text = L"f(x)=";

//

// button2

//

this->button2->Location = System::Drawing::Point(12, 236);

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

this->button2->Size = System::Drawing::Size(118, 53);

this->button2->TabIndex = 6;

this->button2->Text = L"Очистить";

this->toolTip1->SetToolTip(this->button2, L"Очистить область построения графиков");

this->button2->UseVisualStyleBackColor = true;

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

//

// button_save

//

this->button_save->Location = System::Drawing::Point(12, 349);

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

this->button_save->Size = System::Drawing::Size(118, 53);

this->button_save->TabIndex = 7;

this->button_save->Text = L"Сохранить график";

this->toolTip1->SetToolTip(this->button_save, L"Сохранение графиков в файл");

this->button_save->UseVisualStyleBackColor = true;

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

//

// textBox_x2

//

this->textBox_x2->Location = System::Drawing::Point(113, 578);

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

this->textBox_x2->Size = System::Drawing::Size(25, 20);

this->textBox_x2->TabIndex = 15;

this->textBox_x2->Text = L"10";

this->toolTip1->SetToolTip(this->textBox_x2, L"Диапазон значений X");

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

//

// label3

//

this->label3->AutoSize = true;

this->label3->Location = System::Drawing::Point(88, 581);

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

this->label3->Size = System::Drawing::Size(19, 13);

this->label3->TabIndex = 14;

this->label3->Text = L"до";

//

// textBox_x1

//

this->textBox_x1->Location = System::Drawing::Point(57, 578);

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

this->textBox_x1->Size = System::Drawing::Size(25, 20);

this->textBox_x1->TabIndex = 13;

this->textBox_x1->Text = L"-10";

this->toolTip1->SetToolTip(this->textBox_x1, L"Диапазон значений X");

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

//

// label2

//

this->label2->AutoSize = true;

this->label2->Location = System::Drawing::Point(23, 581);

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

this->label2->Size = System::Drawing::Size(28, 13);

this->label2->TabIndex = 12;

this->label2->Text = L"X от";

//

// checkBox1

//

this->checkBox1->AutoSize = true;

this->checkBox1->Location = System::Drawing::Point(162, 640);

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

this->checkBox1->Size = System::Drawing::Size(56, 17);

this->checkBox1->TabIndex = 16;

this->checkBox1->Text = L"Сетка";

this->toolTip1->SetToolTip(this->checkBox1, L"Включить/Отключить сетку");

this->checkBox1->UseVisualStyleBackColor = true;

this->checkBox1->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBox1_CheckedChanged);

//

// label4

//

this->label4->AutoSize = true;

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

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

this->label4->Location = System::Drawing::Point(158, 49);

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

this->label4->Size = System::Drawing::Size(44, 20);

this->label4->TabIndex = 18;

this->label4->Text = L"g(x)=";

//

// textBox22

//

this->textBox22->Location = System::Drawing::Point(208, 49);

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

this->textBox22->Size = System::Drawing::Size(556, 20);

this->textBox22->TabIndex = 17;

this->toolTip1->SetToolTip(this->textBox22, L"выражение g(x)");

//

// label5

//

this->label5->AutoSize = true;

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

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

this->label5->Location = System::Drawing::Point(158, 84);

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

this->label5->Size = System::Drawing::Size(44, 20);

this->label5->TabIndex = 20;

this->label5->Text = L"h(x)=";

//

// textBox33

//

this->textBox33->Location = System::Drawing::Point(208, 84);

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

this->textBox33->Size = System::Drawing::Size(556, 20);

this->textBox33->TabIndex = 19;

this->toolTip1->SetToolTip(this->textBox33, L"выражение h(x)");

//

// Form1

//

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

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

this->ClientSize = System::Drawing::Size(900, 666);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

this->Name = L"Form1";

this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;

this->Text = L"Программа \"Генератор математических функций\"";

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

this->ResumeLayout(false);

this->PerformLayout();

}

#pragma endregion

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

{

// Вызов функции загрузки необходимых параметров компонента ZedGraph

this->Load_Graw();

// Запоминаем значения диапазона X по умолчанию

temp_x1 = System::Convert::ToDouble(textBox_x1->Text);

temp_x2 = System::Convert::ToDouble(textBox_x2->Text);

}

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

{

for(int i = 0; i < 3; i++)

this->zedGraphControl1->GraphPane->CurveList[ i ]->Clear ( );

// Обновим данные об осях

zedGraphControl1->AxisChange ();

// Обновим график

zedGraphControl1->Invalidate();

// Вызываем функцию построения графиков

this->Graw_Draw();

}

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

{

// Открытие Form2

System::Windows::Forms::DialogResult dr;

Form2 ^newDlg = gcnew Form2();

m1: dr = newDlg->ShowDialog();

// Условия выбора пользователем, в какой textBox будет введено выражение

if (newDlg->radioButton1->Checked)

{

if (newDlg->textBox1->Text != "")

textBox11->Text = newDlg->textBox1->Text;

}

if (newDlg->radioButton2->Checked)

{

if (newDlg->textBox1->Text != "")

textBox22->Text = newDlg->textBox1->Text;

}

if (newDlg->radioButton3->Checked)

{

if (newDlg->textBox1->Text != "")

textBox33->Text = newDlg->textBox1->Text;

}

/*Вызывается Form2 в модальном режиме. В dr запоминается значение

DialogResult. Когда Form2 закроется, то значение ее свойства DialogResult

будет сравниваться с dr(там перед закрытием формы мы внесем значение ОК в

DialogResult):*/

if( dr == System::Windows::Forms::DialogResult::OK )

return;

else

{

MessageBox::Show ("Ошибка закрытия Form2");

goto m1;

}

}

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

{

// Удаление графиков

for(int i = 0; i < 3; i++)

this->zedGraphControl1->GraphPane->CurveList[ i ]->Clear ( );

// Обновим данные об осях

zedGraphControl1->AxisChange ();

// Обновим график

zedGraphControl1->Invalidate();

}

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

{

// Сохранение графика в файл

zedGraphControl1->SaveAsBitmap ();

}

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

{

// Выход из программы

if ((MessageBox::Show("Вы действительно хотите выйти?", "Выход", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes))

this->Close();

}

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

{

// Рисование/стирание сетки

if (checkBox1->Checked == false)

{

// Получим панель для рисования

ZedGraph::GraphPane ^myPane = zedGraphControl1->GraphPane;

// Стираем сетку по X

myPane->XAxis->MajorGrid->IsVisible=false;

// Стираем сетку по Y

myPane->YAxis->MajorGrid->IsVisible=false;

// Обновим данные об осях

zedGraphControl1->AxisChange ();

// Обновим график

zedGraphControl1->Invalidate();

}

else

{

// Получим панель для рисования

ZedGraph::GraphPane ^myPane = zedGraphControl1->GraphPane;

// Рисуем сетку по X

myPane->XAxis->MajorGrid->IsVisible=true;

// Рисуем сетку по Y

myPane->YAxis->MajorGrid->IsVisible=true;

// Обновим данные об осях

zedGraphControl1->AxisChange ();

// Обновим график

zedGraphControl1->Invalidate();

}

}

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

{

// Выбор диапазона значений X

double min_x = System::Convert::ToDouble(textBox_x1->Text);

double max_x = System::Convert::ToDouble(textBox_x2->Text);

if (min_x > max_x)

{

MessageBox::Show("Минимальное значение X не должно превышать максимальное","Ошибка", MessageBoxButtons::OK);

textBox_x1->Text = System::Convert::ToString(temp_x1);

textBox_x2->Text = System::Convert::ToString(temp_x2);

}

if (max_x-min_x > 100)

{

MessageBox::Show("Диапазон значений X не должен привышать 100","Ошибка", MessageBoxButtons::OK);

textBox_x1->Text = System::Convert::ToString(temp_x1);

textBox_x2->Text = System::Convert::ToString(temp_x2);

}

}

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

{

// Выбор диапазона значений X

double min_x = System::Convert::ToDouble(textBox_x1->Text);

double max_x = System::Convert::ToDouble(textBox_x2->Text);

if (min_x > max_x)

{

MessageBox::Show("Минимальное значение X не должно превышать максимальное","Ошибка", MessageBoxButtons::OK);

textBox_x1->Text = System::Convert::ToString(temp_x1);

textBox_x2->Text = System::Convert::ToString(temp_x2);

}

if (max_x-min_x > 100)

{

MessageBox::Show("Диапазон значений X не должен привышать 100","Ошибка", MessageBoxButtons::OK);

textBox_x1->Text = System::Convert::ToString(temp_x1);

textBox_x2->Text = System::Convert::ToString(temp_x2);

}

}

};

}

Form2.h

#pragma once

#include <math.h>

#include "Expression.h" // подключение своего класса

namespace zed {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

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

{

public:

Form2(void)

{

InitializeComponent();

}

protected:

~Form2()

{

if (components)

{

delete components;

}

}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private: System::Windows::Forms::ToolTip^ toolTip1;

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

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

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

public: System::Windows::Forms::RadioButton^ radioButton1;

public: System::Windows::Forms::RadioButton^ radioButton2;

public: System::Windows::Forms::RadioButton^ radioButton3;

private: System::ComponentModel::IContainer^ components;

#pragma region Windows Form Designer generated code

void InitializeComponent(void)

{

this->components = (gcnew System::ComponentModel::Container());

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

this->toolTip1 = (gcnew System::Windows::Forms::ToolTip(this->components));

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

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

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

this->radioButton1 = (gcnew System::Windows::Forms::RadioButton());

this->radioButton2 = (gcnew System::Windows::Forms::RadioButton());

this->radioButton3 = (gcnew System::Windows::Forms::RadioButton());

this->SuspendLayout();

//

// button_OK

//

this->button_OK->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 8.25F, static_cast<System::Drawing::FontStyle>((System::Drawing::FontStyle::Bold | System::Drawing::FontStyle::Italic)),

System::Drawing::GraphicsUnit::Point, static_cast<System::Byte>(204)));

this->button_OK->Location = System::Drawing::Point(413, 294);

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

this->button_OK->Size = System::Drawing::Size(75, 35);

this->button_OK->TabIndex = 0;

this->button_OK->Text = L"ОК";

this->toolTip1->SetToolTip(this->button_OK, L"ОК");

this->button_OK->UseVisualStyleBackColor = true;

this->button_OK->Click += gcnew System::EventHandler(this, &Form2::button_OK_Click);

//

// textBox1

//

this->textBox1->Enabled = false;

this->textBox1->Location = System::Drawing::Point(42, 12);

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

this->textBox1->Size = System::Drawing::Size(446, 20);

this->textBox1->TabIndex = 1;

this->toolTip1->SetToolTip(this->textBox1, L"Введите выражение");

//

// label1

//

this->label1->AutoSize = true;

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

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

this->label1->Location = System::Drawing::Point(18, 12);

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

this->label1->Size = System::Drawing::Size(25, 20);

this->label1->TabIndex = 2;

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

//

// button_7

//

this->button_7->Location = System::Drawing::Point(14, 130);

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

this->button_7->Size = System::Drawing::Size(42, 35);

this->button_7->TabIndex = 3;

this->button_7->Text = L"7";

this->toolTip1->SetToolTip(this->button_7, L"7");

this->button_7->UseVisualStyleBackColor = true;

this->button_7->Click += gcnew System::EventHandler(this, &Form2::button_7_Click);

//

// button_8

//

this->button_8->Location = System::Drawing::Point(62, 130);

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

this->button_8->Size = System::Drawing::Size(42, 35);

this->button_8->TabIndex = 4;

this->button_8->Text = L"8";

this->toolTip1->SetToolTip(this->button_8, L"8");

this->button_8->UseVisualStyleBackColor = true;

this->button_8->Click += gcnew System::EventHandler(this, &Form2::button_8_Click);

//

// button_9

//

this->button_9->Location = System::Drawing::Point(110, 130);

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

this->button_9->Size = System::Drawing::Size(42, 35);

this->button_9->TabIndex = 5;

this->button_9->Text = L"9";

this->toolTip1->SetToolTip(this->button_9, L"9");

this->button_9->UseVisualStyleBackColor = true;

this->button_9->Click += gcnew System::EventHandler(this, &Form2::button_9_Click);

//

// button_4

//

this->button_4->Location = System::Drawing::Point(14, 171);

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

this->button_4->Size = System::Drawing::Size(42, 35);

this->button_4->TabIndex = 6;

this->button_4->Text = L"4";

this->toolTip1->SetToolTip(this->button_4, L"4");

this->button_4->UseVisualStyleBackColor = true;

this->button_4->Click += gcnew System::EventHandler(this, &Form2::button_4_Click);

//

// button_5

//

this->button_5->Location = System::Drawing::Point(62, 171);

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

this->button_5->Size = System::Drawing::Size(42, 35);

this->button_5->TabIndex = 7;

this->button_5->Text = L"5";

this->toolTip1->SetToolTip(this->button_5, L"5");

this->button_5->UseVisualStyleBackColor = true;

this->button_5->Click += gcnew System::EventHandler(this, &Form2::button_5_Click);

//

// button_6

//

this->button_6->Location = System::Drawing::Point(110, 171);

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

this->button_6->Size = System::Drawing::Size(42, 35);

this->button_6->TabIndex = 8;

this->button_6->Text = L"6";

this->toolTip1->SetToolTip(this->button_6, L"6");

this->button_6->UseVisualStyleBackColor = true;

this->button_6->Click += gcnew System::EventHandler(this, &Form2::button_6_Click);

//

// button_1

//

this->button_1->Location = System::Drawing::Point(14, 212);

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

this->button_1->Size = System::Drawing::Size(42, 35);

this->button_1->TabIndex = 9;

this->button_1->Text = L"1";

this->toolTip1->SetToolTip(this->button_1, L"1");

this->button_1->UseVisualStyleBackColor = true;

this->button_1->Click += gcnew System::EventHandler(this, &Form2::button_1_Click);

//

// button_2

//

this->button_2->Location = System::Drawing::Point(62, 212);

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

this->button_2->Size = System::Drawing::Size(42, 35);

this->button_2->TabIndex = 10;

this->button_2->Text = L"2";

this->toolTip1->SetToolTip(this->button_2, L"2");

this->button_2->UseVisualStyleBackColor = true;

this->button_2->Click += gcnew System::EventHandler(this, &Form2::button_2_Click);

//

// button_3

//

this->button_3->Location = System::Drawing::Point(110, 212);

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

this->button_3->Size = System::Drawing::Size(42, 35);

this->button_3->TabIndex = 11;

this->button_3->Text = L"3";

this->toolTip1->SetToolTip(this->button_3, L"3");

this->button_3->UseVisualStyleBackColor = true;

this->button_3->Click += gcnew System::EventHandler(this, &Form2::button_3_Click);

//

// button_0

//

this->button_0->Location = System::Drawing::Point(14, 253);

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

this->button_0->Size = System::Drawing::Size(90, 35);

this->button_0->TabIndex = 12;

this->button_0->Text = L"0";

this->toolTip1->SetToolTip(this->button_0, L"0");

this->button_0->UseVisualStyleBackColor = true;

this->button_0->Click += gcnew System::EventHandler(this, &Form2::button_0_Click);

//

// button_toch

//

this->button_toch->Location = System::Drawing::Point(110, 253);

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

this->button_toch->Size = System::Drawing::Size(42, 35);

this->button_toch->TabIndex = 13;

this->button_toch->Text = L".";

this->toolTip1->SetToolTip(this->button_toch, L"Точка");

this->button_toch->UseVisualStyleBackColor = true;

//

// button_del

//

this->button_del->Location = System::Drawing::Point(182, 171);

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

this->button_del->Size = System::Drawing::Size(57, 35);

this->button_del->TabIndex = 15;

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

this->toolTip1->SetToolTip(this->button_del, L"Деление");

this->button_del->UseVisualStyleBackColor = true;

this->button_del->Click += gcnew System::EventHandler(this, &Form2::button_del_Click);

//

// button_umn

//

this->button_umn->Location = System::Drawing::Point(182, 212);

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

this->button_umn->Size = System::Drawing::Size(57, 35);

this->button_umn->TabIndex = 16;

this->button_umn->Text = L"*";

this->toolTip1->SetToolTip(this->button_umn, L"Умножение");

this->button_umn->UseVisualStyleBackColor = true;

this->button_umn->Click += gcnew System::EventHandler(this, &Form2::button_umn_Click);

//

// button_minus

//

this->button_minus->Location = System::Drawing::Point(182, 253);

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

this->button_minus->Size = System::Drawing::Size(57, 35);

this->button_minus->TabIndex = 17;

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

this->toolTip1->SetToolTip(this->button_minus, L"Вычитание");

this->button_minus->UseVisualStyleBackColor = true;


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

  • Техническое задание и блок-схема алгоритма программы построения графиков функций. Инструкция по инсталляции и описание работы программного продукта GRAPHIC. Инструкция оператору и ограничения данной версии программы. Программный код приложения.

    курсовая работа [391,2 K], добавлен 05.12.2009

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Особенности использования встроенных функций Microsoft Excel. Создание таблиц, их заполнение данными, построение графиков. Применение математических формул для выполнения запросов с помощью пакетов прикладных программ. Технические требования к компьютеру.

    курсовая работа [1,1 M], добавлен 25.04.2013

  • Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.

    курсовая работа [294,0 K], добавлен 08.09.2008

  • Создание программы для обработки информации об объектах предметной области "Бытовая техника" в среде визуального программирования C++. Иерархия родственных классов. Описание логической структуры программы. Реализация файлового ввода/вывода данных.

    курсовая работа [711,4 K], добавлен 27.07.2014

  • Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.

    курсовая работа [2,2 M], добавлен 14.04.2019

  • Создание круговой диаграммы в табличном процессоре Microsoft Office Excel. Построение графиков математических функций. Назначение и алгоритм построение диаграммы с помощью Мастера диаграмм. Типы диаграмм в Excel. Метки строк и столбцов диаграммы.

    лабораторная работа [1,6 M], добавлен 15.11.2010

  • Составление отчетной ведомости "Магазины" в Excel 2013. Работа с таблицами семейства Microsoft Office. Построение круговой диаграммы и гистограммы, графиков. Разработка процедур для табулирования функций. Программирование функций пользователя на VBA.

    курсовая работа [2,6 M], добавлен 03.04.2014

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

    контрольная работа [614,7 K], добавлен 16.09.2012

  • Разработка учебного приложения, играющего роль клавиатурного тренажёра. Установка различных опций. Использование средств Borland C++Builder 6.0. Объектно-ориентированное проектирование и программирование системы. Тестирование и отладка программы.

    курсовая работа [730,4 K], добавлен 23.07.2013

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