129 lines
3.7 KiB
C++
Executable File
129 lines
3.7 KiB
C++
Executable File
/*************************************************
|
|
* 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;
|
|
}
|