Implementierung c++



  • Ich hatte es durch googeln von der Seite .Und habe es daher übernommen .



  • Falls jemand mal probleme mit der Aufgabe haben sollte .

    Hier meine Lösung soweit :

    #include <iostream>
    #include <exception>
    #include "CParkingLot.h"
    using namespace std;
    
    int m_id;
    
    void generateId()
    {
    	static int id = 100;
    
    	if (id >= 100 && id <= 1000)
    	{
    		m_id = id;
    		id++;
    	}
    	else
    	{
    		throw std::runtime_error("too many ids");
    	}
    }
    
    CParkingLot::CParkingLot(int capacity ){
    
    	if(m_capacity <= 200 ){
    
    		m_capacity = capacity;
        }
    	else{
    		int capacity = 80;
    	}
    	generateId();
    }
    
    bool CParkingLot::parkVehicle(){
    
    	if( m_curOccupancy == m_capacity   ){
    		return false;
    	}
    	if ( m_curOccupancy < m_capacity){
    
    
    			m_curOccupancy++;
    			return true;
    		}
    
    
    }
    
    int CParkingLot::parkVehicles(int numVehicles){
    	if (m_capacity -m_curOccupancy < m_capacity){
    
    			return 0;
    		}
    
    		if( m_curOccupancy == m_capacity   ){
    			return numVehicles;
    		}
    
    	}
    
    int CParkingLot::getFreeSpots(){
    
    	return m_freeSpots;
    }
    
    int CParkingLot::getCapacity(){
    	return m_capacity;
    
    	}
    
    int CParkingLot::getCurOccupancy(){
    	return m_curOccupancy;
    
    }
    
    void CParkingLot::setCurOccupancy(int curOccupancy){
    	m_curOccupancy = curOccupancy;
    }
    
    void CParkingLot::setCapacity(int capacity){
    	m_capacity = capacity;
    }
    
    ostream& operator<< (ostream& lop,const CParkingLot& rop){
      lop << "ID:" << "" << rop.m_id << "" << "Kapazität:" << "" << rop.m_capacity << "" << "frei:" << rop.m_freeSpots << endl;
    
     return lop;
    }
    
    void CParkingLot::print(){
    	cout << " Der Parkplatz hat folgende Eigenschaften :" << endl;
    	cout << "ID:" << "" << m_id << "" << "Kapazität:" << "" << m_capacity << "" << "frei:" << m_freeSpots << endl;
    
    }
    
    
    
    
    
    

    Was sagen die Experten hier ?



  • @Programmer33 sagte in Implementierung c++:

    Falls jemand mal probleme mit der Aufgabe haben sollte

    lieber selber denken statt so einen Schrott zu kopieren.



  • @Programmer33 sagte in Implementierung c++:

    Was sagen die Experten hier ?

    Das hat immer noch genau so viele Fehler wie am Anfang, du testest scheinbar dein Programm in keinster weise und schreibst nur sinnlos paar zeilen zusammen und wenn der Compiler das ohne Fehler übersetzt denkst du das es Funktioniert wie das in deiner Aufgabe steht.
    So kompliziert ist die Aufgabe nicht und mit ein wenig logischen Denken auf einfach umzusetzen. Wenn du es im Sourcecode nicht hin bekommst dann mach das doch erstmal auf papier mit gedankengängen was muss wie wo stehen und wo dazugezähltz oder abgezogen werden damit die Zähler stimmen, der Rest ist danmn eigentlich ganz einfach.
    Denn du hast immer noch deine globale Variable m_id drin und generateId ist immer noch nicht in der Klasse CParkingLot, deine generateId sieht immer noch irgendwie unlogisch aus. m_capacity in Konstruktor scheint auch irgendwie bischen sinnbefreit belegt zu werden, warum kann ich jeden Wert bis 200 angeben der übernommen wird, aber über 200 bekomm ich dann nur 80 stellplätze und so könnte man eigentlich bei jeder Funktion weiter machen, was wiederum den verdacht nahelegt das du entweder keinen bblassen schimmer hast was du da machst oder zu faul bist etwas zu lernen, denn selbst nach den ganzen Tips die du hier bekommen hast hat sich dein Code eher nur verschlimmbessert



  • Es tut mir im Herzen weh wie User um User seine Zeit mit diesem Typen verschwendet. Der kennt doch noch nichtmal den Unterschied zwischen Membern und freien Funktionen oder globalen Variablen und überlebt ohne spoon-feeding keine 2 Minuten. Meine Meinung (as an undergraduate drop-out): Wer in der Vorlesung schläft, durch Abwesenheit glänzt, keine Übungen macht, keine Eigeninitiative zeigt ist selbst Schuld und darf sich gerne selber geholfen sein.



  • Das Problem ist ,dass wenn ich das m_id oben weg lasse . Eclipse meckert :

    
    #ifndef CPARKINGLOT_H_
    #define CPARKINGLOT_H_
    #include<iostream>
    using namespace std;
    
    class CParkingLot{
    private:
    	int m_id;
    	int m_capacity;
    	int m_curOccupancy = 0;
    	void generateId();
    	int m_freeSpots;
    
    public:
    CParkingLot(int capacity = 80);
    
    int getId();
    int getCapacity();
    void setCapacity(int capacity);
    int getCurOccupancy();
    void setCurOccupancy(int curOccupancy);
    bool parkVehicle();
    int parkVehicles(int numVehicles);
    int getFreeSpots();
    void print();
    friend ostream& operator<< (ostream& lop,const CParkingLot& rop);
    
    
    };
    ostream& operator<< (ostream& lop,const CParkingLot& rop);
    
    
    #endif /* CPARKINGLOT_H_ */
    
    
    #include <iostream>
    #include <exception>
    #include "CParkingLot.h"
    using namespace std;
    
    
    
    void generateId()
    {
    	static int id = 100;
    
    	if (id >= 100 && id <= 1000)
    	{
    		m_id = id;
    		id++;
    	}
    	else
    	{
    		throw std::runtime_error("too many ids");
    	}
    }
    
    

    Description Resource Path Location Type
    use of undeclared identifier 'm_id' CParkingLot.cpp /SS18 line 21 C/C++ Problem
    Jetzt wird das m_id nicht erkannt ?
    Was soll ich jetzt machen?



  • @Programmer33 sagte in Implementierung c++:

    Jetzt wird das m_id nicht erkannt ?

    Woran könnte das liegen?

    Was soll ich jetzt machen?

    Denken.



  • Verstehe es nicht .
    Soll ich es static int m_id =100 nennen ?

    Verstehe es aber trotzdem nicht .
    Bin ja auch kein grosser Informatik experte.
    Studiere und habe in Mathe ein Programmierfach .
    Das Fach macht mir ehrlich auch kein grossen Spass 🙂



  • @Programmer33 sagte in Implementierung c++:

    Verstehe es nicht .
    Soll ich es static int m_id =100 nennen ?

    Verstehe es aber trotzdem nicht .
    Bin ja auch kein grosser Informatik experte.
    Studiere und habe in Mathe ein Programmierfach .
    Das Fach macht mir ehrlich auch kein grossen Spass 🙂

    Wirtschaftsinformatik? 😂



  • @Programmer33 sagte in Implementierung c++:

    Soll ich es static int m_id =100 nennen ?

    Warum?


Log in to reply