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

Поиск осущевствляется должным образом

16.09.2015, 05:58. Показов 642. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Выполняется следующая часть кода
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
void interface ()
{
    int  n, Width, Height, request2,i;
    bool selection;
    cout << "Введите размеры экрана по умолчанию: " << endl;
    cout << "Ширина: ";
    cin >> Width;
    cout << "Длина: ";
    cin >> Height;
    cout << "Введите количество окон ";
    cin >> n;
    ModelWindow *WIN = new ModelWindow [n];
    for (int i(0); i<n; i++)
    {
        modification(WIN[i],Width,Height );
    }
    system("cls");
    cout << "Если вы хотите вывести включенные окна введите 1 иначе 0 " << endl;
    cin >> selection;
    for (int i=0; i<n; i++)
    {
        if (WIN[0].search() == selection)
            WIN[0].output();
        cout << endl;
    }
    cout << "Введите номер окна которое вы хотите изменить, если вы не хотите ничего изменять нажмите 0 ";
    cin >> request1;
    if (request1)
    {
        modification( WIN[request1-1], Width, Height);
    };
}
методы:

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
void modification (ModelWindow WIN, int Width, int Height)
{
        bool selection;
        int request,request1, move;
        string temp;
        WIN.Input_screen(Width,Height);
        WIN.input();
        cout << "Если вы хотите изменить один из параметров нажмите 1, иначе 0 ";
        cin >> request;
        if (request)
        {
            cout << "Если вы хотите изменить координаты верхней левой точки окна по горизонтали нажмите 1" << endl;
            cout << "Если вы хотите изменить координаты верхней левой точки окна по вертикале нажмите 2" << endl;
            cout << "Если вы хотите изменить ширину окна нажмите 3" << endl;
            cout << "Если вы хотите изменить высоту окна нажмите 4" << endl;
            cout << "Если вы хотите изменить цвет окна нажмите 5" << endl;
            cout << "Если вы хотите изменить видимость окна нажмите 6" << endl;
            cout << "Если вы хотите изменить наличие рамки нажмите 7" << endl;
            cout << "Если вы хотите изменить название окна нажмите 8" << endl;
            cin >> request1;
            switch (request1)
            {
                case 1:
                    {
                        cout << "Введите изменение (если вы хотите чтобы точка сместилась влево введите отрицательное значение ";
                        cin >> move;
                        WIN.move_the_window_horizontally(move);
                        break;
                    }
                case 2:
                    {
                        cout << "Введите изменение (если вы хотите чтобы точка сместилась вверх введите отрицательное значение ";
                        cin >> move;
                        WIN.move_the_window_vertically(move);
                        break;
                    }
                case 3:
                    {
                        cout << "Введите новую ширину окна ";
                        cin >> move;
                        WIN.change_of_width(move);
                        break;
                    }
                case 4:
                    {
                        cout << "Введите новую высоту окна ";
                        cin >> move;
                        WIN.change_of_height(move);
                        break;
                    }
                case 5:
                    {
                        cout << "Введите новый цвет окна ";
                        cin >> temp;
                        WIN.color_change(temp);
                        break;
                    }
                case 6:
                    {
                        cout << "Если вы хотите включить видимость нажмите 1, иначе нажмите 0";
                        cin >> selection;
                        WIN.change_of_state(selection);
                        break;
                    }
                case 7:
                    {
                        cout << "Если вы хотите включить рамку нажмите 1, иначе нажмите 0";
                        cin >> selection;
                        WIN.change_frame(selection);
                        break;
                    }
                case 8:
                    {
                        cout << "Введите новое название окна ";
                        cin >> temp;
                        WIN.change_header(temp);
                        break;
                    }
 
            }
 
        }
}
search
C++
1
2
3
4
bool search ()
    {
        return visibility;
    }
при попытке вывода на экран видимых элементов происходит ошибка нужные элементы не выводятся
+ почему то между циклами переменная i не обновляется
к тому же неправильно происходит попытка номера класса который надо изменить
в чём ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2015, 05:58
Ответы с готовыми решениями:

Условие цикла не работает должным образом
я добавил коментарий на том цикле ,где начало должно быть с 0 ,а не 5 так в чем собственно ошибка...

Будет ли работать должным образом конструктор копирование с указателем?
class A { A() {} A(const A *); } То что этот код скомпилируется - сомнений нет. Вот...

Как изменить код программы чтобы все условия выполнялись должным образом?
Здравствуйте! Вот код программы: #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;math.h&gt;...

Программа не работает должным образом! C#
Была задача: Вводится текст. Отредактировать текст, удаляя те слова которые уже встречались ранее....

4
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
16.09.2015, 06:31 2
Цитата Сообщение от iiiooj Посмотреть сообщение
в чём ошибка?
Может в том, что в
C++
1
void modification (ModelWindow WIN, int Width, int Height)
WIN - это копия исходного объекта, которая будет уничтожена при выходе
Цитата Сообщение от iiiooj Посмотреть сообщение
+ почему то между циклами переменная i не обновляется
У Вас в каждом цикле своя i, которые перекрывают
C++
1
int  n, Width, Height, request2,i;
эту i
0
0 / 0 / 0
Регистрация: 20.01.2015
Сообщений: 32
16.09.2015, 06:48  [ТС] 3
получается надо передавать ссылку?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
16.09.2015, 06:55 4
Цитата Сообщение от iiiooj Посмотреть сообщение
получается надо передавать ссылку?
1) Зависит от того, что Вам нужно.
2) Зависит от устройства ModelWindow.

Обе задачи сможете решить только Вы
0
0 / 0 / 0
Регистрация: 20.01.2015
Сообщений: 32
16.09.2015, 07:05  [ТС] 5
исправил, но толку всё равно нет...

modelwindow.cpp
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
ModelWindow::ModelWindow()
    {
            header = "";
            color = "";
            coordinates_of_the_left_corner_x = 0;
            coordinates_of_the_left_corner_y = 0;
            horizontal_size = 0;
            vertical_size = 0;
            is_present_frame = false;
            visibility = false;
    }
 
void ModelWindow::input()
    {
        cout << endl << "Введите заголовок: ";
        cin >> header;
        cout << "Введите цвет окна: ";
        cin >> color;
        cout << "Координаты верхнего левого угла окна " << endl;
        cout << "X: ";
        cin >> coordinates_of_the_left_corner_x;
        cout << "Y: ";
        cin >> coordinates_of_the_left_corner_y;
        cout << "Размеры: " << endl;
        cout << "Ширина: ";
        cin >> horizontal_size;
 
        if ((coordinates_of_the_left_corner_x < 0) || ((coordinates_of_the_left_corner_x + horizontal_size) > Width))
        {
            cout << "Выход за границы окна!!!" << endl;
            return;
        }
 
        cout << "Длина: ";
        cin >> vertical_size;
        
        if (((coordinates_of_the_left_corner_x + vertical_size) > Height) || ((coordinates_of_the_left_corner_x) < 0))
        {
            cout << "Выход за границы окна!!!" << endl;
            return;
        }
        system("cls");
        cout << "Если вы хотите рамку на окне нажмите 1, иначе 0 ";
        cin >> is_present_frame;
        system("cls");
        cout << "Если вы хотите чтобы окно было видимым нажмите 1, иначе 0 ";
        cin >> visibility;
        system("cls");
    }
void ModelWindow::move_the_window_horizontally(int move)
    {
            if (((coordinates_of_the_left_corner_x + move) < 0) || ((coordinates_of_the_left_corner_x + move + horizontal_size) > Width))
                    cout << "Выход за границы окна!!!" << endl;
            else 
                coordinates_of_the_left_corner_x += move;
    }
void ModelWindow::move_the_window_vertically(int move)
    {
        if (((coordinates_of_the_left_corner_x + move + vertical_size) > Height) || ((coordinates_of_the_left_corner_x + move) < 0))
            cout << "Выход за границы окна!!!" << endl;
        else 
            coordinates_of_the_left_corner_y += move;
    }
void ModelWindow::output()
    {
        cout << "Заголовок окна " << header << endl;
        cout << "Цвет " << color << endl;
        cout << "Размер окна: " << horizontal_size << "x" << vertical_size << endl;
        if (is_present_frame)
            cout << "Рамка есть" << endl;
        else 
            cout << "Рамки нет" << endl;
 
        if (visibility)
            cout << "Окно видимо" << endl;
        else 
            cout << "Окно не видимо" << endl;
    }
modelwindow.h
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
class ModelWindow : public window_size
{
    class Cursor
        {
        private:
            unsigned int horizontal_coordinates;
            unsigned int horizontal_verticaly;
            unsigned short int size;
            bool position;
            bool visibility;
        public:
            void change_the_coordinates_of_the_cursor();
            void change_of_the_cursor();
            void change_position();
            void change_visibility();
            Cursor();
 
        };
private:
    string header;
    string color;
    int coordinates_of_the_left_corner_x;
    int coordinates_of_the_left_corner_y;
    int horizontal_size;
    int vertical_size;
    bool is_present_frame;
    bool visibility;
public:
    ModelWindow();
    void input();
    void move_the_window_horizontally(int);
    void move_the_window_vertically (int);
    void change_of_height(int move)
    {
        vertical_size = move;
    }
    void change_of_width (int move)
    {
        horizontal_size = move;
    }
    void color_change (string move)
    {
        color = move;
    }
    void change_of_state (bool move)
    {
        visibility = move;
    }
    bool search ()
    {
        return visibility;
    }
    void change_frame (bool move)
    {
        is_present_frame = move;
    }
    void change_header(string move)
    {
        header = move;
    }
    void output ();
};
функции
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
void modification (ModelWindow &WIN, int Width, int Height)
{
        bool selection;
        int request,request1, move;
        string temp;
        WIN.Input_screen(Width,Height);
        WIN.input();
        cout << "Если вы хотите изменить один из параметров нажмите 1, иначе 0 ";
        cin >> request;
        if (request)
        {
            cout << "Если вы хотите изменить координаты верхней левой точки окна по горизонтали нажмите 1" << endl;
            cout << "Если вы хотите изменить координаты верхней левой точки окна по вертикале нажмите 2" << endl;
            cout << "Если вы хотите изменить ширину окна нажмите 3" << endl;
            cout << "Если вы хотите изменить высоту окна нажмите 4" << endl;
            cout << "Если вы хотите изменить цвет окна нажмите 5" << endl;
            cout << "Если вы хотите изменить видимость окна нажмите 6" << endl;
            cout << "Если вы хотите изменить наличие рамки нажмите 7" << endl;
            cout << "Если вы хотите изменить название окна нажмите 8" << endl;
            cin >> request1;
            switch (request1)
            {
                case 1:
                    {
                        cout << "Введите изменение (если вы хотите чтобы точка сместилась влево введите отрицательное значение ";
                        cin >> move;
                        WIN.move_the_window_horizontally(move);
                        break;
                    }
                case 2:
                    {
                        cout << "Введите изменение (если вы хотите чтобы точка сместилась вверх введите отрицательное значение ";
                        cin >> move;
                        WIN.move_the_window_vertically(move);
                        break;
                    }
                case 3:
                    {
                        cout << "Введите новую ширину окна ";
                        cin >> move;
                        WIN.change_of_width(move);
                        break;
                    }
                case 4:
                    {
                        cout << "Введите новую высоту окна ";
                        cin >> move;
                        WIN.change_of_height(move);
                        break;
                    }
                case 5:
                    {
                        cout << "Введите новый цвет окна ";
                        cin >> temp;
                        WIN.color_change(temp);
                        break;
                    }
                case 6:
                    {
                        cout << "Если вы хотите включить видимость нажмите 1, иначе нажмите 0";
                        cin >> selection;
                        WIN.change_of_state(selection);
                        break;
                    }
                case 7:
                    {
                        cout << "Если вы хотите включить рамку нажмите 1, иначе нажмите 0";
                        cin >> selection;
                        WIN.change_frame(selection);
                        break;
                    }
                case 8:
                    {
                        cout << "Введите новое название окна ";
                        cin >> temp;
                        WIN.change_header(temp);
                        break;
                    }
 
            }
 
        }
}
 
 
void interface ()
{
    int  n, Width, Height, request2;
    bool selection;
    cout << "Введите размеры экрана по умолчанию: " << endl;
    cout << "Ширина: ";
    cin >> Width;
    cout << "Длина: ";
    cin >> Height;
    cout << "Введите количество окон ";
    cin >> n;
    ModelWindow *WIN = new ModelWindow [n];
    for (int i(0); i<n; i++)
    {
        modification(WIN[i],Width,Height );
    }
    system("cls");
    cout << "Если вы хотите вывести включенные окна введите 1 иначе 0 " << endl;
    cin >> selection;
    for (int i=0; i<n; i++)
    {
        if (WIN[i].search() == selection)
            WIN[i].output();
        cout << endl;
    }
    cout << "Введите номер окна которое вы хотите изменить, если вы не хотите ничего изменять нажмите 0 ";
    cin >> request1;
    if (request1)
    {
        modification( WIN[request1-1], Width, Height);
    };
}
0
16.09.2015, 07:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2015, 07:05
Помогаю со студенческими работами здесь

PeekMessage не работает должным образом
#include&lt;windows.h&gt; #include &lt;iostream&gt; HHOOK _hook; HINSTANCE hinstDLL; int a; LRESULT...

Не работает должным образом тачпад
После обновления до Aniversary update пропали жесты тремя пальцами ( тремя пальцами влево/враво для...

Шрифты не отображаются должным образом.
Доброго времени суток, уважаемые форумчане! Суть моей проблемы вот в чём: Я приобрёл шаблон для...

Не проходят решения должным образом
Что то явно не так? Какой метод решения выбрать? Какие значения возвращают функции, указанные в...


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

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

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