1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222
| from tkinter import * # importe la bibliothèque Tkinter qui permet la création d'interfaces graphiques.
from random import * # importe la fonction random qui sert pour le choix aléatoire des questions.
# Création des tableaux (chaque tableau représente un thème):
# tableau de questions SISR:
tb1 = [["Que signifie le premier bit d'une adresse MAC quand il est à 0 ?","unicast"],
["Que signifie le premier bit d'une adresse MAC quand il est à 1 ?","multicast"],
["Que signifie le second bit d'une adresse MAC quand il est à 0 ?","universelle"],
["Que signifie le second bit d'une adresse MAC quand il est à 1 ?","local"],
["Que représente les bits 3 à 24 d'une adresse MAC ?","identifiant constructeur"],
["Que représente les bits 25 à 48 d'une adresse MAC ?","identifiant carte"]]
# tableau de questions MATHS:
tb2 = [["En numération, comment appelle t'on la base 2 ?","binaire"],
["En numération, comment appelle t'on la base 10 ?","décimale"],
["En numération, comment appelle t'on la base 16 ?","héxadécimale"],
["En numération, comment appelle t'on la notation du signe en binaire (positif ou négatif) ?","signé"]]
# tableau de questions MATHS OPTION:
tb3 = [["En statistique, comment appelle t'on l'ensemble sur lequel porte une expérience, d'individus ou unité statiques ?","population"],
["En statistique, comment appelle t'on une partie (sous ensemble) d'une population ?","echantillon"],
["En statistique, comment appelle t'on l'objet de l'expérience, de l'individu que l'on étudie?","caractère"],
["En statistique, comment appelle t'on un caractère qui ne peut pas être mesuré ?","qualitatif"],
["En statistique, comment appelle t'on un caractère qui peut être mesuré ?","quantitatif"]]
# tableau de questions CULTURE G.:
tb4 = [["En confrontation, comment appelle t'on les points de vue entre les auteurs qui se renforcent ?","convergence"],
["En confrontation, comment appelle t'on un point de vue qui est approfondi par un autre ?","complémentarité"],
["En confrontation, comment appelle t'on un point de vue qui est nuancé, remis en question partiellement par un autre ?","divergence"]]
# tableau de questions ECO-MANA:
tb5 = [["Que signifie B2B ?","business to business"],
["Que signifie B2C ?","business to consumer"],
["Que signifie C2C ?","consumer to consumer"],
["Que signifie C2B ?","consumer to business"]]
# tableau de questions DROITS:
tb6 = [["Comment appelle t'on, l'ensemble de textes qui organise le fonctionnement des institutions et la répartition des pouvoirs et qui affirme les grandes libertés et les grands principes qui fondent le système juridique français ?","constitution"],
["Comment appelle t'on une règle juridique écrite et votée par le parlement qui détient le pouvoir l'égislatif ?","loi"]]
# tableau de questions SI:
tb7 = [["En Python, quelle commande permet l'affichage à l'écran ?","print()"],
["En Python, quelle commande permet d'afficher une phrase et de récupérer une réponse sous forme de chaine de caractère ?","input()"],
["En Python, quelle commande permet de transtyper une chaine de caractère en entier ?","int()"],
["En Python, quelle commande permet de transtyper une chaine de caractère en réel ?","float()"],
["En Python, quelle commande permet de transtyper un nombre en chaine de caractère ?","str()"]]
# tableau réunissant les questions de tous les thèmes.
tb8 = tb1 + tb2 + tb3 + tb4 +tb5 + tb6 + tb7
# Création de la fenêtre principal.
fenetre=Tk()
fenetre.title('Application de révision')
#Création du cadre pour selectionner le thème.
cadreTheme = Frame(fenetre, borderwidth=2,relief=GROOVE)
# Affiche le cadreTheme.
cadreTheme.grid(row=1, padx=20, pady=10, sticky =W)
# Affiche le titre dans le cadreTheme (qui sert de consigne au sein du cadre).
Label(cadreTheme, text="Choisir un questionnaire :").pack(padx=10, pady=10)
# Création des radio-boutons avec des valeurs pour choisir quelle matière réviser.
choix_theme = IntVar(value=0)
bt1 = Radiobutton(cadreTheme, text="SISR", variable=choix_theme, value=1)
bt2 = Radiobutton(cadreTheme, text="MATHS", variable=choix_theme, value=2)
bt3 = Radiobutton(cadreTheme, text="MATHS OPTION", variable=choix_theme, value=3)
bt4 = Radiobutton(cadreTheme, text="CULTURE G.", variable=choix_theme, value=4)
bt5 = Radiobutton(cadreTheme, text="ECO-MANA", variable=choix_theme, value=5)
bt6 = Radiobutton(cadreTheme, text="DROITS", variable=choix_theme, value=6)
bt7 = Radiobutton(cadreTheme, text="SI", variable=choix_theme, value=7)
bt8 = Radiobutton(cadreTheme, text="ALL", variable=choix_theme, value=8)
# Affichage des radio-boutons dans le "cadreTheme".
bt1.pack()
bt2.pack()
bt3.pack()
bt4.pack()
bt5.pack()
bt6.pack()
bt7.pack()
bt8.pack()
def resultat_choix():
choix = (choix_theme.get())
if choix==1:
chargeur=tb1
if choix==2:
chargeur=tb2
if choix==3:
chargeur=tb3
if choix==4:
chargeur=tb4
if choix==5:
chargeur=tb5
if choix==6:
chargeur=tb6
if choix==7:
chargeur=tb7
if choix==8:
chargeur=tb8
print(chargeur)
# Bouton pour valider le thème choisi.
boutonValiderTheme = Button (cadreTheme, text="Valider", command = resultat_choix)
boutonValiderTheme.pack(padx=10, pady=10)
# Création du cadre pour les questions/Réponses.
cadreQuestion = Frame(width=500, height=500, borderwidth=2, relief=GROOVE)
# Affiche le cadreQuestion.
cadreQuestion.grid(row=2, padx=10, pady=10, sticky =S)
# Affiche le titre dans le cadreQuestion.
Label(cadreQuestion, text="Question :").pack(padx=10, pady=10)
test=0 # Juste pour tester my_question.
# Canvas pour afficher la question.
my_question = Canvas(cadreQuestion, width=500, height=300, background='white')
my_question.pack()
text = my_question.create_text((10, 10), text=test)
# Création d'un cadre dans le "cadreQuestion" pour la Réponse.
cadreReponse = Frame(cadreQuestion, borderwidth=2, relief=GROOVE)
# Affiche le cadreReponse.
cadreReponse.pack(padx=10)
# Affiche le titre du cadreReponse.
Label(cadreReponse, text="Réponse :").pack(padx=10, pady=10)
# Champ permettant de saisir la réponse.
crep = StringVar()
ligne_texte = Entry(cadreReponse, textvariable=crep, width=61)
ligne_texte.pack()
def valider_reponse():
print()
# Bouton pour valider la réponse.
boutonValiderReponse = Button (cadreQuestion, text="Valider", command = valider_reponse)
boutonValiderReponse.pack(side="left", padx=10)
def question_suivante():
print()
# Bouton pour passer à la question suivante.
boutonQuestionSuivante = Button (cadreQuestion, text="Question suivante", command = question_suivante)
boutonQuestionSuivante.pack(side="right", padx=10)
# Création d'un cadre pour afficher le score.
cadreScore = Frame(fenetre, borderwidth=2, relief=GROOVE)
# Affiche le cadreScore.
cadreScore.grid(row=1, column=0, padx=20, sticky =E)
# Affiche le titre du cadreScore.
Label(cadreScore, text="Score :").pack(padx=10, pady=10)
# Création d'un cadre dans le "cadreScore" pour Afficher le nombre de bonne réponse.
cadreVrai = Frame(cadreScore, bg="white", borderwidth=2, relief=GROOVE)
# Affiche le cadreVrai.
cadreVrai.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreVrai.
Label(cadreVrai, text="Vrai :", bg="white").pack(padx=10, pady=10)
cpt1 = 0 # Compteur de bonnes réponses
def inc1():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_bonnrep.itemconfig(text, text=int(val))
infos = {'valeur': cpt1, }
my_bonnrep = Canvas(cadreVrai, width=20, height=20)
my_bonnrep.pack()
text = my_bonnrep.create_text((10, 10), text=cpt1)
# Création d'un cadre dans le "cadreScore" pour afficher le nombre de mauvaise réponse.
cadreFaux = Frame(cadreScore, bg="white", borderwidth=2, relief=GROOVE)
# Affiche le cadreFaux.
cadreFaux.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreFaux.
Label(cadreFaux, text="Faux :", bg="white").pack(padx=10, pady=10)
cpt2 = 0 # Compteur de mauvaises réponses
def inc2():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_mauvrep.itemconfig(text, text=int(val))
infos = {'valeur': cpt2, }
my_mauvrep = Canvas(cadreFaux, width=20, height=20)
my_mauvrep.pack()
text = my_mauvrep.create_text((10, 10), text=cpt2)
# Création d'un cadre dans le "cadreScore" pour afficher le pourcentage de bonne réponse.
cadreSoit = Frame(cadreScore, bg="white", borderwidth=2, relief=GROOVE)
# Affiche le cadreSoit.
cadreSoit.pack(side=LEFT, padx=10, pady=10)
# Affiche le titre du cadreSoit.
Label(cadreSoit, text="Soit :", bg="white").pack(padx=10, pady=10)
cpt2 = 0 # Compteur de mauvaises réponses
def inc2():
val = infos['valeur']
v += 1
infos['valeur'] = val
my_mauvrep.itemconfig(text, text=int(val))
infos = {'valeur': cpt2, }
my_mauvrep = Canvas(cadreSoit, width=20, height=20)
my_mauvrep.pack()
text = my_mauvrep.create_text((10, 10), text=cpt2)
mainloop() |
Partager