ich habe ein Problem mit einem Programm, dass ich momentan in der Berufsschule programmieren soll, zwar in Java, aber C# tut es auch, da es mir hauptsächlich um dieses eine Problem geht.
Undzwar soll ein provisorisches Programm geschrieben werden was für eine Firma sein soll die Flugzeuge vermietet und damit sie besseren Überblick bekommen, soll eine Software her (natürlich soll alles über die Konsole gehen).
Sobald eine Reservierung getätigt wurde soll mithilfe der Uhrzeit gefiltert werden, welches Flugzeug um die oder jene Zeit frei wäre bei der nächsten Reservierung.
Beispiel:
Kunde #1 reserviert das Flugzeug #1 von 8 bis 9 Uhr.
Kunde #2 möchte ebenfalls von 8 bis 9 Uhr eine Reservierung, hat aber nur noch Flugzeug #2 bis #4 zur Verfügung.
Das Problem an dieser Sache ist, dass meine Abfrage nicht ihren Sinn erfüllt, sondern immer alle Flugzeuge anzeigt egal ob eine Reservierung vorhanden ist oder nicht.
Hier ist unteranderem der Code.
Nicht wundern warum bei der Filter Funktion (chkFlugzeuge) die Uhrzeit drin steht, dass ist nur schonmal vorbereitet. Ich wollte erstmal sehen ob es überhaupt funktioniert egal welche Uhrzeit genommen wird.
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Flugzeug
{
class Program
{
public static List<string> res_name;
public static List<int> res_suhr;
public static List<int> res_euhr;
public static List<string> res_flug;
public static List<string> flugzeuge;
public static void echo(string msg)
{
Console.WriteLine(msg);
}
public static void echo(string msg, bool br)
{
if (br)
Console.WriteLine(" ");
Console.WriteLine(msg);
}
public static bool chkEnter(string line)
{
bool value = false;
int x;
if (int.TryParse(line, out x))
value = true;
else
value = false;
return value;
}
public static void chkFlugzeuge(int suhr)
{
for (int i = 0; i < flugzeuge.Count; i++)
{
for (int z = 0; z < res_flug.Count; z++)
{
if (flugzeuge[i] == res_flug[z])
{
flugzeuge.RemoveAt(i);
}
}
}
for (int i = 0; i < flugzeuge.Count; i++)
echo(flugzeuge[i]);
}
static void Main(string[] args)
{
res_name = new List<string>();
res_suhr = new List<int>();
res_euhr = new List<int>();
res_flug = new List<string>();
bool _break = false, error = false;
int eingabe, uhrzeit1, uhrzeit2;
string line, name, flug;
while (_break != true)
{
echo("1 - Reservierungen", true);
echo("2 - Übersicht");
echo("0 - Beenden");
line = Console.ReadLine();
if (chkEnter(line))
{
eingabe = Convert.ToInt32(line);
switch (eingabe)
{
case 0:
_break = true;
break;
case 1:
#region Reservierungen
echo("1 - Neue Reservierung", true);
echo("2 - Reservierung einsehen");
echo("0 - Zurück");
line = Console.ReadLine();
if (chkEnter(line))
{
eingabe = Convert.ToInt32(line);
switch (eingabe)
{
case 0:
default:
break;
case 1:
#region Neue Reservierung
flugzeuge = new List<string>();
flugzeuge.Add("Flugzeug #1");
flugzeuge.Add("Flugzeug #2");
flugzeuge.Add("Flugzeug #3");
flugzeuge.Add("Flugzeug #4");
echo("Geben Sie den Namen ein.");
name = Console.ReadLine();
echo("Ab wann ist die Reservierung?");
echo("8 Uhr = 8; 12 Uhr = 12");
line = Console.ReadLine();
if (!chkEnter(line))
{
echo("Falsche Eingabe!");
echo("Reservierung wird abgebrochen.");
if (error != true) break;
}
uhrzeit1 = Convert.ToInt32(line);
echo("Bis wieviel Uhr soll die Reservierung gehen?");
echo("8 Uhr = 8; 12 Uhr = 12");
line = Console.ReadLine();
if (!chkEnter(line))
{
echo("Falsche Eingabe!");
echo("Reservierung wird abgebrochen.");
if (error != true) break;
}
uhrzeit2 = Convert.ToInt32(line);
if (uhrzeit1 > uhrzeit2)
{
echo("Die Startzeit ist größer als die Endzeit.");
echo("Reservierung wird abgebrochen.");
break;
}
echo("Welches Flugzeug soll reserviert werden?");
chkFlugzeuge(uhrzeit1);
flug = Console.ReadLine();
if (!error)
{
res_name.Add(name);
res_suhr.Add(uhrzeit1);
res_euhr.Add(uhrzeit2);
res_flug.Add(flug);
}
break;
#endregion
case 2:
#region Reservierungsübersicht
echo("Flugzeug | Name | Von - Bis", true);
string[] _resname = res_name.ToArray();
int[] _ressuhr = res_suhr.ToArray();
int[] _reseuhr = res_euhr.ToArray();
string[] _resflug = res_flug.ToArray();
if (_resname.Length > 0)
{
for (int i = 0; i < _resname.Length; i++)
{
echo("Flugzeug #" + _resflug[i] + " | " + _resname[i] + " | " + _ressuhr[i] + " Uhr - " + _reseuhr[i] + " Uhr");
}
}
else
{
echo("Keine Einträge gefunden.");
}
break;
#endregion
}
}
else
{
echo("Falsche Eingabe!");
if(error != true) error = true;
}
break;
#endregion
case 2:
#region Übersicht
break;
#endregion
default:
break;
}
}
else
{
echo("Falsche Eingabe!");
}
}
}
}
}
Wenn sonst jemand noch Verbesserungsvorschläge zu meiner Programmiertechnik hat, kann es gerne dazuschreiben. =)
MfG
Cotigo






