Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
#1

Написать программу, которая будет запускать другие приложения по выбору пользователя - C++

22.05.2014, 09:56. Просмотров 563. Ответов 13
Метки нет (Все метки)

нужно составить программу, которая будет вызывать другие 5 программ и по требованию запускать одну из них. как запустить одну программу я разобрался, а вот как сделать так чтоб она выдавала мне консоль и я мог выбрать то что мне нужно из списка не понимаю. делаю все это на VS Express 2013. вот как я вызываю одну:
C++
1
2
3
4
5
6
7
8
9
#include "stdafx.h"
#include "windows.h"
#include <iostream>
using namespace std;
 
void main()
{
    cout << WinExec("c:\\Progs\\parabol\\1.exe", SW_SHOW) << endl;
}
Добавлено через 1 минуту
как мне сделать список, из которого я смогу вызывать программы по желанию
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2014, 09:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать программу, которая будет запускать другие приложения по выбору пользователя (C++):

Написать программу, которая бы переводила слова «ДОБРЫЙ ДЕНЬ» по выбору на один из пяти языков - C++
Здравствуйте. Помогите пожалуйста написать задачи. 1.Написать программу, которая бы переводила слова «ДОБРЫЙ ДЕНЬ» по выбору на один из...

Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя - C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя.

Написать программу которая будет разделять число - C++
Помогите написать программу которая будет разделять число. Например мы уводим число 12546 програма должна это число разделить на 1, 2, 5,...

Написать программу, которая будет изменять элементы массива - C++
Дан целочисленный массив из 25 элементов. Если элемент чётный, то прибавить к нему первый, если нечётный - прибавить последний. Первый и...

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

написать программу, которая будет переворачивать введенное предложение - C++
Добрый день, форумчане! Совсем недавно начал программировать на спп, и тут появились некоторые трудности со строками. Задание такое: нужно...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.05.2014, 12:07 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от pulae8b Посмотреть сообщение
как мне сделать список, из которого я смогу вызывать программы по желанию
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include "windows.h"
#include <iostream>
using namespace std;
 
void main()
{
    const char* prog[] = { "c:\\Progs\\popabol\\1.exe", "c:\\Progs\\popabol\\2.exe", "c:\\Progs\\popabol\\3.exe" };
    int i = 0;
    cin >> i; // 0..2
    cout << WinExec( prog[i], SW_SHOW) << endl;
}
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
22.05.2014, 16:08  [ТС] #3
спасибо, немного помогло продвинуться. вот что получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "windows.h"
#include <iostream>
using namespace std;
 
void main()
{
    const char* prog[] = { "c:\\Progs\\popabol\\1.exe", "c:\\Progs\\trapec\\noname00.exe" };
    int i = 0;
    cout << "vyiberite metod";
    cout << "\nmetod parabol - 1";
    cout << "\nmetod trapeciy - 2";
    cin >> i; // 0..2
    cout << WinExec(prog[i], SW_SHOW) << endl;
}
но теперь вызывает только второй метод и на цифру 1, а при вводе 2ки прерывается и выдает ошибку
P.S. и еще вопрос можно ли сделать так чтоб при окончании вычислений метода, выводилась консоль с выбором методов?
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.05.2014, 16:16 #4
Цитата Сообщение от pulae8b Посмотреть сообщение
теперь вызывает только второй метод и на цифру 1, а при вводе 2ки прерывается и выдает ошибку
Ну так вычесть единичку значит надо в 14 строке: prog[i-1]. Индекс же с 0 начинается.
Цитата Сообщение от pulae8b Посмотреть сообщение
можно ли сделать так чтоб при окончании вычислений метода, выводилась консоль с выбором методов
Если знаете как определить окончание вычислений, то да.
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
22.05.2014, 16:26  [ТС] #5
Цитата Сообщение от Tulosba Посмотреть сообщение
Ну так вычесть единичку значит надо в 14 строке: prog[i-1]. Индекс же с 0 начинается.
спасибо поправил, теперь на 2 вызывает второй метод, а на 1 закрывает консоль(хотя первый метод точно работает)
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.05.2014, 16:45 #6
Цитата Сообщение от pulae8b Посмотреть сообщение
а на 1 закрывает консоль(хотя первый метод точно работает)
см.путь к файлу
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
22.05.2014, 16:49  [ТС] #7
Цитата Сообщение от Tulosba Посмотреть сообщение
см.путь к файлу
прощу прощения) затупил
LordCezis
4 / 4 / 2
Регистрация: 13.05.2012
Сообщений: 69
22.05.2014, 18:31 #8
pulae8b, а вам обязательно делать список в консольке?
Может проще всё же будет создать форму и на ней TRadioButton-ы разместить или просто кнопки с соответствующими надписями.

А если всё же в консольке, то может лучше конструкцию switch-case применять для выбора вариантов?
Или в условии задания не разрешено ничего такого использовать?
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
22.05.2014, 18:35  [ТС] #9
вообще не обязательно, но вот то что вы написали >>создать форму и на ней TRadioButton-ы разместить или просто кнопки с соответствующими надписями<< я вообще не понял) консолькой наверно проще будет
LordCezis
4 / 4 / 2
Регистрация: 13.05.2012
Сообщений: 69
23.05.2014, 11:57 #10
Так и не понял, каким образом тыкнуть сюда картинку, чтобы она отображалась, а не выводилась исковерканная ссылка
http://s020.***********/i718/1405/40/60c64832c56f.jpg
Tulosba
23.05.2014, 12:00
  #11

Не по теме:

Цитата Сообщение от LordCezis Посмотреть сообщение
Так и не понял, каким образом тыкнуть сюда картинку, чтобы она отображалась, а не выводилась исковерканная ссылка
В расширенном режиме есть кнопка с изображение скрепки "вложение".

LordCezis
4 / 4 / 2
Регистрация: 13.05.2012
Сообщений: 69
23.05.2014, 12:04 #12
Ещё и отредактировать не успел
Может в консольке и легче, но для визуального и логического восприятия, лучше создать VCL Form и на ней разместить то, что я написал ранее.
При 2-ом клике TButton - создаётся функция обработки нажатия на кнопку и открывается окно редактора кода с курсором, стоящим внутри тела функции. Там прописываем нужные действия, затем выполняем всё это с оставшимися кнопками.

Что до TRadioButton, то там надо кроме них тыкать ещё кнопку, при нажатии на которую будет выполняться проверка, какую из TRadioButton выбрал пользователь и на основании этого будет выполняться нужное действие, в вашем случае - запуск соответствующей программы.

Не по теме:

Tulosba, уже через Управление вложениями справился

Миниатюры
Написать программу, которая будет запускать другие приложения по выбору пользователя  
pulae8b
4 / 4 / 1
Регистрация: 11.12.2013
Сообщений: 11
24.05.2014, 10:41  [ТС] #13
в общем мне помогли и получился такой код
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
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#define n 3
using namespace std;
int main()
{
    LPCSTR p[3] = { "c:\\Progs\\parabol\\1.exe", "c:\\Progs\\trapec\\noname00.exe", "c:\\Progs\\pryamoug\\pryam.exe" };
    int key;
 
    while (true)
    {
        cout << "\n";
        cout << "\nvyiberite metod";
        cout << "\nmetod parabol - 1";
        cout << "\nmetod trapeciy - 2";
        cout << "\nmetod pryamougolnikov - 3";
        cout << "\n";
        cout << "\nvvedite key: ";
        cin >> key;
        if (key == 0)break;
        switch (key)
        {
        case 1:
            system(p[0]);
            break;
        case 2:
            system(p[1]);
            break;
        case 3:
            system(p[2]);
            break;
        }
    }
    system("pause");
    return 0;
}
теперь, я загорелся вашей идеей, и встал вопрос с чего мне начать, чтобы у меня появилась такая оболочка?)
LordCezis
4 / 4 / 2
Регистрация: 13.05.2012
Сообщений: 69
24.05.2014, 14:20 #14
Цитата Сообщение от pulae8b Посмотреть сообщение
теперь, я загорелся вашей идеей, и встал вопрос с чего мне начать, чтобы у меня появилась такая оболочка?)
Для начала создайте соответствующий тип проекта, хотя это уже вопрос другой темы

Вам нужен проект VCL Forms Applications(VCL - Visual Component Library).
Данный проект включает в себя стандартную библиотеку компонентов форм: кнопки, поля для вывода и/или ввода текста, таблицы, раскрывающиеся списки, таймер, прогресс-бар и ещё кучу полезных компонентов.
Список полезных/интересных тем C++ Builder

Так же, если у вас стоит IDE от компании Embarcadero Technologies, то там есть возможность создать проекты с использованием библиотеки Fire Monkey, позволяющей создавать ещё и 3D эффекты, 3D компоненты, анимацию на форме.
Вебинар по FM

Начать думаю лучше всё же с VCL Forms Applications и уж потом на FM переходить.

Достаньте книгу по С++ для начинающих, где будут подробно разбираться основы создания как консольных приложений, так и приложений с формами.
В интернете, к сожалению, чаще встречаются темы про создание приложений с формами на Delphi. Провести аналогии не сложно, но иногда бывают затруднения связанные с различием в синтаксисе, подключаемых библиотеках и функциях.

P.S. У меня ещё с колледжа одной из настольных книг является "С/С++ и Borland C++ Builder для начинающих" Бориса Пахомова издательства bhv-Петербург 2007г.
Книга не идеальна, но роль первой ступеньки сыграла хорошо.
Правда стоит помнить о том, что постоянно выходят новые версии IDE, за которыми издательства не следят и переиздают книги 2-х++ летней давности, в примерах которых может быть расхождение в синтаксисе с современными версиями конкретной IDE. Когда изучал С++ в рамках оболочки CodeGear RAD 2007 Architect, то эта книга подходила идеально, а после перехода на Embarcadero RAD XE3 начал ловить мелкие проблемы при работе с текстом.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2014, 14:20
Привет! Вот еще темы с ответами:

Написать программу, которая будет выводить елочку из символов - C++
Нужно написать программу которая будет выводить елочку из символов ^ ^ ^^^ ^^^^^ по заданной пользователем высотой. ...

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

1. Написать программу, которая предлагает пользователя ввести дату рождения - C++
1. Написать программу, которая предлагает пользователя ввести дату рождения отца, в формате YYYY MM DD, затем дату рождения сына, в том же...

Написать программу, которая проверяет пользователя на знание таблицы умножения - C++
Необходимо написать программу, которая проверяет пользователя на знание таблицы умножения. Пользователь сам вводит два целых однозначных...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.05.2014, 14:20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru