damian_rm Temat założony przez niniejszego użytkownika |
[C++]Problem "does not name a type " » 2013-06-12 12:08:39 Witam. Przy kompilowaniu wyskakuje błąd "'nocleg' does not name a type". Poniżej wklejam kod programu głównego i nocleg.h. W czym problem? #include <iostream> #include <string.h> #include <time.h> #include <conio.h> #include <cstdlib> #include <fstream>
#include "osoba.h" #include "gosc.h" #include "nocleg.h" #include "motel.h" #include "hostel.h" #include "schronisko.h" #include "BB.h" #include "pensjonat.h"
using namespace std;
nocleg * noclegi[ 100 ]; Osoba * osoby[ 100 ];
int u = 0, e = 0, size = 0, size_n = 0;
void zapis_do_pliku() { ofstream Dane; Dane.open( "noclegi.txt" ); for( int i = 0; i < size_n; i++ ) { Dane << noclegi[ i ]->getTyp() << endl; Dane << noclegi[ i ]->getNazwa() << endl; Dane << noclegi[ i ]->getWojewodztwo() << endl; Dane << noclegi[ i ]->getMiejscowosc() << endl; Dane << noclegi[ i ]->getCena() << endl; Dane << noclegi[ i ]->getPrzyjazd() << endl; Dane << noclegi[ i ]->getIle_dob() << endl; if( noclegi[ i ]->getTyp() == "motel" ) { Dane << noclegi[ i ]->getRodzaj_pokoju() << endl; Dane << noclegi[ i ]->getPietro() << endl; } if( noclegi[ i ]->getTyp() == "hostel" ) { Dane << noclegi[ i ]->getRodzaj_pokoju() << endl; Dane << noclegi[ i ]->getPietro() << endl; } if( noclegi[ i ]->getTyp() == "schronisko" ) { Dane << noclegi[ i ]->getWyposazenie() << endl; Dane << noclegi[ i ]->getSzkola() << endl; } if( noclegi[ i ]->getTyp() == "BB" ) { Dane << noclegi[ i ]->getPietro() << endl; } if( noclegi[ i ]->getTyp() == "pensjonat" ) { Dane << noclegi[ i ]->getRodzaj_pokoju() << endl; } } Dane.close(); }
void zapisDoPliku() { ofstream goscie; goscie.open( "ListaGosci.txt" ); for( int i = 0; i < size; i++ ) { goscie << "gosc" << endl; goscie << osoby[ i ]->getImie() << endl; goscie << osoby[ i ]->getNazwisko() << endl; goscie << osoby[ i ]->getPESEL() << endl; } }
void odczytZPlikuOsob() { char imie[ 20 ]; char nazwisko[ 20 ]; char pesel[ 20 ]; char typ[ 10 ]; int i = 0; ifstream Osoby; Osoby.open( "ListaGosci.txt" ); while( Osoby.good() ) { Osoby.getline( typ, sizeof( typ ) ); if( typ[ 0 ] == 'k' ) { Osoby.getline( imie, sizeof( imie ) ); Osoby.getline( nazwisko, sizeof( nazwisko ) ); Osoby.getline( pesel, sizeof( pesel ) ); osoby[ u++ ] = new Gosc( size, imie, nazwisko, pesel ); size++; } i++; } }
void odczytZPliku() { char typ[ 10 ], nazwa[ 40 ], wojewodztwo[ 20 ], miejscowosc[ 30 ], cena[ 10 ], przyjazd[ 10 ], ile_dob[ 10 ], rodzaj_pokoju[ 20 ], pietro[ 10 ], szkola[ 20 ], wyposazenie[ 20 ]; int i = 0, cena2, ile_dob2, pietro2; ifstream Dane; Dane.open( "noclegi.txt" ); while( Dane.good() ) { Dane.getline( typ, sizeof( typ ) ); Dane.getline( nazwa, sizeof( nazwa ) ); Dane.getline( wojewodztwo, sizeof( wojewodztwo ) ); Dane.getline( miejscowosc, sizeof( miejscowosc ) ); Dane.getline( cena, sizeof( cena ) ); Dane.getline( przyjazd, sizeof( przyjazd ) ); Dane.getline( ile_dob, sizeof( ile_dob ) ); cena2 = atoi( cena ); ile_dob2 = atoi( ile_dob ); switch( typ[ 0 ] ) { case 'm': Dane.getline( rodzaj_pokoju, sizeof( rodzaj_pokoju ) ); Dane.getline( pietro, sizeof( pietro ) ); pietro2 = atoi( pietro ); noclegi[ e++ ] = new Motel( size_n, nazwa, wojewodztwo, miejscowosc, cena2, przyjazd, ile_dob2, rodzaj_pokoju, pietro2 ); size_n++; break; case 'h': Dane.getline( rodzaj_pokoju, sizeof( rodzaj_pokoju ) ); Dane.getline( pietro, sizeof( pietro ) ); pietro2 = atoi( pietro ); noclegi[ e++ ] = new Hostel( size_n, nazwa, wojewodztwo, miejscowosc, cena2, przyjazd, ile_dob2, rodzaj_pokoju, pietro2 ); size_n++; break; case 's': Dane.getline( wyposazenie, sizeof( wyposazenie ) ); Dane.getline( szkola, sizeof( szkola ) ); noclegi[ e++ ] = new Schronisko( size_n, nazwa, wojewodztwo, miejscowosc, cena2, przyjazd, ile_dob2, wyposazenie, szkola ); size_n++; break; case 'B': Dane.getline( pietro, sizeof( pietro ) ); pietro2 = atoi( pietro ); noclegi[ e++ ] = new BB( size_n, nazwa, wojewodztwo, miejscowosc, cena2, przyjazd, ile_dob2, pietro2 ); size_n++; break; case 'p': Dane.getline( rodzaj_pokoju, sizeof( rodzaj_pokoju ) ); noclegi[ e++ ] = new BB( size_n, nazwa, wojewodztwo, miejscowosc, cena2, przyjazd, ile_dob2, rodzaj_pokoju ); size_n++; break; } i++; } }
void nowyGosc() { string imie, nazwisko, pesel; int ind = size; cout << "Podaj imie:\n"; cin >> imie; cout << "Podaj nazwisko:\n"; cin >> nazwisko; cout << "Podaj PESEL:\n"; cin >> pesel; osoby[ u++ ] = new Gosc( ind, imie, nazwisko, pesel ); size++; }
void dodajNocleg() { string nazwa, wojewodztwo, miejscowosc, przyjazd, rodzaj_pokoju, wyposazenie, szkola; int cena, ile_dob, pietro; char typ, c; cout << "========DODAWANIE===NOCLEGU===========\n"; cout << "Typ noclegu\n"; cout << "(m)otel | (h)ostel | (s)chronisko | (B)B | (p)ensjonat \n"; cin >> typ; cout << "Nazwa: "; cin.ignore(); getline( cin, nazwa ); cout << "Wojewodztwo: "; getline( cin, wojewodztwo ); cout << "Miejscowosc: "; getline( cin, miejscowosc ); cout << "Cena: "; cin >> cena; cout << "Przyjazd (miesiac): "; getline( cin, przyjazd ); cout << "Ile_dob: "; cin >> ile_dob; if( typ == 'm' ) { cout << "Rodzaj pokoju: "; getline( cin, rodzaj_pokoju ); cout << "Pietro: "; cin >> pietro; noclegi[ e++ ] = new Motel( size_n, nazwa, wojewodztwo, miejscowosc, cena, rodzaj_pokoju, przyjazd, ile_dob, pietro ); size_n++; } if( typ == 'h' ) { cout << "Rodzaj pokoju: "; getline( cin, rodzaj_pokoju ); cout << "Pietro: "; cin >> pietro; noclegi[ e++ ] = new Hostel( size_n, nazwa, wojewodztwo, miejscowosc, cena, rodzaj_pokoju, przyjazd, ile_dob, pietro ); size_n++; } if( typ == 's' ) { cout << "Wyposazenie: "; getline( cin, wyposazenie ); cout << "Szkola: "; getline( cin, szkola ); noclegi[ e++ ] = new Schronisko( size_n, nazwa, wojewodztwo, miejscowosc, cena, przyjazd, ile_dob, wyposazenie, szkola ); size_n++; } if( typ == 'B' ) { cout << "Pietro: "; cin >> pietro; noclegi[ e++ ] = new BB( size_n, nazwa, wojewodztwo, miejscowosc, cena, przyjazd, ile_dob, pietro ); size_n++; } if( typ == 'p' ) { cout << "Rodzaj pokoju: "; getline( cin, rodzaj_pokoju ); noclegi[ e++ ] = new Pensjonat( size_n, nazwa, wojewodztwo, miejscowosc, cena, rodzaj_pokoju, przyjazd, ile_dob ); size_n++; } cout << "======================================\n"; getch(); }
void wyswietlGosci() { int k = 0; char g = 0; do { osoby[ k ]->daneOsobowe(); cout << "\n\t[z] poprzedni || [x] nastepny || [q] powrot do menu\n"; g = getch(); switch( g ) { case 'x': { if( k < size - 1 ) k++; break; } case 'z': { if( k > 0 ) k--; break; } } system( "CLS" ); } while(( g == 'z' ) ||( g == 'x' ) ); }
void wyswietlNoclegi() { int n = 0; char g = 0; do { noclegi[ n ]->wyswietlNocleg(); cout << "[z] poprzedni || [x] nastepny \n"; cout << "[u] usun ostatni ||[q] powrot do menu\n"; g = getch(); switch( g ) { case 'x': { if( n < size_n - 1 ) n++; break; } case 'z': { if( n > 0 ) n--; break; } case 'u': { size_n--; e--; n--; cout << "USUNIETO!"; _sleep( 1000 ); break; } } system( "CLS" ); } while(( g == 'z' ) ||( g == 'x' ) ||( g == 'u' ) ); }
void menu() { cout << "\n===============NOCLEGI==================\n"; cout << "\t\t[1] Przegladaj noclegi \n"; cout << "\t\t[2] Dodaj nocleg \n"; cout << "\t\t[3] Goscie\n"; cout << "\t\t[4] Dodaj goscia\n"; cout << "\t\t[q] Wyjscie"; cout << "\n======================================================\n\n"; }
int main()
{ odczytZPliku(); odczytZPlikuOsob(); int koniec = 0; char wybor; while( !koniec ) { system( "cls" ); menu(); wybor = getch(); switch( wybor ) { case '2': system( "CLS" ); dodajNocleg(); system( "CLS" ); menu(); break; case '3': system( "CLS" ); wyswietlGosci(); break; case '1': system( "CLS" ); wyswietlNoclegi(); break; case '4': system( "CLS" ); nowyGosc(); system( "CLS" ); menu(); break; case 'q': system( "CLS" ); koniec = 1; break; } } zapisDoPliku(); zapis_do_pliku(); return 0; } #ifdef NOCLEG_H #define NOCLEG_H #include <string.h>
int ID = 0;
class nocleg : public Gosc { public: nocleg() { }; nocleg( string typ, string nazwa, string wojewodztwo, string miejscowosc, int cena, string przyjazd, int ile_dob ) { ID++; } void setNazwa( string nazwa ) { this->nazwa = nazwa; } string getNazwa() { return this->nazwa; } void setRodzaj_pokoju( string rodzaj_pokoju ) { this->rodzaj_pokoju = rodzaj_pokoju; } string getRodzaj_pokoju() { return this->rodzaj_pokoju; } void setPietro( int pietro ) { this->pietro = pietro; } int getPietro() { return this->pietro; } string getSzkola() { return this->szkola; } string getWyposazenie() { return this->wyposazenie; } void setWojewodztwo( string wojewodztwo ) { this->wojewodztwo = wojewodztwo; } string getWojewodztwo() { return this->wojewodztwo; } void setMiejscowosc( string miejscowosc ) { this->miejscowosc = miejscowosc; } string getMiejscowosc() { this->miejscowosc; } void setID( int s ) { nrID = s; } int getID() { return nrID; } void setCena( int cena ) { this->cena = cena; } int getCena() { return this->cena; } void setPrzyjazd( string przyjazd ) { this->przyjazd = przyjazd; } string getPrzyjazd() { return this->przyjazd; } void setIle_dob( int ile_dob ) { this->ile_dob = ile_dob; } int getIle_dob() { return this->ile_dob; } virtual string getTyp() = 0; virtual void wyswietlNocleg() { } private: string nazwa, wojewodztwo, miejscowosc, przyjazd, rodzaj_pokoju, wyposazenie, szkola; int cena, ile_dob, pietro, nrID; }; #endif |