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

Разбиение программы на файлы С++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.71
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 02:11     Разбиение программы на файлы С++ #1
Здравствуйте!

У меня не получается линейный алгоритм своей программы разбить на два файла именно следующим образом.
В первом будет функция main, содержащая операции ввода-вывода, во втором функция без параметров и без возвращаемого значения которая осуществляет вычислительные операции этого алгоритма.
По отдельности файлы компилируются без проблем, но вместе не получается, ругается на необьявленные переменные в файле с функцией, хотя они обьявлены глобально. Также не воспринимается константа M_PI, хотя соответствующая библиотека подключена.

Вот первый файл программы:
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
#include <iostream>
#include <windows.h>
#include <cstring>
#define _USE_MATH_DEFINES
#include <math.h>
using namespace std;
 
extern double p,n,r,a;
void count();
 
void main()
{
    char s[5];
    n=5;
    r=20;
    count();
    cout<<"\nFor radius=20 and sides count=5 perimeter of a polygon equals: "<<p;
    cout<<endl;
    do 
    {
        cout<<"\nInput the number sides of the polygon: ";
        cin>>n;
        cout<<endl;
        cout<<"Input radius of circle: ";
        cin>>r;
        cout<<endl;
        count();
        cout<<"The perimeter of a polygon equals: " <<p;
        cout<<endl;
        cout<<"\nAgain? (Yes/No): ";
        cin>>s;
    } while (!strcmp(s, "yes") || !strcmp(s, "Yes"));
}
Вот второй файл программы:
C++
1
2
3
4
5
6
7
8
#include <math.h>
#define _USE_MATH_DEFINES
 
void count()
{
    a=2*r*sin(3.14/n);
    p=n*a;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2011, 02:11     Разбиение программы на файлы С++
Посмотрите здесь:

глобальные static-переменные и разбиение на файлы C++
Разбиение проекта на файлы C++
C++ Разбиение проекта на файлы
Разбиение проекта на файлы C++
C++ Разбиение программы на модули!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
18.09.2011, 02:17     Разбиение программы на файлы С++ #2
DenMach, нужно подключить второй файл к первому
C++
1
#include "file2.h"
Добавлено через 58 секунд
Цитата Сообщение от DenMach Посмотреть сообщение
void count();
Етот прототип надо убрать
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 03:00  [ТС]     Разбиение программы на файлы С++ #3
Извиняюсь за дублирование, это вышло случайно)


Попробовал файл подключить так:
C++
1
#include <File2.h>
К предыдущим ошибкам о необьявленных идентификаторах добавилась ошибка о том что данный файл не найден

Попробовал так:
C++
1
#include <File2.cpp>
Файл видит, но проблема с переменными осталась, ни одна не считается обьявленной.

Прототип убрал
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
18.09.2011, 03:47     Разбиение программы на файлы С++ #4
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
#include <iostream>
#include <windows.h>
#include <cstring>
#include "File2.h"
 
using namespace std;
 
 void main()
{
        char s[5];
        n=5;
        r=20;
        count();
        cout<<"\nFor radius=20 and sides count=5 perimeter of a polygon equals: "<<p;
        cout<<endl;
        do 
        {
                cout<<"\nInput the number sides of the polygon: ";
                cin>>n;
                cout<<endl;
                cout<<"Input radius of circle: ";
                cin>>r;
                cout<<endl;
                count();
                cout<<"The perimeter of a polygon equals: " <<p;
                cout<<endl;
                cout<<"\nAgain? (Yes/No): ";
                cin>>s;
        } while (!strcmp(s, "yes") || !strcmp(s, "Yes"));
}
C++
1
2
3
4
5
6
7
8
9
#include <math.h>
#define _USE_MATH_DEFINES
double p,n,r,a;
 
void count()
{
        a=2*r*sin(3.14/n);
        p=n*a;
}
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 19:01  [ТС]     Разбиение программы на файлы С++ #5
res, сделал именно так, проблема с определением переменных решена, но файл он почему то не может найти.

fatal error C1083: Не удается открыть файл include: File2.h: No such file or directory

Добавлено через 5 часов 12 минут
Уважаемые форумчане, по прежнему нуждаюсь в вашей помощи, не могу решить эту задачу(((
IrineK
Заблокирован
18.09.2011, 20:41     Разбиение программы на файлы С++ #6
DenMach, а как все-таки называется ваш второй файл?
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 21:15  [ТС]     Разбиение программы на файлы С++ #7
Файл называется File2.cpp
IrineK
Заблокирован
18.09.2011, 21:32     Разбиение программы на файлы С++ #8
А назовите-ка его File2.h
Глядишь, и жизнь наладится )
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 21:46  [ТС]     Разбиение программы на файлы С++ #9
Спасибо большое IrineK !!! жизнь жизнь действительно наладилась)))

только вот не понятно почему я могу подключать только файлы .h? А файлы .cpp не подключаюся (я пробовол писать и #include "File2.сpp" )
IrineK
Заблокирован
18.09.2011, 22:20     Разбиение программы на файлы С++ #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот полезная ссылка по данному вопросу: http://www.intuit.ru/department/pl/prcmsvs2010/17/

Цитирую:
Если поместить главную функцию main() в один файл, а определения собственной функции программиста – во второй файл, то первому файлу нужны прототипы функций. Для этого можно хранить прототипы функций в одном из заголовочных файлов.

Т.е., когда вы организовали ваш код в виде двух срр, второй cpp подключался, но без прототипов в хэдере первый срр не мог использовать ваши функции.
В простейшем случае в хэдер помещаем не только прототип, но и всю функцию (как в данном примере).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2011, 22:36     Разбиение программы на файлы С++
Еще ссылки по теме:

Двухсвязный список (разбиение кода на файлы) C++
C++ Разбиение программы на файлы

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

Или воспользуйтесь поиском по форуму:
DenMach
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 10
18.09.2011, 22:36  [ТС]     Разбиение программы на файлы С++ #11
Еще раз спасибо вам огромное IrineK, разъяснили все доступно и толково)))
Yandex
Объявления
18.09.2011, 22:36     Разбиение программы на файлы С++
Ответ Создать тему
Опции темы

Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru