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 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
| #_*_coding:Utf-8_*_
#----------IMPORT----------
from random import randrange
from tkinter import *
#----------FONCTIONS & CLASSES----------
def validation():
"Fonction qui valide l'achat d'une voiture d'occasion"
erreurs = "" # Variable qui contiendra les erreurs commises par l'utilisateur
voiture = "" # Variable qui contiendra toutes les caractéristiques de la voiture achetée
modele = listbox_Modele.nearest(0) # Retourne l'indice de la ligne 0 de la listbox du modèle
valeur_Modele = listbox_Modele.get(modele) # Retourne la valeur de l'indice de la listbox du modèle
voiture = valeur_Modele + ", " # Ajout de la caractéristique 'modèle'
annee = listbox_Annee.nearest(0) # Retourne l'indice de la ligne 0 de la listbox de l'année
valeur_Annee = listbox_Annee.get(annee) # Retourne la valeur de l'indice de la listbox de l'année
voiture += valeur_Annee + ", " # Ajout de la caractéristique 'année'
nombre_Kilometres = nbreKM.get()
if nombre_Kilometres == "":
erreurs = "Veuillez entrer un nombre de kilomètres !\n"
elif int(nombre_Kilometres) <= 0:
erreurs = "Le nombre de kilomètres est en dessous ou égal à zéro !\n"
elif int(nombre_Kilometres) > 250000:
erreurs = "Le nombre de kilomètres est trop élevé !\n"
else:
voiture += "km:" + str(nombre_Kilometres) + ", "
energie = listbox_Energie.nearest(0) # Retourne l'indice de la ligne 0 de la listbox de l'énergie
valeur_Energie = listbox_Energie.get(energie) # Retourne la valeur de l'indice de la listbox de l'énergie
voiture += valeur_Energie + ", " # Ajout de la caractéristique 'énergie'
value_Carnet_Entretien = var.get() # Récupération de la valeur de 'carnet_Entretien_Bouton'
if value_Carnet_Entretien == 1:
voiture += "Carnet d'entretien complet" + ", " # Si le bouton est coché le carnet d'entretien est complet
else:
voiture += "Carnet d'entretien incomplet" + ", " # Sinon le carnet d'entretien n'est pas complet
couleur = listbox_Couleur.nearest(0) # Retourne l'indice de la ligne 0 de la listbox de la couleur
valeur_Couleur = listbox_Couleur.get(couleur) # Retourne la valeur de l'indice de la listbox de la couleur
voiture += valeur_Couleur + ", " # Ajout de la caractéristique 'couleur'
puissance = puissance_Entree.get() # Récupération de la valeur de la puissance
if puissance == "":
erreurs += "Veuillez entrer une puissance !"
elif int(puissance) <= 50:
erreurs += "Impossible, veuillez entrer une puissance correcte !"
elif int(puissance) > 450:
erreurs += "Impossible, veuillez entrer une puissance correcte !"
else:
voiture += "Puissance:" + str(puissance) + "Ch."
if erreurs != "":
Remarques.configure(text=erreurs, fg="red", font="bold") # Signale les erreurs à l'utilisateur
else:
Remarques.configure(text="")
voiture += "\n"
can2 = Canvas(fen1, width=500, height=400, bg="grey")
achat(voiture)
def achat(vehicule):
oFichier = open("voitures1", "a") # Ouverture du repertoire de voitures 1
oFichier.write(vehicule) # Insertion des voitures dans le 1er fichier
oFichier.close() # Fermeture du repertoire de voitures 1
def lectureFichier():
oFichier1 = open("voitures1","r")
voiture_Listbox = oFichier1.readlines()
oFichier1.close()
return voiture_Listbox
def vendre():
erreurs2 = ""
oFichier1 = open("voitures1", "r")
voiture = oFichier1.readlines()
oFichier1.close()
oFichier2 = open("voitures1", "w")
voiture_A_Vendre = listbox_Parc.nearest(0)
valeur_Voiture_A_Vendre = listbox_Parc.get(voiture_A_Vendre)
i=0
while i < len(voiture):
if voiture[i] != valeur_Voiture_A_Vendre:
oFichier1.write(voiture[i])
oFichier2.close()
delete = listbox_Parc.delete(voiture_A_Vendre)
prix = vente_Entree.get()
if prix == "":
erreurs2 += "Veuillez entrez un prix de vente correct"
elif prix <= 1000:
erreurs2 += "Veuillez entrez un prix de vente supérieur à 1000 "
elif prix > 35000:
erreurs2 += "Veuillez entrez un prix de vente inférieur à 35000 "
else:
Remarques.configure(text=erreurs2, fg="red", font="bold") # Signale les erreurs à l'utilisateur
#----------PROGRAMME PRINCIPAL----------
fen1 = Tk() # Création de la fenêtre principale
can1 = Canvas(fen1, width=562, height=200) # Création du 1er canvas
can2 = Canvas(fen1, width=500, height=400, bg="grey") # Création du 2ième canvas
can1.grid(row=0, column=3, rowspan=1) # Placement du 1er canvas dans la fenêtre
can2.grid(row=1, column=3, rowspan=15) # Placement du 2ième canves dans la fenêtre
photo_Ban = PhotoImage(file="banniere.gif") # Definition de l'image à insérer
img1 = can1.create_image(281, 165, image=photo_Ban) # Insertion de l'image sur le canvas 1
photo = PhotoImage(file="A1.gif") # Definition de l'image à insérer
img2 = can2.create_image(250, 200, image=photo) # Insertion de l'image sur le canvas 2
intitule_colonne1 = Label(fen1, text="Achat d'une voiture d'occasion:", font="bold") # Affichage texte dans la fenêtre
intitule_colonne1.grid(row=0, column=1, padx=50, pady=50) # Placement du texte dans la fenêtre
modele = Label(fen1, text="Sélectionnez le modèle:") # Widget texte
modele.grid(row=1, column=1) # Placement du Widget dans la fenêtre
listbox_Modele = Listbox(fen1, height=1, width=2) # Widget Listbox pour le modèle
scrol_Modele = Scrollbar(fen1, command=listbox_Modele.yview) # Scrollbar pour le modèle
listbox_Modele.config(yscrollcommand=scrol_Modele.set) # Configuration du Widget Listbox avec la ScrollBar
scrol_Modele.grid(row=2, column=2) # Placement de la Scrollbar dans la fenêtre
listbox_Modele.grid(row=2, column=1) # Placement du Widget Listbox dans la fenêtre
for item in ["A1", "A2", "A3", "A4", "A5", "A6", "TT"]:
listbox_Modele.insert(END, item) # Insertion des données possibles dans la Listbox
annee = Label(fen1, text="Sélectionnez l'année:") # Widget texte
annee.grid(row=3, column=1) # Placement du Widget dans la fenêtre
listbox_Annee = Listbox(fen1, height=1, width=4) # Widget Listbox pour l'année
scrol = Scrollbar(fen1, command=listbox_Annee.yview) # Scrollbar pour l'année
listbox_Annee.config(yscrollcommand=scrol.set) # Configuration du Widget Listbox avec la ScrollBar
scrol.grid(row=4, column=2) # Placement de la Scrollbar dans la fenêtre
listbox_Annee.grid(row=4, column=1) # Placement du Widget Listbox dans la fenêtre
for item in ["1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012"]:
listbox_Annee.insert(END, item) # Insertion des données possibles dans la Listbox
text_nbreKM = Label(fen1, text="Nombre de kilomètres:") # Widget texte
text_nbreKM.grid(row=5, column=1) # Placement du Widget texte dans la fenêtre
nbreKM = Entry(fen1, width=7) # Widget permettant à l'utilisateur d'entrer le nombre de km
nbreKM.grid(row=6, column=1) # Placement du Widget Entry
energie = Label(fen1, text="Energie:") # Widget texte
energie.grid(row=7, column=1) # Placement du Widget texte dans la fenêtre
listbox_Energie = Listbox(fen1, height=1, width=6) # Widget Listbox pour l'énergie
scrol = Scrollbar(fen1, command=listbox_Energie.yview) # Scrollbar pour l'énergie
listbox_Energie.config(yscrollcommand=scrol.set) # Configuration du Widget Listbox avec la ScrollBar
scrol.grid(row=8, column=2) # Placement de la Scrollbar dans la fenêtre
listbox_Energie.grid(row=8, column=1) # Placement du Widget Listbox dans la fenêtre
for item in ["Diesel", "Essence", "LPG", "Hybride"]:
listbox_Energie.insert(END, item) # Insertion des données possibles dans la Listbox
text_Carnet = Label(fen1, text="Carnet d'entretien complet:") # Widget texte
text_Carnet.grid(row=9, column=1) # Placement du Widget texte dans la fenêtre
var=IntVar()
carnet_Entretien_Bouton = Checkbutton(fen1, variable=var) # Widget 'bouton à cocher'
carnet_Entretien_Bouton.grid(row=10, column=1) # Placement du Widget 'Checkbutton'
couleur = Label(fen1, text="Couleur:") # Widget texte
couleur.grid(row=11, column=1) # Placement du Widget texte dans la fenêtre
listbox_Couleur = Listbox(fen1, height=1, width=7) # Widget Listbox pour la couleur
scrol = Scrollbar(fen1, command=listbox_Couleur.yview) # Scrollbar pour la couleur
listbox_Couleur.config(yscrollcommand=scrol.set) # Configuration du Widget Listbox avec la ScrollBar
scrol.grid(row=12, column=2) # Placement de la Scrollbar dans la fenêtre
listbox_Couleur.grid(row=12, column=1) # Placement du Widget Listbox dans la fenêtre
for item in ["Blanche", "Noire", "Grise", "Bleue", "Rouge", "Verte", "Jaune", "Orange", "Brune"]:
listbox_Couleur.insert(END, item) # Insertion des données possibles dans la Listbox
text_puissance = Label(fen1, text="Puissance (Chevaux):") # Widget texte
text_puissance.grid(row=13, column=1) # Placement du Widget texte dans la fenêtre
puissance_Entree = Entry(fen1, text="50") # Widget Entry pour la puissance
puissance_Entree.grid(row=14, column=1) # Placement du Widget Entry dans la fenêtre
bouton_validation = Button(fen1, text="VALIDEZ", font="bold", command=validation) # Creation du bouton 'VALIDEZ'
bouton_validation.grid(row=15, column=1) # Placement du bouton dans la fenêtre
Remarques = Label(fen1, width=75, height=3, bg="white") # Widget pour afficher les erreurs
Remarques.grid(row=16, column=1) # Placement du Widget dans la fenêtre
intitule_colonne2 = Label(fen1, text="Parc de voitures:", font="bold") # Affichage texte dans la fenêtre
intitule_colonne2.grid(row=0, column=4, padx=50, pady=50) # Placement du texte dans la fenêtre
parc = Label(fen1, text="Voitures disponibles:") # Widget texte
parc.grid(row=2, column=4) # Placement du Widget texte dans la fenêtre
listbox_Parc = Listbox(fen1, height=1, width=50) # Widget Listbox pour l'énergie
scrol = Scrollbar(fen1, command=listbox_Parc.yview) # Scrollbar pour l'énergie
listbox_Parc.config(yscrollcommand=scrol.set) # Configuration du Widget Listbox avec la ScrollBar
scrol.grid(row=3, column=5) # Placement de la Scrollbar dans la fenêtre
listbox_Parc.grid(row=3, column=4) # Placement du Widget Listbox dans la fenêtre
elem = lectureFichier()
for item in elem:
listbox_Parc.insert(END, item) # Insertion des données possibles dans la Listbox
text_vente = Label(fen1, text="Prix de vente ():") # Widget texte
text_vente.grid(row=4, column=4) # Placement du Widget texte dans la fenêtre
vente_Entree = Entry(fen1, text="35") # Widget Entry pour la puissance
vente_Entree.grid(row=5, column=4) # Placement du Widget Entry dans la fenêtre
bouton_vendre = Button(fen1, text="VENDRE", font="bold") # Creation du bouton 'VENDRE'
bouton_vendre.grid(row=6, column=4) # Placement du bouton dans la fenêtre
fen1.mainloop() # Démarrage du réceptionnaire dévènements (boucle principale) |
Partager