Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2011, 19:12   #1
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
Сообщение проблемы с многофайловым проектом

Собс-на, проблема указана в заголовке...
Скидываю 3 файла, из которых состоит проект...
при компиляции выдает ошибку, в чем проблема-не могу понять...

Код:
файл lib.h

#ifndef LIB_H_INCLUDED
#define LIB_H_INCLUDED
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstring>
#include "stdlib.h"
using namespace std;

struct zap;
struct Student;
double ccos(double x,double eps);
void tabul_cos(double a,double b,double step,double eps);
void output_zap(zap *a,int n);
void input_zap(zap *base,int n);
int number_interprise(zap *base,int n);
void input_stud(Student *baseS, int n);
void write_stud(Student *baseS,int n);
#endif // LIB_H_INCLUDED
Код:
файл lib.cpp

#include "lib.h"

struct zap {
  char name[20];
  int plan;//план
  int execut;//сколько вполнено из плана
};
struct Student {
  char name[20];
  int course;//план
  int group;//сколько
  int propusk;
};

double ccos(double x,double eps) {
  double prev_sum=0;
  double sum=1;
  double el=1;
  int i=0;
  do {
      i+=2; prev_sum=sum;
      el=-el*x*x/(i*(i-1));
      sum+=el;
  }
  while (abs(sum-prev_sum)>eps);
  return sum;
};

void tabul_cos(double a,double b,double step,double eps) {
  cout<<"-------------------------------------------------"<<endl;
  cout<<"|      x      |     f(x) =     |     cos(x) =   |"<<endl;
  cout<<"-------------------------------------------------"<<endl;
  cout<<"-------------------------------------------------"<<endl;
  for (double i=a; i<=b; i+=step) {
    cout<<"| "<<setw(11)<<i<<" | "<<setw(14)<<ccos(i,eps)<<" | "<<setw(14)<<cos(i)<<" |"<<endl;
    cout<<"-------------------------------------------------"<<endl;
  }
}
void output_zap(zap *a,int n) {
    cout<<"-----------------------------------------"<<endl;
    cout<<"|                 Name|   Plan|  Execute|"<<endl;
    cout<<"-----------------------------------------"<<endl;
    for (int i=0; i<n; i++) {
       cout<<"|"<<setw(21)<<a[i].name<<"|"<<setw(7)<<a[i].plan<<
      "|"<<setw(9)<<a[i].execut<<"|"<<endl;;
    };
    cout<<"-----------------------------------------"<<endl;
}
void input_zap(zap *base,int n) {
  for (int i=0; i<n; i++) {
      cout<<i+1<<" record(enter):"<<endl;
      cout<<"  Name = "; cin>>base[i].name; cout<<endl;
      cout<<"  Plan = "; cin>>base[i].plan; cout<<endl;
      cout<<"  Execute = "; cin>>base[i].execut; cout<<endl<<"____"<<endl;
  };
}
int number_interprise(zap *base,int n) {
    int numb=0;
    for (int i=0; i<n; i++) {
        if (strcmp(base[i].name,base[0].name)==0) numb+=1;
    };
    return numb;
}
Код:
//это ясно что
#include "lib.h"

int main()
{
    cout<<ccos(3.14,0.0000001)<<endl;
    return 0;
}
не работает функция....ни одна...может, я что неправильно делаю?
P.S.
И еще буду признателен, если подскажите, как один из параметров в структуре(желательно строка) может быть помещен в динамическую память(то бишь через *), и как это дело можно будет использовано...
ибо я пробовал несколько вариантов, но почему то все неудачные...
monolit111 вне форума Ответить с цитированием
Старый 14.09.2011, 19:24   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

список ошибок в студию.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.09.2011, 19:27   #3
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
По умолчанию

In function 'main':
line 5: undefined reference to 'ccos(double, double)'

PS.Среда Code::Block
monolit111 вне форума Ответить с цитированием
Старый 14.09.2011, 20:33   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Т.е. lib.cpp собран в объектный файл как я понимаю?
Carbon вне форума Ответить с цитированием
Старый 14.09.2011, 20:47   #5
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
По умолчанию

да..
может, я что неправильно подключаю?...но вроде как,говорили так и делаю....
monolit111 вне форума Ответить с цитированием
Старый 15.09.2011, 00:08   #6
htonasral
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 18
По умолчанию

Нада кликнуть правой кнопкой мыши на файлике lib.cpр, потом Properties->Build в окне Belongs in targets отметить Debug если у тебя дебаг-проект или Release если у тебя релиз-проект, если незнаешь, то смело можешь отмечать оба.

Дальше пересобираешь проект, должно все работать.

Просто проблема заключалась в том, что ты не подключил файлик lib.cpp к проекту и поэтому компилятор не видел реализации этой функции и ругался на неё(кстати это можно было отметить в визарде когда ты создавал файлик lib.cpp)

Последний раз редактировалось htonasral; 15.09.2011 в 00:13.
htonasral вне форума Ответить с цитированием
Старый 15.09.2011, 12:11   #7
monolit111
Пользователь
 
Регистрация: 14.09.2011
Сообщений: 95
По умолчанию

Истинно так!Спасибо большое)
monolit111 вне форума Ответить с цитированием
Старый 09.09.2013, 18:36   #8
norn
 
Регистрация: 24.05.2013
Сообщений: 3
По умолчанию Не получилось

Здравствуйте!

Проблема та же. При создании нового пустого файла система предложила его включить в проект. Я это и сделал в оба профиля (Release и Debug). Однако, Code::Blocks отказался видеть функцию из другого файла.

Помогите, кто чем может, пожалуйста.

Спасибо. )
norn вне форума Ответить с цитированием
Старый 09.09.2013, 18:44   #9
norn
 
Регистрация: 24.05.2013
Сообщений: 3
По умолчанию

Цитата:
Сообщение от norn Посмотреть сообщение
Здравствуйте!

Проблема та же. При создании нового пустого файла система предложила его включить в проект. Я это и сделал в оба профиля (Release и Debug). Однако, Code::Blocks отказался видеть функцию из другого файла.

Помогите, кто чем может, пожалуйста.

Спасибо. )
Черт подери! Простите, но нет слов. Стер старый проект, создал новый. Добавил исходники - работает! Спасибо за внимание.
norn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление проектом Lime Свободное общение 2 26.08.2011 16:00
Базой Access с проектом C# Eugeneminimal C# (си шарп) 3 26.06.2011 12:32
Работа с проектом С++ на С# stalsoft C# (си шарп) 7 09.06.2011 15:36
Проблеммы с проектом pisarev-70 Общие вопросы Delphi 2 08.05.2010 19:47
Помогите с проектом FreeLove Помощь студентам 7 26.07.2009 00:00