Automatisierte Notenvergabe bei Klausuren

ToolV00.py 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. from Tkinter import *
  2. import sys
  3. name = ""
  4. date = ""
  5. PunkteProAufgabe = []
  6. zaehler = 1
  7. ProzentSatz = 0
  8. Summe = 0
  9. BestehPunkte = 0
  10. minEins = 0
  11. minZwei = 0
  12. minDrei = 0
  13. Studenten = []
  14. StudentenPunkte = []
  15. def SchluesselDatenAbfragen():
  16. def WerteUebernehmen():
  17. global name
  18. global date
  19. name = entry1.get()
  20. date = entry2.get()
  21. button1.config(text = "Weiter", command = root.destroy)
  22. def VerbergeHilfeName():
  23. button3.config(text = "Hilfe", command = ZeigeHilfeName)
  24. def ZeigeHilfeName():
  25. button3.config(text = "Beachte: _ anstatt Leerzeichen", command = VerbergeHilfeName)
  26. def VerbergeHilfeDatum():
  27. button2.config(text = "Hilfe", command = ZeigeHilfeDatum)
  28. def ZeigeHilfeDatum():
  29. button2.config(text = "Format: DD-MM-JJJJ", command = VerbergeHilfeDatum)
  30. root = Tk()
  31. root.title("Name und Datum")
  32. Label(root, text = "Name der Klausur").grid(row = 0, column = 0)
  33. Label(root, text = "Datum der Klausur").grid(row = 1, column = 0)
  34. entry1 = Entry(root)
  35. entry2 = Entry(root)
  36. entry1.grid(row = 0, column = 1, pady = 4)
  37. entry2.grid(row = 1, column = 1, pady = 4)
  38. entry1.insert(10,"Klausur")
  39. entry2.insert(10,"01-01-2000")
  40. button1 = Button(root, text = "Uebernehmen", command = WerteUebernehmen)
  41. button2 = Button(root, text = "Hilfe", command = ZeigeHilfeDatum)
  42. button3 = Button(root, text = "Hilfe", command = ZeigeHilfeName)
  43. button1.grid(row = 3, column = 1)
  44. button2.grid(row = 1, column = 2)
  45. button3.grid(row = 0, column = 2)
  46. root.mainloop()
  47. def AufgabenPunkteAbfragen():
  48. def VerbergeHilfe():
  49. button1.config(text = "Hilfe", command = ZeigeHilfe)
  50. def ZeigeHilfe():
  51. button1.config(text = "Anzahl Punkte fuer jede Aufgabe eintragen", command = VerbergeHilfe)
  52. def NaechsteAufgabeEinlesen():
  53. global zaehler
  54. zaehler += 1
  55. tmp = "Aufgabe",str(zaehler)
  56. label1.config(text = tmp)
  57. entry1.delete(0,END)
  58. entry1.insert(10,"10")
  59. button1.config(text = "Hilfe", command = ZeigeHilfe)
  60. button2.config(text = "Weiter", command = EndeAbfragen)
  61. def EndeAbfragen():
  62. global PunkteProAufgabe
  63. PunkteProAufgabe.append(float(entry1.get()))
  64. label1.config(text = "Waren das alle Aufgaben?")
  65. button1.config(text = "Ja", command = root.destroy)
  66. button2.config(text = "Nein", command = NaechsteAufgabeEinlesen)
  67. root = Tk()
  68. tmp = "Aufgabe",str(zaehler)
  69. root.title("Punkte fuer einzelne Aufgaben")
  70. label1 = Label(root, text = tmp)
  71. Label(root, text = "Erreichbare Punkte").grid(row = 1, column = 0)
  72. label1.grid(row = 0, column = 1)
  73. entry1 = Entry(root)
  74. entry1.grid(row = 1, column = 1, pady = 4)
  75. entry1.insert(10,"10")
  76. button1 = Button(root, text = "Hilfe", command = ZeigeHilfe)
  77. button2 = Button(root, text = "Weiter", command = EndeAbfragen)
  78. button1.grid(row = 3, column = 0)
  79. button2.grid(row = 3, column = 1)
  80. root.mainloop()
  81. def MindestPunktzahlAbfragen():
  82. def WertUebernehmen():
  83. global ProzentSatz
  84. ProzentSatz = float(entry1.get())
  85. button1.config(text = "Weiter", command = root.destroy)
  86. root = Tk()
  87. root.title("Prozentsatz zum Bestehen")
  88. Label(root, text = "Prozentsatz").grid(row = 0, column = 0)
  89. entry1 = Entry(root)
  90. entry1.grid(row = 0, column = 1)
  91. entry1.insert(10,"50")
  92. button1 = Button(root, text = "Uebernehmen", command = WertUebernehmen)
  93. button1.grid(row = 1, column = 1)
  94. root.mainloop()
  95. def BewertungsSpiegelBerechnen():
  96. global PunkteProAufgabe
  97. global ProzentSatz
  98. global Summe
  99. global BestehPunkte
  100. global minEins
  101. global minZwei
  102. global minDrei
  103. for i in range(len(PunkteProAufgabe)):
  104. Summe += PunkteProAufgabe[i]
  105. BestehPunkte = Summe * ProzentSatz/100
  106. tmp = Summe - BestehPunkte
  107. tmp /= 4
  108. minEins = Summe - tmp
  109. minZwei = minEins - tmp
  110. minDrei = minZwei - tmp
  111. def StudentenMaskeGenerieren():
  112. def VerbergeHilfe():
  113. button1.config(text = "Hilfe", command = ZeigeHilfe)
  114. def ZeigeHilfe():
  115. button1.config(text = "Beachte: _ anstatt Leerzeichen", command = VerbergeHilfe)
  116. def NaechstenStudentEinlesen():
  117. label1.config(text = "Name")
  118. label2.config(text = "Matrikelnummer")
  119. entry1.delete(0,END)
  120. entry2.delete(0,END)
  121. entry1.insert(10,"Max_Mustermann")
  122. entry2.insert(10,"9999999")
  123. for i in range(zaehler):
  124. entries[i].delete(0,END)
  125. entries[i].insert(10,PunkteProAufgabe[i])
  126. button1.config(text = "Hilfe", command = ZeigeHilfe)
  127. button2.config(text = "Uebernehmen", command = UebernehmeStudent)
  128. def UebernehmeStudent():
  129. global Studenten
  130. global StudentenPunkte
  131. tmpStudentenDaten = []
  132. tmpPunkte = []
  133. tmpStudentenDaten.append(int(entry2.get()))
  134. tmpStudentenDaten.append(entry1.get())
  135. Studenten.append(tmpStudentenDaten)
  136. tmpPunkte.append(int(entry2.get()))
  137. for i in range(zaehler):
  138. tmpPunkte.append(float(entries[i].get()))
  139. StudentenPunkte.append(tmpPunkte)
  140. label1.config(text = "Waren das alle")
  141. label2.config(text = "Studenten?")
  142. button1.config(text = "Ja", command = root.destroy)
  143. button2.config(text = "Nein", command = NaechstenStudentEinlesen)
  144. global PunkteProAufgabe
  145. root = Tk()
  146. root.title("Studentendaten")
  147. label1 = Label(root, text = "Name")
  148. label2 = Label(root, text = "Matrikelnummer")
  149. label1.grid(row = 0, column = 0)
  150. label2.grid(row = 1, column = 0)
  151. Label(root, text = "Aufgabe").grid(row = 2, column = 0)
  152. Label(root, text = "Erreichte Punkte").grid(row = 2, column = 1)
  153. entry1 = Entry(root)
  154. entry2 = Entry(root)
  155. entry1.grid(row = 0, column = 1, pady = 4)
  156. entry2.grid(row = 1, column = 1, pady = 4)
  157. entry1.insert(10,"Max_Mustermann")
  158. entry2.insert(10,"9999999")
  159. entries = []
  160. for i in range(zaehler):
  161. tmp = str(i+1)
  162. Label(root, text = tmp).grid(row = 3+i, column = 0)
  163. entries.append(Entry(root))
  164. entries[i].grid(row = 3+i, column = 1, pady = 4)
  165. entries[i].insert(10,PunkteProAufgabe[i])
  166. button1 = Button(root, text = "Hilfe", command = ZeigeHilfe)
  167. button2 = Button(root, text = "Uebernehmen", command = UebernehmeStudent)
  168. button1.grid(row = 0, column = 2)
  169. button2.grid(row = 1, column = 2)
  170. root.mainloop()
  171. def GesamtNoteBerechnen():
  172. global Studenten
  173. global StudentenPunkte
  174. global minEins
  175. global minZwei
  176. global minDrei
  177. global BestehPunkte
  178. for i in range(len(Studenten)):
  179. tmpSumme = 0
  180. for j in range(1,len(StudentenPunkte[i])):
  181. tmpSumme += StudentenPunkte[i][j]
  182. print tmpSumme
  183. if tmpSumme < BestehPunkte:
  184. Studenten[i].append(5.0)
  185. elif tmpSumme < minDrei:
  186. Studenten[i].append(4.0)
  187. elif tmpSumme < minZwei:
  188. Studenten[i].append(3.0)
  189. elif tmpSumme < minEins:
  190. Studenten[i].append(2.0)
  191. else:
  192. Studenten[i].append(1.0)
  193. # Hauptprogramm
  194. SchluesselDatenAbfragen()
  195. AufgabenPunkteAbfragen()
  196. MindestPunktzahlAbfragen()
  197. BewertungsSpiegelBerechnen()
  198. StudentenMaskeGenerieren()
  199. GesamtNoteBerechnen()
  200. print Studenten