ПредишенСледващото

Visual C ++: заговор с тълкуването на входа потребител към функция

По принцип цялата необходима информация може да намерите тук. Ние го направите на готовия проект.

Структурата на формата е показано на фигурата, компонентите в panel1 изброени по ред от ляво на дясно във формата, която позволява на нормалния ред и заобикаляне областта на разделите.

заговор с тълкуването на входа на потребителя да функция Visual C

основната форма на прилагане

Текстовите полета, можете да ограничите максималния размер на реда за въвеждане (MAXLENGTH имот). Panel1 добре разположен имот с Dock = Top. и chart1 с имот Dock = запълване. Това гарантира нормален компонент взаимодействие, когато прозорецът е преоразмерено. В много форма и показва Размер MinimumSize в стойност от 640; 400 - бутон за да не "изчезне" намалява през прозореца.

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

Като алтернатива е възможно да се образуват реалните стойности на полетата динамично в зависимост от текущия делител (например събитие форма натоварване 1):

Формата също се добавя към глобален тип NumberFormatInfo на имота

се инициализира в конструктора:

Основната част от работата се извършва чрез натискане на бутона ОК (button1_Click). Моля, проверете допустимостта на данните, въведени от един чифт _Аналитична официални методи (получите номер) и Проверете (валидира функцията за запис, като се опита да получи стойността си от първия аргумент). Тогава метод Go налага да използваме цикъла стойностите на аргумента, образувайки графиката. Ако има грешка разбор, се показва съобщение, но програмата не е приключило. Само в данните няма да бъдат някои стойност двойки.

Синтактичен анализ е същата като на линка по-горе. Ето и пълния код фрагмент:

Единственото ново във връзка с член детайл -

Ако национални стандарти предполагат, че дробна част от реално число е отделена от цялата работа, а не точка, вместо на оператора

Добавяне на втора форма на проекта, където ще бъде възможно да се покаже таблицата с данни от диаграмата. За това ние се обръщаме към менюто Project - Добавяне на нов елемент - Windows Forms форма и го наричат ​​ФОРМА2. На втория вид ще добави DataGridView. сложи си имущество Dock = запълване. Плъзгачите = Вертикален и получаване на 2 колони за генериране на X и Y стойности:

заговор с тълкуването на входа на потребителя да функция Visual C

втора форма - изходни стойности на таблицата на функция

Тази форма ще бъде единственият публичен метод - вземете един чифт стойности (X, Y) и да ги добавите към таблицата:

Този метод работи Do код при инсталиране на имоти

тъй като истинска стойност в таблицата е "екстра" празен низ, който също участва в номерация.

И този метод ще доведе до втори бутон раздела с първа отливка (функция button2_Click), като първата се създава нова инстанция на ФОРМА2. така че можете да сравните няколко маси:

За да стане това, zainkludte заглавия в началото на втората форма Form1.h код:

Разбира се, той също podlyuchon анализатора. Целият този проект могат да бъдат събрани. Ето един пример на работната програма:

заговор с тълкуването на входа на потребителя да функция Visual C

пример за изпълнение на работната програма

Изрази в парсера писмено "не е наистина в C ++", parser.cpp поглед към файл и да го види, дори по-добре, можете да промените кода на анализатора да отговаря на нуждите ви. Все още има много неща, които могат да бъдат подобрени, а аз ще поставя проекта в сегашната "образователна" състояние.

Най-очевидният подобрение:
  • закръгляване изчислената стойност и входа до известна удобно брой цифри в дробна част;
  • ограничава максималния брой на мрежата точки, например, някои постоянна maxCollectionSize. Когато "твърде голям" размер на ап колекция речник може да се срине, и какъв размер е "твърде голям", само знае студио;
  • намери минималните и максималните стойности на функцията, след което ги възлагане етикети оста Y, за да изпълни същата работата на оста Х;
  • монитор, не е при изчисляване дали "не-номер" Y чрез isnan (Y) || isinf (у);
  • гледате, ако не добавя отново в колекция от елементи с един и същи ключ, с помощта на ContainsKey т.н.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!