Otóż mam taki program składający się z trzech plików
Nagłówek:
#ifndef Bamboo_h
#define Bamboo_h
namespace SALES
{
const int QUARTERS = 4;
struct Sales
{
double sales[QUARTERS];
double average;
double max;
double min;
};
void setSales(Sales &s, const double ar[], int n);
void setSales(Sales &s);
void showSales(const Sales &s);
}
#endif // !Bamboo
Pierwszy plik
#include "stdafx.h"
#include "Header4.h"
#include <iostream>
int main()
{
using namespace std;
using namespace SALES;
Sales s;
const double tablica[4] = { 1.2,3.2,5.5,0.1 };
setSales(s, tablica[], 4);
showSales(s);
setSales(s);
showSales(s);
return 0;
}
drugi plik
#include "stdafx.h"
#include "Header4.h"
#include <iostream>
void setSales(Sales &s, const double ar[], int n)
{
using namespace SALES;
using namespace std;
double srednia = 0;
for (int i = 0; i < n; i++)
{
s.sales[i] = ar[i];
srednia += ar[i];
}
s.average = (srednia/n);
double najwieksza = ar[0];
for (int i = 0; i < n; i++)
{
if (najwieksza < ar[i])
{
najwieksza = ar[i];
}
}
s.max = najwieksza;
double najmniejsza = ar[0];
for (int i = 0; i < n; i++)
{
if (najmniejsza > ar[i])
{
najmniejsza = ar[i];
}
}
s.min = najmniejsza;
//zerowanie danych w tablicy;
for (int i = 0; i < n; i++)
{
if (ar[i] != najwieksza || ar[i] != najmniejsza)
{
ar[i] = 0;
}
}
}
void setSales(Sales &s)
{
using namespace SALES;
using namespace std;
double srednia = 0;
for (int i = 0; i < 4; i++)
{
cout << "Wpiesz wartosc numer: " << i << endl;
cin >> s.sales[i];
srednia += s.sales[i];
}
s.average = (srednia / 4);
double najwieksza = s.sales[0];
for (int i = 0; i < 4; i++)
{
if (najwieksza < s.sales[i])
{
najwieksza = s.sales[i];
}
}
s.max = najwieksza;
double najmniejsza = s.sales[0];
for (int i = 0; i < 4; i++)
{
if (najmniejsza > s.sales[i])
{
najmniejsza = s.sales[i];
}
}
s.min = najmniejsza;
//zerowanie danych w tablicy;
for (int i = 0; i < 4; i++)
{
if (s.sales[i] != najwieksza || s.sales[i] != najmniejsza)
{
s.sales[i] = 0;
}
}
}
void showSales(const Sales &s)
{
using namespace SALES;
using namespace std;
cout << s.average << endl;
cout << s.max << endl;
cout << s.min << end;
}
I teraz moje pytanie czy nagłówek jest dobrze napisany chodzi mi czy do tworzenia przestrzeni nazw używa się infdef i define
Następnie mam wrażenie, że ten drugi plik wgl nie jest odnajdowany przez pierwszy(definicje funkcji nie widnieją w funkcji main)
W pliku wygląda to tak
oraz tak od strony IDE
