Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2020-01-13 | 271 |
5.00
из
|
Заказать работу |
|
|
Метод MessageBox::Show имеет несколько параметров, которые описываются в круглых скобках и перечисляются через запятую. В предыдущих примерах у MessageBox.Show мы использовали только один параметр string message (текст сообщения):
MessageBox::Show("Привет, " + comboBox1->Text + "\n" + "Вход выполнен");
и
MessageBox::Show("Неверный пароль");
Параметры MessageBox.Show
string message – текст сообщения;
string caption – заголовок окна;
MessageBoxButtons – кнопки, расположенные в окне;
MessageBoxIcon – значок, расположенный в окне;
MessageBoxDefaultButton – кнопка по умолчанию;
MessageBoxOptions – дополнительные параметры.
Большинство диалоговых окон используют несколько параметров MessageBox::Show (рисунок 25).
Рисунок 25 – Элементы диалогового окна
С учетом параметров MessageBox::Show доработаем приложение «Идентификация пользователя» (см. п.3.1- 3.2).
1 Создадим заголовок для окон, например, "Вход в систему". Для этого добавляем второй параметр в MessageBox.Show:
MessageBox::Show("Привет, " + comboBox1->Text + "\n" + "Вход выполнен", "Вход в систему");
и
MessageBox::Show("Неверный пароль", "Вход в систему");
2 Определим на первом окне две кнопки – Ok и Отмена, на втором - только Ok. Для этого добавляем третий параметр MessageBoxButtons:
MessageBox::Show("Привет, " + comboBox1->Text + "\n" + "Вход выполнен", "Вход в систему", MessageBoxButtons::OKCancel);
и
MessageBox::Show("Неверный пароль","Вход в систему", MessageBoxButtons::OK);
3 Добавим на окна значки. Т.к. первое окно соответствует сообщению о прохождении идентификации, то в качестве значка можно выбрать Information Т.к. второе окно соответствует сообщению об ошибке, то в качестве значка можно выбрать Error:
MessageBox::Show("Привет, " + comboBox1->Text + "\n" + "Вход выполнен", "Вход в систему",MessageBoxButtons::OKCancel,MessageBoxIcon::Information);
|
и
MessageBox::Show("Неверный пароль","Вход в систему", MessageBoxButtons::OK,MessageBoxIcon::Error);
4 Запускаем программу на выполнение (рисунки 26, 27).
Рисунок 26 – Окна до изменения параметров MessageBox::Show
Рисунок 27 – Окна после изменения параметров MessageBox::Show
Анализ кода
Среда Visual C++ реализует объектно-ориентированное программирование. Формы создаются на базе класса управления System, а именно класса System.Windows.Forms.
Обзор классов осуществляется нажатие на кнопку Object Browser (рисунки 28, 29).
Рисунок 28 – Обзор объектов
Рисунок 29 –Классы
Рассмотрим код приложения «Идентификация пользователя»
1 Откроем код приложения «Идентификация пользователя».
2 Программа начинается с описания пространства имен:
Команда using позволяет сослаться на классы в пакетах System, System.WinForms и System.Drawing и др.
3 Наше приложение состоит из одного класса Form1:
public ref class Form1: public System::Windows::Forms::Form
4 Для каждого элемента управления, расположенного на форме, дизайнер форм создает по одному полю соответствующего класса:
Эти поля хранят ссылки, необходимые для выполнения всех операций с элементами управления формы.
5 Для инициализации приложения конструктор класса Form1 вызывает метод InitializeComponent:
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
…
…
this->PerformLayout();
}
Этот метод создает и инициализирует все элементы управления формы, а также задает их размеры и расположение в окне.
Когда все элементы управления созданы, необходимо их проинициализировать и разместить в окне формы. На время выполнения этой операции метод InitializeComponent отключает на время механизм генерации сообщений, связанных с размещением элементов в окне формы:
this->PerformLayout();
6 Далее следуют обработчики событий для элементов управления, размещенных на форме (двойной щелчок на элементе управления).
Обработчик события Click (щелчок) для кнопки button1:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
…
|
}
Обработчик события Click (щелчок) для кнопки button2:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
textBox2->Clear();
}
Обработчик события Click (щелчок) для кнопки button3:
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
{
Close();
}
Расчетные формы
Создание расчетной формы
Создадим оконное приложение для расчета амортизационных отчислений по формуле
где S 0 – начальная стоимость имущества, SN – остаточная стоимость имущества, N – срок эксплуатации.
1 Создаем форму с тремя полями textBox1, textBox2, textBox3;
С пятью метками label1 – label5 и одной кнопкой (рисунок 30).
Рисунок 30 – Форма
Ответ поместим в label5, поэтому надпись label5 удаляем.
2 Дважды щелкаем по кнопке Ok и в текущее положение курсора вставляем строки
int s0=Convert::ToInt32(textBox1->Text);
int sN=Convert::ToInt32(textBox2->Text);
int N=Convert::ToInt32(textBox3->Text);
float a;
a=(s0-sN)/N;
label5->Text=Convert::ToString(a);
Команда Convert::ToInt32 преобразует текст, введенный в поля textBox1, textBox2, textBox3 в целочисленный формат, т.к. данные введенные в текстовые поля воспринимаются только как текст, и, следовательно, арифметические действия невозможны.
Команда Convert::ToString(a); преобразует числовой результат a в строковый (String).
3 Выполним тестирование программы. Определим ежегодные амортизационные отчисления на оборудование начальной стоимостью 3 млн. руб., сроком эксплуатации 10 лет и остаточной стоимостью 500 тыс. руб. (рисунок 31).
Рисунок 31 – Результат расчета
Создание простейшего меню
Создадим простейшее меню для приложения предыдущего примера.
Перетаскиваем управляющий элемент MenuStrip на форму приложения (рисунок 32).
Рисунок 32 – Добавление управляющего элемента MenuStrip на форму
Создаем выпадающее меню Файл с несколькими пунктами (рисунок 33).
Рисунок 33 – Создание меню
Сделаем активным простейший пункт – Выход. Дважды щелкаем на пункте Выход, чтобы добавить код:
Close();
Программу можно совершенствовать: например, предусмотреть экспорт результата в другое приложение, импорт исходных даннях; можно сделать так, что каждый раз, когда пользователь попытается закрыть приложение, приложение будет его спрашивать, действительно ли он хочет выйти и т.д.
7 Практическое задание
Создать оконное приложение имитирующее расчетный листок работника некоторого предприятия за текущий месяц работы.
1 Создаем форму с шестью полями textBox1 – textBox6; с двадцатью метками label1 – label20 и одной кнопкой (рисунок 34)
|
Рисунок 34 - Создание формы
Ответы поместим в label14- label20, поэтому надписи label14-label20 удаляем.
2 Дважды щелкаем по кнопке Ok и в текущее положение курсора вставляем строки
int vrem=Convert::ToInt32(textBox2->Text);
int dn=Convert::ToInt32(textBox3->Text);
int kv_k=Convert::ToInt32(textBox4->Text);
int oplata=Convert::ToInt32(textBox5->Text);
float zarp,prem,itogo,pf,prof,avans,k_v;
zarp=vrem*dn*kv_k*oplata;
if(textBox6->Text=="да")
prem=zarp*0.04;
else
prem=0;
itogo=zarp+prem;
pf=itogo*0.13;
prof=itogo*0.01;
avans=(itogo-pf-prof)*0.6;
k_v=itogo-avans-pf-prof;
label14->Text=Convert::ToString(zarp);
label15->Text=Convert::ToString(prem);
label16->Text=Convert::ToString(itogo);
label17->Text=Convert::ToString(pf);
label18->Text=Convert::ToString(prof);
label19->Text=Convert::ToString(avans);
label20->Text=Convert::ToString(k_v);
3 Выполним тестирование программы.
Рисунок 35 - Тестирование
|
|
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!