Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 13

Ввод значений в окно формы

30.05.2014, 14:06. Показов 5910. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь с идеей, как реализовать в visual c++ 2010 express форму, которая будет выдавать решение задачи:
Дана последовательность из N чисел, найти сумму минимального и максимального значения.
Если решать эту задачу в консольном приложении, то рабочий код выглядит вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    // количество элементов последовательности
    int count;
 
    // буфер для ввода числа
    int buf;
 
    // минимальное и максимальное значение
    int min;
    int max;
 
    cout << "Enter length of sequence (n): ";
    cin >> count;
 
    if (count <= 0) {
        cerr << "count must be > 0" << endl;
        exit(1);
    }
 
    cout << "Enter " << count << " integer values.\n\n";
 
    for (int i = 0; i < count; i++) {
        cin >> buf;
        if (i == 0) {
            // Начальные значение максимума и миниумума
            min = buf;
            max = buf;
            continue;
        }
        if (buf > max) {
            max = buf;
        }
        if (buf < min) {
            min = buf;
        }
    }
 
    cout << "\nMax: " << max << ", Min: " << min << "\n";
    cout << "Sum: " << min + max << endl;
 
    return 0;
}
но в консольном приложении мы вводим значения оператором cin с клавиатуры и нажимаем "ввод" после каждого значения, в форме, переменной присваивается значение, введенное в поле оператором n=System::Convert::ToInt32 (textBox1->Text); и остается в форме до окончания вычисления.
Нужно для каждого значения последовательности делать отдельное поле или можно как-то ввести все элементы последовательности в одно поле формы? Я не нашел такого оператора.
Или может в зависимости от значения N должно появляться столько же полей для ввода. А если введут значение N равное 99... то 99 полей появиться должно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2014, 14:06
Ответы с готовыми решениями:

Ввод значений в БД из формы
Здравствуйте! Расскажите пожалуйста, что нужно сделать для того, чтобы через форму C# данные попадали в SQL server. Раньше программировала...

Ввод собственных значений в поля формы в WORD
Привет всем. У меня такой вопрос: при создании формы в WODR (элементы с панели формы) там есть элемент поле со списком. Там можно выбрать...

Как закрыть окно формы и открыть окно другой
Код такой. Нужно по нажатии кнопки закрыть форму 1 и открыть форму 2... но, что-то так не работает private void button2_Click(object...

2
3 / 3 / 2
Регистрация: 23.12.2013
Сообщений: 26
30.05.2014, 16:32
Цитата Сообщение от ShalomAmigo Посмотреть сообщение
но в консольном приложении мы вводим значения оператором cin с клавиатуры и нажимаем "ввод" после каждого значения, в форме, переменной присваивается значение, введенное в поле оператором n=System::Convert::ToInt32 (textBox1->Text); и остается в форме до окончания вычисления.
Нужно для каждого значения последовательности делать отдельное поле или можно как-то ввести все элементы последовательности в одно поле формы? Я не нашел такого оператора.
Или может в зависимости от значения N должно появляться столько же полей для ввода. А если введут значение N равное 99... то 99 полей появиться должно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//метод добавления первого(минимального) и последнего(максимального) значения из отсортированного массива
private: void append_min_max()
    {
                 //инициализируем строковый массив из значений, введенных в textBox1
                 array<String^>^ mass = textBox1->Text->Split(' '); 
                 //цикл, удаляющий все начальные и конечные вхождения пробела объектов массива
                 for each (String^ str in mass){
                     str->Trim();
                 }
                 //конвертируем все объекты массива String в другой тип, инициализируем из них новый массив
                 array<Int32>^ mass_int = Array::ConvertAll(mass, gcnew Converter<String^, Int32>(Int32::Parse));
                 //сортируем новый массив
                 Array::Sort(mass_int);
                 //1 вариант добавления строки в textBox2 первого(mass_int->GetValue(0) и последнего (mass_int->Length - 1) элементов нового массива
                 textBox2->Text = "Мин. элемент= " + mass_int->GetValue(0) + " " + "Макс. элемент= " + mass_int->GetValue(mass_int->Length - 1);
                 //2 вариант добавляения строки в textBox2 первого(mass_int->GetValue(mass_int->LowerBound(0)) и последнего mass_int->GetValue(mass_int->GetUpperBound(0)) элементов нового массива
                 //textBox2->Text = "Мин. элемент= " + mass_int->GetValue(mass_int->LowerBound(0)) + " " + "Макс. элемент= " + mass_int->GetValue(mass_int->GetUpperBound(0));
    }
C++
1
2
3
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
             append_min_max();
}
Добавлено через 8 минут
Для отображения подсказки в textBox1:
Параметр в инициализации textBox1: this->textBox1-> = L"Введите последовательные значения";
Эвенты textBox1:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private: System::Void textBox1_Enter(System::Object^  sender, System::EventArgs^  e) {
                 if (textBox1->Text != String::Empty && textBox1->Text != "Введите последовательные значения")
                 { 
                     textBox1->ForeColor = System::Drawing::SystemColors::WindowText;
                     textBox1->Select(textBox1->Text->Length, 0);
                 }
                 else {
                     textBox1->ForeColor = System::Drawing::SystemColors::WindowText;
                     textBox1->Text = nullptr;
                 }
    }
    private: System::Void textBox1_Leave(System::Object^  sender, System::EventArgs^  e) {
                 if (textBox1->Text == nullptr)
                     textBox1->Text == "Введите последовательные значения";
                 textBox1->ForeColor = System::Drawing::SystemColors::ControlDark;
                 textBox1->Select(0, 0);
    }
Если нужно, могу выслать готовый проект.
0
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 13
30.05.2014, 16:59  [ТС]
Спасибо, пойду разбираться.
Мне же еще все это рассказывать, надо понять
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2014, 16:59
Помогаю со студенческими работами здесь

Ввод размера матрицы и ввод ее значений
Нужно что бы выводилось (это не проблема) окно в котором вводилось размерность матрицы ну например 2 на 2 и в соответствии с вводимыми...

Ввод в другое окно
Здравствуйте,нужна помощь пишу программу чтобы заполняла логин и пароль в в steam приложений но возникли проблемы нашел через spy++ handle...

Ввод текста в чужое окно
Программой из делфи необходимо ввести текст в окно которое я показал красной стрелкой. Заголовок окна я еще могу менять а вот то что...

Ввод текста в чужое окно
Подскажите как реализовать вот например нахожу калькулятор HWND H = FindWindow(&quot;SciCalc&quot;, &quot;Калькулятор&quot;); if (H ==...

Ввод данных в окно стороннего приложения
В инете искал но не нашел работающего кода. Private Declare Function FindWindow Lib &quot;user32&quot; Alias &quot;FindWindowA&quot; (ByVal...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru