1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
1

Переключение между окнами

10.05.2020, 14:21. Показов 2858. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, скажу сразу, я не прошу решать эту задачу, а лишь подсказать способы реализации.

Задача:
Кликните здесь для просмотра всего текста
В первой строке вводится целое число n – количество действий пользователя ( 1< n< 1000). Следующие n строк содержат описание действий пользователя.

Запуск приложения описывается строкой «Run <имя приложения»>. Здесь «<имя приложения»> – строка из не более чем 100 латинских букв, цифр и пробелов. Она отделена от слова «Run» ровно одним пробелом. Все имена приложений различны. Большие и маленькие буквы считаются различными.

Переключение между приложениями описывается строкой «Alt+Tab+...+Tab», здесь подстрока «+Tab» повторена в точности столько раз, сколько раз пользователь нажал клавишу «Tab», не отпуская клавишу «Alt». Это количество не превышает 100.

Первая команда во входных данных – всегда команда «Run».

Выходные данные
Выведите n строк – последовательность имен приложений, с которыми работал пользователь в порядке, в котором их окна становились активными.

Примеры
входные данные
6
Run Mozilla Firefox
Run Free Pascal
Alt+Tab
Run Miranda IM
Alt+Tab+Tab
Alt+Tab+Tab+Tab
выходные данные
Mozilla Firefox
Free Pascal
Mozilla Firefox
Miranda IM
Free Pascal
Free Pascal
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2020, 14:21
Ответы с готовыми решениями:

Переключение между окнами по горячим клавишам
Нужна программа с открытым исходным кодом желательно на С++ Программка должна делать следующее:...

Перевод данных между окнами
Есть у меня 5 окон в одном приложении. Нужно между ними обмениваться данными. Например форма 4...

Переключение между программами в source files
Пусть имеется несколько программами в source files. Как запускать ту программу, которую мне нужно?...

Переключение между окнами Qt
Здравствуйте! У меня в проекте есть две формы типа QWidget: form1 и form2 Мне нужно по нажатию...

3
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
10.05.2020, 16:02 2
Цитата Сообщение от Evreii Посмотреть сообщение
я не прошу решать эту задачу, а лишь подсказать способы реализации
циклический список
1
1 / 1 / 0
Регистрация: 02.03.2020
Сообщений: 106
12.05.2020, 11:05  [ТС] 3
Цитата Сообщение от zayats80888 Посмотреть сообщение
циклический список
А у вас есть примеры такого списка? Почитал литературу на данную тему, но не до конца понял.
0
6091 / 3449 / 1402
Регистрация: 07.02.2019
Сообщений: 8,768
12.05.2020, 11:53 4
Лучший ответ Сообщение было отмечено Evreii как решение

Решение

Цитата Сообщение от Evreii Посмотреть сообщение
А у вас есть примеры такого списка?
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
#include <iostream>
#include <string>
#include <cassert>
 
template<class T>
class linked_ring
{
    struct node
    {
        T val;
        node* next;
    } *tail, *iter;
    
public:
    linked_ring() :tail(nullptr), iter(nullptr) {}
    linked_ring(const linked_ring&) = delete;
    linked_ring& operator=(const linked_ring&) = delete;
 
    void push(T val)
    {
        if (!tail)
        {
            tail = new node{ val };
            tail->next = tail;
        }
        else
            tail->next = new node{ val, tail->next };
        tail = iter = tail->next;
    }
 
    void clear()
    {
        if (!tail)  return;
 
        node* current = tail->next;
        while (current != tail)
        {
            node* to_del = current;
            current = current->next;
            delete to_del;
        }
        delete tail;
        tail = iter = nullptr;
    }
 
    bool empty() const
    {
        return tail;
    }
 
    ~linked_ring()
    {
        clear();
    }
 
    void advance(size_t n)
    {
        if (!iter) return;
        while (n--)
        {
            iter = iter->next;
        }
    }
 
    const T& get_current()
    {
        assert(iter);
        return iter->val;
    }
};
 
int main()
{
    linked_ring<std::string> list;
    list.push("Mozilla Firefox"); // Run Mozilla Firefox
    std::cout << list.get_current() << '\n';
    list.push("Free Pascal"); // Run Free Pascal
    std::cout << list.get_current() << '\n';
    list.advance(1); // Alt+Tab
    std::cout << list.get_current() << '\n';
    list.push("Miranda IM"); // Run Miranda IM
    std::cout << list.get_current() << '\n';
    list.advance(2); // Alt+Tab+Tab
    std::cout << list.get_current() << '\n';
    list.advance(3); // Alt+Tab+Tab+Tab
    std::cout << list.get_current() << '\n';
}
1
12.05.2020, 11:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2020, 11:53
Помогаю со студенческими работами здесь

Переключение между окнами
Всем привет, недавно начал изучение QML и возник вопрос, как я могу переключаться между формами ? ...

Переключение между окнами
Здравствуйте. Недавно начал изучать Qt. Создал 2 MainWindow окна (соответственно 2 ui файла и...

Взаемодействия между окнами
Здрасте. Есть приложение состоящее из нескольких модальных диалогов. Как наладить взаимодействие...

Связь между окнами
Господа предположим , что есть некая программа &quot;А&quot; которая запускает другую не зависищую от...

Связь между двумя окнами
Решил написать простую программу, типа, блокнота. И теперь передо мной стал следующий вопрос: Как...

Передача переменных между окнами
Здравствуйте! Подскажите,пожалуйста, как можно передать значение переменной из главного окна в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru