Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
1

Исправление ошибок в многофайловой программе

20.03.2016, 15:23. Просмотров 315. Ответов 4
Метки нет (Все метки)

Помогите исправить ошибки в интересной программе по виртуальной работе лифтов. В программе имеется консольная графика. Программа в книге изложена с ошибками. Думаю всем обладателем книги будет приятно...
Файлы программы>
0
Вложения
Тип файла: txt Л 13-7.txt (433 байт, 6 просмотров)
Тип файла: txt Л 13-5.txt (17.5 Кб, 4 просмотров)
Тип файла: txt Л 13-4.txt (3.0 Кб, 4 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2016, 15:23
Ответы с готовыми решениями:

Исправление ошибок в программе
Помогите исправить ошибки в программе, буду очень благодарен) #include <math.h> #include...

Исправление ошибок в программе
Здравствуйте! Занимаюсь написанием программы. В ходе написания возник следующий вопрос. В ходе...

Исправление ошибок в программе
vector<int>v; int x; while(cin>>x) v.push_back(x); for(int i=0; i<v.size(); ++i); cout << "v...

Исправление ошибок в программе
Здравствуйте! Помогите пожалуйста исправит ошибки в программе. Программа была написана по...

Исправление ошибок
Помогите запустить программу #include <iostream.h> #include <stdlib.h> #include <fstream.h> int...

4
hoggy
Эксперт С++
7652 / 3456 / 717
Регистрация: 15.11.2014
Сообщений: 7,888
Завершенные тесты: 1
20.03.2016, 15:40 2
Цитата Сообщение от Aqua77 Посмотреть сообщение
Помогите исправить ошибки в интересной программе по виртуальной работе лифтов.
это такой тест на внимательность?
сообщить, что конкретно за ошибки не обязательно?

C++
1
2
3
#include "elev_app.h"  //поставляется клиентом                         
                       //(застройщиком)
#include "msoftcon.h"  //для консольной графики
предполагается, что помогальщики самостоятельно должны
найти недостающие файлы в интернетах?
0
Aqua77
25 / 25 / 19
Регистрация: 13.07.2015
Сообщений: 433
20.03.2016, 16:00  [ТС] 3
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
#include "stdafx.h"
 
//msoftcon.cpp
//подпрограммы доступа к консольным функциям Windows 
 
//компилятор должен знать, где искать этот файл
//в MCV++, /Tools/Options/Directories/Include/type путь
 
#include "msoftcon.h"
HANDLE hConsole;         //поддержка консольного режима 
char fill_char;          //символ заполнения
//---------------------------------------------------------
void init_graphics()
{
    COORD console_size = { 80, 25 };
    //открыть канал ввода/вывода на консоль
    hConsole = CreateFile(L"CONOUT$", GENERIC_WRITE | GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        0L, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0L);
    //установить размер экрана 80x25 
    SetConsoleScreenBufferSize(hConsole, console_size);
    //текст белым по черному 
    SetConsoleTextAttribute(hConsole, (WORD)((0 << 4) | 15));
 
    fill_char = '\xDB';  //заполнение по умолчанию
    clear_screen();
}
//---------------------------------------------------------
void set_color(color foreground, color background)
{
    SetConsoleTextAttribute(hConsole,
        (WORD)((background << 4) | foreground));
}  //конец setcolor()
 
/* 0  Черный          8  Темно-серый
1  Темно-синий     9  Синий
2  Темно-зеленый   10 Зеленый
3  Темно-голубой   11 Алый
4  Темно-красный   12 красный
5  Темно-алый      13 алый
6  Коричневый      14 Желтый
7  Светло-серый    15 Белый
*/
//---------------------------------------------------------
void set_cursor_pos(int x, int y)
{
    COORD cursor_pos;            //Начало в верхнем левом 
    cursor_pos.X = x - 1;        //Windows начинает с (0, 0)
    cursor_pos.Y = y - 1;        //мы начнем с (1, 1)
    SetConsoleCursorPosition(hConsole, cursor_pos);
}
//---------------------------------------------------------
void clear_screen()
{
    set_cursor_pos(1, 25);
    for (int j = 0; j<25; j++)
        _putch('\n');
    set_cursor_pos(1, 1);
}
//---------------------------------------------------------
void wait(int milliseconds)
{
    Sleep(milliseconds);
}
//---------------------------------------------------------
void clear_line()                 //очистка до конца строки
{                              //80 пробелов
    //.....1234567890123456789012345678901234567890
    //.....0........1.........2.........3.........4 
    _cputs("                                        ");
    _cputs("                                        ");
}
//---------------------------------------------------------
void draw_rectangle(int left, int top, int right, int bottom)
{
    char temp[80];
    int width = right - left + 1;
    int j;
    for (j = 0; j<width; j++)      //строка квадратов
        temp[j] = fill_char;
    temp[j] = 0;                    //null
 
    for (int y = top; y <= bottom; y++)  //строковый стек 
    {
        set_cursor_pos(left, y);
        cputs(temp);
    }
}
//---------------------------------------------------------
void draw_circle(int xC, int yC, int radius)
{
    double theta, increment, xF, pi = 3.14159;
    int x, xN, yN;
 
    increment = 0.8 / static_cast<double>(radius);
    for (theta = 0; theta <= pi / 2; theta += increment)//1/4 
        //окружности
    {
        xF = radius * cos(theta);
        xN = static_cast<int>(xF * 2 / 1); //пикселы не
        //квадратные :-(
        yN = static_cast<int>(radius * sin(theta) + 0.5);
        x = xC - xN;
        while (x <= xC + xN) //заполнить две горизонтальные линии
        {              //по одной на каждую ? окружности
            set_cursor_pos(x, yC - yN); putch(fill_char); //верх
            set_cursor_pos(x++, yC + yN); putch(fill_char); //низ
        }
    }  //конец for
}
//---------------------------------------------------------
void draw_line(int x1, int y1, int x2, int y2)
{
 
    int w, z, t, w1, w2, z1, z2;
    double xDelta = x1 - x2, yDelta = y1 - y2, slope;
    bool isMoreHoriz;
 
    if (fabs(xDelta) > fabs(yDelta)) //еще горизонтальная
    {
        isMoreHoriz = true;
        slope = yDelta / xDelta;
        w1 = x1; z1 = y1; w2 = x2, z2 = y2;    //w=x, z=y 
    }
    else                              //еще вертикальная
    {
        isMoreHoriz = false;
        slope = xDelta / yDelta;
        w1 = y1; z1 = x1; w2 = y2, z2 = x2;    //w=y, z=x
    }
 
    if (w1 > w2)                       //если за w
    {
        t = w1; w1 = w2; w2 = t;             //   заменить (w1,z1)
        t = z1; z1 = z2; z2 = t;             //   на (w2,z2)
    }
    for (w = w1; w <= w2; w++)
    {
        z = static_cast<int>(z1 + slope * (w - w1));
        if (!(w == 80 && z == 25))  //убрать прокрутку на 80,25
        {
            if (isMoreHoriz)
                set_cursor_pos(w, z);
            else
                set_cursor_pos(z, w);
            putch(fill_char);
        }
    }
}
//---------------------------------------------------------
void draw_pyramid(int x1, int y1, int height)
{
    int x, y;
    for (y = y1; y<y1 + height; y++)
    {
        int incr = y - y1;
        for (x = x1 - incr; x <= x1 + incr; x++)
        {
            set_cursor_pos(x, y);
            putch(fill_char);
        }
    }
}
//---------------------------------------------------------
void set_fill_style(fstyle fs)
{
    switch (fs)
    {
    case SOLID_FILL:  fill_char = '\xDB'; break;
    case DARK_FILL:   fill_char = '\xB0'; break;
    case MEDIUM_FILL: fill_char = '\xB1'; break;
    case LIGHT_FILL:  fill_char = '\xB2'; break;
    case X_FILL:      fill_char = 'X';    break;
    case O_FILL:      fill_char = 'O';    break;
    }
}
//---------------------------------------------------------
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
//msoftcon.h
//Объявления функций консольной графики от Lafore
//используются консольные функции Windows 
#include "stdafx.h"
 
#ifndef _INC_WCONSOLE    //этот файл не должен включаться
#define _INC_WCONSOLE    //дважды в тот же исходный файл
 
#include <windows.h>     //для консольных функций Windows
#include <conio.h>       //для kbhit(), getche()
#include <math.h>        //для sin, cos
 
enum fstyle {
    SOLID_FILL, X_FILL, O_FILL,
    LIGHT_FILL, MEDIUM_FILL, DARK_FILL
};
 
enum color {
    cBLACK = 0, cDARK_BLUE = 1, cDARK_GREEN = 2, DARK_CYAN = 3,
    cDARK_RED = 4, cDARK_MAGENTA = 5, cBROWN = 6, cLIGHT_GRAY = 7,
    cDARK_GRAY = 8, cBLUE = 9, cGREEN = 10, cCYAN = 11,
    cRED = 12, cMAGENTA = 13, cYELLOW = 14, cWHITE = 15
};
//---------------------------------------------------------
void init_graphics();
void set_color(color fg, color bg = cBLACK);
void set_cursor_pos(int x, int y);
void clear_screen();
void wait(int milliseconds);
void clear_line();
void draw_rectangle(int left, int top, int right, int bottom);
void draw_circle(int x, int y, int rad);
void draw_line(int x1, int y1, int x2, int y2);
void draw_pyramid(int x1, int y1, int height);
void set_fill_style(fstyle);
#endif /* _INC_WCONSOLE */
0
MOROZOV_WORK
1 / 1 / 0
Регистрация: 28.11.2015
Сообщений: 5
28.07.2017, 13:26 4
В msoftcon.h исправить:
6 #ifndef _INC_WCONSOLE //этот файл не должен включаться
7 #define _INC_WCONSOLE //дважды в тот же исходный файл
на
#ifndef _MSOFTCON_H_ //этот файл не должен включаться
#define _MSOFTCON_H_ //дважды в тот же исходный файл
и
36 #endif /* _INC_WCONSOLE */
на
#endif /* Not _MSOFTCON_H_ */

Добавлено через 11 минут
Да, и в msoftcon.cpp исправить:
86 cputs(temp);
на
_cputs(temp);
как в строках 70 и 71.
На DEV C++ 5.11 ошибок нет.
0
MOROZOV_WORK
1 / 1 / 0
Регистрация: 28.11.2015
Сообщений: 5
28.07.2017, 15:42 5
Объектно-ориентированное программирование в C++ - Роберт Лафоре
Исходники circstrc.cpp и она сама:
0
Вложения
Тип файла: rar circstrc_cpp.rar (36.4 Кб, 4 просмотров)
28.07.2017, 15:42
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2017, 15:42

исправление ошибок
//funkcijas1 #include &lt;iostream&gt; using namespace std; int main() { int i,...

Исправление ошибок
Дано 100 вещественных чисел. Определить, образуют ли они возрастающую последовательность....

Исправление ошибок
Какие ошибки есть в следующем коде? for (int i =О: i &lt;= phrase.size(): ++i) { cout «...


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

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

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