Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "fuenfteAufgabe.h"
- #include "sechsteAufgabe.h"
- void DatenVerwalten() {
- //******* Konstantendeklaration
- const int MAXHAUSANZAHL = 500;
- //******* Variablendeklaration
- char d_Menu;
- int anzahl = 0;
- bool dateiLesen = false;
- bool dateiSchreiben = false;
- bool unterprogrammende = false;
- string datname;
- haus hausliste[MAXHAUSANZAHL];
- // weitere Variablen nach Bedarf hinzufügen
- do {
- d_Menu = DatenMenue();
- // Fallunterscheidung
- switch (d_Menu) {
- case 'e':
- // **** Haus erfassen
- // Funktionsaufruf
- DatenErfassen(hausliste, anzahl, MAXHAUSANZAHL);
- break;
- case 'a':
- // **** Häuserliste ausgeben
- // Funktionsaufruf
- DatenAusgeben(hausliste, anzahl);
- break;
- case 'r':
- // **** Liest die Häuserliste aus einer Datei ein
- cout << "Bitte Name der Datei eingeben: ";
- cin >> datname;
- // Funktionsaufruf
- dateiLesen = WerteAusDateiLesen(hausliste, anzahl, datname, MAXHAUSANZAHL);
- if (true == dateiLesen) {
- cout << "Alles gut beim Lesen der Datei" << endl;
- } else {
- cout << "FEHLER!!! beim Lesen der Datei" << endl;
- }
- break;
- case 'w':
- // **** Schreibt die Häuserliste in eine Datei
- cout << "Bitte Name der Datei eingeben: ";
- cin >> datname;
- // Funktionsaufruf
- dateiSchreiben = WerteInDateiSchreiben(hausliste, anzahl, datname);
- if (true == dateiSchreiben) {
- cout << "Alles gut beim Schreiben der Datei" << endl;
- } else {
- cout << "FEHLER!!! beim Schreiben der Datei" << endl;
- }
- break;
- case 'd':{
- DatenVerwaltenDynamisch();
- break;}
- case 's':/*
- // **** Haus suchen
- // Eingabe der Suchstrasse – siehe oben
- // Funktionsaufruf
- fundStelle = FindeHaus(hausliste, anzahl, suchStrasse);
- if (-1 == fundStelle) {
- // Ihre Ausgabe-Implementierung
- } else {
- // Ihre Ausgabe-Implementierung
- }*/
- cout << "Nicht implementiert! \n";
- break;
- case 'x':
- // **** Programm beenden
- cout << "*** U N T E R P R O G R A M M E N D E ***" << endl;
- unterprogrammende = true;
- break;
- default:
- // Warnhinweis
- cout << "Der eingegebene Wert " << d_Menu << " ist nicht gueltig!" << endl;
- break;
- } // endswitch
- } while (false == unterprogrammende);
- }
- /********************************************
- * Daten über Tastatur Eingeben
- ********************************************/
- void DatenErfassen(haus hausliste[], int & anzahl, const int maxAnzahl) {
- if (anzahl <= maxAnzahl) {
- cout << "Bitte Länge des Grundstücks eingeben: ";
- cin >> hausliste[anzahl].laenge;
- cin.ignore();
- cout << "Bitte Nachname des Eigentuemers eingeben: ";
- getline(cin, hausliste[anzahl].eigentuemer.nachname, ',');
- cin.ignore();
- cout << "Bitte Vorname des Eigentuemers eingeben: ";
- getline(cin, hausliste[anzahl].eigentuemer.vorname, ',');
- cin.ignore();
- cout << "Bitte Straße des Eigentuemers eingeben: ";
- getline(cin, hausliste[anzahl].adresse.strasse, ',');
- //cin.ignore();
- cout << "Bitte PLZ des Eigentuemers eingeben: ";
- cin >> hausliste[anzahl].adresse.plz;
- cin.ignore();
- cout << "Bitte Ort des Eigentuemers eingeben: ";
- getline(cin, hausliste[anzahl].adresse.ort, ',');
- //cin.ignore();
- cout << "Bitte Kundennummer des Eigentuemers eingeben: ";
- cin >> hausliste[anzahl].kundennr;
- //cin.ignore();
- cout << "Bitte Preis pro Meter des Grundstücks eingeben: ";
- cin >> hausliste[anzahl].preisprometer;
- cout << endl;
- hausliste[anzahl].kosten = hausliste[anzahl].preisprometer * hausliste[anzahl].laenge;
- anzahl++;
- } else {
- cout << "Die Liste ist leider voll.\n";
- }
- }
- void DatenAusgeben(haus hausliste[], int anzahl) {
- int i = anzahl - 1;
- while (i >= 0) {
- cout << "Informationen zum Grundstück: " << i << endl;
- cout << "Länge des Grundstücks beträgt: " << hausliste[i].laenge << endl;
- cout << "Nachname des Eigentümers: " << hausliste[i].eigentuemer.nachname << endl;
- cout << "Vorname des Eigentümers: " << hausliste[i].eigentuemer.vorname << endl;
- cout << "Straße des Eigentümers: " << hausliste[i].adresse.strasse << endl;
- cout << "PLZ des Eigentümers: " << hausliste[i].adresse.plz << endl;
- cout << "Ort des Eigentümers: " << hausliste[i].adresse.ort << endl;
- cout << "Kundennummer des Eigentümers: " << hausliste[i].kundennr << endl;
- cout << "Preis pro Meter des Grundstücks: " << hausliste[i].preisprometer << endl;
- cout << "Kosten des Grundstücks betragen: " << hausliste[i].kosten << endl;
- i--;
- }
- }
- /********************************************
- * Werte aus Datei einlesen
- ********************************************/
- bool WerteAusDateiLesen(haus hausliste[], int & anzahl, string dateiname, const int maxAnzahl) {
- // Variablen
- bool retWert = false;
- ifstream eingabeDatei;
- string zeile;
- int anzZeichen;
- int wahl;
- bool dateiende = false;
- cout << "\n\n";
- cout << "Wollen Sie die Liste ueberschreiben: " << endl;
- cout << " 1 = ja, 0 = nein: ";
- cin >> wahl;
- if (1 == wahl) {
- anzahl = 0; // überschreibt das existierende Array!!
- } else {
- anzahl = anzahl; // hängt an das existierende Array!!
- }
- // Datei öffnen
- eingabeDatei.open(dateiname, ios::in);
- if (true == eingabeDatei.is_open()) {
- // solange Dateiende nicht erreicht
- while ((false == eingabeDatei.eof()) && (anzahl < maxAnzahl) && (dateiende == false)) {
- // Zeile einlesen
- getline(eingabeDatei, zeile, '\n');
- if (0 == zeile.length()) {
- dateiende = true;
- } else {
- hausliste[anzahl].kundennr = atoi(zeile.c_str());
- // Zeile einlesen
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].preisprometer = atof(zeile.c_str());
- // die noch fehlenden Felder eintragen
- // Zeile einlesen
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].eigentuemer.nachname = zeile;
- // die noch fehlenden Felder eintragen
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].laenge = atoi(zeile.c_str());
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].eigentuemer.vorname = zeile;
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].adresse.strasse = zeile;
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].adresse.plz = atoi(zeile.c_str());
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].adresse.ort = zeile;
- getline(eingabeDatei, zeile, '\n');
- hausliste[anzahl].kosten = atof(zeile.c_str());
- // Hochzaehlen der Variable anzahl
- anzahl++;
- }
- } // end while ( false == eingabeDatei.eof() )
- // Datei schließen
- eingabeDatei.close();
- retWert = true;
- } else {
- retWert = false;
- }
- return retWert;
- }
- /********************************************
- * Werte in Datei ausgeben
- ********************************************/
- bool WerteInDateiSchreiben(haus hausliste[], int anzahl, string dateiname) {
- // Variablen
- bool retWert = false;
- char dateiUeberschreiben = 'n';
- ofstream ausgabeDatei;
- int i;
- if (0 >= anzahl) {
- cout << endl << "----------------------------\n";
- cout << " Die Liste ist leer!!!\n";
- cout << "----------------------------\n";
- } else {
- cout << "Bestehende Datei ueberschreiben? (j/n): ";
- cin >> dateiUeberschreiben;
- if ('j' == dateiUeberschreiben) {
- // Datei öffnen
- ausgabeDatei.open(dateiname, ios::out);
- } else {
- // oder zum Anhaengen an eine bestehende Datei
- ausgabeDatei.open(dateiname, ios::app);
- }
- if (true == ausgabeDatei.is_open()) {
- for (i = 0; i < anzahl; i++) {
- // Ausgabe in die Datei
- // Alle Felder je in eine Zeile schreiben
- ausgabeDatei << hausliste[i].kundennr << endl;
- ausgabeDatei << hausliste[i].preisprometer << endl;
- ausgabeDatei << hausliste[i].eigentuemer.nachname << endl;
- ausgabeDatei << hausliste[i].laenge << endl;
- ausgabeDatei << hausliste[i].eigentuemer.vorname << endl;
- ausgabeDatei << hausliste[i].adresse.strasse << endl;
- ausgabeDatei << hausliste[i].adresse.plz << endl;
- ausgabeDatei << hausliste[i].adresse.ort << endl;
- ausgabeDatei << hausliste[i].kosten << endl;
- // hier die noch fehlenden Werte eintragen
- } // ende for
- // Datei schließen
- ausgabeDatei.close();
- retWert = true;
- } else {
- retWert = false;
- }
- }
- return retWert;
- }
- char DatenMenue() {
- char menu = 'x';
- cout << "Häuseruntermenü:" << endl;
- cout << "e Haus erfassen" << endl;
- cout << "a Häuserliste ausgeben" << endl;
- cout << "r Häuserliste aus Datei einlesen" << endl;
- cout << "w Häuserliste in Datei schreiben" << endl;
- cout << "s Haus suchen" << endl;
- cout << "d Dynamische Liste" << endl;
- cout << "x Programm beenden" << endl;
- cout << "Ihre Wahl: ";
- cin >> menu;
- return menu;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement