Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95

Написанная программа не компилируется, не могу понять в чем дело

11.10.2016, 16:17. Показов 683. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть три файла в одном проекте:
main.cpp
cyber.cpp
cyber.h

//main.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
#include <iostream>
#include "cyber.h"
 
using namespace std;
 
int main(){
    int total, station[total], size=1;
    User *user = new User[size];
    cout << "Enter Total Lab Number: ";
    cin >> total;
    char *** lab = new char **[total];
    for(int x=0; x<total; x++){
        cout << "Enter total computer in Lab " << x+1 << ": ";
        cin >> station[x];
        lab[x] = new char *[station[x]];
        for(int y=0; y<station[x]; y++){
            //strcpy(lab[x][y], "empty"); //segmentation error
            lab[x][y] = (char*)&"empty";
        }
    }
 
    //Display the computer lab info
    displayLab(lab, total, station);
 
    double totalCharge = 0;
    int option;
    while(true){
        //Display the menu in proper formatting
        cout << "\t\tCyber Cafe Menu" << endl
            << "1. Log in" << endl
            << "2. Log out" << endl
            << "3. Search user" << endl
            << "4. List lab" << endl
            << "5. Display total charges" << endl
            << "0. Exit" << endl;
        cout << "Option: ";
        cin >> option; // read choice from user
        switch(option){
            case 1: // Log in
                login(lab, total, station, user, size);
                displayLab(lab, total, station); //Display the computer lab info
                break;
            case 2: // Log out
                logout(lab, user, size, totalCharge);
                break;
            case 3: // Search user
                search(user, size);
                break;
            case 4: // List Lab
                list(lab, total, station);
                break;
            case 5: // Display total charges
                displayTotal(totalCharge);
                break;
            case 0: // close the program
                cout << "Program terminated." << endl << endl;
                return 0;
            default: // re-prompt user the menu
                cout << "Wrong input, please try again." << endl << endl;
        }
    }
}
//cyber.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
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
#include "fstream"
#include <iostream>
#include "cyber.h"
using namespace std;
// This function Log in new user
void login(char ***lab, int total, int station[], User *&user, int &size){
    User *newUser = new User; //create a struct to store the new user temporarily
    bool valid = false;
    //read data from user
    while(valid == false){
        valid = true;
        cout << "Enter 5-digit ID: ";
        cin >> newUser->id;
        //if the id is existed in the user[]
        for(int x=0;x<size;x++){
            if(strcmp(newUser->id, user[x].id) == 0){
                //inform client and reprompt
                cout << "ID existed, please try again." << endl;
                valid = false;
                break;
            }
        }
    }
    valid = false;
    char *empty;
    empty = (char*)&"empty";
    while(valid == false){
        cout << "Enter Lab: ";
        cin >> newUser->lab;
        cout << "Enter Station: ";
        cin >> newUser->station;
        //check for the lab
        for(int x=0; x<total; x++)
            if(newUser->lab == x+1)
                //check for the station
                for(int y=0; y<station[x]; y++)
                    if(newUser->station == y+1)
                        //when the station is empty, then only assign it to user.
                        if(strcmp(lab[x][y], empty) == 0){
                            lab[x][y] = newUser->id;
                            valid = true;
                        } else {
                            cout << "The Lab Station Computer is occupied.\n";
                        }
    }
    valid = false;
    //ask client to input the login time
    while(valid == false){
        cout << "Login Time(HH MM): ";
        cin >> newUser->inHour >> newUser->inMin;
        valid = true;
        if(newUser->inHour > 23 || newUser->inMin > 59){
            valid = false;
            cout << "The time is in 24hours format. please try again." << endl;
        }
    }
    //when user[] is null, perform if
    //if there is info in id, perform else
    if(strcmp(user[0].id, "") == 0){
        user[0] = *newUser;
    } else {
        size+=1; //increase size
        User *temp = new User[size]; //create temp User struct
        for(int x=0; x<size;x++){
            temp[x] = user[x]; //assign all old user[] data to temp[]
            if(x == size-1){
                temp[size-1] = *newUser; //last location for the new user
            }
        }
        user = temp; //assign the data to user[]
    }
}
// This function is used to Log out user that is leaving
void logout(char ***lab, User *&user, int &size, double &totalCharge){
    int target;
    char id[6];
    bool valid = false;
    //read id from user
    while(valid == false){
        cout << "Enter 5-digit ID: ";
        cin >> id;
        for(int x=0;x<size;x++){
            if(strcmp(id, user[x].id) == 0){
                target = x; //when the user is found, set x to target
                valid = true;
                break;
            }
        }
    }
    valid = false;
    //prompt client to input the log out time
    while(valid == false){
        cout << "Logout Time(HH MM): ";
        cin >> user[target].outHour >> user[target].outMin;
        valid = true;
        if(user[target].outHour > 23 || user[target].outMin > 59){
            valid = false;
            cout << "The time is in 24hours format. please try again." << endl;
        }
    }
    //edit the lab table
    strcpy(lab[user[target].lab-1][user[target].station-1], (char*)&"empty");
    //calculate charges in minutes, each minutes = RM0.02
    int login = user[target].inHour *60 + user[target].inMin;
    int logout = user[target].outHour *60 + user[target].outMin;
    // if the logout time is smaller than login time,
    //logout time have to add 24hours as it had passed a day
    if(logout < login){
        logout = logout + (24 * 60);
    }
    user[target].price = (logout - login) * 0.02;
    //print the payment details
    cout << "Payment Amount: RM" << user[target].price << endl << endl;
    //increase total charge
    totalCharge += user[target].price;
    //write the logout info to log file.
    ofstream logfile("log.txt", ios::app);
    logfile << "\n" << user[target].id << ":"
            << user[target].lab << ":"
            << user[target].station << ":"
            << user[target].inHour << "." << user[target].inMin << ":"
            << user[target].outHour << "." << user[target].outMin << ":"
            << user[target].price;
    logfile.close();
 
    //set the user[] smaller
    size-=1;
    // create a temp User struct to store the data without logout user
    User *temp = new User[size];
    for(int x=0; x<size;x++){
        temp[x] = user[x];
        if(x >= target){
            temp[x] = user[x+1];
        }
    }
    user = temp; // user User struct point to temp User struct.
}
// This function is used to Search user by the user id
void search(User user[], int &size){
    char id[6];
    bool valid = false;
    //read data from user
    cout << "Enter 5-digit ID: ";
    cin >> id;
    //search from the user[], if the id matched, print out the user current session info
    for(int x=0;x<size;x++){
        if(strcmp(id, user[x].id) == 0){
            cout << "User ID: " << user[x].id << endl
                << "Lab:\t" << user[x].lab << endl
                << "Station: " << user[x].station << endl
                << "Login Time: " << user[x].inHour << ":" << user[x].inMin << endl << endl;
            valid = true;
            break;
        }
    }
    //if the id is not found in the user[], tell client.
    if(valid == false){
        cout << "User ID: " << id << " not found!" << endl << endl;
    }
}
 
//This function allow the user to choose particular lab for display purposes.
void list(char ***lab, int total, int station[]){
    int num;
    //prompt user to enter lab number
    cout << "Enter Lab number: ";
    cin >> num;
    //if the lab number is not in range, reprompt.
    while(num > total || num <= 0){
        cout << "Lab number not found!" << endl;
        cout << "There is " << total << " lab in this cyber cafe." << endl;
        cout << "Enter Lab number: ";
        cin >> num;
    }
    //formating - Lab: Stations
    cout << "Lab Number\tComputer Stations" << endl
        <<  "----------\t--------------------------------------------" << endl;
    cout << '\t' << num << '\t'; // display lab
    for(int y=0; y<station[num-1]; y++){
        cout << y+1 << ": " << lab[num-1][y] << '\t'; //display station
    }
    cout << endl << "----------\t--------------------------------------------" << endl;
}
 
//This function is used to display total charges of the cyber cafe at particular session
void displayTotal(double totalCharge){
    cout << "Total charges of this session is RM" << totalCharge << endl << endl;
}
 
//This function is used to display the full details of the cyber cafe
void displayLab(char ***lab, int total, int station[]){
    //formating - Lab: Stations
    cout << "Lab Number\tComputer Stations" << endl
        <<  "----------\t--------------------------------------------" << endl;
    for(int x=0; x<total; x++){
        cout << '\t' << x+1 << '\t'; // display lab
        for(int y=0; y<station[x]; y++){
            cout << y+1 << ": " << lab[x][y] << '\t'; //display station
        }
        cout << endl;
    }
    cout << "----------\t--------------------------------------------" << endl;
}
//cyber.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstring>
using namespace std;
 
struct User{
    char id[6];
    int lab, station, inHour, inMin, outHour, outMin;
    float price;
};
 
void login(char***, int, int[], User*&, int&); // Log in
void logout(char***, User*&, int&, double&); // Log out
void search(User[], int&); // Search user
void list(char***, int, int[]); // List Lab
void displayTotal(double); // Display total charges
void displayLab(char***, int, int[]); // Display the computer lab info
уже как пол дня потратил, чтобы понять почему не компилируется, но так и не понял в чем дело. Ошибок в коде нету, да и все файлы в одном проекте, кириллиц на пути нету
Почему не компилируется? Подскажите кто нибудь
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2016, 16:17
Ответы с готовыми решениями:

Не работает программа не могу понять в чём дело.
asm(&quot;movb 0x0,%AH&quot;); asm(&quot;movb 0x10,%al&quot;); asm(&quot;int 0x10&quot;); asm(&quot;movb 0xC,%AH&quot;); asm(&quot;movb 0xE,%AL&quot;); ...

Есть программа, но при при вызове одной функции из main Visual Studio показывает ошибку. Не могу понять в чём дело
#include&lt;iostream&gt; #include&lt;vector&gt; using namespace std; struct Basket { int made; int needed; int money;

не могу понять в чем дело
In file included from /usr/local/lib/gcc47/include/c++/csignal:44:0, from /home/dir/core.h:67: ...

14
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
11.10.2016, 16:19
Цитата Сообщение от almazuulu Посмотреть сообщение
Почему не компилируется?
ошибку хоть какую выдает при компиляции?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.10.2016, 16:24
Цитата Сообщение от almazuulu Посмотреть сообщение
уже как пол дня потратил, чтобы понять почему не компилируется, но так и не понял в чем дело. Ошибок в коде нету
помойму последнее предложение противоречит первому, не?

http://rextester.com/VAWIJ69431
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.10.2016, 16:25
Цитата Сообщение от almazuulu Посмотреть сообщение
Ошибок в коде нету
Цитата Сообщение от almazuulu Посмотреть сообщение
Почему не компилируется?
Что значит - не компилируется?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
11.10.2016, 16:29
almazuulu, без проблем собрал и запустил ваш код
возможны проблемы из за отсутствия include guard в cyber.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef CYBER_H
#define CYBER_H
#include <iostream>
#include <cstring>
using namespace std;
 
struct User{
    char id[6];
    int lab, station, inHour, inMin, outHour, outMin;
    float price;
};
 
void login(char***, int, int[], User*&, int&); // Log in
void logout(char***, User*&, int&, double&); // Log out
void search(User[], int&); // Search user
void list(char***, int, int[]); // List Lab
void displayTotal(double); // Display total charges
void displayLab(char***, int, int[]); // Display the computer lab info
 
#endif
Миниатюры
Написанная программа не компилируется, не могу понять в чем дело  
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95
11.10.2016, 16:33  [ТС]
Max Dark,hoggy, nd2,Тупо выдает вот такое сообщение:
Миниатюры
Написанная программа не компилируется, не могу понять в чем дело  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.10.2016, 16:44
Цитата Сообщение от almazuulu Посмотреть сообщение
Почему не компилируется?
Цитата Сообщение от almazuulu Посмотреть сообщение
Тупо выдает вот такое сообщение:
Это называется: компилируется, но не работает. Среда какая? Отладчиком умеешь пользоваться?
1
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95
11.10.2016, 16:48  [ТС]
nd2, Среда CodeBlocks, отладчиком похоже не умею
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.10.2016, 16:53
В меню что выбираешь?
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95
11.10.2016, 16:56  [ТС]
nd2, Просто build and run. Извините что я такой, я просто зеленый еще, не все понимаю
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.10.2016, 16:56
Цитата Сообщение от almazuulu Посмотреть сообщение
int total, station[total]
total неинициализированна, а ты задаёшь ею размер массива.
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95
11.10.2016, 17:01  [ТС]
Max Dark, а вы там ничего не меняли? У меня точно также как и у вас но никак не получается все равно
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.10.2016, 17:31
Для начала так сделай:
C++
1
2
3
4
5
6
7
8
9
int main(){
    int total, size=1;
    User *user = new User[size];
    cout << "Enter Total Lab Number: ";
    cin >> total;
    int* station = new int[total];
    char *** lab = new char **[total];
    for(int x=0; x<total; x++){
    //...
1
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 95
11.10.2016, 17:34  [ТС]
nd2, спасибо, попробую )
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
11.10.2016, 18:03
Цитата Сообщение от almazuulu Посмотреть сообщение
а вы там ничего не меняли?
не менял. собирал g++ 6й версии для 64х бит.

Добавлено через 2 минуты
Сейчас попробовал собрать для 32х бит - собралось, но упало.
Посмотрел код - лучше используйте std::string для строк и std::vector для массивов
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2016, 18:03
Помогаю со студенческими работами здесь

Не могу понять в чем дело
Ребята пишу программу по расчету Машины постоянного тока , все написал , проблема в том что у меня полученные значения соответствуют...

Не могу понять в чем дело.
Здраствуйте! Не давно поймал банер на сайте Vkontakte.ru, банер не давал возможности зайти на какой либо сайт кроме как в контакт при этом...

Не могу понять в чём дело
доброй ночи тем кому не спится и тем кто это сообщение увидит утром,доброго утра!!!! ребят помогите в одном деле,комп навернулся...

Не могу понять в чём дело
Ребят всем привет! Объясните мне пожалуйста в чём дело? Я установил ubuntu, после того как я отойду от компьютера и пройдёт время,...

Не могу понять в чем дело!!!
Системная :Asus P5B Deluxe, Intel Core 2 Duo E6600, 2400 MHz,OCZ XTC Platinum 2x1 Гб DDR2-800,ST3320620AS (320 Гб, 7200 RPM,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru