From 68aa1c327c9c63ab442e8905d5a739579c5c5aca Mon Sep 17 00:00:00 2001 From: Uwe Wienkop <uwe.wienkop@th-nuernberg.de> Date: Mon, 6 Dec 2021 11:44:46 +0100 Subject: [PATCH] 10 Dateioperationen StreamReader --- 09 CaesarCodierung/Program.cs | 10 +++++--- 10 StreamsIntro/Program.cs | 27 +++++++++++++++++++- 10 StreamsIntro/Verkaeufe.txt | 3 +++ 10 UebgMoRekursion/10 UebgMoRekursion.csproj | 9 +++++++ 10 UebgMoRekursion/Program.cs | 23 +++++++++++++++++ 10 UebgSpeisekarte_Mo/Program.cs | 27 +++++++++++++++++++- 10 Wetterdaten/Program.cs | 9 ++++--- Prog1_WS2021_22.sln | 14 +++++++--- 8 files changed, 108 insertions(+), 14 deletions(-) create mode 100644 10 StreamsIntro/Verkaeufe.txt create mode 100644 10 UebgMoRekursion/10 UebgMoRekursion.csproj create mode 100644 10 UebgMoRekursion/Program.cs diff --git a/09 CaesarCodierung/Program.cs b/09 CaesarCodierung/Program.cs index 628c966..d660b82 100644 --- a/09 CaesarCodierung/Program.cs +++ b/09 CaesarCodierung/Program.cs @@ -8,9 +8,9 @@ namespace _09_CaesarCodierung { string erg = ""; - foreach (char c in s) + foreach (char zeichen in s) { - int codiert = c + shift; + int codiert = zeichen + shift; if (codiert > 'Z') // rechts hinausgelaufen codiert -= 26; @@ -32,9 +32,11 @@ namespace _09_CaesarCodierung //Console.WriteLine(CaesarCodierung("ABCZ", -1)); Random wuerfel = new Random(); - string geheim = CaesarCodierung("HELLOWORLD", wuerfel.Next(1, 25)); + string geheim = CaesarCodierung("HELLOWORLD", wuerfel.Next(1, 25)); // = "XYAC" - for (int i = -1; i > -26; i--) + //for (int i = -1; i > -26; i--) + // Console.WriteLine(CaesarCodierung(geheim, i)); + for (int i = 1; i < 26; i++) Console.WriteLine(CaesarCodierung(geheim, i)); } } diff --git a/10 StreamsIntro/Program.cs b/10 StreamsIntro/Program.cs index 2420a92..dbfb9da 100644 --- a/10 StreamsIntro/Program.cs +++ b/10 StreamsIntro/Program.cs @@ -1,4 +1,5 @@ using System; +using System.IO; namespace _10_StreamsIntro { @@ -6,7 +7,31 @@ namespace _10_StreamsIntro { static void Main(string[] args) { - Console.WriteLine("Hello World!"); + //string s = Console.ReadLine(); + //StreamReader sr = new StreamReader(@"C:\Users\wienkop\source\repos\Prog1_WS2021_22\10 StreamsIntro\Verkaeufe.txt"); + + StreamReader sr = new StreamReader(@"..\..\..\Verkaeufe.txt"); + // Öffnet die Datei / den Stream + string zeile; + + double gesUmsaetze = 0; + while (!sr.EndOfStream) + // Solange das Dateiende noch nicht erreicht ist + { + zeile = sr.ReadLine(); + // Aus der Datei eine Zeile lesen + // und dann geeignet damit arbeiten + //Console.WriteLine(zeile); + string[] daten = zeile.Split(' '); + int anz = Convert.ToInt32(daten[1]); // daten[1] ~ 8 + double preis = Convert.ToDouble(daten[2]); // daten[2] ~ Einzelpreis + + Console.WriteLine($"{anz, 4} {daten[0],-12} à {preis,5:f2}: {preis*anz,5:f2}"); + gesUmsaetze += preis * anz; + } + Console.WriteLine($"Gesamtumsätze: {gesUmsaetze:f2}"); + sr.Close(); + // Datei wieder schließen } } } diff --git a/10 StreamsIntro/Verkaeufe.txt b/10 StreamsIntro/Verkaeufe.txt new file mode 100644 index 0000000..0df532f --- /dev/null +++ b/10 StreamsIntro/Verkaeufe.txt @@ -0,0 +1,3 @@ +Brötchen 8 0,35 +Brot 1 4,50 +Brezen 4 0,60 diff --git a/10 UebgMoRekursion/10 UebgMoRekursion.csproj b/10 UebgMoRekursion/10 UebgMoRekursion.csproj new file mode 100644 index 0000000..899c56b --- /dev/null +++ b/10 UebgMoRekursion/10 UebgMoRekursion.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_10_UebgMoRekursion</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/10 UebgMoRekursion/Program.cs b/10 UebgMoRekursion/Program.cs new file mode 100644 index 0000000..abf39ef --- /dev/null +++ b/10 UebgMoRekursion/Program.cs @@ -0,0 +1,23 @@ +using System; + +namespace _10_UebgMoRekursion +{ + class Program + { + static int Fakultät(int n) + { + if (n == 1) + return 1; + else + { + int f = n * Fakultät(n - 1); // F(3) = 3 * F(2) --> 3 * [f = 2 * F(1) => 2] + return f; + } + } + + static void Main(string[] args) + { + Console.WriteLine(Fakultät(3)); + } + } +} diff --git a/10 UebgSpeisekarte_Mo/Program.cs b/10 UebgSpeisekarte_Mo/Program.cs index 50727d9..4f5e082 100644 --- a/10 UebgSpeisekarte_Mo/Program.cs +++ b/10 UebgSpeisekarte_Mo/Program.cs @@ -1,12 +1,37 @@ using System; +using System.IO; namespace _10_UebgSpeisekarte_Mo { class Program { - static void Speisekarte(string dateiname, params string[] bestellungen) + static void Speisekarte(string dateiname, params string[] bestellKuerzeln) { + using StreamReader sr = new StreamReader(dateiname); + string zeile; + string[] daten; + double summe = 0; + while (!sr.EndOfStream) + { + zeile = sr.ReadLine(); + daten = zeile.Split(';'); + + int anz = 0; // Anzahl der Vorkommnisse des Kürzels + // in den Bestellungen feststellen + foreach (string kuerzel in bestellKuerzeln) + // if (bestellkuerzeln[i] == daten[0]) + if (kuerzel == daten[0]) // daten[0] ~ Bestellkuerzel aus der Speisekarte + anz++; + + if (anz > 0) + { + double preis = Convert.ToDouble(daten[2]); + Console.WriteLine($"{anz,2} x {daten[1],-30} à {preis,5:f2} {preis * anz,6:f2}"); + summe += preis * anz; + } + } + Console.WriteLine($"Gesamtrechnungsbetrag: {summe:f2}"); } static void Main(string[] args) { diff --git a/10 Wetterdaten/Program.cs b/10 Wetterdaten/Program.cs index 40125e0..a03d653 100644 --- a/10 Wetterdaten/Program.cs +++ b/10 Wetterdaten/Program.cs @@ -9,9 +9,10 @@ namespace _10_Wetterdaten { Console.WriteLine("Tiefsttemperatur:"); using StreamReader sr = new StreamReader(@"..\..\..\Wetterdaten.txt"); - sr.ReadLine(); + sr.ReadLine(); // Erste Zeile überlesen double minTemp = 999; string minTempDate = ""; + while (!sr.EndOfStream) { string[] data = sr.ReadLine().Split(';'); @@ -20,12 +21,12 @@ namespace _10_Wetterdaten double temp = Convert.ToDouble(data[3].Replace(".", ",")); if (temp < minTemp) { - minTemp = temp; - minTempDate = data[1]; + minTemp = temp; // neue Min.-Temperatur merken + minTempDate = data[1]; // Datum ebenfalls merken } } } - Console.WriteLine($"{minTemp} am {minTempDate}"); + Console.WriteLine($"{minTemp} am {minTempDate.Substring(6,2)}.{minTempDate.Substring(4,2)}.{minTempDate.Substring(0,4)}"); } } } diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln index 942f303..f52adbc 100644 --- a/Prog1_WS2021_22.sln +++ b/Prog1_WS2021_22.sln @@ -83,13 +83,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 StringOperationen", "09 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09 CaesarCodierung", "09 CaesarCodierung\09 CaesarCodierung.csproj", "{663C2A15-A65A-4520-9125-A891A1D8CC4D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 StreamsIntro", "10 StreamsIntro\10 StreamsIntro.csproj", "{86F56655-C344-41A0-AA8A-E8829BFA78C4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 StreamsIntro", "10 StreamsIntro\10 StreamsIntro.csproj", "{86F56655-C344-41A0-AA8A-E8829BFA78C4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 Wetterdaten", "10 Wetterdaten\10 Wetterdaten.csproj", "{3C562CD5-A7CB-4E31-851F-7B230C03AC33}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 Wetterdaten", "10 Wetterdaten\10 Wetterdaten.csproj", "{3C562CD5-A7CB-4E31-851F-7B230C03AC33}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 UebgSpeisekarte_Mo", "10 UebgSpeisekarte_Mo\10 UebgSpeisekarte_Mo.csproj", "{082C373A-72C6-47A1-B04F-DDB70204DADD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 UebgSpeisekarte_Mo", "10 UebgSpeisekarte_Mo\10 UebgSpeisekarte_Mo.csproj", "{082C373A-72C6-47A1-B04F-DDB70204DADD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 UebgSpeisekarteDi", "10 UebgSpeisekarteDi\10 UebgSpeisekarteDi.csproj", "{382FB072-0401-4BA5-BE7A-19C8B19EDE35}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 UebgSpeisekarteDi", "10 UebgSpeisekarteDi\10 UebgSpeisekarteDi.csproj", "{382FB072-0401-4BA5-BE7A-19C8B19EDE35}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "10 UebgMoRekursion", "10 UebgMoRekursion\10 UebgMoRekursion.csproj", "{803E6BCD-791C-4F4A-BBDD-DF88E6F97967}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -273,6 +275,10 @@ Global {382FB072-0401-4BA5-BE7A-19C8B19EDE35}.Debug|Any CPU.Build.0 = Debug|Any CPU {382FB072-0401-4BA5-BE7A-19C8B19EDE35}.Release|Any CPU.ActiveCfg = Release|Any CPU {382FB072-0401-4BA5-BE7A-19C8B19EDE35}.Release|Any CPU.Build.0 = Release|Any CPU + {803E6BCD-791C-4F4A-BBDD-DF88E6F97967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {803E6BCD-791C-4F4A-BBDD-DF88E6F97967}.Debug|Any CPU.Build.0 = Debug|Any CPU + {803E6BCD-791C-4F4A-BBDD-DF88E6F97967}.Release|Any CPU.ActiveCfg = Release|Any CPU + {803E6BCD-791C-4F4A-BBDD-DF88E6F97967}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- GitLab