struct Stadt
{
int Platz;
String Name;
String KFZ_Kennzeichen;
float Einwohner;
String Vorwahl;
int Hoehe;
String Land;
};
const int MAX = 4;
/*
\u00e4d = ä
\u00df = ß
\u00fc = ü
\u00f6 = ö
*/
// Array definieren
Stadt Namen[MAX] =
{
{1, "Berlin", "B", 3.64, "030", 30, "Berlin"},
{2, "Hamburg", "HH", 1.84, "040", 6, "Hamburg"},
{3, "M\u00fcnchen", "M", 1.47, "089", 519, "Bayern"},
{4, "K\u00f6ln", "K", 1.04, "0221", 53, "NRW"}
};
void setup()
{
// Zufallsgenerator starten
randomSeed(analogRead(A0));
Serial.begin(115200);
// auf serielle Verbindung warten
while (!Serial) {;}
// Info
Serial.println("Liste der Gro\u00dfst\u00e4dte mit mehr als 1 Mio Einwohner");
Serial.println("----------------------------------------------------------------------------------");
Serial.println("1 = Berlin");
Serial.println("2 = Hamburg");
Serial.println("3 = M\u00fcnchen");
Serial.println("4 = K\u00f6ln");
Serial.println("5 = Zufall");
Serial.println("----------------------------------------------------------------------------------");
Serial.println("Platz\tStadt\t\tKFZ\tEinw. in Mio.\tH\u00f6he\tVorwahl\t\tBundesland");
}
void loop()
{
// auf serielle Eingabe warten
while (Serial.available() > 0)
{
// Eingabe im Seriellen Monitor lesen
String Eingabe = Serial.readStringUntil(char(13));
// String Eingabe nach int umwandeln
// die Funktion ZeigeDaten kann dann direkt aufgerufen werden
int Auswahl = Eingabe.toInt();
// wenn Auswahl > 0 und < 5
// weil das Array mit 0 beginnt, 1 abziehen
if (Auswahl > 0 && Auswahl < 5) ZeigeDaten(Auswahl - 1);
// zufällige Auswahl
if (Auswahl == 5)
{
int Minimum = 0;
int Maximum = 4;
int Zahl = random(Minimum, Maximum);
ZeigeDaten(Zahl);
}
}
}
void ZeigeDaten(int i)
{
// bei der Einwohnerzahl . durch , ersetzen
String Einwohner = String(Namen[i].Einwohner);
Einwohner.replace(".", ",");
// Daten anzeigen, mit Tabulator (\t) formatieren
Serial.print(String(Namen[i].Platz) + "\t");
Serial.print(Namen[i].Name + "\t\t");
Serial.print(Namen[i].KFZ_Kennzeichen + "\t\t");
Serial.print(Einwohner + "\t");
Serial.print(String(Namen[i].Hoehe) + "\t");
Serial.print(Namen[i].Vorwahl + "\t\t");
Serial.println(Namen[i].Land);
}
Letzte Aktualisierung: