Pierwszy program quiz
unknown
python
3 years ago
9.3 kB
15
Indexable
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()Editor is loading...