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

Многофайловый проект

30.11.2015, 23:20. Показов 6255. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1й файл 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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <locale>
#include <Windows.h>
#include "My_Struct.h"
 
using namespace std;
 
int main()
{
setlocale(LC_ALL, "rus");
ticket a;
int stoimost, train, month, day, hour, minute, ticket;
 
cout << "Введите количество поездов\nnumber = ";
cin >> stoimost;
ticket *m = new ticket[stoimost]; // создать массив из нескольких (5-10) структур
 
for (int i = 0; i < stoimost; i++) // заполнение структуры поэлементно, используя ввод с
// клавиатуры
{
cout << "Введите значение " << i + 1 << " билету\n";
cout << "Номер рейса : ";
cin >> m[i].train;
cout << "Станция отправления : ";
cin >> m[i].station1;
cout << "Станция прибытия : ";
cin >> m[i].station2;
cout << "Дата отправления\nМесяц : ";
cin >> m[i].dep_day.month;
cout << "День : ";
cin >> m[i].dep_day.day;
cout << "Время отпрвления\nЧас : ";
cin >> m[i].dep_time.hour;
cout << "Минута : ";
cin >> m[i].dep_time.minute;
cout << "Вагон : ";
cin >> m[i].coach;
cout << "Место : ";
cin >> m[i].seat;
cout << "Цена : ";
cin >> m[i].price;
cout << "\n\n";
}
 
cout << "Информация о билетах \n\n";
 
for (int i = 0; i < stoimost; i++) // вывевод на экран содержимое всего массива
{
cout << "Инфомация о " << i + 1 << " билете\n";
cout << "Номер рейса : " << m[i].train << endl;
cout << "Станция отправления : " << m[i].station1 << endl;
cout << "Станция прибытия : " << m[i].station2 << endl;
cout << "Дата отправления\n";
cout << m[i].dep_day.day << "." << m[i].dep_day.month << " " << m[i].dep_time.hour << "-" << m[i].dep_time.minute << endl;
cout << "Вагон : " << m[i].coach << endl;
cout << "Место : " << m[i].seat << endl;
cout << "Цена : " << m[i].price << endl;
cout << "\n\n";
}
int k = Samiidorogoibilet(m, stoimost);
{
cout << "Инфомация о " << k + 1 << " билете\n";
cout << "Номер рейса : " << m[k].train << endl;
cout << "Станция отправления : " << m[k].station1 << endl;
cout << "Станция прибытия : " << m[k].station2 << endl;
cout << "Дата отправления\n";
cout << m[k].dep_day.day << "." << m[k].dep_day.month << " " << m[k].dep_time.hour << "-" << m[k].dep_time.minute << endl;
cout << "Вагон : " << m[k].coach << endl;
cout << "Место : " << m[k].seat << endl;
cout << "Цена : " << m[k].price << endl;
cout << "\n\n";
}
 
FreeCoach(m, stoimost);
 
delete[] m;
system("pause");
return 0;
}
2й файл my.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
#include "My_Struct.h"
 
void FreeCoach(ticket * m, int stoimost)
{
int train, month, day, hour, minute, coach, n = 54;
cout << "Введите данные поезда\n";
cout << "Рейс : "; cin >> train;
cout << "Дата отправления\n";
cout << "Месяц : "; cin >> month;
cout << "День : "; cin >> day;
cout << "Вагон : "; cin >> coach;
 
for (int i = 0; i < stoimost; i++)
if (m[i].train == train && m[i].dep_day.day == day && m[i].dep_day.month == month)
if (m[i].dep_time.hour == hour && m[i].dep_time.minute == minute)
n--;
 
cout << " \n В рейсе " << train << " в " << coach << " вагоне свободных мест " << n << endl;
 
}
 
 
int Samiidorogoibilet(ticket *m, int stoimost)
{
int m_max = m[0].price, n;
for (int i = 0; i < stoimost; i++)
if (m_max <= m[i].price)
{
m_max = m[i].price;
n = i;
}
 
cout << "Самый дорогой оказался " << n + 1 << " билет\n";
cout << "Его стоимость " << m_max << endl;
cout << "\n";
return n;
}
3й файл со структурами My_Struct.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
#ifndef MY_STRUCT
#define MY_STRUCT
#include <iostream>
 
using namespace std;
 
struct time_
{
int hour;
int minute;
};
 
struct date
{
int month;
int day;
};
 
struct ticket // определение структурного типа
{
int train; // Номер рейса
char station1[15]; // Станция отправления
char station2[15]; // Станция прибытия
date dep_day; // Дата отправления
time_ dep_time; // Время отправления
int coach; // Вагон
int seat; // Место
int price; // Стоимость
};
 
#endif
ошибки:

Весь проект составлен в таком стиле
Название: asfag.jpg
Просмотров: 249

Размер: 14.4 Кб

Выводит ошибки т.к. я понял он не видит другие файлы кроме main.cpp. Подскажите в чем проблема
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2015, 23:20
Ответы с готовыми решениями:

Многофайловый проект
Доброго времени суток. В проекте 4 файла. Почему при первом варианте все работает, а во втором нет? // main.cpp #include...

Многофайловый проект
Таки всеми правдами и неправдами создал из 3 файлов &quot;тестик&quot;. И собственно не хочет это дело компилировать. Где я тут напортачил ? :( 1.)...

Многофайловый проект
Собственно вопрос, скорее, к работе devc++ Ну вот захотел для &quot;завтраки&quot; собрать МП из 2 файлов 1 - main.cpp (ну как иначе) #include...

11
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.11.2015, 23:41
У тебя и помимо этого куча ошибок...

Цитата Сообщение от Gurricup Посмотреть сообщение
ticket a;
int stoimost, train, month, day, hour, minute, ticket;
Как, ну как можно объявить переменную ticket, если это имя уже резервируешь для класса..

Для того, чтобы видел твои функции, подключи где main свой второй файл #include "my.cpp"
И функции дописывай, хаос и беспорядок
0
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 37
30.11.2015, 23:55  [ТС]

теперь так, но уже в другом файле my.cpp
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
30.11.2015, 23:58
Gurricup, а, ясно. Сделаем проще. Удали подключение my.cpp
В main cpp добавь после using namespace std; прототипы

C++
1
2
void FreeCoach(ticket * m, int stoimost);
int Samiidorogoibilet(ticket *m, int stoimost);
0
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 37
30.11.2015, 23:59  [ТС]
Всё работает, спасибо!)
0
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
01.12.2015, 00:25
Цитата Сообщение от SuperKir Посмотреть сообщение
Сделаем проще. Удали подключение my.cpp
В main cpp добавь
Не, ну договорились же, что многофайловый проект. Значит создаем хедер, например My_Prot.h и в нем декларируем ф-ии. При этом не забыв добавить #include "My_Prot.h" в main.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
01.12.2015, 00:31
ilja123, а проект от прототипов никак не изменился. Мы удалили #include "my.cpp" из main.cpp, вся остальная реализация функций у него в файле my.cpp, ее мы не трогали
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
01.12.2015, 00:39
Gurricup, запомните одну немаловажную вещь, делать так
Цитата Сообщение от SuperKir Посмотреть сообщение
подключи где main свой второй файл #include "my.cpp"
не стоит. Файлы с расширением срр не подключайте директивой #include. Для этого придумали файлы заголовков.
0
0 / 0 / 0
Регистрация: 24.09.2013
Сообщений: 37
01.12.2015, 01:11  [ТС]
Да пофигу, препод схавает.

Добавлено через 4 минуты
Kerry_Jr
Я понял.
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
01.12.2015, 01:22
Kerry_Jr, Да ладно)
Source1.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "iostream"
 
template<typename T>
class Foo {
public:
    Foo()
    {
        x = 0;
    }
    void SetX(T _x)
    {
        x = _x;
    }
    void Print() 
    {
        std::cout << x << std::endl;
    }
private:
    T x;
};
Source.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "Source1.cpp"
 
void Expl()
{
    Foo<int> f;
    f.SetX(10);
    f.Print();
}
 
int main()
{
    Expl();
    system("pause");
    return 0;
}
0
48 / 48 / 6
Регистрация: 24.12.2009
Сообщений: 532
01.12.2015, 01:29
Цитата Сообщение от SuperKir Посмотреть сообщение
Да ладно)
Kerry сказал
не стоит
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
01.12.2015, 08:29
SuperKir, то, что Вы, товарищ, так делаете, не говорит о том, что так нужно делать. Заголовки придуманы для объявлений, а срр - для реализации. А подключать срр файл - говнокодерство.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2015, 08:29
Помогаю со студенческими работами здесь

Многофайловый проект
Здравствуйте! Помогите создать Многофайловый проект. Пожалуйста. Создать абстрактный класс Figure с виртуальными методами...

Многофайловый проект
Вообщем проблема такая, в многофайловом проекте не выводит массив на экран #include &quot;Libraries.h&quot; void EnterArray(double*...

Многофайловый проект
Всем привет, уже довольно долго пытаюсь собрать проект из трех файлов: заголовочный, файл реализации функций, главный файл с вызовом...

Многофайловый проект в VS
Всем привет. Добавил новый элемент .cpp в свой проект, в котором уже есть другой .cpp, и компилятор отказывается компилировать новый...

Многофайловый проект
Вот есть код. Помоги. Разбейте его на модуль. Я не понимаю как это сделать #include &lt;iostream&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru