Init
This commit is contained in:
128
P1/ADS_P1_2_Binaerbaum/main.cpp
Executable file
128
P1/ADS_P1_2_Binaerbaum/main.cpp
Executable file
@@ -0,0 +1,128 @@
|
||||
/*************************************************
|
||||
* ADS Praktikum 1.2
|
||||
* main.cpp
|
||||
*
|
||||
*************************************************/
|
||||
#define CATCH_CONFIG_RUNNER
|
||||
#include "Tree.h"
|
||||
#include "catch.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
///////////////////////////////////////
|
||||
// Hilfsmethoden fürs Menü hier:
|
||||
|
||||
/***************************
|
||||
** Vorgegebene Funktion **
|
||||
***************************
|
||||
"mainscreen_addTreeCSV"
|
||||
|
||||
Importiert CSV Datei in bestehenden Baum.
|
||||
Bei Aufruf in der main() Methode, muss der Pointer auf den Anker des Baums, als Parameter übergeben werden.
|
||||
Es wird die im gleichen Verzeichnis liegende Datei "ExportZielanalyse.csv" geladen.
|
||||
****************************/
|
||||
|
||||
void mainscreen_addTreeCSV(Tree*& ref) {
|
||||
char j;
|
||||
cout << "+ Moechten Sie die Daten aus der Datei ExportZielanalyse.csv "
|
||||
"importieren(j / n) ? >";
|
||||
cin >> j;
|
||||
if (j == 'j') {
|
||||
ifstream csvread;
|
||||
csvread.open("ExportZielanalyse.csv", ios::in);
|
||||
if (!csvread.is_open()) {
|
||||
cout << "Fehler beim Lesen!" << endl;
|
||||
return;
|
||||
}
|
||||
else {
|
||||
string name, age, postcode, income;
|
||||
|
||||
while (!csvread.eof()) {
|
||||
getline(csvread, name, ';');
|
||||
getline(csvread, age, ';');
|
||||
getline(csvread, income, ';');
|
||||
getline(csvread, postcode, '\n');
|
||||
ref->addNode(name, stoi(age), stod(income), stoi(postcode));
|
||||
}
|
||||
csvread.close();
|
||||
}
|
||||
cout << "+ Daten wurden dem Baum hinzugefuegt." << endl;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
|
||||
int result = Catch::Session().run();
|
||||
|
||||
Tree* Baum = new Tree();
|
||||
int engb;
|
||||
|
||||
while(true){
|
||||
cout << "====================================\n"
|
||||
"1) Datensatz einfuegen, manuell\n"
|
||||
"2) Datensatz einfuegen, CSV Datei\n"
|
||||
"3) Datensatz loeschen\n"
|
||||
"4) Suchen\n"
|
||||
"5) Datenstruktur anzeigen (pre, post, in)\n"
|
||||
"6) Level-Order anzeigen\n"
|
||||
"7) Beenden\n"
|
||||
"?> ";
|
||||
cin >> engb;
|
||||
switch (engb) {
|
||||
case 1: {
|
||||
string name;
|
||||
int alter;
|
||||
double einkommen;
|
||||
int plz;
|
||||
cout << "+ Bitte geben Sie die den Datensatz ein\n"
|
||||
"Name ?> ";
|
||||
cin >> name;
|
||||
cout << "Alter ?> ";
|
||||
cin >> alter;
|
||||
cout << "Einkommen ?> ";
|
||||
cin >> einkommen;
|
||||
cout << "PLZ ?> ";
|
||||
cin >> plz;
|
||||
Baum->addNode(name, alter, einkommen, plz);
|
||||
cout << "+ Ihr Datensatz wurde eingefuegt" << endl;
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
mainscreen_addTreeCSV(Baum);
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
int nodeOrderID;
|
||||
cout << "+ Bitte geben Sie den zu loeschenden Datensatz an\n"
|
||||
"OrderID ?> ";
|
||||
cin >> nodeOrderID;
|
||||
Baum->deleteNode(nodeOrderID);
|
||||
break;
|
||||
}
|
||||
case 4: {
|
||||
string name;
|
||||
cout << "+ Bitte geben Sie den zu suchenden Datensatz an\n"
|
||||
"Name ?> ";
|
||||
cin >> name;
|
||||
cout << "+ Fundstellen:\n";
|
||||
Baum->searchNode(name);
|
||||
break;
|
||||
}
|
||||
case 5: {
|
||||
Baum->printAll();
|
||||
break;
|
||||
}
|
||||
case 6: {
|
||||
Baum->printLevelOrder();
|
||||
break;
|
||||
}
|
||||
case 7:{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
};
|
||||
system("PAUSE");
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user