Inspirací pro následující krátký kód byla web aplikace, kterou představilo jedno nejmenované ministerstvo v tomto roce a jako další nápovědu mohu uvést, že její potřeba dnes končí. Aplikace sice neověřovala věk potřebný k pití alkoholu , ale jinak se chová víceméně stejně, to jest má stejnou chybu jaké jsem se v ukázce dopustil já - ujistí vás, že máte vše v pořádku, i když nemáte. Uhádnete, o jakou aplikaci jde?
Tady je kód:
using System;
public class Program
{
public static void Main()
{
string age;
Console.WriteLine("Ověrovací aplikace věku pro konzumaci alkoholu dle nejmenovaného státního úřadu");
while (!string.IsNullOrEmpty(age = GetAge()))
{
Console.WriteLine(CanDrink(age) ? "Váš věk je v pořádku a dejte si pivo" : "Dnes ještě rozhodně nepijte");
}
Console.WriteLine("Děkujeme za použití naší aplikace");
}
public static string GetAge()
{
Console.Write("Zadejte věk a nebo stiskněte Enter pro ukončení:");
return Console.ReadLine();
}
public static bool CanDrink(string age)
{
double realAge;
if (double.TryParse(age, out realAge))
{
if (realAge < 18 && realAge > 0)
return false;
}
return true;
}
}
public class Program
{
public static void Main()
{
string age;
Console.WriteLine("Ověrovací aplikace věku pro konzumaci alkoholu dle nejmenovaného státního úřadu");
while (!string.IsNullOrEmpty(age = GetAge()))
{
Console.WriteLine(CanDrink(age) ? "Váš věk je v pořádku a dejte si pivo" : "Dnes ještě rozhodně nepijte");
}
Console.WriteLine("Děkujeme za použití naší aplikace");
}
public static string GetAge()
{
Console.Write("Zadejte věk a nebo stiskněte Enter pro ukončení:");
return Console.ReadLine();
}
public static bool CanDrink(string age)
{
double realAge;
if (double.TryParse(age, out realAge))
{
if (realAge < 18 && realAge > 0)
return false;
}
return true;
}
}
Ke spuštění je pak na v on-line editoru .NET Fiddle na https://dotnetfiddle.net/TO7J9f
Aplikace vyhodnotí nečíselný vstup (ale i -1) jako platný. Logika funkce CanDrink by měla být psaná defenzivně, neboli cokoliv platné podmínky by mělo vracet "false".
OdpovědětVymazatPěkná odpověď - takhle nějak fungovala webova aplikace MDCR - www.dokonciregistraci.cz. Nijak neověřovala vstup a byla schopna vypsat hlášení, že VRAK je registrován v pořádku :-) - když už tedy pominu skutečnost, že místo vypisování kódu z dokladu se stačilo na doklad jen podívat a bylo jasné, jestli je nutné navštívit úřad a nebo ne.
OdpovědětVymazat