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

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

29.09.2019, 19:18. Показов 1352. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот есть код. Помоги. Разбейте его на модуль. Я не понимаю как это сделать
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
int main()
{
    cout << "Enter the length of the sides of the square to find perimeter \n";
    int a;
    cin >> a;
    int p = 4 * a;
    cout << "Perimeter=\n" << p;
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2019, 19:18
Ответы с готовыми решениями:

Многофайловый проект
Здравия всем! Опять зеленый метушится! Перед, непосредственно, главным вопросом, хочу показать то, что мне известно (если я не...

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

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

4
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
29.09.2019, 21:03
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
#include <iostream>
 using namespace std;
int Input()
{
    cout << "Enter the length of the sides of the square to find perimeter \n";
    int t;
    cin >> t;
    return t;
 }
int CalcP(int t)
{
    return 4*t;
}
void Out(int t)
{
    cout << "Perimeter=\n" << t;
}
int main()
{
    int a=Input();
    int p = CalcP(a);
    Out(p);
    return 0;
}
0
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
29.09.2019, 21:23
Цитата Сообщение от OxepeHeH Посмотреть сообщение
Многофайловый проект
------------------------------------------------
Пример 1 На базе вашего кода
------------------------------------------------

Прокомментировал вещи которые можно разделить на функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
using namespace std;
int main()
{
    cout << "Enter the length of the sides of the square to find perimeter \n"; // Создать функцию ввода
    int a;
    cin >> a;
    int p = 4 * a; // Создать функцию расчета
    cout << "Perimeter=\n" << p; // Создать функцию вывода
    return 0;
}

------------------------------------------------
Пример 2 на базе моего кода
------------------------------------------------

Пример на базе простой задачи. Сам пример особо разбирать не нужно. Внимательно посмотрите как используется структура проекта из 3 файлов


Написать программу, которая осуществляет добавление строки (столбца) перед строкой (столбцом) заданной пользователем. Номер строки указывается в диапазоне от 0 до N-1. Если пользователь вводит N, то строка добавляется в конец таблицы. Номер столбца указывается в диапазоне от 0 до M-1. Если пользователь вводит M, то столбец добавляется в конец таблицы. Предусмотреть контроль правильности ввода номера строки или столбца для вставки. Данные новой строки генерировать с учетом заданных ограничений. Необходимые функции для решения задач представить в отдельном файле. В основном файле программы реализовать ввод исходных данных, запуск функций и вывод результатов.

------------------------------------
1 файл H.h
------------------------------------
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//#include "H.h"
#pragma once
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <Windows.h>
#include <string>
using namespace std;
#define Stop_Console system("pause >> void"); //Stop Console windows
int ** Create_Array(int** &, int, int);
void Rand_Arr_Setup(int ** &, int, int, int, int, int, int);
void Print_Arr(int ** &, int, int);
void Delete_New(int** &, int);
void Rand_Arr(int ** &, int, int, int, int);
int User_Check(string check);
------------------------------------
2 файл Function.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
//Functions.cpp 
#include "H.h"
int User_Check(string str) { // Check input user
 
    int count = 0, tmp = 0; 
    char * ch = new char[str.size() + 1];
    copy(str.begin(), str.end(), ch);
    ch[str.size()] = '\0'; // don't forget the terminating 0 
 
    for (int i = 0; i < str.size(); i++) 
        if (ch[i] < 48 || ch[i] > 57) 
            count++;
    delete[] ch; 
    if(count != 0)
            return 0;
    else 
        return 1;
}
int ** Create_Array(int** &arr, int row, int col) { // Birth of a matrix
    arr = new int *[row]();
    for (int i = 0; i < row; i++)
        arr[i] = new int[col]();
    return arr;
}
void Rand_Arr_Setup(int ** &arr, int row, int col, int min, int max, int InsertNumber, int InsertUserMenuSTR_COL) { //SETUP
    srand(time(NULL));
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            if (InsertUserMenuSTR_COL == 1) { if (j == InsertNumber) arr[i][j] = min + rand() % (max - min); } //COLUMN
            if (InsertUserMenuSTR_COL == 2) { if (i == InsertNumber) arr[i][j] = min + rand() % (max - min); } //STRING
        }
    }
}
void Print_Arr(int ** &arr, int row, int col) { // DISPLAY
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++)
            cout << arr[i][j] << " ";
        cout << endl;
    }
}
void Rand_Arr(int ** &arr, int row, int col, int min, int max) { // RAND ARRAY
    srand(time(NULL));
    for (int i = 0; i < row; i++)
        for (int j = 0; j < col; j++)
            arr[i][j] = min + rand() % (max - min);
}
void Delete_New(int** &arr, int row) { // DELETE MATRIX
    for (int i = 0; i < row; i++)
        delete[] arr[i];
    delete[] arr;
}
------------------------------------
3 файл main
------------------------------------
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
#include "H.h" 
 
void main() {
    char GO = 0; //Start Program
    do { //protection
//---------------------------------------------------------------------------------------------------------------
        int line = 0, column = 0, InsertUserSTR_COL = 0, SelectUserMenu = 0, MinElementUser = 0, MaxElementUser = 0;
        int **PtrArr;
        int Rand_Matrix_Input = 0;
        string Check_User_Input; 
//---------------------------------------------------------------------------------------------------------------
        do {
            cout << "Enter the number of row and column elements.\nRow or column cannot be 1 or less than 1" << endl;
            cout << "***MAXIMUM size 80 STRING 80 COLUMN***" << endl;
            cout << "Please enter: [STRING]" << endl;
            cin >> Check_User_Input;
            if (User_Check(Check_User_Input)) // Check_FUNC
                line = atoi(Check_User_Input.c_str());
            cout << "Please enter: [COLUMN]" << endl;
            cin >> Check_User_Input;
            if (User_Check(Check_User_Input)) // Check_FUNC
                column = atoi(Check_User_Input.c_str());
            if (line == 1 || line < 1 || line > 80) // check
                cout << "line = " << line << " error" << endl;
            if (column == 1 || column < 1 || column > 80) // check
                cout << "column = " << column << " error" << endl;
        } while (line == 1 || column == 1 || line < 1 || column < 1 || line > 80 || column > 80); // check
        cout << "Matrix created congratulations!\n" << endl;
        Create_Array(PtrArr, line, column);
        Print_Arr(PtrArr, line, column);
        cout << endl << endl;
//-----------------------------------------------------------------------------------------
        do{
        cout << "====>>> [Enter 1.] I want to add a column!" << endl;
        cout << "====>>> [Enter 2.] I want to add a string!" << endl;
        cin >> Check_User_Input; // INPUT MENU
        if (User_Check(Check_User_Input)) // Check_FUNC
            SelectUserMenu = atoi(Check_User_Input.c_str());
        if (SelectUserMenu > 2 || SelectUserMenu < 1)// check
            cout << "ERROR input " << endl;
    } while (SelectUserMenu > 2 || SelectUserMenu < 1);// check
//-----------------------------------------------------------------------------------------
 
    if (SelectUserMenu == 1) {
        do {
            cout << "The column number you want to add:" << endl;
            cin >> Check_User_Input;
            if (User_Check(Check_User_Input)) // Check_FUNC
                InsertUserSTR_COL = atoi(Check_User_Input.c_str());
            if (InsertUserSTR_COL <= column || InsertUserSTR_COL >= 1)
                column++;
            if (InsertUserSTR_COL > column || InsertUserSTR_COL < 1)
            cout << "ERROR input" << endl;
        } while (InsertUserSTR_COL > column || InsertUserSTR_COL < 1);
        do {
            cout << "Enter the minimum and maximum element of the column you added:" << endl;
            cout << "Min = MAX 998 and MIN -1000" << endl;
            cout << "Max = MAX 999 and MIN -999" << endl;
            cout << "Element Min can not be greater than or equal to the maximum!" << endl;
            cout << "Please enter element min:" << endl;
            cin >> Check_User_Input;
            if (User_Check(Check_User_Input)) // Check_FUNC
                MinElementUser = atoi(Check_User_Input.c_str());
            cout << "Please enter element max:" << endl;
            cin >> Check_User_Input;
            if (User_Check(Check_User_Input)) // Check_FUNC
                MaxElementUser = atoi(Check_User_Input.c_str());
            if (MinElementUser > 998 || MinElementUser < -1000)// check
                cout << "==>> ERORR Min element = " << MinElementUser << endl;
            if (MaxElementUser > 999 || MaxElementUser < -999)// check
                cout << "==>> ERORR Max element = " << MaxElementUser << endl;
            if (MinElementUser == MaxElementUser)// check
                cout << "==>> ERORR Element MAX = Element MIN" << endl;
            if (MinElementUser > MaxElementUser)// check
                cout << "Element min more Element max" << endl;
        } while (MinElementUser > 998 || MinElementUser < -1000 || MaxElementUser > 999 || MaxElementUser < -999 || MinElementUser == MaxElementUser || MinElementUser > MaxElementUser);// check
    }
        if (SelectUserMenu == 2) {
            do {
                cout << "The line number you want to add:" << endl;
                cin >> Check_User_Input;
                if (User_Check(Check_User_Input)) // Check_FUNC
                    InsertUserSTR_COL = atoi(Check_User_Input.c_str());
                if (InsertUserSTR_COL <= line || InsertUserSTR_COL >= 1)
                    line++;
                if (InsertUserSTR_COL > line || InsertUserSTR_COL < 1)
                    cout << "ERROR input" << endl;
            } while (InsertUserSTR_COL > line || InsertUserSTR_COL < 1);
            do {
                cout << "Enter the minimum and maximum element of the line you added:" << endl;
                cout << "Min = MAX 998 and MIN -1000" << endl;
                cout << "Max = MAX 999 and MIN -999" << endl;
                cout << "Element Min can not be greater than or equal to the maximum!" << endl;
                cout << "Please enter element min:" << endl;
                cin >> Check_User_Input;
                if (User_Check(Check_User_Input)) // Check_FUNC
                    MinElementUser = atoi(Check_User_Input.c_str());
                cout << "Please enter element max:" << endl;
                cin >> Check_User_Input;
                if (User_Check(Check_User_Input)) // Check_FUNC
                    MaxElementUser = atoi(Check_User_Input.c_str());
                if (MinElementUser > 998 || MinElementUser < -1000)// check
                    cout << "==>> ERORR Min element = " << MinElementUser << endl;
                if (MaxElementUser > 999 || MaxElementUser < -999)// check
                    cout << "==>> ERORR Max element = " << MaxElementUser << endl;
                if (MinElementUser == MaxElementUser)// check
                    cout << "==>> ERORR Element MAX = Element MIN" << endl;
                if (MinElementUser > MaxElementUser)// check
                    cout << "Element min more Element max" << endl;
            } while (MinElementUser > 998 || MinElementUser < -1000 || MaxElementUser > 999 || MaxElementUser < -999 || MinElementUser == MaxElementUser || MinElementUser > MaxElementUser);// check
        }
        cout << endl; 
//---------------------------------------------------------------------------------------------------------------
        cout << "**********Congratulations!**********" << endl;
        cout << endl;
        Create_Array(PtrArr, line, column); //Birth of a matrix
        Rand_Arr_Setup(PtrArr, line, column, MinElementUser, MaxElementUser, InsertUserSTR_COL, SelectUserMenu); //SETUP
        Print_Arr(PtrArr, line, column); //DISPLAY
        Delete_New(PtrArr, line); //DELETE
        cout << endl; 
//---------------------------------------------------------------------------------------------------------------
        cout << "Start Program enter:  (y)" << endl;
        cin >> GO; 
    } while (GO == 'y');
 
    cout << endl; 
    cout << "Programm end (-_-)" << endl; //User Warning
    Stop_Console //WINDOWS STOP CONSOLE
}
0
-1 / 0 / 0
Регистрация: 29.09.2019
Сообщений: 175
29.09.2019, 22:35  [ТС]
Terabiterr можешь пожалуйста конкретно по моему примеру написать, что в какой файле должно быть

Добавлено через 1 минуту
Terabiterr, можешь пожалуйста конкретно по моему примеру расписать, что в какой файл надо писать
0
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
29.09.2019, 23:06
Цитата Сообщение от OxepeHeH Посмотреть сообщение
Terabiterr, можешь пожалуйста конкретно по моему примеру расписать, что в какой файл надо писать
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
//File H.h
#pragma once
#include <iostream>
using namespace std;
int Input();
int Perimetr(int a);
void Show(int p);
 
 
//File Functions.cpp 
#include "H.h"
int Input()
{
    cout << "Enter the length of the sides of the square to find perimeter \n";
    int a;
    cin >> a;
    return a;
}
int Perimetr(int a)
{
    return 4 * a;
}
void Show(int p)
{
    cout << "Perimeter=\n" << p;
}
 
//File Main.cpp
#include "H.h" 
 
int main()
{
    system("color 0A");
    int a = 0, p = 0;
    a = Input();
    p = Perimetr(a);
    Show(p);
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.09.2019, 23:06
Помогаю со студенческими работами здесь

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

Многофайловый проект
1й файл main.cpp #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;Windows.h&gt; #include &quot;My_Struct.h&quot; using namespace std; ...

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

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

Многофайловый проект
скажите пожалуйста, зачем несколько файлов в файлах исходного кода? для чего это нужно?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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