Hilfe bei Autoverleih Aufgabe
-
Hi Leutz,
brauch unbedingt hilfe bei der Aufgabe..vieleicht bekommt das ja jemand von euch auf die Reihe
habe schon mal ein wenig angefangen..müsste so erstmal funzen#include <iostream.h> class Fahrzeug{ private: int FhrNr; char FhrName; double mietkosten; public: Fahrzeug(); Fahrzeug(int,char,double); ~Fahrzeug(); void setFhrDaten(int, char, double); void getFhrDaten(); }; Fahrzeug::Fahrzeug(){ FhrNr=0; FhrName=0; mietkosten=0.0; } Fahrzeug::Fahrzeug(int Nr, char Na, double m){ FhrNr=Nr; FhrName=Na; mietkosten=m; } Fahrzeug::~Fahrzeug()//destruktor {} void Fahrzeug::setFhrDaten(int ,char ,double) {} void Fahrzeug::getFhrDaten(); {} //---------------Klasse 2 Kunden-------------------- class Kunde{ private: int KndNr; char KndName; char KndAdresse; public: Kunde(); Kunde(int,char,char); ~Kunde(); void setKndDaten(int, char, char); void zeigKnddaten(); }; Kunde::Kunde() { KndNr=0; KndName=0; KndAdresse=0; } Kunde::Kunde(int Nr, char Na, char A){ KndNr=Nr; KndName=Na; KndAdresse=A; } Kunde::~Kunde(){} void Kunde::setKndDaten(int KNr, char KNa, char KA) { KndNr=KNr; KndName=KNa; KndAdresse=KA; } int main() { getchar(); return 0; }dann noch schnell die aufgaben stellung:
Mit hilfe eines C++-Programms sollen Kunden und Fahrzeuge einer Mietwagenfirma verwaltet werden. Dabei sollen die Daten als Objekte verwaltet werden.
* Entwerfen und Realisieren Sie die notwendigen Klassen Fahrzeug und Kunde!
* Erstellen Sie Funktionen mit denen Sie geziehlt Objekte dieser Klasse instanzieren können!
* Schreiben Sie Funktionen zum editieren und anzeigen der Daten aller Objekte!
* Die einzelnen Bereiche sollen über ein Menü erreichbar sein und das Programm mit Eingabe von "E" beendet werden.Hinweis: Wählen sie eine beliebige Anzahl möglicher erzeugbarer Objekte der Klassen aber midestens heweils 5!
also ich komm darauf nich wirklich klar

wäre nice wenn jemand von euch helfen könnteMfg UnFragged
-
also wie nun? hast du ein spezifisches problem oder möchtest du dass jemand deine arbeit macht?
-
ich bräuchte tipps wie ich das weiter machen könnte..und was man da noch für daten eingeben soll
also eben wie ich weiter machen soll
Also wenn unbedingt jemand die arbeit machen will..dann bitte ich hindere ihn nich daran xDDD

-
Da hast du ja noch eine menge Arbeit vor dir

greetz, Swordfish
-
ja schön..bitte helfen keine sprüche

-
Na ist doch schon ein Ansatz. Dann räumen wir das mal auf und strukturieren das:
1. Schritt: Jede Klasse bekommt einen eigenen Header( + Include Guard)
2. Schritt: Fehler korrigieren(+ Sprachfeatures wie Initialisierungsliste usw. ausnutzen!)
3. Schritt: Testen!
4. Schritt: Weitere Features implementieren
vehicle.hpp
#if !defined (VEHICLE_HPP__INCLUDED) #define VEHICLE_HPP__INCLUDED #if (_MSC_VER >= 1300) #pragma once #endif // (_MSC_VER >= 1300) #include <string> class Vehicle { const unsigned int m_identification; // eindeutige beim erstellen zugewiesen, danach nicht mehr veränderbar! ID niemals negativ! std::string m_name; // char == 1 Zeichen. char[] = String. std::string = komfortabler String ;) double m_leaseprice; public: Vehicle(const unsigned int id(0), std::string const& name(""), const double lease_price(0.0)) // default-ctor und c-tor in einem ;) Referenzen ersparen Kopie. const, da nichts verändert wird! : m_identification(id), m_name(name), m_leaseprice(lease_price) // initialisierungsliste {} }; #endif // VEHICLE_HPP__INCLUDEDcustomer.hpp
#if !defined (CUSTOMER_HPP__INCLUDED) #define USTOMER_HPP__INCLUDED #if (_MSC_VER >= 1300) #pragma once #endif // (_MSC_VER >= 1300) #include <string> class Customer { const unsigned int m_number; std::string m_name; std::string m_address; public: Customer(const unsigned int number, std::string const& name, std::string const& address) : m_number(number), m_name(name), m_address(address) {} }; #endif // CUSTOMER_HPP__INCLUDED. Soweit haben wir das jetzt schon einmal

Dann operator << zur Ausgabe überladen:
friend std::ostream& operator << (std::ostream& out, Customer const& data) { return out << "Kunde \" << data.m_name << "\" (ID: " << data.m_number << ")\n" << data.m_address; }wäre z.B. für Customer. Das würde eine Ausgabe nach dem folgenden Muster erzeugen:
Kunde: "Max Mustermann" (ID: 1234) Musterstraße 10=>customer.hpp
#if !defined (CUSTOMER_HPP__INCLUDED) #define USTOMER_HPP__INCLUDED #if (_MSC_VER >= 1300) #pragma once #endif // (_MSC_VER >= 1300) #include <string> class Customer { const unsigned int m_number; std::string m_name; std::string m_address; public: Customer(const unsigned int number, std::string const& name, std::string const& address) : m_number(number), m_name(name), m_address(address) {} friend std::ostream& operator << (std::ostream& out, Customer const& data) { return out << "Kunde \" << data.m_name << "\" (ID: " << data.m_number << ")\n" << data.m_address; } }; #endif // CUSTOMER_HPP__INCLUDEDNaja den Rest mach mal selber

-
Oh (D)Evil,
[quote]#if !defined (CUSTOMER_HPP__INCLUDED) #define USTOMER_HPP__INCLUDED[quote]
Darum ist folgendes besser:#ifndef CUSTOMER_HPP_INCLUDED #define CUSTOMER_HPP_INCLUDEDDann fällt ein Schreibfehler gleich auf!
Und "doppelte Unterstriche" sind reserviert für evtl. compilerspezifischen Namen...
-
~666 schrieb:
Und "doppelte Unterstriche" sind reserviert für evtl. compilerspezifischen Namen...
nur am anfang des bezeichners.
-
Richtig. Das was ich geschrieben habe, ist vollkommen gültig
Aber du hast recht, dort ist ein Schreibfehler.