Pierwszy program quiz
unknown
python
a year ago
9.3 kB
4
Indexable
Never
from ast import Str import csv import tkinter from tkinter import * from unittest import TextTestResult def funkcjaPrzycisku(): # to się dzieje po wciśnięciu przycisku name1 = name.get() #pobranie tekstu z pola Entry age1 = age.get() sex1 = sex.get() with open("data.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([name1, sex1, age1, result]) b.destroy() # usuń przycisk ramka.destroy() # usuń ramkę ramka1.pack(fill=tkinter.BOTH, expand=True) b1.pack(side=tkinter.BOTTOM) def funkcjaPrzycisku1(): # to się dzieje po wciśnięciu przycisku b1.destroy() # usuń przycisk ramka1.destroy() # usuń ramkę ramka2.pack(fill=tkinter.BOTH, expand=True) b2.pack(side=tkinter.BOTTOM) odp1 = rb1var.get() with open("odp1.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([odp1]) def funkcjaPrzycisku2(): # to się dzieje po wciśnięciu przycisku b2.destroy() # usuń przycisk ramka2.destroy() # usuń ramkę ramka3.pack(fill=tkinter.BOTH, expand=True) b3.pack(side=tkinter.BOTTOM) odp2 = rb2var.get() with open("odp2.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([odp2]) def funkcjaPrzycisku3(): # to się dzieje po wciśnięciu przycisku ramka3.destroy() # usuń ramkę ramka4.pack(fill=tkinter.BOTH, expand=True) b4.pack(side=tkinter.BOTTOM) odp3 = rb3var.get() with open("odp3.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([odp3]) def funkcjaPrzycisku4(): # to się dzieje po wciśnięciu przycisku ramka4.destroy() # usuń ramkę ramka5.pack(fill=tkinter.BOTH, expand=True) odp4 = rb4var.get() with open("odp4.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([odp4]) b5.place(x=400, y=300, anchor="center") def funkcjaPrzycisku5(): with open("odp1.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line1 in reader: # pętla na czytanie każdej linii z pliku q1 = line1[0] with open("odp2.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line2 in reader: # pętla na czytanie każdej linii z pliku q2 = line2[0] with open("odp3.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line3 in reader: # pętla na czytanie każdej linii z pliku q3 = line3[0] with open("odp4.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line4 in reader: # pętla na czytanie każdej linii z pliku q4 = line4[0] global points points = 0 if q1 == "c": points = points + 1 else: points = points+0 if q2 == "b": points = points +1 else: points = points+0 if q3 == "c": points = points +1 else: points = points+0 if q4 == "d": points = points +1 else: points = points+0 global result result = ( points / 4) * 100 b5.destroy() b6.place(x=400, y=300, anchor="center") with open("result.csv", 'a', newline='') as file: # zapis danych do pliku writer = csv.writer(file, delimiter=";") writer.writerow([result]) def lprint(): with open("result.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line5 in reader: # pętla na czytanie każdej linii z pliku q5 = line5[0] label = tkinter.Label(ramka5, text="Twój wynik to "+ q5 +"%, Gratulacje!\n\n\nŚredni wynik testu to: " + average +"%\n\n\n") label.place(x=400, y=300, anchor="center") b6.destroy() root = tkinter.Tk() root.title("QUIZ") root.geometry('800x600') # rozmiar otwieranego okna average = 0 sumScore = 0 score = 0 records = 0 intScore = 0 result = 0 # tylko tymczasowo zanim dalej umieszczę ta zmienna with open("result.csv") as csv_file: reader = csv.reader(csv_file, delimiter=";") for line in reader: # pętla na czytanie każdej linii z pliku score = line[0] # pobiera 1. wyraz z każdej linii i przypisuje dla zmiennej score intScore = int(float(score)) # score było stringiem, trzeba bylo zmienic na integer, ale z zapisu float sumScore = sumScore + intScore records = records + 1 # liczy ile jest wierszy average = sumScore/records average = str(average) ramka5 = tkinter.Frame(root) # ekran piaty ramka4 = tkinter.Frame(root) # ekran czwarty ramka3 = tkinter.Frame(root) # ekran trzeci ramka2 = tkinter.Frame(root) # ekran drugi ramka1 = tkinter.Frame(root) # ekran pierwszy ramka = tkinter.Frame(root) # utworzenie ramki w root ramka.pack(fill=tkinter.BOTH, expand=True) # umieszczenie ramki w root l = tkinter.Label(ramka, text="QUIZ\n\n\n\n\n") l.pack() question1 = tkinter.Label(ramka1, text="\n\nAmarant to odcień jakiego koloru?\n\n") question1.pack() question2 = tkinter.Label(ramka2, text="\n\nW jakich latach toczyła się I wojna światowa?\n\n") question2.pack() question3 = tkinter.Label(ramka3, text="\n\nSól, której używamy w kuchni, jest chlorkiem:\n\n") question3.pack() question4 = tkinter.Label(ramka4, text="\n\nKto stworzył hymn narodowy Polski?\n\n") question4.pack() tkinter.Label(ramka, text="Podaj swoje imię: ").pack() name = tkinter.Entry(ramka) name.pack() tkinter.Label(ramka, text="Podaj swój wiek: ").pack() age = tkinter.Entry(ramka) age.pack() tkinter.Label(ramka, text="Podaj swoją płeć (K/M): ").pack() sex = tkinter.Entry(ramka) sex.pack() b = tkinter.Button(ramka, text="Dalej", width=10, bg='green', fg='white', command=funkcjaPrzycisku) # przycisk realizujący funkcję b.pack(side=tkinter.BOTTOM) b1 = tkinter.Button(ramka1, text="Przejdź do pytania nr 2", width=25, bg='green', fg='white', command=funkcjaPrzycisku1) # przycisk realizujący funkcję b2 = tkinter.Button(ramka2, text="Przejdź do pytania nr 3", width=25, bg='green', fg='white', command=funkcjaPrzycisku2) # przycisk realizujący funkcję b3 = tkinter.Button(ramka3, text="Przejdź do pytania nr 4", width=25, bg='green', fg='white', command=funkcjaPrzycisku3) # przycisk realizujący funkcję b4 = tkinter.Button(ramka4, text="Gotowe!", width=10, bg='green', fg='white', command=funkcjaPrzycisku4) # przycisk realizujący funkcję b5 = tkinter.Button(ramka5, text="Kliknij!", width=25, bg='green', fg='white', command=funkcjaPrzycisku5) # przycisk realizujący funkcję b6 = tkinter.Button(ramka5, text="Sprawdź swój wynik", width=25, bg='green', fg='white', command=lprint) # przycisk realizujący funkcję rb1var = tkinter.StringVar() # zmienna sterująca zaznaczeniem kontrolki rb1a = tkinter.Radiobutton(ramka1, variable = rb1var, value = "a", text = "Niebieskiego") # kontrolka pierwsza rb1b = tkinter.Radiobutton(ramka1, variable = rb1var, value = "b", text = "Zielonego") # kontrolka druga rb1c = tkinter.Radiobutton(ramka1, variable = rb1var, value = "c", text = "Czerwonego") # kontrolka trzecia rb1d = tkinter.Radiobutton(ramka1, variable = rb1var, value = "d", text = "Czarnego") # kontrolka czwarta rb2var = tkinter.StringVar() # zmienna sterująca zaznaczeniem kontrolki rb2a = tkinter.Radiobutton(ramka2, variable = rb2var, value = "a", text = "1920-1922") # kontrolka pierwsza rb2b = tkinter.Radiobutton(ramka2, variable = rb2var, value = "b", text = "1914-1918") # kontrolka druga rb2c = tkinter.Radiobutton(ramka2, variable = rb2var, value = "c", text = "1939-1945") # kontrolka trzecia rb2d = tkinter.Radiobutton(ramka2, variable = rb2var, value = "d", text = "1926-1939") # kontrolka czwarta rb3var = tkinter.StringVar() # zmienna sterująca zaznaczeniem kontrolki rb3a = tkinter.Radiobutton(ramka3, variable = rb3var, value = "a", text = "Potasu") # kontrolka pierwsza rb3b = tkinter.Radiobutton(ramka3, variable = rb3var, value = "b", text = "Wapnia") # kontrolka druga rb3c = tkinter.Radiobutton(ramka3, variable = rb3var, value = "c", text = "Sodu") # kontrolka trzecia rb3d = tkinter.Radiobutton(ramka3, variable = rb3var, value = "d", text = "Amonu") # kontrolka czwarta rb4var = tkinter.StringVar() # zmienna sterująca zaznaczeniem kontrolki rb4a = tkinter.Radiobutton(ramka4, variable = rb4var, value = "a", text = "Jan Dąbrowski") # kontrolka pierwsza rb4b = tkinter.Radiobutton(ramka4, variable = rb4var, value = "b", text = "Krzysztof Penderecki") # kontrolka druga rb4c = tkinter.Radiobutton(ramka4, variable = rb4var, value = "c", text = "Fryderyk Chopin") # kontrolka trzecia rb4d = tkinter.Radiobutton(ramka4, variable = rb4var, value = "d", text = "Józef Wybicki") # kontrolka czwarta rb1var.set(0) # Wartość początkowa rb1a.pack() rb1b.pack() rb1c.pack() rb1d.pack() rb2var.set(0) # Wartość początkowa rb2a.pack() rb2b.pack() rb2c.pack() rb2d.pack() rb3var.set(0) # Wartość początkowa rb3a.pack() rb3b.pack() rb3c.pack() rb3d.pack() rb4var.set(0) # Wartość początkowa rb4a.pack() rb4b.pack() rb4c.pack() rb4d.pack() root.mainloop()