Объектно-ориентированное программирование
Создание приложения, которое будет производить построение графиков функций по заданному математическому выражению. Разработка программы "Генератор математических функций". Создание мастера функций для ввода математического выражения, тестирование.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 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