nord vpnnord vpn
Ad

Pierwszy program quiz

mail@pastecode.io avatar
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()

nord vpnnord vpn
Ad