C# :: Aufgabe #116
4 Lösungen

Tante Emmas Tageseinnahmen
Anfänger - C#
von Energy
- 09.03.2016 um 14:17 Uhr
Tante Emma ist die Geschäftsleiterin von 5 Tante-Emma-Läden. Sie möchte ermitteln, wie hoch der Umsatz der einzelnen Filialen vom letzten Tag war.
Schreibe ein Programm in dem abgefragt wird, wie viel Geld in den 5 Läden am Anfang des Tages vorhanden war und wie viel Geld sich am Ende des Tages in der Kasse befand. Außerdem möchte Tante Emma wissen, wie viel Umsatz jeder einzelne Laden gemacht hat und welche der 5 Läden den größten bzw. den geringsten Umsatz erzielt hat. Speichere alle Informationen in einem seperaten Array ab, sodass die Informationen nach der Eingabe der Kassenstände und Umsatzberechnungen für jeden Laden, in einem eigenen Array gespeichert wird. Gebe anschließend für jeden Laden die Informationen wieder aus uns bestimme den Laden mit dem größten bzw. kleinsten Umsatz.
Schreibe ein Programm in dem abgefragt wird, wie viel Geld in den 5 Läden am Anfang des Tages vorhanden war und wie viel Geld sich am Ende des Tages in der Kasse befand. Außerdem möchte Tante Emma wissen, wie viel Umsatz jeder einzelne Laden gemacht hat und welche der 5 Läden den größten bzw. den geringsten Umsatz erzielt hat. Speichere alle Informationen in einem seperaten Array ab, sodass die Informationen nach der Eingabe der Kassenstände und Umsatzberechnungen für jeden Laden, in einem eigenen Array gespeichert wird. Gebe anschließend für jeden Laden die Informationen wieder aus uns bestimme den Laden mit dem größten bzw. kleinsten Umsatz.
Lösungen:

using System; using System.Linq; namespace TanteEmma { class Program { static void Main() { int anzahlLäden = 5; double[] Umsätze = new double[anzahlLäden]; for(int i = 0; i < Umsätze.Length; i++) { double startbetrag, endstand; Console.WriteLine("{0}. Laden:", i + 1); Console.Write("Startbetrag>"); startbetrag = Convert.ToDouble(Console.ReadLine()); Console.Write("Endstand>"); endstand = Convert.ToDouble(Console.ReadLine()); Umsätze[i] = Math.Round(endstand - startbetrag, 2); Console.WriteLine(); } double max, min; max = Umsätze.Max(); min = Umsätze.Min(); for(int i = 0; i < Umsätze.Length; i++) { Console.WriteLine("{0} Laden: {1:0,0.00} Umsatz{2}", i+1, Umsätze[i], Umsätze[i] == max ? " (höchster)" : Umsätze[i] == min ? " (niedrigster)" : ""); } Console.ReadKey(true); } } }

public class TanteEmmaLaden { public string Name { get; set; } public int DayStartSalary { get; set; } private int _dayEndSalary; public int DayEndSalary { get { return _dayEndSalary; } set { _dayEndSalary = value; daySales = _dayEndSalary - DayStartSalary; } } private int daySales; public int DaylieSales { get{ return daySales; } } } public class TanteEmmaLadenCollection : Dictionary<string, TanteEmmaLaden> { public void Add(string Name, int DayStartSalary) { this.Add (Name, new TanteEmmaLaden () { Name = Name, DayStartSalary = DayStartSalary }); } public void Add(string Name, int DayStartSalary, int DayEndSalary) { this.Add (Name, new TanteEmmaLaden (){ Name = Name, DayStartSalary = DayStartSalary, DayEndSalary = DayEndSalary }); } public TanteEmmaLaden HighestSales() { object[] highest = new object[2]; foreach(var valueKey in this) { if (highest [1] == null) { highest [0] = valueKey.Key; highest [1] = valueKey.Value.DaylieSales; } else if ((int)highest [1] < valueKey.Value.DaylieSales) { highest [0] = valueKey.Key; highest [1] = valueKey.Value.DaylieSales; } } return this [highest [0].ToString ()]; } public TanteEmmaLaden LowesSales() { object[] lowest = new object[2]; foreach(var valueKey in this) { if (lowest [1] == null) { lowest [0] = valueKey.Key; lowest [1] = valueKey.Value.DaylieSales; } else if ((int)lowest [1] > valueKey.Value.DaylieSales) { lowest [0] = valueKey.Key; lowest [1] = valueKey.Value.DaylieSales; } } return this [lowest [0].ToString ()]; } } class MainClass { public static void Main (string[] args) { TanteEmmaLadenCollection laeden = new TanteEmmaLadenCollection (); for (int i = 0; i < 5; i++) { Console.WriteLine ("Bitte geben Sie die Informationen für den {0}. Laden an.", i+1); Console.Write ("Laden: "); string Name = Console.ReadLine (); Console.Write ("Kassenstand zu beginn des Tages: "); int DayStartSalary = Convert.ToInt32 (Console.ReadLine ()); Console.Write ("Kassenstand am Ende des Tages: "); int DayEndSalary = Convert.ToInt32 (Console.ReadLine ()); laeden.Add (Name, DayStartSalary, DayEndSalary); Console.WriteLine ("Der Tagesumsatz des Ladens betraegt: {0}\n", laeden [Name].DaylieSales); } Console.WriteLine ("\nDer Laden mit dem größten Umsatz ist: {0}", laeden.HighestSales ().Name); Console.WriteLine ("Der Laden mit dem niedrigsten Umsatz ist: {0}", laeden.LowesSales ().Name); Console.ReadLine(); } }

using System; using System.Collections.Generic; using System.Linq; namespace Übungen_Zu_CSharp_116 { class Program { static void Main() { //Wert 1: Afang des Tages. Wert 2: Ende des Tages. Wert 3: Umsatz Wert 4: LadenNr. //Aber wieso ein Array pro Laden, Energy? List<double[]> läden = new List<double[]>(); //Liste der Arrays füllen for (int i = 1; i < 6; i++) { double[] temp = new double[4]; Console.Write("Wie viel hatte der " + i + ". Laden morgens in der Kasse? "); temp[0] = Convert.ToDouble(Console.ReadLine()); Console.Write("Wie viel hatte der " + i + ". Laden abends in der Kasse? "); temp[1] = Convert.ToDouble(Console.ReadLine()); temp[2] = temp[1] - temp[0]; //Umsatz = Endbestand - Anfangsbestand temp[3] = i; läden.Add(temp); } var maxladen = läden.Where(x => x[2] == läden.Max(y => y[2])); var minladen = läden.Where(x => x[2] == läden.Min(y => y[2])); foreach (var item in läden) { Console.WriteLine("Laden {0}:\n\tAnfangsbestand: {1}\n\tEndbestand: {2}\n\tUmsatz: {3}", item[3], item[0], item[1], item[2]); } //Schleifen, falls zwei Läden gleich viel Umsatz gemacht haben foreach (var item in maxladen) Console.WriteLine("\nLaden {0} hat mit {1} den meisten Umsatz gemacht.", item[3], item[2]); foreach (var item in minladen) Console.WriteLine("\nLaden {0} hat mit {1} den geringsten Umsatz gemacht.", item[3], item[2]); Console.ReadKey(); } } }

namespace Tante_Emma_Laden { class Program { static void Main(string[] args) { int shops = 3; int shopMax = 0; int shopMin = 0; float maximum = 0; float minimum = float.MaxValue; float[] beginning = new float[shops]; float[] end = new float[shops]; float[] turnover = new float[shops]; Console.WriteLine("Umsatz berechnen\n"); //Kassenstände für jeden Laden annehmen for(int i = 0; i < shops; i++) { Console.WriteLine("Laden Nr.{0}", i + 1); Console.Write("Wie viel Geld war am Tagesanfang verfügbar? "); beginning[i] = Input(); Console.Write("Wie viel Geld war am Tagesende verfügbar? "); end[i] = Input(); turnover[i] = end[i] - beginning[i]; } //Minimum, Maximum und die dazu gehörige Laden Nr. ermitteln for(int j = 0; j < shops; j++) { if (turnover[j] > maximum) { maximum = turnover[j]; shopMax = j + 1; } if (turnover[j] < minimum) { minimum = turnover[j]; shopMin = j + 1; } } Console.WriteLine("Laden Nr.{0} höchster Umsatz mit: {1}", shopMax, maximum); Console.WriteLine("Laden Nr.{0} niedrigster Umsatz mit: {1}", shopMin, minimum); Console.ReadLine(); } //Eingaben werden auf Korrektheit geprüft und erst dann zurückgegeben wenn korrekte Eingabe erfolgt ist private static float Input() { bool richtigeEingabe = false; float convert = 0; do { try { convert = Convert.ToSingle(Console.ReadLine()); richtigeEingabe = true; } catch { Console.Write("Falsche Eingabe, versuchen Sie es erneut: "); richtigeEingabe = false; } } while (!richtigeEingabe); return convert; } } }
Ich würde mich über eine kurze Rückmeldung freuen :)