Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78

Перезапись консольной программы в оконную

18.10.2011, 13:34. Показов 3478. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я написал программку на С++. Но она консольная. Хочу сделать её оконной. Если не ошибаюсь придется перезаписать часть кода, если не весь. Проблема в том, что не очень знаю С++ Builder. Может кто то направит меня, если напишу идею программы? Идея такова, выбор хочу реализовать с помощью радиокнопок. И сделать так, чтобы при конкретном выборе выполня лась только та часть, которая имеет отношение к выбору. Допустим при выборе вида телосложения, программа выполняла именно ту функцию, которая относится к выбранному типу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2011, 13:34
Ответы с готовыми решениями:

Адаптация консольной программы под оконную с графическим интерфесом
Здравствуйте! Имеется рабочая консольная программка. package com.company; import java.lang.String; import java.util.Scanner; ...

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

Расположение консольной программы
Как программно узнать расположение КОНСОЛЬНОЙ исполняемой программы? В гугле только оконные приложения

35
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
18.10.2011, 13:41
кидаете на форму сколько надо радиокнопок, устанавливаете им соотвествующие свойства в Инспекторе объектов, в том же Инспекторе объектов на вкладке Events делаете обработчики события клика на каждой кнопке, в атоматически созданные обработчики вписываете нужный код для каждой радиокнопки.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.10.2011, 13:57
_ и если радиокнопок достаточно много, то в Билдере есть компонент RadioGroup; потом будет меньше мороки с обработкой (Events-onClick) и дальше ItemIndex.
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
18.10.2011, 14:00  [ТС]
Спасибо. А что подразумевается под соответствующими свойствами? Типа chekhed?
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
18.10.2011, 14:03
Может стоит представить код, о котором идет речь?
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
18.10.2011, 14:04  [ТС]
С радиокнопками ясно, а как считывать данные из строк ввода в функцию? В функции надо указывать названия полей ввода?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.10.2011, 14:04
Вы определитесь, что применять. Если группа радиокнопок, то выбрана может быть только одна из группы (если без извращений). Если же выбор предполагается множественный, то предпочтительнее чекбоксы.
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
18.10.2011, 14:06
расположение, текст на нопке и пр., в т.ч., и checkedно если необходимо делать "переключатель" , т.е., чтобы была включена только одна радиокнопка из нескольких, то используйтесь советом уважаемого nick42 и используйте RadioGroup.
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
18.10.2011, 14:10  [ТС]
__bool, я бы с удовольствием, но комп не рядом, если получится, вечером выложу.

Добавлено через 3 минуты
LK,
nick42, вечером выложу код программы,посоветуете, что выбрать. Я на Билдере не писал, не имею опыта. Извините, если отнимаю ваше время
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
18.10.2011, 14:12
Цитата Сообщение от de_hack Посмотреть сообщение
Извините, если отнимаю ваше время
Да помогут вам, не волнуйтесь. Ждем код
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
20.10.2011, 19:24  [ТС]
Вот кд программы... Извините, что не написал в обещанное время..
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
#include <iostream>
#include <windows.h>
#include <conio.h>
 
using namespace std;
 
char RusShrift[1024];
 
//----------------------------------------------------------------------------//
//                                                                            //
//                        Обявление функции Rus();                            //
//              Она позволяет выводить на консоль текст на кириллице          //
//----------------------------------------------------------------------------//
 
char* Rus(const char* text)
{
      CharToOem(text, RusShrift);
      return RusShrift;
      }
     
//----------------------------------------------------------------------------//      
      
float astenic(); // прототип функции astenic()
float normal(); // прототип функции normal()
float hyperstenic(); // прототип функции hyperstenic()
int IdealWeight(); // прототип функции int IdealWeight()
float BodyWeightIndex(); // прототип функции int BodyWeightIndex()
int UserChoise(); // прототип функции UserChoise()
 
//----------------------------------------------------------------------------//
//                                                                            //
//                        Обявление функции main();                           //
//                                                                            //
//----------------------------------------------------------------------------//
 
int main()
{
UserChoise();
}
int UserChoise()
{int choise;
cout << Rus("Выберите тип калькулятора: ") << endl;
cout << Rus("1. Вычисление идеального веса.") << endl;
cout << Rus("2. Вычисление ИМТ (индекса массы тела).") << endl;
cin >> choise;
if (choise == 1)
IdealWeight();
else if (choise == 2)
BodyWeightIndex();
    }
 
//----------------------------------------------------------------------------//
//                                                                            //
//                        Обявление функции Body_Weight_Index();              //
//                                                                            //
//----------------------------------------------------------------------------//
 
float BodyWeightIndex()
{
   float weight, growth, growth_d;
   float bodyweightindex;
   
   cout << Rus("ИМТ может оказаться неверным для спортсменов, беременных") << endl;
   cout << Rus("и кормящих женщин, престарелых и подростков (до 18 лет).") << endl;
   cout << Rus("Если Вы не входите ни в одну из перечисленных категорий, ") << endl;
   cout << Rus("то для продолжения нажмите любую клавищу.") << endl;
   getch();
   cout << Rus ("Введите Ваш рост(см): ");
   cin >> growth;
   cout << Rus ("Введите Ваш вес: ");
   cin >> weight;
   growth_d = growth * 0.01;
   bodyweightindex = weight / (growth_d * growth_d);
   cout << Rus("Ваш ИМТ равен: ") << bodyweightindex;
   if (bodyweightindex < 18.5)
   cout << Rus(" У Вас дефицит массы тела.") << endl;
   else if (bodyweightindex <= 24.9)
   cout << Rus(" У Вас нормальная масса тела.") << endl;
   else if (bodyweightindex <= 29.9)
   cout << Rus(" У Вас избыточная масса тела (предожирение).") << endl;
   else if (bodyweightindex <= 34.9)
   cout << Rus(" У Вас ожирение I степени.") << endl;
   else if (bodyweightindex <= 39.9)
   cout << Rus(" У Вас ожирение II степени.") << endl;
   else
   cout << Rus(" У Вас ожирение III степени.") << endl;
   return UserChoise();
    }
 
//----------------------------------------------------------------------------//
//                                                                            //
//                        Обявление функции IdealWeight();                    //
//                                                                            //
//----------------------------------------------------------------------------//
 
int IdealWeight()
{
    
    int bodytype;
    cout << Rus("Выберите тип телосложения: ") << endl;
    cout << Rus("1. Астенический.") << endl;
    cout << Rus("2. Нормальный.") << endl;
    cout << Rus("3. Гиперстенический.") << endl;
    cin >> bodytype;
    
    while (true){
    switch (bodytype)
    {
       case 1:
            astenic();
            break;
       case 2:
            normal();
            break;
       case 3:
            hyperstenic();
            break;
           }
}
    return 0;
}
 
//----------------------------------------------------------------------------//
//                                                                            //
//                     Обявление функции astenic();                           //
//                                                                            //
//----------------------------------------------------------------------------//
 
float astenic()
{
      float ideal_weight, weight;
      int age, growth;
      
    cout << Rus("Введите Ваш рост(см): ");
    cin >> growth;
    cout << Rus("Введите Ваш возраст: ");
    cin >> age;
    cout << endl;
    if (age <= 40)
    {
      weight = growth - 110;
      ideal_weight = weight - weight * 0.1;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
      }
      else if (age > 40)
      {
      weight = growth - 100;
      ideal_weight = weight - weight * 0.1;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
           }
      return UserChoise();
      }
      
//----------------------------------------------------------------------------//
//                                                                            //
//                      Обявление функции normal();                           //
//                                                                            //
//----------------------------------------------------------------------------//    
      
      float normal()
{
      float ideal_weight, weight;
      int age, growth;
      
    cout << Rus("Введите Ваш рост(см): ");
    cin >> growth;
    cout << Rus("Введите Ваш возраст: ");
    cin >> age;
    cout << endl;
    if (age <= 40)
    {
      ideal_weight = growth - 110;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
      }
      else if (age > 40)
      {
      ideal_weight = growth - 100;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
           }
      return UserChoise();
      }
      
//----------------------------------------------------------------------------//
//                                                                            //
//                    Обявление функции hyperstenic();                        //
//                                                                            //
//----------------------------------------------------------------------------//
      
                  
float hyperstenic()
{
      float ideal_weight, weight;
      int age, growth;
      
    cout << Rus("Введите Ваш рост(см): ");
    cin >> growth;
    cout << Rus("Введите Ваш возраст: ");
    cin >> age;
    cout << endl;
    if (age <= 40)
    {
      weight = growth - 110;
      ideal_weight = weight + weight * 0.1;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
      }
      else if (age > 40)
      {
      weight = growth - 100;
      ideal_weight = weight + weight * 0.1;
      cout << Rus("Ваш идеальный вес ") << ideal_weight;
      cout << Rus(" кг.") << endl;
      cout << endl;
           }
      return UserChoise();
      }
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
20.10.2011, 19:35
а где ваши попытки сделать оконное приложение ?
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
20.10.2011, 20:10  [ТС]
Если честно, я постарался. Набросал радиокнопок. Ввел код программы для одной радикнопки, чтобы проверить будет ли работать. Но компилятор выдал ошибку. Я даже проект не сохранил. Вы наверное прочитали код программы. И, думаю что запустили у себя на компе. Вы увидели там принцип работы. Вы мне просто объясните, как мне сделать так чтобы при выборе допустим ИМТ, программа переходила к функции
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
float BodyWeightIndex()
{
   float weight, growth, growth_d;
   float bodyweightindex;
   
   cout << Rus("ИМТ может оказаться неверным для спортсменов, беременных") << endl;
   cout << Rus("и кормящих женщин, престарелых и подростков (до 18 лет).") << endl;
   cout << Rus("Если Вы не входите ни в одну из перечисленных категорий, ") << endl;
   cout << Rus("то для продолжения нажмите любую клавищу.") << endl;
   getch();
   cout << Rus ("Введите Ваш рост(см): ");
   cin >> growth;
   cout << Rus ("Введите Ваш вес: ");
   cin >> weight;
   growth_d = growth * 0.01;
   bodyweightindex = weight / (growth_d * growth_d);
   cout << Rus("Ваш ИМТ равен: ") << bodyweightindex;
   if (bodyweightindex < 18.5)
   cout << Rus(" У Вас дефицит массы тела.") << endl;
   else if (bodyweightindex <= 24.9)
   cout << Rus(" У Вас нормальная масса тела.") << endl;
   else if (bodyweightindex <= 29.9)
   cout << Rus(" У Вас избыточная масса тела (предожирение).") << endl;
   else if (bodyweightindex <= 34.9)
   cout << Rus(" У Вас ожирение I степени.") << endl;
   else if (bodyweightindex <= 39.9)
   cout << Rus(" У Вас ожирение II степени.") << endl;
   else
   cout << Rus(" У Вас ожирение III степени.") << endl;
   return UserChoise();
    }
а там фукция должна считывать данные которые вводит пользователь. Как осуществить все это. Я никгда не писал оконные программы. И хочу сам написать, вы просто объясните мне принцип всего этого.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
20.10.2011, 20:16
увы, лично я не прочитал, не запустил и не увидел , виноват, каюсь.
сделайте все же проект по новой, и напишите сюда ошибки.
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
20.10.2011, 20:44
Нарисуйте как примерно должна выглядеть программа и я возьмусь
(я не прошу вас просидеть 100 часов за photoshop просто 5-минутный набросок в paint карандашем)

И кстати КАКОЙ У ВАС БИЛДЕР?
(Я пишу на XE)
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
20.10.2011, 20:48
Как осуществить? Вот посмотрите простенький пример для Билдера. Ваша программа аналогична по функционированию. Кода - всего чуть; для начала в самый раз.
Код C++

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
switch(RadioGroup1->ItemIndex) {
case 0: led1->Brush->Color = clBlue; break;
case 1: led1->Brush->Color = clWhite; break;
case 2: led1->Brush->Color = clYellow; break;
case 3: led1->Brush->Color = clRed; break;
case 4: led1->Brush->Color = clMaroon; break;
case 5: led1->Brush->Color = clLime; break;
case 6: led1->Brush->Color = clBlack; break;
case 7: led1->Brush->Color = (TColor)0x00B7B7B7; break;
default: ;
}
}
//---------------------------------------------------------------------------
Изображения
 
Вложения
Тип файла: zip Project.zip (3.5 Кб, 6 просмотров)
1
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
20.10.2011, 21:05  [ТС]
nick42, пожалуйтса отправьте архив в формате .rar В нашей корпорации поставлен запрет на зип. Можете отправить на е-меил. badboy9107@bk.ru
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
20.10.2011, 21:24
de_hack,
В VCL Alpplications не понадобится столько царапать...
0
 Аватар для de_hack
6 / 6 / 0
Регистрация: 17.09.2011
Сообщений: 78
20.10.2011, 21:25  [ТС]
__bool, вот примерный рисунок. Я не хочу чтобы Вы писали за меня программу. Просто объясните как реализовать все описанное. Надеюсь с фото разберетесь
Миниатюры
Перезапись консольной программы в оконную  
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
20.10.2011, 21:28
Цитата Сообщение от de_hack Посмотреть сообщение
Просто объясните как реализовать все описанное
Ну так вам уже объяснили по сути все что нужно))
Вообщем если нужно я наберу.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.10.2011, 21:28
Помогаю со студенческими работами здесь

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

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

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

Мониторинг консольной программы
Есть консольное приложение которое постоянно что-то выводит на экран Как считать все содержимое окна в литерную переменную ?

Автоматизация консольной программы
Нужна помощь с консольной программой mkvmerge. К ней имеется предположим данные параметры выполнения: Суть в том, что надо...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru