Implementierung c++



  • @Programmer33 sagte in Implementierung c++:

    Ist es so mit der Variable vehicles besser gelöst ?

    Jetzt veränderst du den übergebenen Parameter. Auch der ist weg wenn die Funktion zurückkehrt. Ich schätze, du solltest m_curOccupancy inkrementieren.

    Was soll die globale Variable m_id?

    @Swordfish sagte in Implementierung c++:

    @Programmer33 sagte in Implementierung c++:

    dieser ** Fehler geht immer später weg wenn ich main usw gemacht habe.

    Huh!? Mach mal "main usw" und teste deine Klasse.



  • das m_id sollte ich nach der Aufgabe im in der Methode als lokale static Variable setzen .

    Meinst du das ich dann in der methode einfach :

    m_curOccupancy++; machen soll?
    In der AUfgabe steht doch das man ein Fahrzeug hinzufügen soll?

    m_curOccupancy ist doch anzahl freier Parkplätze oder nicht ?
    Kannst du mir das erklären warum das so dann sein soll? 🙂
    Ich muss es ja auch verstehen



  • @Programmer33 sagte in Implementierung c++:

    Implementieren Sie die private Methode void generateId(), die dem Attribut m_id der (3) CParkingLot-Objekte einen eindeutigen Wert im angegebenen Wertebereich zuweist. Nutzen Sie hierfür eine lokale static-Variable innerhalb dieser Methode, die Sie nach jeder Zuweisung inkrementieren.

    Also soll m_id ein Member von CParkingLot sein und generateId() eine Methode: void CParkingLot::generateId(). Bei dir ist es eine freie Funktion die nicht teil einer Klasse ist.

    @Programmer33 sagte in Implementierung c++:

    m_curOccupancy ist doch anzahl freier Parkplätze oder nicht?

    Meaning of “occupancy” in the English Dictionary:

    the number of things, such as rooms, that are being used, in relation to the total number available:

    Also wohl eher die Anzahl der belegten Parkplätze.



  • Wie oft willst du diese Aufgabe eingentlich noch nicht schaffen?

    https://www.c-plusplus.net/forum/topic/348478/inkrementieren-problem



  • oh anscheinend hatte jemand die gleiche Aufgabe 🙂

    Mein Code sieht jetzt so aus Leute

    
    #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;
    }
    
    

    Alles Top?



  • @Programmer33 sagte in Implementierung c++:

    oh anscheinend hatte jemand die gleiche Aufgabe

    Wen willst du hier verarschen, Master33Programmer33?
    Dein generateId() ist 1:1 von @Th69 aus diesem Beitrag (https://ideone.com/r9Unqx) übernommen. Einfach abschreiben ohne Hirn hat schon vor 2 Monaten nicht funktioniert. Heute ist es nicht anders.

    Ich bin hier raus.



  • 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?


Anmelden zum Antworten