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

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

Войти
Регистрация
Восстановить пароль
 
Mr_Mario
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 5
#1

Массив "hotel", в который пользователь добавляет "жильцов" - C++

14.07.2015, 18:13. Просмотров 271. Ответов 4
Метки нет (Все метки)

Дорогие форумчане, помогите мне решить проблему в данной программе!

Суть программы: Есть массив "hotel", в который пользователь добавляет "жильцов" (присваивает значения переменным из массива), вводит он их с клавиатуры. Так же если пользователь "не хочет никого туда заселять", он вводит вместо "имени заселяемого" слово "нет!", что присваивает переменной значение "свободен". Либо если он вообще не хочет "никого заселять", он вводит слово "стоп!", что останавливает игру. И еще при начале игры, всем переменным массива "hotel" присваиваются значения "свободен".

Теперь о проблеме: при выборе пункта "начать играть", выводится такая ошибка:
11 [main] ____________ 1336 cygwin_exception::open_stackdumpfile: Dumping stack trace to ____________.exe.stackdump
ВЫПОЛНЕНИЕ FAILED (значение выхода 35*584,, общее время: 2s)

Вот сам код программы:
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
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
 
void play(int floor, int number);
void help();
int main()
{
    int user_answer, floor, number;
    floor = 3;
    number = 5;
    do {
       cout <<"Меню игры: \n"; 
       cout <<"1. Начать игру.\n";
       cout <<"2. Строительсво гостиницы.\n";
       cout <<"3. Справочник по игре.\n";
       cout <<"4. Выход из игры.\n";
    do {
        cout <<"Выбранный вариант: ";
        cin >> user_answer;
    } while(user_answer < 1 || user_answer > 4);
    switch(user_answer){
        case 1:
            play(floor, number);
            break;
        case 2:
            // изменение параметров массива "гостиницы"
            cout <<"Вы вошли в режим строительства:\n";
            cout <<"Введите количество этажей:";
            cin >> floor;
            cout <<"Введите колчество номеров:";
            cin >> number;
            break;
        case 3:
            cout <<"Справочник, появится в новой версии.";
            break;
        case 4:
            cout <<"Игра окончена!";
            break;
    }
    } while(user_answer != 4);
    
    return 0;
}
void play(int floor, int number)
{
    int t, i;
    char* hotel[floor][number];
    //присваивание всем элементам массива, значения "свободен"
    for(t = 0; t < floor; t++){
        for(i = 0; i < number; i++){
            strcpy(hotel[t][i], "свободен");
        }
    }
    cout <<"Регистрация жильцов гостиницы:\n";
    //"заселение жильцов в отель" 
    for(t = 0; t < floor; t++){
        for(i = 0; i < number; i++){
            cout <<"Этаж " << t <<", номер " << i <<":";
            gets(hotel[t][i]);
            if(hotel[t][i] == "нет!") strcpy(hotel[t][i], "свободен"); //если не хочешь заселять номер.
            if(hotel[t][i] == "стоп!"){  // если вообще ни хочешь ничего делать.
                strcpy(hotel[t][i], "свободен");
                return;
            }
        }
    }
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2015, 18:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив "hotel", в который пользователь добавляет "жильцов" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. - C++
Разработать класс &quot;Массив больших чисел&quot;, который состоит из объектов класса &quot;Большие целые числа&quot;. Найти сумму элементов массива. ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,056
Завершенные тесты: 1
14.07.2015, 18:45 #2
Цитата Сообщение от Mr_Mario Посмотреть сообщение
char* hotel[floor][number];
заменить на
char hotel[floor][number];
Mr_Mario
0 / 0 / 0
Регистрация: 14.07.2015
Сообщений: 5
14.07.2015, 18:58  [ТС] #3
Цитата Сообщение от Raali Посмотреть сообщение
заменить на
char hotel[floor][number];
Не помогло. Получается еще больше ошибок. Так как в типе "char" в одном элементе можно вместить один символ,
а если прибавить "*" сколько угодно.
HELLKAR
14 / 14 / 7
Регистрация: 11.04.2015
Сообщений: 50
Завершенные тесты: 1
15.07.2015, 14:41 #4
Попробуй немного изменить главную функцию:
C++
1
2
3
4
5
6
int main()
{
    setlocale(LC_ALL,"Russian");
    int user_answer, floor, number;
    floor = 3;
    number = 5;
И еще пробуй использовать другой компилятор, а не GCC.
Может просто не хватает нужных библиотек для этого компилятора
Zazy
45 / 45 / 15
Регистрация: 14.04.2013
Сообщений: 186
15.07.2015, 16:34 #5
49 строка, вам нужен динамический массив
62 и 63 строка, строки в стили Си сравниваются strcmp();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2015, 16:34
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


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

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

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