Python :: Aufgabe #96

4 Lösungen Lösungen öffentlich

Tante Emmas Tageseinnahmen

Anfänger - Python 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.

Lösungen:

vote_ok
von ah3n0bar6us (660 Punkte) - 22.07.2016 um 13:39 Uhr
Ich hoffe, dass ich die Aufgabe richtig verstanden habe.
Meine Vorgehensweise ist, dass ich ein Dictionary nutze, indem ich eine Liste als Wert hinterlege. An der ersten Stelle der Liste steht der Wert des Tagesbeginns, die zweite Stelle hat den Wert des Tagesende und ie letzte Stelle die Differenz.

Quellcode ausblenden Python-Code
#!/usr/bin/env python3
""" -------------------------------------
Tante Emma´s Buchführung
Summery: dic = {"key":[money at the beginning of the day, money at the end of the day, difference]}
------------------------------------- """ 

def getIncome():
    """ Aunt Emma´s accounting """
    shopDic = {"Shop1":[],"Shop2":[],"Shop3":[],"Shop4":[],"Shop5":[]}
    for i in sorted(shopDic):
        print(i," enthielt wieviel Geld am Anfang des tages? ")
        shopDic[i].append(int(input()))
    #print(shopDic)
    print("----------------------------------------------------------")
    for i in sorted(shopDic):
        print(i," enthielt wieviel Geld am Ende des Tages? ")
        shopDic[i].append(int(input()))
    #print(shopDic)
    print("----------------------------------------------------------")

    # compute the result
    for i in sorted(shopDic):
        shopDic[i].append(abs((shopDic[i])[0] - (shopDic[i])[1]))
    #print(shopDic)

    # print result
    for i in sorted(shopDic.keys()):
        maxSales, maxWinner = shopDic["Shop1"][2], "Shop1"
        minSales, minWinner = shopDic["Shop1"][2], "Shop1"
        if (shopDic[i])[2] > maxSales:
            maxSales = (shopDic[i])[2]
            maxWinner = i
        if (shopDic[i])[1] < minSales:
            minSales = (shopDic[i])[2]
            minWinner = i
    print("Höchsten Tageseinnahmen: ",maxWinner, "mit: ",maxSales, "Euro." )
    print("KLeinsten Tageseinnahmen: ",minWinner, "mit: ",minSales, "Euro." )
    print("----------------------------------------------------------")

    # min and max
    for i in sorted(shopDic.keys()):
        print(i, "enthält: ",(shopDic[i])[2], "Euro." )

def main():
    getIncome()

if __name__ == "__main__": 
    main()




2 Kommentare
vote_ok
von Cryptt (390 Punkte) - 20.08.2016 um 13:32 Uhr
Diese Aufgabe hat mich richtig viel Zeit gekostet. Ich bin nur ein Anfänger und der Sortieralgorithmus war schwierig. =) Vermutlich kann das wesentlich eleganter gemacht werden.
Quellcode ausblenden Python-Code
# Tante Emmmas Tageseinnahmen
# Sortierkriterien:
# 0: Nummer des Ladens
# 1: Geld am Beginn des Tages
# 2: Geld am Ende des Tages
# 3: Umsatz ueber den Tag

list = []
anzahl = 5

def eingabe(anzahl):
        for i in range(anzahl):
                eingabe = []
                eingabetext_a = 'Bitte gib das Geld vom Anfang des Tages des '+str(i+1)+'.Ladens ein: '
                eingabetext_e = 'Bitte gib das Geld vom Ende des Tages des '+str(i+1)+'.Ladens ein: '
                eingabe.append((i+1))
                eingabe.append(int(input(eingabetext_a)))
                eingabe.append(int(input(eingabetext_e)))
                eingabe.append((eingabe[1]-eingabe[0]))
                list.append(eingabe)

def sortierung(kriterium):
        t = len(list)-1
        
        while t:
                for i in range(t):
                        if list[i][kriterium]>list[i+1][kriterium]:
                                swap = []
                                swap.append(list[i])
                                list.remove(list[i])
                                list.insert(i,(list[i]))
                                list.remove(list[i+1])
                                list.insert((i+1),swap[0])
                t-=1

def ausgabe_umsatz(anzahl):
        sortierung(3)
        print('Der Laden oben hat am wenigsten und der Laden unten am meisten Umsatz gemacht')
        for i in range(anzahl):
                print('Laden',str(list[i][0]),'hat folgenden Umsatz gemacht:',str(list[i][3]))

def ausgabe_laden(anzahl):
        sortierung(0)
        for i in range(anzahl):
                print('Laden',list[i][0],': Tagesbeginn:',list[i][1],' Ende:',list[i][2],'Umsatz:',list[i][3])
        

eingabe(anzahl)
ausgabe_umsatz(anzahl)
ausgabe_laden(anzahl)
2x
vote_ok
von ZRX88 (2770 Punkte) - 28.11.2016 um 21:24 Uhr
Quellcode ausblenden Python-Code
""" Tante Emma"""

kassenstand = []
kassenstand_ende = []
for i in range(5):
    kassenstand.append(input('Gib Kassenstand fuer Laden Nummer %d an' % i ))
    kassenstand_ende.append(input('Gib Kassenstand am Ende des Tages fuer Laden Nummer %d an' % i ))

umsatz = [kassenstand_ende[i] - kassenstand[i] for i in range(5)]

for i in range(5):
    print('Der Umsatz von Shop %d betrug %d.' % (i,umsatz[i]) )
    print('Der Kassenstand am Anfang des Tages betrug %d und am Ende des Tages %d.' % (kassenstand[i],kassenstand_ende[i]))


maximaler_umsatz = max(umsatz)
print('Der groesste Umsatz von %d wurde in Shop %d erreicht.' % (maximaler_umsatz, umsatz.index(maximaler_umsatz) ))

minimaler_umsatz = min(umsatz)
print('Der kleinste Umsatz von %d wurde in Shop %d erreicht.' % (minimaler_umsatz, umsatz.index(minimaler_umsatz) ))
vote_ok
von Chrisu90 (910 Punkte) - 24.10.2020 um 14:04 Uhr
Quellcode ausblenden Python-Code
print('Tageszahlen Emma1: ')
emma1 = [input('Anfangsgeld: '), input(('Schlussgeld: '))]
gesem1 = float(emma1[1]) - float(emma1[0])
print('Umsatz: ', "{0:.2f}".format(gesem1), '€')

print('\nTageszahlen Emma2: ')
emma2 = [input('Anfangsgeld: '), input(('Schlussgeld: '))]
gesem2 = float(emma2[1]) - float(emma2[0])
print('Umsatz: ', "{0:.2f}".format(gesem2), '€')

print('\nTageszahlen Emma3: ')
emma3 = [input('Anfangsgeld: '), input(('Schlussgeld: '))]
gesem3 = float(emma3[1]) - float(emma3[0])
print('Umsatz: ', "{0:.2f}".format(gesem3), '€')

print('\nTageszahlen Emma4: ')
emma4 = [input('Anfangsgeld: '), input(('Schlussgeld: '))]
gesem4 = float(emma4[1]) - float(emma4[0])
print('Umsatz: ', "{0:.2f}".format(gesem4), '€')

print('\nTageszahlen Emma5: ')
emma5 = [input('Anfangsgeld: '), input(('Schlussgeld: '))]
gesem5 = float(emma5[1]) - float(emma5[0])
print('Umsatz: ', "{0:.2f}".format(gesem5), '€')

print('\nGesamtumsatz: ', "{0:.2f}".format(gesem1+gesem2+gesem3+gesem4+gesem5), '€' )

print('\nNiedrigste Tageseinnahme: ', "{0:.2f}".format(min(gesem1, gesem2, gesem4, gesem5, gesem3)), '€')
print('Höchste Tageseinnahme: ', "{0:.2f}".format(max(gesem1, gesem2, gesem4, gesem5, gesem3)), '€')