1
This commit is contained in:
parent
aff8164a5c
commit
c580ecc6e4
@ -0,0 +1,195 @@
|
|||||||
|
# Getränke und Snackautomat
|
||||||
|
# Uses database to store the products and the amount of money
|
||||||
|
|
||||||
|
# Imports
|
||||||
|
import sqlite3
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
# Make a new database
|
||||||
|
conn = sqlite3.connect('Getränkeautomat.db')
|
||||||
|
c = conn.cursor()
|
||||||
|
# Create a table for the products
|
||||||
|
c.execute("CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT, price REAL)")
|
||||||
|
|
||||||
|
# Make an admin mode to add new products and change the price and add an id
|
||||||
|
def admin_mode():
|
||||||
|
weiter_admin=True
|
||||||
|
while (weiter_admin==True):
|
||||||
|
# Print the admin menu
|
||||||
|
print("1. Add Product")
|
||||||
|
print("2. Change Price")
|
||||||
|
print("3. Delete Product")
|
||||||
|
# Ask for the user input
|
||||||
|
admin_input=input("Please choose an option: ")
|
||||||
|
# Check if the input is a number
|
||||||
|
try:
|
||||||
|
admin_input=int(admin_input)
|
||||||
|
except ValueError:
|
||||||
|
print("Please enter a number")
|
||||||
|
continue
|
||||||
|
# Check if the input is in the range of the admin menu
|
||||||
|
if (admin_input<1 or admin_input>4):
|
||||||
|
print("Please enter a number between 1 and 4")
|
||||||
|
continue
|
||||||
|
# Add a new product
|
||||||
|
# Ask for the product name
|
||||||
|
# Ask for the product price
|
||||||
|
# Ask for the product id
|
||||||
|
# Add the product to the database
|
||||||
|
if (admin_input==1):
|
||||||
|
product_name=input("Please enter the product name: ")
|
||||||
|
product_price=input("Please enter the product price: ")
|
||||||
|
product_id=input("Please enter the product id: ")
|
||||||
|
c.execute("INSERT INTO products (name, price, id) VALUES (?, ?, ?)", (product_name, float(product_price), int(product_id)))
|
||||||
|
conn.commit()
|
||||||
|
print("Product added")
|
||||||
|
continue
|
||||||
|
# Change the price of a product
|
||||||
|
# Ask for the product id
|
||||||
|
# Ask for the new price
|
||||||
|
# Change the price in the database
|
||||||
|
# Print the old price and the new price
|
||||||
|
if (admin_input==2):
|
||||||
|
product_id=input("Please enter the product id: ")
|
||||||
|
new_price=input("Please enter the new price: ")
|
||||||
|
c.execute("UPDATE products SET price=? WHERE id=?", (float(new_price), int(product_id)))
|
||||||
|
conn.commit()
|
||||||
|
print("Old price: " + str(c.execute("SELECT price FROM products WHERE id=?", (int(product_id),)).fetchone()[0]))
|
||||||
|
print("New price: " + str(new_price))
|
||||||
|
continue
|
||||||
|
# Delete a product
|
||||||
|
# Ask for the product id
|
||||||
|
# Delete the product from the database
|
||||||
|
if (admin_input==3):
|
||||||
|
product_id=input("Please enter the product id: ")
|
||||||
|
c.execute("DELETE FROM products WHERE id=?", (int(product_id),))
|
||||||
|
conn.commit()
|
||||||
|
print("Product deleted")
|
||||||
|
continue
|
||||||
|
# Ask if the user wants to continue in the admin mode
|
||||||
|
if (admin_input==4):
|
||||||
|
weiter_admin=False
|
||||||
|
normal_mode()
|
||||||
|
|
||||||
|
# Make the normal operation mode
|
||||||
|
def normal_mode():
|
||||||
|
print("Willkommen beim Getränke und Snackautomat")
|
||||||
|
print("Drücken Sie 1 um zu starten")
|
||||||
|
print("Drücken 2 um zum Adminmodus zu wechseln")
|
||||||
|
print("Drücken 3 um das Programm zu beenden")
|
||||||
|
# Ask for the user input
|
||||||
|
user_input=input("Please choose an option: ")
|
||||||
|
# Check if the input is a number
|
||||||
|
try:
|
||||||
|
user_input=int(user_input)
|
||||||
|
except ValueError:
|
||||||
|
print("Bitte geben Sie eine Nummer ein")
|
||||||
|
return
|
||||||
|
# Check if the input is in the range of the admin menu
|
||||||
|
if user_input==2:
|
||||||
|
# Ask for the admin password
|
||||||
|
admin_password=input("Please enter the admin password: ")
|
||||||
|
# Check if the password is correct
|
||||||
|
if (admin_password=="admin"):
|
||||||
|
# Start the admin mode
|
||||||
|
admin_mode()
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
print("Wrong password")
|
||||||
|
return
|
||||||
|
if user_input==3:
|
||||||
|
# Exit the program
|
||||||
|
sys.exit()
|
||||||
|
if user_input==1:
|
||||||
|
sum_of_price=0
|
||||||
|
normal_continue=True
|
||||||
|
while (normal_continue==True):
|
||||||
|
# Print all the products and their price and the id of the product
|
||||||
|
for row in c.execute("SELECT * FROM products"):
|
||||||
|
print(row)
|
||||||
|
# Ask for the product id
|
||||||
|
product_id=input("Bitte Nummer des gewünschten Produktes eingeben: ")
|
||||||
|
# Check if the product id is in the database
|
||||||
|
if (c.execute("SELECT * FROM products WHERE id=?", (int(product_id),)).fetchone()==None):
|
||||||
|
print("Product nicht gefunden")
|
||||||
|
return
|
||||||
|
# Get the price of the product
|
||||||
|
product_price=c.execute("SELECT price FROM products WHERE id=?", (int(product_id),)).fetchone()[0]
|
||||||
|
# Ask the amount of the product
|
||||||
|
product_amount=int(input("Bitte Anzahl des Produktes Eingeben: "))
|
||||||
|
sum_of_price=product_price*product_amount
|
||||||
|
# Print the price of the sum
|
||||||
|
print("Summe:%s€" % sum_of_price)
|
||||||
|
# Ask if the user wants to continue
|
||||||
|
if (input("Weiter Einkaufen? (j/n): ")=="n"):
|
||||||
|
normal_continue=False
|
||||||
|
payment(sum_of_price)
|
||||||
|
return
|
||||||
|
# Define a function to handle the payment
|
||||||
|
def payment(sum_of_price):
|
||||||
|
# Print the price of the sum
|
||||||
|
print("Summe: %s€" % sum_of_price)
|
||||||
|
# Ask for the money put in the machine
|
||||||
|
money_in_machine=input("Bitte Geld eingeben: ")
|
||||||
|
# Check if the money is a number
|
||||||
|
try:
|
||||||
|
money_in_machine=int(money_in_machine)
|
||||||
|
except ValueError:
|
||||||
|
print("Bitte geben Sie eine Nummer ein")
|
||||||
|
return
|
||||||
|
# Check if the money is enough
|
||||||
|
if (money_in_machine<sum_of_price):
|
||||||
|
print("Zu wenig Geld")
|
||||||
|
return
|
||||||
|
# Print the change
|
||||||
|
print("Rückgeld: %s€" % (money_in_machine-sum_of_price))
|
||||||
|
# Stückelung
|
||||||
|
rest_euro=money_in_machine-sum_of_price
|
||||||
|
rest_cent=rest_euro*100
|
||||||
|
|
||||||
|
# 10 Euro
|
||||||
|
rest_euro_10=rest_cent//10000
|
||||||
|
rest_cent=rest_cent-rest_euro_10*10000
|
||||||
|
|
||||||
|
# 5 Euro
|
||||||
|
rest_euro_5=rest_cent//5000
|
||||||
|
rest_cent=rest_cent-rest_euro_5*5000
|
||||||
|
|
||||||
|
# 2 Euro
|
||||||
|
rest_euro_2=rest_cent//2000
|
||||||
|
rest_cent=rest_cent-rest_euro_2*2000
|
||||||
|
|
||||||
|
# 1 Euro
|
||||||
|
rest_euro_1=rest_cent//1000
|
||||||
|
rest_cent=rest_cent-rest_euro_1*1000
|
||||||
|
|
||||||
|
# 50 Cent
|
||||||
|
rest_cent_50=rest_cent//500
|
||||||
|
rest_cent=rest_cent-rest_cent_50*500
|
||||||
|
|
||||||
|
# 20 Cent
|
||||||
|
rest_cent_20=rest_cent//200
|
||||||
|
rest_cent=rest_cent-rest_cent_20*200
|
||||||
|
|
||||||
|
# 10 Cent
|
||||||
|
rest_cent_10=rest_cent//100
|
||||||
|
rest_cent=rest_cent-rest_cent_10*100
|
||||||
|
|
||||||
|
# 5 Cent
|
||||||
|
rest_cent_5=rest_cent//50
|
||||||
|
rest_cent=rest_cent-rest_cent_5*50
|
||||||
|
|
||||||
|
print ("10 Euro: %s" % rest_euro_10)
|
||||||
|
print ("5 Euro: %s" % rest_euro_5)
|
||||||
|
print ("2 Euro: %s" % rest_euro_2)
|
||||||
|
print ("1 Euro: %s" % rest_euro_1)
|
||||||
|
print ("50 Cent: %s" % rest_cent_50)
|
||||||
|
print ("20 Cent: %s" % rest_cent_20)
|
||||||
|
print ("10 Cent: %s" % rest_cent_10)
|
||||||
|
print ("5 Cent: %s" % rest_cent_5)
|
||||||
|
|
||||||
|
normal_mode()
|
||||||
|
|
Binary file not shown.
14
3. Übungen/07.04.2022/Getränke_automat_1/Beipielautomat.md
Normal file
14
3. Übungen/07.04.2022/Getränke_automat_1/Beipielautomat.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# Getränkeautomat
|
||||||
|
- Auswahl
|
||||||
|
- Cola (1,50€)
|
||||||
|
- Wasser (1,00€)
|
||||||
|
- Saft (2,00€)
|
||||||
|
|
||||||
|
- Anzahl
|
||||||
|
|
||||||
|
- Weiteres Getränk?
|
||||||
|
- Ja (von vorne)
|
||||||
|
- Nein (Ausgabe Preis)
|
||||||
|
|
||||||
|
- Ausgabe Preis
|
||||||
|
|
45
3. Übungen/07.04.2022/Getränke_automat_1/Beispielautomat.py
Normal file
45
3. Übungen/07.04.2022/Getränke_automat_1/Beispielautomat.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Programm, welches einen Getränkeatuomat simuliert
|
||||||
|
weiter_machen = True
|
||||||
|
gesamtpreis = 0
|
||||||
|
preis = 0
|
||||||
|
|
||||||
|
f1 = open("cola.txt")
|
||||||
|
f2 = open("wasser.txt")
|
||||||
|
f3 = open("saft.txt")
|
||||||
|
|
||||||
|
cola = float(f1.read())
|
||||||
|
wasser= float(f2.read())
|
||||||
|
saft= float(f3.read())
|
||||||
|
while (weiter_machen==True):
|
||||||
|
#Getränkeauswahl
|
||||||
|
print("Wählen Sie ein Getränk!")
|
||||||
|
print("1. Cola %s€"%(cola))
|
||||||
|
print("2. Wasser %s€"%(wasser))
|
||||||
|
print("3. Saft %s€"%(saft))
|
||||||
|
|
||||||
|
auswahl=int(input("Ihre Auswahl:")) # Nutzereingabe
|
||||||
|
if auswahl==1:
|
||||||
|
preis=cola
|
||||||
|
elif auswahl==2:
|
||||||
|
preis=wasser
|
||||||
|
elif auswahl==3:
|
||||||
|
preis=saft
|
||||||
|
else:
|
||||||
|
print("ERREUR, please nochmal from Vorne")
|
||||||
|
continue
|
||||||
|
# Anzahl der Getränke
|
||||||
|
anzahl=int(input("Wie viele Getränke wollen Sie? "))
|
||||||
|
preis=preis*anzahl
|
||||||
|
gesamtpreis=gesamtpreis+preis
|
||||||
|
print("Ihr Gesamtpreis beträgt %s€"%(gesamtpreis)) # Gesamtpreis ausgeben
|
||||||
|
|
||||||
|
# Weiteres Getränk?
|
||||||
|
weiter=input("Möchten Sie weitere Getränke bestellen? (j/n)")
|
||||||
|
if weiter=="j":
|
||||||
|
weiter_machen=True
|
||||||
|
continue
|
||||||
|
elif weiter=="n":
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print("ERREUR, please nochmal from Vorne")
|
||||||
|
continue
|
1
3. Übungen/07.04.2022/Getränke_automat_1/cola.txt
Normal file
1
3. Übungen/07.04.2022/Getränke_automat_1/cola.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
1.50
|
1
3. Übungen/07.04.2022/Getränke_automat_1/saft.txt
Normal file
1
3. Übungen/07.04.2022/Getränke_automat_1/saft.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
2.00
|
1
3. Übungen/07.04.2022/Getränke_automat_1/wasser.txt
Normal file
1
3. Übungen/07.04.2022/Getränke_automat_1/wasser.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
1.00
|
9
3. Übungen/31.03.2022/while-übung-2.py
Normal file
9
3. Übungen/31.03.2022/while-übung-2.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Programm, welches wiederholenden um 1 erhöht, startwert=1, obergrenze vom nutzer festglegt
|
||||||
|
# Definieren
|
||||||
|
x=1
|
||||||
|
# Eingabe
|
||||||
|
obergrenze=float(input("Maximalen Wert festlegen:"))
|
||||||
|
|
||||||
|
while x<obergrenze+1:
|
||||||
|
print(x)
|
||||||
|
x=x+1
|
Loading…
x
Reference in New Issue
Block a user