C++. Разработка программы вычисления выражения, реализованного отдельной функцией. Элемент управления PictureBox




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


Содержание


Поиск на других ресурсах:

Условие задачи

Рассчитать значения x, определив и использовав соответствующую функцию:

 

Соображения

Если внимательно посмотреть на выражение, то можно заметить схожесть между каждым его слагаемым. В общем случае каждое слагаемое можно представить выражением

где a – некоторое число. В нашем случае a = 6, 13, 22.

Поэтому, целесообразно реализовать функцию, которая получает входным параметром переменную a и вычисляет данное выражение.

 

Выполнение

1. Запустить MS Visual Studio. Создать проект по шаблону Windows Forms Application

После загрузки MS Visual Studio нужно создать проект по шаблону Windows Forms Application. Подробный пример создания проекта по шаблону Windows Forms Application описывается в теме:

Следует напомнить, что проект создается командой

File->New Project...

В результате откроется окно «New Project», изображенное на рисунке 1. В этом окне задается вкладка «Visual C++» и выбирается шаблон «Windows Forms Application». В поле Name задается имя проекта, например MyApp01. В поле «Location:» задается папка, в которой будут размещаться рабочие файлы проекта (в нашем случае это папка D:\Programs\CPP).

Рис. 1. Окно создания нового проекта

После выбора OK система создаст новую форму, как показано на рисунке 2.

Рис. 2. Форма приложения после создания

 

2. Проектирование основной формы

2.1. Размещение элементов управления на форме

В соответствии с условием задачи, в программе ничего не вводится, только проводится расчет на основе известных значений. С учетом этого, на форме размещаются следующие элементы управления:

  • один элемент управления типа Label. Автоматически создается объект (переменная) класса Label с именем label1. С помощью этого имени можно иметь доступ к результату;
  • один элемент управления типа Button. Автоматически создается объект с именем button1. Этот элемент управления будет выводить текст условия задачи;
  • один элемент управления типа PictureBox (см. рис. 3). Этот элемент управления используется для визуализации сложной формулы. Формула представляется в виде файла с расширением *.jpg. В результате создается объект с именем pictureBox1;
  • один элемент управления типа Label в нижней части формы. Этот элемент управления будет выводить результат.

После размещения элементов управления Label, Button, PictureBox форма программы будет иметь вид, как показано на рисунке 3.

Рис. 3. Форма приложения после размещения элементов управления

 

2.2. Настройка элементов управления Form, Label, Button

Нужно настроить следующие свойства элементов управления:

  • в элементе управления label1 свойство Text = «Рассчитать значение x»;
  • в элементе управления button1 свойство Text = «Вычислить»;
  • в элементе управления label2 свойство Text = «Результат»;
  • в форме Form1 свойство Text = «Программа вычисления выражения».

Дополнительно можно настроить другие свойства по собственному усмотрению.






 

2.3. Настройка элемента управления PictureBox

Поскольку элемент управления PictureBox предназначен для отображения рисунка на форме, то сначала нужно выбрать этот рисунок. Это осуществляется кликом мышкой на стрелке вправо в верхнем правом углу PictureBox, как показано на рисунке 4.

Рис. 4. Выбор меню задач PictureBox

В меню задач PictureBox выбирается команда «Choose Image…». В результате откроется стандартное окно Windows «Open», в котором нужно задать файл рисунка, который содержит формулу.

В нашем случае файл с формулой можно взять здесь. Этот файл был подготовлен раньше с помощью графического редактора.

После выбора файла рисунка форма приложения будет иметь вид, как показано на рисунке 5.

Рис. 5. Форма приложения после загрузки файла рисунка

Как видно из рисунка 5 отображается только часть формулы. Чтобы поправить ситуацию нужно выполнить следующие действия:

  • активировать (выделить) элемент управления PictureBox;
  • с помощью мышки увеличить ширину окна PictureBox;
  • свойство SizeMode установить в значение StretchImage (масштабирование) как показано на рисунке 6.

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

Рис. 6. Форма приложения после настройки и свойство SizeMode

 

3. Добавление текста функции к программному коду

3.1. Добавление текста функции в модуль Form1.h

Функция вычисления выражения может размещаться в модуле «Form1.h» (не обязательно). Пусть эта функция называется Calc. В соответствии с условием задачи и соображений, функция должна получать один параметр целого типа. Результат работы функции есть вещественное число. Поэтому, функция будет возвращать значение типа double.

Поскольку, вся работа выполняется в одной форме, то и реализация тела функции будет внутри кода класса Form1.

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

// реализация функции Calc
double Calc(int a)
{
    double res, t;
    t = (double)a;
    res = (Math::Sqrt(t)+t)/2.0;
    return res;
}

В теле функции используется функция Sqrt(), которая вычисляет корень квадратный.

 

3.2. Текст модуля «Form1.h» главной формы программы

На данный момент текст класса Form1 в сокращенном виде следующий:

#pragma once

namespace MyApp01 {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    /// <summary>
    /// Summary for Form1
    /// </summary>

    public ref class Form1 : public System::Windows::Forms::Form
    {
        public:
        Form1(void)
        {
            ...
        }

        protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~Form1()
        {
            ...
        }

        private: System::Windows::Forms::Button^ button1;
        protected:
        private: System::Windows::Forms::Label^ label1;
        private: System::Windows::Forms::PictureBox^ pictureBox1;
        private: System::Windows::Forms::Label^ label2;

        private:
        /// <summary>
        /// Required designer variable.
        /// </summary>
        System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
            ...
        }
#pragma endregion

        // реализация функции Calc
        double Calc(int a)
        {
            double res, t;
            t = (double)a;
            res = (Math::Sqrt(t)+t)/2.0;
            return res;
        }
    };
}

 

4. Программирование обработчика события клика на кнопке «Вычислить»

Последний этап разработки программы, это программирование события Click клика на кнопке «Вычислить». Пример программирования события клика на кнопке подробно описывается в теме:

В нашем случае, обработчик события будет иметь следующий вид:

private: System::Void button1_Click(System::Object sender, System::EventArgs e)
{
    // вычисление
    double x;

    x = Calc(6) + Calc(13) + Calc(22); // вызов функции

    label2->Text = "Результат = " + x.ToString();
}

 

5. Запуск программы

Теперь можно запускать программу на выполнение. На рисунке 7 изображен результат выполнения программы

Рис. 7. Выполнение программы

 


Связанные темы