Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PG2
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Philipp Pister
PG2
Commits
87a4fd21
Commit
87a4fd21
authored
2 years ago
by
Philipp Pister
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
c9f5e2dc
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Praktikum3/NaviConsole/navi.cpp
+526
-0
526 additions, 0 deletions
Praktikum3/NaviConsole/navi.cpp
with
526 additions
and
0 deletions
Praktikum3/NaviConsole/navi.cpp
0 → 100644
+
526
−
0
View file @
87a4fd21
#include
"navi.h"
#include
"adresse.h"
#include
"pointofinterest.h"
#include
"navidaten.h"
#include
<iomanip>
#include
<fstream>
#include
<sstream>
#include
<cstdio>
#include
<iostream>
using
namespace
std
;
Navi
::
Navi
()
{
// Ort 1
adresseAnlegen
(
49.866260592008715
,
8.640719058535762
,
"h_da FBI"
,
"Schoefferstrasse"
,
"8"
,
"64295"
,
"Darmstadt"
);
// Ort 2
pointOfInterestAnlegen
(
37.8199067
,
-
122.47858
,
"Golden Gate Bridge"
,
"Sehenswuerdigkeit"
,
"San Francisco"
);
// Ort 3
adresseAnlegen
(
-
30.050450429460213
,
-
51.222995260791016
,
"Ronaldinho Gaucho"
,
"Avenida Bastian"
,
"508"
,
"90130"
,
"Porto Alegre"
);
// Ort 4
pointOfInterestAnlegen
(
49.64142801005189
,
8.641502570005786
,
"Big Doener"
,
"Imbiss"
,
"Heppenheim"
);
// Ort 5
adresseAnlegen
(
-
37.8005036
,
144.9672196
,
"Michael Balzary"
,
"Lygon Street"
,
"178"
,
"3053"
,
"Melbourne"
);
// Ort 6
pointOfInterestAnlegen
(
43.1900784
,
5.649135
,
"Santa Gusta"
,
"Campingplatz"
,
"Suedfrankreich"
);
// Ort 7
adresseAnlegen
(
52.373283393129014
,
4.899157156353251
,
"Barrie Butsers"
,
"Monnikenstraat"
,
"1"
,
"1012"
,
"Amsterdam"
);
// Ort 8
pointOfInterestAnlegen
(
34.1340991
,
-
118.321652
,
"Hollywood Sign"
,
"Sehenswuerdigkeit"
,
"Hollywood Hills"
);
// Ort 9
adresseAnlegen
(
35.167275195597924
,
135.48913593627927
,
"Shigeru Miyamoto"
,
"Honoda"
,
"319"
,
"622-8651"
,
"Kyoto"
);
// Ort 10
pointOfInterestAnlegen
(
40.74106216430664
,
-
73.98960876464844
,
"Flatiron Building"
,
"Sehenswuerdigkeit"
,
"New York City"
);
}
Navi
::~
Navi
()
{
for
(
NaviDaten
*
data
:
daten
)
{
delete
data
;
}
}
void
Navi
::
runNavigation
(){
Navi
navi
;
navi
.
zeigeMenue
();
}
void
Navi
::
adresseAnlegen
(
double
breitengrad
,
double
laengengrad
,
const
std
::
string
&
name
,
const
std
::
string
&
strasse
,
const
std
::
string
&
hausnummer
,
const
std
::
string
&
postleitzahl
,
const
std
::
string
&
stadt
)
{
daten
.
push_back
(
new
Adresse
(
breitengrad
,
laengengrad
,
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
));
}
void
Navi
::
pointOfInterestAnlegen
(
double
breitengrad
,
double
laengengrad
,
const
std
::
string
&
name
,
const
std
::
string
&
kategorie
,
const
std
::
string
&
bemerkung
)
{
daten
.
push_back
(
new
PointOfInterest
(
breitengrad
,
laengengrad
,
name
,
kategorie
,
bemerkung
));
}
void
Navi
::
zeigeKarte
()
const
{
// Header der Tabelle ausgeben
cout
<<
setw
(
3
)
<<
"ID"
<<
" | "
<<
setw
(
4
)
<<
"Typ"
<<
" | "
<<
setw
(
20
)
<<
left
<<
"Name"
<<
" | "
<<
setw
(
12
)
<<
right
<<
"Latitude"
<<
" | "
<<
setw
(
13
)
<<
right
<<
"Longitude"
<<
" | "
<<
"Parameters"
<<
endl
;
cout
<<
string
(
90
,
'-'
)
<<
endl
;
// Trennlinie
// Jeden Ort in der Tabelle ausgeben
for
(
const
NaviDaten
*
data
:
daten
)
{
cout
<<
setw
(
3
)
<<
data
->
getID
()
<<
" | "
;
const
Adresse
*
adresse
=
dynamic_cast
<
const
Adresse
*>
(
data
);
if
(
adresse
)
{
cout
<<
setw
(
4
)
<<
"Adr"
<<
" | "
<<
setw
(
20
)
<<
left
<<
adresse
->
getName
()
<<
" | "
<<
setw
(
12
)
<<
right
<<
fixed
<<
setprecision
(
6
)
<<
adresse
->
getBG
()
<<
" | "
<<
setw
(
13
)
<<
right
<<
fixed
<<
setprecision
(
6
)
<<
adresse
->
getLG
()
<<
" | "
<<
adresse
->
getStrasse
()
<<
" "
<<
adresse
->
getHausnummer
()
<<
", "
<<
adresse
->
getPostleitzahl
()
<<
" "
<<
adresse
->
getStadt
();
}
else
{
const
PointOfInterest
*
poi
=
dynamic_cast
<
const
PointOfInterest
*>
(
data
);
if
(
poi
)
{
cout
<<
setw
(
4
)
<<
"PoI"
<<
" | "
<<
setw
(
20
)
<<
left
<<
poi
->
getName
()
<<
" | "
<<
setw
(
12
)
<<
right
<<
fixed
<<
setprecision
(
6
)
<<
poi
->
getBG
()
<<
" | "
<<
setw
(
13
)
<<
right
<<
fixed
<<
setprecision
(
6
)
<<
poi
->
getLG
()
<<
" | "
<<
poi
->
getKategorie
()
<<
", "
<<
poi
->
getBemerkung
();
}
}
cout
<<
endl
;
}
}
NaviDaten
*
Navi
::
getOrtByID
(
int
id
)
const
{
for
(
NaviDaten
*
data
:
daten
)
{
if
(
data
->
getID
()
==
id
)
{
return
data
;
}
}
return
nullptr
;
}
void
Navi
::
exportiereKarte
(
const
std
::
string
&
dateiname
)
const
{
ofstream
datei
(
dateiname
,
ios
::
binary
);
if
(
!
datei
)
{
cerr
<<
"Fehler beim Öffnen der Datei zum Schreiben."
<<
endl
;
return
;
}
int
ortSize
=
daten
.
size
();
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
ortSize
),
sizeof
(
ortSize
));
for
(
NaviDaten
*
datenpunkt
:
daten
)
{
int
id
=
datenpunkt
->
getID
();
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
id
),
sizeof
(
id
));
double
laengengrad
=
datenpunkt
->
getLG
();
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
laengengrad
),
sizeof
(
laengengrad
));
double
breitengrad
=
datenpunkt
->
getBG
();
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
breitengrad
),
sizeof
(
breitengrad
));
bool
istAdresse
=
typeid
(
*
datenpunkt
)
==
typeid
(
Adresse
);
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
istAdresse
),
sizeof
(
istAdresse
));
if
(
istAdresse
)
{
Adresse
*
adresse
=
dynamic_cast
<
Adresse
*>
(
datenpunkt
);
std
::
string
name
=
adresse
->
getName
();
// Hinzugefügt: Name abrufen
size_t
stringSize
=
name
.
length
()
+
1
;
// Hinzugefügt: Größe des Namens
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
name
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
strasse
=
adresse
->
getStrasse
();
stringSize
=
strasse
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
strasse
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
hausnummer
=
adresse
->
getHausnummer
();
stringSize
=
hausnummer
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
hausnummer
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
postleitzahl
=
adresse
->
getPostleitzahl
();
stringSize
=
postleitzahl
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
postleitzahl
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
stadt
=
adresse
->
getStadt
();
stringSize
=
stadt
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
stadt
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
}
else
{
PointOfInterest
*
poi
=
dynamic_cast
<
PointOfInterest
*>
(
datenpunkt
);
std
::
string
name
=
poi
->
getName
();
// Hinzugefügt: Name abrufen
size_t
stringSize
=
name
.
length
()
+
1
;
// Hinzugefügt: Größe des Namens
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
name
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
kategorie
=
poi
->
getKategorie
();
stringSize
=
kategorie
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
kategorie
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
std
::
string
bemerkung
=
poi
->
getBemerkung
();
stringSize
=
bemerkung
.
length
()
+
1
;
datei
.
write
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
write
(
bemerkung
.
c_str
(),
stringSize
);
datei
.
write
(
"
\0
"
,
1
);
}
}
datei
.
close
();
}
void
Navi
::
importiereKarte
(
const
std
::
string
&
dateiname
)
{
for
(
NaviDaten
*
datenpunkt
:
daten
)
{
delete
datenpunkt
;
}
daten
.
clear
();
ifstream
datei
(
dateiname
,
ios
::
binary
);
if
(
!
datei
)
{
cerr
<<
"Fehler beim Öffnen der Datei zum Lesen."
<<
endl
;
return
;
}
int
id
,
ortSize
;
double
laengengrad
,
breitengrad
;
size_t
stringSize
;
char
terminator
=
'\0'
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
ortSize
),
sizeof
(
ortSize
));
for
(
int
i
=
0
;
i
<
ortSize
;
i
++
)
{
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
id
),
sizeof
(
id
));
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
laengengrad
),
sizeof
(
laengengrad
));
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
breitengrad
),
sizeof
(
breitengrad
));
bool
istAdresse
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
istAdresse
),
sizeof
(
istAdresse
));
char
strBuffer
[
160
]
=
{};
if
(
istAdresse
)
{
std
::
string
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
name
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
strasse
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
hausnummer
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
postleitzahl
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
stadt
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
Adresse
*
adresse
=
new
Adresse
(
laengengrad
,
breitengrad
,
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
);
// Hinzugefügt: Name
adresse
->
setID
(
id
);
daten
.
push_back
(
adresse
);
}
else
{
std
::
string
name
,
kategorie
,
bemerkung
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
name
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
kategorie
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
stringSize
),
sizeof
(
stringSize
));
datei
.
read
(
strBuffer
,
stringSize
);
bemerkung
=
strBuffer
;
datei
.
read
(
reinterpret_cast
<
char
*>
(
&
terminator
),
1
);
PointOfInterest
*
poi
=
new
PointOfInterest
(
laengengrad
,
breitengrad
,
name
,
kategorie
,
bemerkung
);
poi
->
setID
(
id
);
daten
.
push_back
(
poi
);
}
}
datei
.
close
();
}
void
Navi
::
exportiereKarteCSV
(
const
std
::
string
&
dateiname
)
{
ofstream
datei
(
dateiname
);
if
(
!
datei
)
{
cerr
<<
"Fehler beim Öffnen der Datei zum Schreiben."
<<
endl
;
return
;
}
for
(
NaviDaten
*
datenpunkt
:
daten
)
{
datei
<<
datenpunkt
->
getID
()
<<
","
<<
datenpunkt
->
getLG
()
<<
","
<<
datenpunkt
->
getBG
();
if
(
Adresse
*
adresse
=
dynamic_cast
<
Adresse
*>
(
datenpunkt
))
{
datei
<<
","
<<
"Adresse"
<<
","
<<
adresse
->
getName
()
<<
","
// Hinzugefügt: Name
<<
adresse
->
getStrasse
()
<<
","
<<
adresse
->
getHausnummer
()
<<
","
<<
adresse
->
getPostleitzahl
()
<<
","
<<
adresse
->
getStadt
();
}
else
if
(
PointOfInterest
*
poi
=
dynamic_cast
<
PointOfInterest
*>
(
datenpunkt
))
{
datei
<<
","
<<
"PointOfInterest"
<<
","
<<
poi
->
getName
()
<<
","
// Hinzugefügt: Name
<<
poi
->
getKategorie
()
<<
","
<<
poi
->
getBemerkung
();
}
datei
<<
"
\n
"
;
}
datei
.
close
();
}
void
Navi
::
importiereKarteCSV
(
const
std
::
string
&
dateiname
)
{
ifstream
datei
(
dateiname
);
if
(
!
datei
)
{
cerr
<<
"Fehler beim Öffnen der Datei zum Lesen."
<<
endl
;
return
;
}
for
(
NaviDaten
*
datenpunkt
:
daten
)
{
delete
datenpunkt
;
}
daten
.
clear
();
std
::
string
zeile
;
while
(
std
::
getline
(
datei
,
zeile
))
{
std
::
stringstream
ss
(
zeile
);
std
::
string
feld
;
int
id
;
double
laengengrad
,
breitengrad
;
std
::
string
typ
;
std
::
getline
(
ss
,
feld
,
','
);
id
=
std
::
stoi
(
feld
);
std
::
getline
(
ss
,
feld
,
','
);
laengengrad
=
std
::
stod
(
feld
);
std
::
getline
(
ss
,
feld
,
','
);
breitengrad
=
std
::
stod
(
feld
);
std
::
getline
(
ss
,
typ
,
','
);
if
(
typ
==
"Adresse"
)
{
std
::
string
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
;
std
::
getline
(
ss
,
name
,
','
);
// Hinzugefügt: Name
std
::
getline
(
ss
,
strasse
,
','
);
std
::
getline
(
ss
,
hausnummer
,
','
);
std
::
getline
(
ss
,
postleitzahl
,
','
);
std
::
getline
(
ss
,
stadt
,
','
);
Adresse
*
adresse
=
new
Adresse
(
laengengrad
,
breitengrad
,
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
);
adresse
->
setID
(
id
);
daten
.
push_back
(
adresse
);
}
else
if
(
typ
==
"PointOfInterest"
)
{
std
::
string
name
,
kategorie
,
bemerkung
;
std
::
getline
(
ss
,
name
,
','
);
// Hinzugefügt: Name
std
::
getline
(
ss
,
kategorie
,
','
);
std
::
getline
(
ss
,
bemerkung
,
','
);
PointOfInterest
*
poi
=
new
PointOfInterest
(
laengengrad
,
breitengrad
,
name
,
kategorie
,
bemerkung
);
poi
->
setID
(
id
);
daten
.
push_back
(
poi
);
}
}
datei
.
close
();
}
void
Navi
::
zeigeMenue
(){
while
(
true
)
{
int
auswahl
;
cout
<<
"Navigationssystem"
<<
endl
;
cout
<<
endl
;
cout
<<
"(1) Ort anlegen "
<<
endl
;
cout
<<
"(2) Karte anzeigen "
<<
endl
;
cout
<<
"(3) Entfernung berechnen "
<<
endl
;
cout
<<
"(4) Karte exportieren/importieren "
<<
endl
;
cout
<<
"(0) Programm verlassen "
<<
endl
;
cin
>>
auswahl
;
switch
(
auswahl
)
{
case
1
:{
// Ort anlegen
double
laengengrad
,
breitengrad
;
char
auswahl
;
cout
<<
"Adresse (A) oder Point of Interest (P) anlegen? "
<<
endl
;
cin
>>
auswahl
;
cout
<<
"Geben Sie den Laengengrad und den Breitengrad des Ortes ein: "
<<
endl
;
cin
>>
laengengrad
>>
breitengrad
;
if
(
auswahl
==
'A'
||
auswahl
==
'a'
)
{
string
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
;
cin
.
ignore
();
cout
<<
"Geben Sie den Namen, die Strasse, die Hausnummer, die Postleitzahl und die Stadt der Adresse ein: "
;
getline
(
cin
,
name
);
getline
(
cin
,
strasse
);
getline
(
cin
,
hausnummer
);
getline
(
cin
,
postleitzahl
);
getline
(
cin
,
stadt
);
adresseAnlegen
(
laengengrad
,
breitengrad
,
name
,
strasse
,
hausnummer
,
postleitzahl
,
stadt
);
cout
<<
"Adresse wurde erfolgreich angelegt."
<<
endl
;
}
else
if
(
auswahl
==
'P'
||
auswahl
==
'p'
)
{
string
name
,
kategorie
,
bemerkung
;
cin
.
ignore
();
cout
<<
"Geben Sie den Namen, die Kategorie und die Bemerkung des Points of Interest ein: "
;
getline
(
cin
,
name
);
getline
(
cin
,
kategorie
);
getline
(
cin
,
bemerkung
);
pointOfInterestAnlegen
(
laengengrad
,
breitengrad
,
name
,
kategorie
,
bemerkung
);
cout
<<
"Point of Interest wurde erfolgreich angelegt."
<<
endl
;
}
else
{
cout
<<
"Ungültige Auswahl, bitte erneut eingeben."
<<
endl
;
}
break
;
}
case
2
:{
// Karte anzeigen
zeigeKarte
();
break
;
}
case
3
:
{
// Entfernungen berechnen
int
id1
,
id2
;
cout
<<
"Geben Sie die ID des ersten Ortes ein: "
;
cin
>>
id1
;
cout
<<
"Geben Sie die ID des zweiten Ortes ein: "
;
cin
>>
id2
;
Ort
*
ort1
=
getOrtByID
(
id1
);
Ort
*
ort2
=
getOrtByID
(
id2
);
if
(
ort1
&&
ort2
)
{
double
entfernung
=
ort1
->
berechneEntfernung
(
*
ort2
);
cout
<<
"Die Entfernung zwischen Ort "
<<
id1
<<
" und Ort "
<<
id2
<<
" betraegt: "
<<
entfernung
<<
" km."
<<
endl
;
}
else
{
cout
<<
"Mindestens einer der eingegebenen IDs ist ungültig."
<<
endl
;
}
break
;
}
case
4
:
{
// Karte exportieren/importieren
int
subAuswahl
;
cout
<<
"(1) Karte exportieren .bin-Format "
<<
endl
;
cout
<<
"(2) Karte importieren .bin-Format "
<<
endl
;
cout
<<
"(3) Karte exportieren CSV-Format "
<<
endl
;
cout
<<
"(4) Karte importieren CSV-Format "
<<
endl
;
cout
<<
"(5) Karte Bin exportieren und CSV importieren "
<<
endl
;
cin
>>
subAuswahl
;
switch
(
subAuswahl
)
{
case
1
:
{
// Karte exportieren bin
string
dateiname
;
cin
.
ignore
();
cout
<<
"Geben Sie den Dateinamen für den Export ein: "
;
getline
(
cin
,
dateiname
);
exportiereKarte
(
dateiname
);
cout
<<
"Karte wurde erfolgreich exportiert."
<<
endl
;
break
;
}
case
2
:
{
// Karte importieren bin
string
dateiname
;
cin
.
ignore
();
cout
<<
"Geben Sie den Dateinamen für den Import ein: "
;
getline
(
cin
,
dateiname
);
importiereKarte
(
dateiname
);
cout
<<
"Karte wurde erfolgreich importiert."
<<
endl
;
break
;
}
case
3
:
{
// Karte exportieren csv
string
dateiname
;
cin
.
ignore
();
cout
<<
"Geben Sie den Dateinamen für den Export ein: "
;
getline
(
cin
,
dateiname
);
exportiereKarteCSV
(
dateiname
);
cout
<<
"Karte wurde erfolgreich exportiert."
<<
endl
;
break
;
}
case
4
:
{
// Karte importieren csv
string
dateiname
;
cin
.
ignore
();
cout
<<
"Geben Sie den Dateinamen für den Import ein: "
;
getline
(
cin
,
dateiname
);
importiereKarteCSV
(
dateiname
);
cout
<<
"Karte wurde erfolgreich importiert."
<<
endl
;
break
;
}
case
5
:
{
// Karte Bin exportieren und CSV importieren
string
binDateiname
,
csvDateiname
;
cin
.
ignore
();
cout
<<
"Geben Sie den Dateinamen für den Export im Binärformat ein: "
;
getline
(
cin
,
binDateiname
);
exportiereKarte
(
binDateiname
);
cout
<<
"Karte wurde erfolgreich im Binärformat exportiert."
<<
endl
;
cout
<<
"Geben Sie den Dateinamen für den Import im CSV-Format ein: "
;
getline
(
cin
,
csvDateiname
);
exportiereKarteCSV
(
csvDateiname
);
cout
<<
"Karte wurde erfolgreich im CSV-Format importiert."
<<
endl
;
break
;
}
default
:
{
cout
<<
"Ungültige Auswahl, bitte erneut eingeben."
<<
endl
;
break
;
}
}
break
;
}
case
0
:{
// Programm verlassen
}
default
:
{
cout
<<
"Ungültige Eingabe. Bitte versuchen Sie es erneut."
<<
endl
;
break
;
}
}
}
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment