Работа с элементами управления 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Работа с элементами управления



При добавлении элемента управления из Toolbox на форму в класс формы добавляются соответствующие поля данных.

private: System::Windows::Forms::Button^ button1; protected:   private: /// <summary> /// Required designer variable. /// </summary> System::ComponentModel::Container ^components;  

 

Если же мы какие-либо элементы впишем в код собственноручно, то они будут отображены на форме в дизайнере. Свойства полей данных формы могут быть считаны или изменены в процессе выполнения программы. Все свойства или установки обработчиков событий, сделанные программистом в дизайнере формы или в окне Properties, записываются в код метода private void InitializeComponent().

Все обработчики событий формы являются ее методами. Любому обработчику событий передаются два параметра: объект, вызвавший событие и параметры этого события.

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

Параметры события являются экземпляром класса EventArgs или его потомком.

Для удобного размещения элементов управления на форме можно воспользоваться пунктами главного меню Format.

Для динамического изменения размеров двух соседних элементов управления имеется элемент Splitter.

Меню

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

 

 

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

private void InitializeComponent().

private System.Windows.Forms.MenuStrip menuStrip1;

private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;

private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;

private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3;

private System.Windows.Forms.ToolStripComboBox toolStripComboBox1;

 

Для создания обработчика выбора пункта меню необходимо дважды щелкнуть на этом пункте меню в дизайнере формы.

private void toolStripMenuItem2_Click(object sender, EventArgs e)

 


Лабораторная работа № 24. Создание Windows-приложений на платформе Microsoft.Net C++

Цель работы:

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

Задания

Общая часть задания: написать Windows-приложение, заголовок главного окна которого содержит Ф. И. О., группу и номер варианта. В программе должна быть предусмотрена обработка исключений, возникающих из-за ошибочного ввода пользователя

Вариант 1

Создать меню с командами Input, Calc и Exit. При выборе команды Input открывается диалоговое окно, содержащее: три поля типа TextBox для ввода длин трех сторон треугольника; группу из двух флажков (Периметр и Площадь) типа CheckBox; кнопку типа Button. Обеспечить возможность: ввода длин трех сторон треугольника; выбора режима с помощью флажков: подсчет периметра и/или площади треугольника. При выборе команды Calc открывается диалоговое окно с результатами. При выборе команды Exit приложение завершается.

Вариант 2

Создать меню с командами Size, Color, Paint, Quit. Команда Paint недоступна. При выборе команды Quit приложение завершается. При выборе команды Size открывается диалоговое окно, содержащее:

· два поля типа TextBox для ввода длин сторон прямоугольника;

· группу из трех флажков (Red, Green, Blue) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность:

· ввода длин сторон прямоугольника в пикселах в поля ввода;

· выбора его цвета с помощью флажков.

После задания параметров команда Paint становится доступной. При выборе команды Paint в главном окне приложения выводится прямоуголь­ник заданного размера и сочетания цветов или выдается сообщение, если вве­денные размеры превышают размер окна.

Вариант 3

Создать меню с командами Input, Work, Exit.

При выборе команды Exit приложение завершает работу. При выборе команды Input открывается диалоговое окно, содержащее:

· три поля ввода типа TextBox с метками Radius, Height, Density;

· группу из двух флажков (Volume, Mass) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность:

· ввода радиуса, высоты и плотности конуса;

· выбора режима с помощью флажков: подсчет объема и/или массы конуса.

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

Вариант 4

Создать меню с командами Input, Calc, Draw, Exit.

При выборе команды Exit приложение завершает работу. При выборе команды Input открывается диалоговое окно, содержащее:

· поле ввода типа TextBox с меткой Radius;

· группу из двух флажков (Square, Length) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность:

· ввода радиуса окружности;

· выбора режима с помощью флажков: подсчет площади круга (Square) и/или длины окружности (Length).

При выборе команды Calc открывается окно сообщений с результатами. При вы­боре команды Draw в центре главного окна выводится круг введенного радиуса или выдается сообщение, что рисование невозможно (если диаметр превышает размеры рабочей области).

Вариант 5

Создать меню с командами input, Calc, About.

При выборе команды About открывается окно с информацией о разработчике. При выборе команды Input открывается диалоговое окно, содержащее:

· три поля ввода типа TextBox с метками Number 1, Number 2, Number 3;

· группу из двух флажков (Summ, Least multiple) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность ввода трех чисел и выбора режима вычислений с помо­щью флажков: подсчет суммы трех чисел (Summ) и/или наименьшего общего кратного двух первых чисел (Least multiple). При выборе команды Calc открыва­ется диалоговое окно с результатами.

Вариант 6

Создать меню с командами Input, Calc, Quit.

Команда Calc недоступна. При выборе команды Quit приложение завершается. При выборе команды Input открывается диалоговое окно, содержащее:

· два поля ввода типа TextBox с метками Number 1, Number 2;

· группу из трех флажков (Summa, Max divisor, Multiply) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность:

· ввода двух чисел;

· выбора режима вычислений с помощью флажков (можно вычислять в любой комбинации такие величины, как сумма, наибольший общий делитель и про­изведение двух чисел).

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

Вариант 7

Создать меню с командами Begin, Help, About.

При выборе команды About открывается окно с информацией о разработчике. При выборе команды Begin открывается диалоговое окно, содержащее:

· поле ввода типа TextBox с меткой input;

· метку типа Label для вывода результата;

· группу из трех переключателей (2, 8, 16) типа RadioButton;

· две кнопки типа Button — Do и ОК.

Обеспечить возможность:

· ввода числа в десятичной системе в поле input;

· выбора режима преобразования с помощью переключателей: перевод в дво­ичную, восьмеричную или шестнадцатеричную систему счисления.

При щелчке на кнопке Do должен появляться результат перевода.

Вариант 8

Создать меню с командами Input color, Change, Exit, Help.

При выборе команды Exit приложение завершает работу. При выборе команды Input color открывается диалоговое окно, содержащее:

· три поля ввода типа TextBox с метками Red, Green, Blue;

· группу из двух флажков (Left, Right) типа CheckBox;

· кнопку типа Button.

Обеспечить возможность ввода RGB-составляющих цвета. При выборе команды Change цвет главного окна изменяется на заданный (левая, правая или обе поло­вины окна в зависимости от установки флажков).

Вариант 9

Создать меню с командами Input size, Choose, Change, Exit.

При выборе команды Exit приложение завершает работу. Команда Change недос­тупна. При выборе команды Input size открывается диалоговое окно, содержащее:

· два поля ввода типа TextBox с метками Size х, Size у;

· кнопку типа Button.

При выборе команды Choose открывается диалоговое окно, содержащее:

· группу из двух переключателей (Increase, Decrease) типа RadloButton;

· кнопку типа Button.

Обеспечить возможность ввода значений в поля Size х и Size у. Значения интерпре­тируются как количество пикселов, на которое надо изменить размеры главного окна (увеличить или уменьшить в зависимости от положения переключателей).

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

Вариант 10

Создать меню с командами Begin, Work, About.

При выборе команды About открывается окно с информацией о разработчике. При выборе команды Begin открывается диалоговое окно, содержащее:

· поле ввода типа TextBox с меткой Input word;

· группу из двух переключателей (Upper case, Lower case) типа RadioButton;

· кнопку типа Button.

Обеспечить возможность ввода слова и выбора режима перевода в верхний или нижний регистр в зависимости от положения переключателей. При выборе ко­манды Work открывается диалоговое окно с результатом перевода.

Вариант 11

Создать меню с командами Input color, Change, Clear.

При выборе команды Input color открывается диалоговое окно, содержащее:

· группу из двух флажков (Up, Down) типа CheckBox;

· группу из трех переключателей (Red, Green, Blue) типа RadioButton;

· кнопку типа Button.

Обеспечить возможность:

· выбора цвета с помощью переключателей;

· ввода режима, определяющего, какая область закрашивается: все окно, его верхняя или нижняя половина.

При выборе команды Change цвет главного окна изменяется на заданный (верх­няя, нижняя или обе половины в зависимости от введенного режима). При вы­боре команды Clear восстанавливается первоначальный цвет окна.

Вариант 12

Создать меню с командами Translate, Help, About, Exit.

При выборе команды Exit приложение завершает работу. При выборе команды Translate открывается диалоговое окно, содержащее:

· поле ввода типа TextBox с меткой Binary number;

· поле ввода типа TextBox для вывода результата (read-only);

· группу из трех переключателей (8, 10, 16) типа RadioButton;

· кнопку Do типа Button.

Обеспечить возможность:

· ввода числа в двоичной системе в поле Binary number;

· выбора режима преобразования с помощью переключателей: перевод в вось­меричную, десятичную или шестнадцатеричную систему счисления.

При щелчке на кнопке Do должен появляться результат перевода.

Вариант 13

Создать меню с командами Reverse, About, Exit.

При выборе команды About открывается окно с информацией о разработчике. При выборе команды Reverse открывается диалоговое окно, содержащее:

· поле ввода типа TextBox с меткой Input;

· группу из двух переключателей (Upper case, Reverse) типа CheckBox;

· кнопку ОК типа Button.

Обеспечить возможность ввода фразы и выбора режима: перевод в верхний регистр и/или изменение порядка следования символов на обратный в зависи­мости от состояния переключателей. Результат преобразования выводится в ис­ходное поле ввода.

Вариант 14

Создать меню с командами Input, Show и Exit.

При выборе команды Exit приложение завершает работу. При выборе команды Input открывается диалоговое окно вида:

Обеспечивается возможность ввода координат двух точек и выбора режима с по­мощью флажков length и koef: подсчет длины отрезка, соединяющего эти точки, и/или углового коэффициента.

При выборе команды Show открывается окно сообщений с результатами под­счета.

Вариант 15

Создать меню с командами Input, About и Exit.

При выборе команды Exit приложение завершает работу. При выборе команды About открывается окно с информацией о разработчике. При выборе команды Input открывается диалоговое окно вида:

 

Обеспечивается возможность ввода суммы в рублях и перевода ее в евро и долла­ры по обычному или льготному курсу. Поля Euro и $ доступны только для чтения.

Вариант 16

Создать меню с командами Begin, Work, About.

При выборе команды About открывается окно с информацией о разработчике. При выборе команды Begin открывается диалоговое окно, содержащее:

· два поля ввода типа TextBox;

· группу из двух переключателей (First letter, All letters) типа RadioButton;

· кнопку типа Button.

Обеспечить возможность ввода предложения и выбора режима его преобразова­ния: либо начинать с прописной буквы каждое слово (First letter), либо перевести все буквы в верхний регистр (All letters). При выборе команды Work открывается диалоговое окно с результатом преобразования.

Вариант 17

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

Создать следующую систему меню:

Файл

· Загрузить текст

· Выход

Анализ

· Количество слов

· Повторяемость буквы

При выборе файла для загрузки использовать объект типа OpenFileDialog. При выборе команды Количество слов программа должна вывести в окно сообщений количество слов в тексте.

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

Вариант 18

Создать редактор текстовых файлов с возможностью сохранения текста в фор­мате HTML. Создать следующую систему меню:

Файл

· Загрузить текст

· Сохранить как текст

· Сохранить как HTML

Выход

При выборе файла для загрузки использовать объект OpenFi leDialog. При выборе файла для сохранения использовать объект SaveFileDlalog. Для редактирования текста использовать объект Memo.

При сохранении текста в формате HTML текст записывать в файл с заменой:

· всех пробелов на символы &nbsp;;

· всех символов перевода строки на символы <BR>;

· всех символов < на символы &lt;;

· всех символов > На символы &gt:;

· всех символов & на символы &атр;;

· всех символов " (двойные кавычки) на символы Squot;.

Вариант 19

Создать меню с командами Input, Draw, Clear.

При выборе команды Input открывается диалоговое окно, содержащее:

· четыре поля для ввода координат двух точек;

· группу из трех переключателей (Red, Green, Blue) типа RadioButton;

· кнопку типа Button.

При выборе команды Draw в главное окно выводится отрезок прямой выбранно­го цвета с координатами концов отрезка, заданными в диалоговом окне. При вы­боре команды Clear отрезок стирается.

Вариант 20

Создать меню с командами Input, Change, Exit.

При выборе команды Exit приложение завершает работу. Команда Change недос­тупна. В центре главного окна выведен квадрат размером 10 0 х 10 0 пикселов. При выборе команды Input открывается диалоговое окно, содержащее:

· два поля ввода типа TextBox с метками Size х, Size у;

· группу из двух переключателей (Increase, Decrease) типа RadioButton;

· кнопку типа Button.

Обеспечить возможность ввода значений в поля Size х и Size у. Значения интер­претируются как количество пикселов, на которое надо изменить размеры квад­рата, выведенного в главное окно (увеличить или уменьшить в зависимости от положения переключателей).

После ввода значений команда Change становится доступной. При выборе этой команды размеры квадрата увеличиваются или уменьшаются на введенное коли­чество пикселов. Если квадрат выходит за пределы рабочей области окна, выда­ется сообщение.

Вариант 21

Написать Windows-приложение, которое по заданным в файле исходным дан­ным выводит информацию о компьютерах.

Создать меню с командами Choose, Show, Quit.

Команда Show недоступна. Команда Quit завершает работу приложения.

При запуске приложения из файла читаются исходные данные. Файл необходи­мо сформировать самостоятельно. Каждая строка файла содержит тип компью­тера, цену (price) и емкость жесткого диска (hard drive).

При выборе команды Choose открывается диалоговое окно, содержащее:

· поле типа TextBox для ввода минимальной емкости диска;

· поле типа TextBox для ввода максимальной приемлемой цены;

· группу из двух переключателей (Hard drive, Price) типа RadioButton;

· OK, Cancel — кнопки типа Button.

После ввода всех данных команда меню Show становится доступной. Команда Show открывает диалоговое окно, содержащее список компьютеров, удовле­творяющий введенным ограничениям и упорядоченный по отмеченной харак­теристике.

Из выбранного файла читаются исходные данные для сортировки (сформировать самостоятельно не менее трех файлов различной длины с данными целого типа).

После чтения данных становится доступной команда Animate.

При выборе команды Animate в главном окне приложения отображается процесс сортировки в виде столбиковой диаграммы. Каждый элемент представляется столбиком соответствующего размера. На каждом шаге алгоритма два элемента меняются местами. Окно должно содержать заголовок. Изображение должно за­нимать все окно.

Из выбранного файла читаются исходные данные для сортировки (сформировать самостоятельно не менее трех файлов различной длины с данными целого типа).

После чтения данных становится доступной команда Animate.

При выборе команды Animate в главном окне приложения отображается процесс сортировки в виде столбиковой диаграммы. Каждый элемент представляется столбиком соответствующего размера. На каждом шаге алгоритма два элемента меняются местами. Окно должно содержать заголовок. Изображение должно за­нимать все окно.

Содержание отчета

1) Титульный лист.

2) Наименование и цель работы.

3) Краткое теоретическое описание.

4) Задание на лабораторную работу.

5) Листинг программы.

6) Результаты выполнения программы.

 


 

Приложение. Примеры создания Windows-приложений на платформе Microsoft.Net C++

Пример 1.

Задание: Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX.

 

 

где a, b, с — действительные числа.

Функция F должна принимать действительное значение, если выражение Ац И (Вц ИЛИ Сц) не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены целые части значений a, b, с, операции И и ИЛИ — поразрядные. Значения a, b, с, Хнач., Хкон., dX ввести с клавиатуры.

Отличием программирования с использованием Windows Form, является то, что оно облегчает труд программиста в разработке дружественного интерфейса программы с пользователем, так как весь дизайн формы можно почти полностью реализовать в самой среде разработки, таким образом программисту не придется писать код для интерфейса программы, это все за него сделает среда разработки, ему необходимо только расставить необходимые для работы программы, компоненты (кнопки, поля ввода(TextBox), CheckBox, и т.д.) на форме, так как он сам посчитает, как должно выглядеть его программа.

1) Создаем проект программы, для этого запускаем среду Visual C++ 2008 и в меню выбираем File | New | Project…

 

2) Выбираем тип проекта Visual C++ | CLR | Windows Form Application

3) И в поле Name вводим имя проекта, например «Lab2» и нажимаем ОК.

Таким образом мы получаем заготовку проекта программы.

4) Разместим на форме 6 полей ввода(TextBox) для того, чтобы ввести начальные значения a, b, с, Хнач., Хкон., dX и одно поле для вывода результата (TextBox), а также 7 полей надписей (Label) для подписи предназначения полей ввода и вывода результата и одна кнопка (Button) для запуска выполнения расчета и вывода результата в поле ввода. Для этого в меню View выбираем Toolbox, потом в нем нажимаем на для того, чтобы закрепить его на форме, чтобы он не убирался с экрана, после отвода курсора мыши с Toolbox’ а, далее раскрываем список Common controls и нажимаем на TextBox и перетаскиваем его на форму, где мы хотим поставить этот элемент, и повторяем это 7 раз.

Потом нажимаем Label и перетаскиваем его на форму рядом с TextBox слева и повторяем это 7 раз.

Далее подписываем эти Label следующими текстами: a, b, с, Хнач., Хкон., dX, Результат. Для щелкаем на Label1 и нажимает Alt+Enter и в свойстве Text пишем «a» и нажимаем Enter, и так для всех Label’ов подписываем соответствующими значениями (b, с, Хнач., Хкон., dX, Результат).

Для TextBox7, где результатустанавливаем также следующие свойства:

ScrollBars: Vertical

MultiLine: True

и изменяем его размер как показано на рисунке

Далее ставим на форму кнопку (Button) и в его свойствах (Alt+Enter) в поле Text подписываем «Выполнить расчет».

Далее двойным щелчком мыши на кнопке «Выполнить расчет» создаем обработчик собития на щелчок на этой кнопке и прописываем код программы для решения задачи в этом обработчике, т.е. внутри блока {}:

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

}

 

Записываем вне блоков функцию для вычисления факториала F()

float F(float a, float b, float c, float x){

if ((b<0) && (c!= 0))return a*x*x + c*x;

else if ((b>0) && (c == 0))return (b - a) / (x - c);

else return a*(x + c + b);

}

и далее заполняем обработчик нажатия кнопки следующим образом:

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

float xn, xk, dx, a, b, c, y;

int Ac, Bc, Cc;

a = a.Parse(textBox1->Text);

b = b.Parse(textBox2->Text);

c = c.Parse(textBox3->Text);

xn = xn.Parse(textBox4->Text);

xk = xk.Parse(textBox5->Text);

dx = dx.Parse(textBox6->Text);

 

double t = 0.0;

modf(a, &t); //функция modf(double, double*) возвращает в t целую часть a

Ac = int(t); //приводим t к типу int и заносим в Ac

modf(b, &t); Bc = int(t);

modf(c, &t); Cc = int(t);

textBox7->AppendText("| X | Y |" + Environment::NewLine);

for (float x = xn; x <= xk; x += dx){

y = F(a, b, c, x);

if ((Ac&(Bc | Cc)) == 0)

{

modf(y, &t);

y = float(t);

}

textBox7->AppendText("| " + x.ToString() + " | " + y.ToString() + Environment::NewLine);

}

}

};

 

Пример 2.

Дана последовательность целых чисел, за которой следует 0. Найти сумму этой последовательности умноженное на количество чисел в этой последовательности без нуля.

Решение

1) Создаем проект программы, для этого запускаем среду Visual C++ 2008 и в меню выбираем File | New | Project…

2) Выбираем тип проекта Visual C++ | CLR | Windows Form Application

3) И в поле Name вводим имя проекта, например «Lab2_2_win» и нажимаем ОК.

Таким образом мы получаем заготовку проекта программы.

Создаем форму представленную на рис. 2.2.1.

Создаем обработчик на нажатие кнопки:

(правой кнопкой мыши щелкаем на кнопке и выбираем Properties;

в открывшемся окне нажимаем на следующую кнопку ;

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

 

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

int x, y, s = 0, n = 0, pos = 0, pos1 = 0;

textBox1->Text = textBox1->Text->Trim(); /*Удаляет все начальные и конечные знаки пробела из

текущего объекта textBox1->Text */

 

/*заменяем все двойные пробелы в тексте одинарным пробелом */

while (textBox1->Text!= textBox1->Text->Replace(" ", " "))

textBox1->Text = textBox1->Text->Replace(" ", " ");

 

/*добавляет в конец строки пробел, т.к. начало и конец чисел будем определять по наличию пробела перед числом и после числа, так будем определять местоположение следующего числа в строке и извлекать эту подстроку из строки */

textBox1->Text += " ";

 

/*Возвращает индекс первого вхождения указанного знака Юникода в данной строке. Поиск начинается с указанной позиции знака. */

pos1 = textBox1->Text->IndexOf(" ", pos);

 

/*Преобразуем строковое представление числа в эквивалентное ему 32-битовое целое число со знаком. */

x = x.Parse(textBox1->Text->Substring(pos, pos1 - pos));

pos = pos1;

// Пока следующее число не равно нулю

while (x!= 0){

pos1 = textBox1->Text->IndexOf(" ", pos + 1);

s += x; //подсчет суммы чисел

n++; //подсчет количества чисел

if (pos1!= -1)

x = x.Parse(textBox1->Text->Substring(pos, pos1 - pos));

else x = 0;

pos = pos1;

}

s *= n;

textBox2->Text = s.ToString() + ", Кол-во чисел: " + n.ToString();

}

Программа готова, можно запустить ее и проверить.


Работа с базой данных

Краткая теория



Поделиться:


Последнее изменение этой страницы: 2016-12-11; просмотров: 1704; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.221.52 (0.194 с.)