Witam, mam do napisania program który będzie obliczał podatek. W każdym mieście dodaje domy i liczę dla każdego miasta podatek od tych domów.
Problem jest taki że gdy dodam 4 raz dom do program wyrzuca błąd i nie wiem dlaczego.
A to kod:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int a, n, l, w, m;
string u, s;
int liczba_domow;
int h[1];
int house = 0;
int i, x;
int loop = 0;
class Miasto
{
public:
string nazwa_miasta;
int id_miasta;
int id__miasta;
Miasto(int id, string nm) : id_miasta(id), nazwa_miasta(nm){};
};
Miasto ma(1, "Wroclaw");
Miasto mb(2, "Krakow");
Miasto mc(3, "Poznan");
class Dom
{
public:
int house, m_id;
int ktore_miasto;
string ulica;
int numer_domu;
int liczba_mieszkancow;
int wsp_lokalizacji;
Dom(int m, string u, int n, int l, int w) : ktore_miasto(m), ulica(u), numer_domu(n), liczba_mieszkancow(l), wsp_lokalizacji(w)
{
house++;
h[1] = house;
};
friend class Miasto;
void dodaj_dom(int m, string u, int n, int l, int w);
};
void dodaj_dom()
{
cout << "------- Menu wprowadz dane : ------- " <<endl;
cout << "=======================================" << endl;;
cout << endl << "Podaj miasto: " << endl;
cout << "1. Wroclaw, 2. Krakow, 3. Poznan " << endl;
cout << ": ";
cin >> m;
cout << "-----------------------------------------" << endl;
cout << "Podaj ulice" << endl;
cout << ": ";
cin >> u;
cout << "-----------------------------------------"<< endl;
cout << endl << "Podaj numer domu"<< endl;
cout << ": ";
cin >> n;
cout << "-----------------------------------------"<< endl;
cout << endl << "Podaj liczbe mieszkancow"<< endl;
cout << ": ";
cin >> l;
cout << "-----------------------------------------"<< endl;
cout << endl << "Podaj wspolczynnik lokalizacji" << endl;
cout << ": ";
cin >> w;
cout << "-----------------------------------------"<< endl;
};
void jakie__miasto(int miasto_id)
{
if (miasto_id == 1)
{
cout << ma.nazwa_miasta;
}
if (miasto_id == 2)
{
cout << mb.nazwa_miasta;
}
if (miasto_id == 3)
{
cout << mc.nazwa_miasta;
}
}
int main()
{
int j,k, wspa, wspb, wspc;
int st[300];
string v,y,z;
wspa = 0;
wspb = 0;
wspc = 0;
do
{
t[1] = new Miasto(1, "Wroclaw");
t[2] = new Miasto(2, "Krakow");
t[3] = new Miasto(3, "Poznan");
//////// wskażnik ilości pętli /////////
loop=loop+1;
///////////////////////////////////////
liczba_domow = h[1];
////////// Dodanie domu ///////////////
dodaj_dom();
///////////////////////////////////////
///////// Wskażnik tablicowy na obiekty klasy Dom ////////////
Dom *d[0];
d[loop] = new Dom(m, u, n, l, w);
/////////////////////////////////////////////////////////////
cout << "Loop: " << loop << endl; //////wskażnik pętli
// pętla do wyświetlenia wszystkich obiektów klasy Dom //////
for (i=1; i<=loop; i++)
{
//int s = d[i] -> ktore_miasto; //// które miasto jest teraz
//st[i] = s;
//a.jakie_miasto(s);
cout << d[45] ->ulica;
cout << "======================== Dane zbiorcze:====================================== " <<endl;
cout << s << endl;
cout << "Miasto: ";
//jakie__miasto(d[i]->ktore_miasto);
cout << endl;
cout << " Ulica: " << d[i] -> ulica << endl;
cout << "Numer domu: " << d[i] -> numer_domu << endl;
//cout << "----";
cout << "Liczba mieszkancow: " << d[i] -> liczba_mieszkancow <<endl;
cout << "Wspolczynnik lokalizacji: " << d[i] -> liczba_mieszkancow << endl;
cout << "============================================================================="<<endl;
}
cout << "========= Zakonczyć: T(t) lub N(n) ===========" <<endl;
cin >> z;
///////////////////// Podliczenie ///////////////////
}
while(z != "t");
cout << "=================== Dane podatkowe ==================";
Dom *d[0];
for (j=1; j<=loop; j++)
{
k = d[j] ->ktore_miasto;
cout <<k;
if( k == 1 )
{
wspa = (d[j]->liczba_mieszkancow * d[j]->wsp_lokalizacji) + wspa;
}
if( k == 2 )
{
wspb = (d[j]->liczba_mieszkancow * d[j]->wsp_lokalizacji) + wspb;
}
if( k == 3 )
{
wspc = (d[j]->liczba_mieszkancow * d[j]->wsp_lokalizacji) + wspc;
}
}
cout << endl << "Wrocław : " << wspa << endl;
cout << "Krakow : " << wspb << endl;
cout << "Poznan : " << wspc << endl;
}