· 6 years ago · Apr 28, 2019, 09:26 PM
1from tkinter import*
2import sqlite3,pickle
3
4conn = sqlite3.connect('Base1.db')
5cursor = conn.cursor()
6
7sql ='create table if not exists Base1 (fio TEXT, passport TEXT, place TEXT, data TEXT, lg TEXT, tfr TEXT, tto TEXT)'
8cursor.execute(sql)
9
10count = cursor.execute("SELECT COUNT(*) FROM Base1").fetchone()[0]
11print(count)
12
13cursor.execute("SELECT * FROM Base1")
14print(cursor.fetchall())
15
16
17def fbuy():
18 def adultb():
19 def buynext():
20 def prtintticket():
21 pt = Tk()
22 pt.title("Вывод билета")
23 pt.geometry("500x500")
24 lbl2 = Label(pt, text = "Ваш билет:")
25 lbl2.grid(row = 0, column = 1)
26 lbl2 = Label(pt, text = "Фио")
27 lbl2.grid(row = 1, column = 0)
28 lbl2 = Label(pt, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта")
29 lbl2.grid(row = 2, column = 0)
30 lbl2 = Label(pt, text = "МеÑто")
31 lbl2.grid(row = 3, column = 0)
32 lbl2 = Label(pt, text = "Дата рождениÑ")
33 lbl2.grid(row = 4, column = 0)
34 lbl2 = Label(pt, text = "Откуда")
35 lbl2.grid(row = 5, column = 0)
36 lbl2 = Label(pt, text = "Куда")
37 lbl2.grid(row = 6, column = 0)
38
39 lbl = Label(pt, text = fio)
40 lbl.grid(row = 1, column = 1)
41 lbl = Label(pt, text = passport)
42 lbl.grid(row = 2, column = 1)
43 lbl = Label(pt, text = place)
44 lbl.grid(row = 3, column = 1)
45 lbl = Label(pt, text = data)
46 lbl.grid(row = 4, column = 1)
47 lbl = Label(pt, text = tfr)
48 lbl.grid(row = 5, column = 1)
49 lbl = Label(pt, text = tto)
50 lbl.grid(row = 6, column = 1)
51
52 lbl = Label(pt, text = 'Цена билета: 5000')
53 lbl.grid(row = 8, column = 0)
54
55 fio = textbox1.get()
56 passport = textbox2.get()
57 place = textbox3.get()
58 data = textbox4.get()
59 lg = '---'
60 tfr = (travelfrom.get(travelfrom.curselection()))
61 tto = (travelto.get(travelto.curselection()))
62
63 a = data[6]+data[7]+data[8]+data[9]
64 b = int(a)
65 b = int(2019-b)
66 if b<18:
67 error = Tk()
68 error.title("Ошибка")
69 error.geometry("500x200")
70 lbl = Label(error, text = "Ð”Ð»Ñ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð²Ð·Ñ€Ð¾Ñлого паÑÑажир должен быть Ñтарше 18 лет")
71 lbl.grid(row = 0, column = 4)
72 def back():
73 error.destroy()
74 butback = Button(error, text = "Ðазад", command = back)
75 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
76
77 cursor.execute("SELECT * FROM Base1")
78 result=cursor.fetchall()
79 if result == []:
80 sql = '''insert into Base1 values(?,?,?,?,?,?,?)'''
81 cursor.execute(sql, (fio,passport,place,data,lg,tfr,tto))
82 count = cursor.execute("SELECT COUNT(*) FROM Base1").fetchone()[0]
83 print(count)
84 prtintticket()
85 elif result != []:
86 cursor.execute('''SELECT * FROM Base1 WHERE place = ?;''',(place,))
87 result=cursor.fetchall()
88 print(result)
89 if result!=[]:
90 error = Tk()
91 error.title("Ошибка")
92 error.geometry("500x200")
93 lbl = Label(error, text = "МеÑто уже занÑто, оформите билет заново")
94 lbl.grid(row = 0, column = 4)
95 print("МеÑто уже занÑто")
96 def back():
97 error.destroy()
98 butback = Button(error, text = "Ðазад", command = back)
99 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
100 else:
101 sql = '''insert into Base1 values(?,?,?,?,?,?,?)'''
102 cursor.execute(sql, (fio,passport,place,data,lg,tfr,tto))
103 prtintticket()
104 conn.commit()
105
106 frame2.grid_remove()
107 frame3.grid_remove()
108
109
110 lbl = Label(frame1, text = "Откуда:")
111 lbl.grid(row = 5, column = 1,sticky = W)
112 lbl = Label(frame1, text = "Куда:")
113 lbl.grid(row = 6, column = 1,sticky = W)
114
115 travelfrom = Listbox(frame1,height=5,width=15, exportselection=0, selectmode=SINGLE)
116 travellist = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
117 for i in travellist:
118 travelfrom.insert(END,i)
119 travelfrom.grid(row = 5, column = 1,pady = 3)
120
121
122 travelto = Listbox(frame1,height=5,width=15, exportselection=0, selectmode=SINGLE)
123 travellist1 = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
124 for i in travellist1:
125 travelto.insert(END,i)
126 travelto.grid(row = 6, column = 1,pady = 3)
127
128 lbl2 = Label(frame1, text = "Введите информацию:")
129 lbl2.grid(row = 0, column = 1)
130 lbl2 = Label(frame1, text = "Фио")
131 lbl2.grid(row = 1, column = 0)
132 lbl2 = Label(frame1, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта")
133 lbl2.grid(row = 2, column = 0)
134 lbl2 = Label(frame1, text = "МеÑто")
135 lbl2.grid(row = 3, column = 0)
136 lbl2 = Label(frame1, text = "Дата рождениÑ")
137 lbl2.grid(row = 4, column = 0)
138 textbox1 = Entry(frame1, width = 50)
139 textbox1.focus_set()
140 textbox1.grid(row = 1, column = 1)
141 textbox2 = Entry(frame1, width = 50)
142 textbox2.grid(row = 2, column = 1)
143 textbox3 = Entry(frame1, width = 50)
144 textbox3.grid(row = 3, column = 1)
145 textbox4 = Entry(frame1, width = 50)
146 textbox4.grid(row = 4, column = 1)
147 frame1.grid(row = 3, column = 1, columnspan = 3)
148
149 butbuynext = Button(frame1, text = "ВвеÑти данные", command = buynext)
150 butbuynext.grid(row = 8, column = 1, pady=10, sticky = W + E)
151
152
153 def lgb():
154 def buynext():
155 def prtintticket():
156 pt = Tk()
157 pt.title("Вывод билета")
158 pt.geometry("500x500")
159 lbl2 = Label(pt, text = "Ваш билет:")
160 lbl2.grid(row = 0, column = 1)
161 lbl2 = Label(pt, text = "Фио")
162 lbl2.grid(row = 1, column = 0)
163 lbl2 = Label(pt, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта")
164 lbl2.grid(row = 2, column = 0)
165 lbl2 = Label(pt, text = "МеÑто")
166 lbl2.grid(row = 3, column = 0)
167 lbl2 = Label(pt, text = "Дата рождениÑ")
168 lbl2.grid(row = 4, column = 0)
169 lbl2 = Label(pt, text = "Ðомер льготной карты")
170 lbl2.grid(row = 5, column = 0)
171 lbl2 = Label(pt, text = "Откуда")
172 lbl2.grid(row = 6, column = 0)
173 lbl2 = Label(pt, text = "Куда")
174 lbl2.grid(row = 7, column = 0)
175
176 lbl = Label(pt, text = fio)
177 lbl.grid(row = 1, column = 1)
178 lbl = Label(pt, text = passport)
179 lbl.grid(row = 2, column = 1)
180 lbl = Label(pt, text = place)
181 lbl.grid(row = 3, column = 1)
182 lbl = Label(pt, text = data)
183 lbl.grid(row = 4, column = 1)
184 lbl = Label(pt, text = lg)
185 lbl.grid(row = 5, column = 1)
186 lbl = Label(pt, text = tfr)
187 lbl.grid(row = 6, column = 1)
188 lbl = Label(pt, text = tto)
189 lbl.grid(row = 7, column = 1)
190 lbl = Label(pt, text = 'Цена билета: 3000')
191 lbl.grid(row = 8, column = 0)
192 fio = textbox1.get()
193 passport = textbox2.get()
194 place = textbox3.get()
195 data = textbox4.get()
196 lg = textbox5.get()
197 tfr = (travelfrom.get(travelfrom.curselection()))
198 tto = (travelto.get(travelto.curselection()))
199
200 cursor.execute("SELECT * FROM Base1")
201 result=cursor.fetchall()
202 if result == []:
203 sql = '''insert into Base1 values(?,?,?,?,?,?,?)'''
204 cursor.execute(sql, (fio,passport,place,data,lg,tfr,tto))
205 count = cursor.execute("SELECT COUNT(*) FROM Base1").fetchone()[0]
206 print(count)
207 prtintticket()
208 elif result != []:
209 cursor.execute('''SELECT * FROM Base1 WHERE place = ?;''',(place,))
210 result=cursor.fetchall()
211 print(result)
212 if result!=[]:
213 error = Tk()
214 error.title("Ошибка")
215 error.geometry("500x200")
216 lbl = Label(error, text = "МеÑто уже занÑто, оформите билет заново")
217 lbl.grid(row = 0, column = 4)
218 print("МеÑто уже занÑто")
219 def back():
220 error.destroy()
221 butback = Button(error, text = "Ðазад", command = back)
222 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
223 else:
224 sql = '''insert into Base1 values(?,?,?,?,?,?,?)'''
225 cursor.execute(sql, (fio,passport,place,data,lg,tfr,tto))
226 prtintticket()
227 conn.commit()
228
229 lbl = Label(frame2, text = "Откуда:")
230 lbl.grid(row = 6, column = 1,sticky = W)
231 lbl = Label(frame2, text = "Куда:")
232 lbl.grid(row = 7, column = 1,sticky = W)
233
234 travelfrom = Listbox(frame2,height=5,width=15, exportselection=0, selectmode=SINGLE)
235 travellist = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
236 for i in travellist:
237 travelfrom.insert(END,i)
238 travelfrom.grid(row = 6, column = 1,pady = 3)
239
240
241 travelto = Listbox(frame2,height=5,width=15, exportselection=0, selectmode=SINGLE)
242 travellist1 = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
243 for i in travellist1:
244 travelto.insert(END,i)
245 travelto.grid(row = 7, column = 1,pady = 3)
246
247 frame1.grid_remove()
248 frame3.grid_remove()
249 lbl2 = Label(frame2, text = "Введите информацию:")
250 lbl2.grid(row = 0, column = 1, )
251 lbl2 = Label(frame2, text = "Фио")
252 lbl2.grid(row = 1, column = 0)
253 lbl2 = Label(frame2, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта")
254 lbl2.grid(row = 2, column = 0)
255 lbl2 = Label(frame2, text = "МеÑто")
256 lbl2.grid(row = 3, column = 0)
257 lbl2 = Label(frame2, text = "Дата рождениÑ")
258 lbl2.grid(row = 4, column = 0)
259 lbl2 = Label(frame2, text = "Ðомер льготной карты")
260 lbl2.grid(row = 5, column = 0)
261 textbox1 = Entry(frame2,width = 50)
262 textbox1.focus_set()
263 textbox1.grid(row = 1, column = 1)
264 textbox2 = Entry(frame2,width = 50)
265 textbox2.grid(row = 2, column = 1)
266 textbox3 = Entry(frame2,width = 50)
267 textbox3.grid(row = 3, column = 1)
268 textbox4 = Entry(frame2,width = 50)
269 textbox4.grid(row = 4, column = 1)
270 textbox5 = Entry(frame2,width = 50)
271 textbox5.grid(row = 5, column = 1)
272 frame2.grid(row = 2, column = 1, columnspan = 3)
273
274 butbuynext = Button(frame2, text = "ВвеÑти данные", command = buynext)
275 butbuynext.grid(row = 8, column = 1, pady=10, sticky = W + E)
276
277 def childb():
278 def buynext():
279 def prtintticket():
280 pt = Tk()
281 pt.title("Вывод билета")
282 pt.geometry("500x500")
283 lbl2 = Label(pt, text = "Ваш билет:")
284 lbl2.grid(row = 0, column = 1)
285 lbl2 = Label(pt, text = "Фио")
286 lbl2.grid(row = 1, column = 0)
287 lbl2 = Label(pt, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта родителÑ")
288 lbl2.grid(row = 2, column = 0)
289 lbl2 = Label(pt, text = "МеÑто")
290 lbl2.grid(row = 3, column = 0)
291 lbl2 = Label(pt, text = "Дата рождениÑ")
292 lbl2.grid(row = 4, column = 0)
293 lbl2 = Label(pt, text = "Откуда")
294 lbl2.grid(row = 5, column = 0)
295 lbl2 = Label(pt, text = "Куда")
296 lbl2.grid(row = 6, column = 0)
297
298 lbl = Label(pt, text = fio)
299 lbl.grid(row = 1, column = 1)
300 lbl = Label(pt, text = passport)
301 lbl.grid(row = 2, column = 1)
302 lbl = Label(pt, text = place)
303 lbl.grid(row = 3, column = 1)
304 lbl = Label(pt, text = data)
305 lbl.grid(row = 4, column = 1)
306 lbl = Label(pt, text = tfr)
307 lbl.grid(row = 5, column = 1)
308 lbl = Label(pt, text = tto)
309 lbl.grid(row = 6, column = 1)
310 lbl = Label(pt, text = 'Цена билета: 1500')
311 lbl.grid(row = 7, column = 0)
312 fio = textbox1.get()
313 passport = textbox2.get()
314 place = textbox3.get()
315 data = textbox4.get()
316 lg = '---'
317 tfr = (travelfrom.get(travelfrom.curselection()))
318 tto = (travelto.get(travelto.curselection()))
319
320 a = data[6]+data[7]+data[8]+data[9]
321 b = int(a)
322 b = int(2019-b)
323 if b>10:
324 error = Tk()
325 error.title("Ошибка")
326 error.geometry("500x200")
327 lbl = Label(error, text = "Ð”Ð»Ñ Ð¾Ñ„Ð¾Ñ€Ð¼Ð»ÐµÐ½Ð¸Ñ Ð´ÐµÑ‚Ñкого билета паÑÑажир должен быть младше 10 лет")
328 lbl.grid(row = 0, column = 4)
329 def back():
330 error.destroy()
331 butback = Button(error, text = "Ðазад", command = back)
332 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
333
334 cursor.execute("SELECT * FROM Base1")
335 result=cursor.fetchall()
336 if result != []:
337 cursor.execute('''SELECT * FROM Base1 WHERE place = ?;''',(place,))
338 result=cursor.fetchall()
339 if result!=[]:
340 error = Tk()
341 error.title("Ошибка")
342 error.geometry("500x200")
343 lbl = Label(error, text = "МеÑто уже занÑто, оформите билет заново")
344 lbl.grid(row = 0, column = 4)
345 print("МеÑто уже занÑто")
346 def back():
347 error.destroy()
348 butback = Button(error, text = "Ðазад", command = back)
349 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
350 else:
351 error = Tk()
352 error.title("Ошибка")
353 error.geometry("500x200")
354 lbl = Label(error, text = "Оформите Ñначала билет родителÑ")
355 lbl.grid(row = 0, column = 4)
356 def back():
357 error.destroy()
358 butback = Button(error, text = "Ðазад", command = back)
359 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
360 cursor.execute('''SELECT * FROM Base1 WHERE passport = ?;''',(passport,))
361 result=cursor.fetchall()
362 if result == []:
363 error = Tk()
364 error.title("Ошибка")
365 error.geometry("500x200")
366 lbl = Label(error, text = "Родитель не найден, оформите билет заново")
367 lbl.grid(row = 0, column = 4)
368 print("МеÑто уже занÑто")
369 def back():
370 error.destroy()
371 butback = Button(error, text = "Ðазад", command = back)
372 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
373 else:
374 sql = '''insert into Base1 values(?,?,?,?,?,?,?)'''
375 cursor.execute(sql, (fio,passport,place,data,lg,tfr,tto))
376 prtintticket()
377
378 conn.commit()
379
380 lbl = Label(frame3, text = "Откуда:")
381 lbl.grid(row = 6, column = 1,sticky = W)
382 lbl = Label(frame3, text = "Куда:")
383 lbl.grid(row = 7, column = 1,sticky = W)
384
385 travelfrom = Listbox(frame3,height=5,width=15, exportselection=0, selectmode=SINGLE)
386 travellist = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
387 for i in travellist:
388 travelfrom.insert(END,i)
389 travelfrom.grid(row = 6, column = 1,pady = 3)
390
391
392 travelto = Listbox(frame3,height=5,width=15, exportselection=0, selectmode=SINGLE)
393 travellist1 = [u"Санкт-Петербург", u"МоÑква",u"Киев"]
394 for i in travellist1:
395 travelto.insert(END,i)
396 travelto.grid(row = 7, column = 1,pady = 3)
397 frame1.grid_remove()
398 frame2.grid_remove()
399
400 lbl2 = Label(frame3, text = "Введите информацию:")
401 lbl2.grid(row = 0, column = 1)
402 lbl2 = Label(frame3, text = "Фио")
403 lbl2.grid(row = 1, column = 0)
404 lbl2 = Label(frame3, text = "Ð¡ÐµÑ€Ð¸Ñ Ð¸ номер паÑпорта родителÑ")
405 lbl2.grid(row = 2, column = 0)
406 lbl2 = Label(frame3, text = "МеÑто")
407 lbl2.grid(row = 3, column = 0)
408 lbl2 = Label(frame3, text = "Дата рождениÑ")
409 lbl2.grid(row = 4, column = 0)
410 textbox1 = Entry(frame3,width = 50)
411 textbox1.focus_set()
412 textbox1.grid(row = 1, column = 1)
413 textbox2 = Entry(frame3,width = 50)
414 textbox2.grid(row = 2, column = 1)
415 textbox3 = Entry(frame3,width = 50)
416 textbox3.grid(row = 3, column = 1)
417 textbox4 = Entry(frame3,width = 50)
418 textbox4.grid(row = 4, column = 1)
419 frame3.grid(row = 1, column = 1, columnspan = 3)
420
421 butbuynext = Button(frame3, text = "ВвеÑти данные", command = buynext)
422 butbuynext.grid(row = 5, column = 1, pady=10, sticky = W + E)
423
424 buy = Tk()
425 buy.title("Меню")
426 buy.geometry("800x500")
427
428 frame1=Frame(buy,bg='green',bd=5)
429 frame2=Frame(buy,bg='red',bd=5)
430 frame3=Frame(buy,bg='blue',bd=5)
431 check = IntVar()
432 rbtn1 = Radiobutton(buy, text = "Полный", value = 1, variable = check, command = adultb)
433 rbtn2 = Radiobutton(buy, text = "Льготный", value = 2, variable = check, command = lgb)
434 rbtn3 = Radiobutton(buy, text = "ДетÑкий", value = 3, variable = check, command = childb)
435 lbl2 = Label(buy, text = "Выберите тип билета:")
436 lbl2.grid(row = 0, column = 0, padx=30, pady=20)
437 rbtn1.grid(row = 0, column = 1, padx=10, pady=20)
438 rbtn2.grid(row = 0, column = 2, padx=10, pady=20)
439 rbtn3.grid(row = 0, column = 3, padx=10, pady=20)
440
441def printt():
442 pr = Tk()
443 pr.title("Печать билетов")
444 pr.geometry("500x500")
445 lbl=Label(pr, text = "Ð”Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти печати билетов нужно иметь права админиÑтратора!")
446 lbl1=Label(pr, text = "Введите логин и пароль.")
447 lbl.grid(row = 0, column = 0,columnspan=2)
448 lbl1.grid(row = 1, column = 0)
449 lbl2 = Label(pr, text = "login")
450 lbl2.grid(row = 2, column = 0, sticky = W)
451 lbl2 = Label(pr, text = "password")
452 lbl2.grid(row = 3, column = 0, sticky = W)
453 textbox1 = Entry(pr,width = 50)
454 textbox1.focus_set()
455 textbox1.grid(row = 2, column = 1)
456 textbox2 = Entry(pr,width = 50)
457 textbox2.grid(row = 3, column = 1)
458
459 def admin():
460 login = 'admin'
461 password = '1111'
462 login1=textbox1.get()
463 password1=textbox2.get()
464 if login1==login and password1==password:
465 base = Tk()
466 base.title("База данных")
467 base.geometry("500x500")
468 lbl = Label(base,text="Ð˜Ð¼Ñ ÐŸÐ°Ñпорт МеÑто Дата Ñ€Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð›ÑŒÐ³Ð¾Ñ‚Ð½Ñ‹Ð¹ билет")
469 lbl.pack()
470 print("\nБаза данных:")
471 cursor=conn.cursor()
472 cursor.execute("SELECT * FROM Base1")
473 result=cursor.fetchall()
474 for i in result:
475 lbl=Label(base,text="")
476 lbl.pack()
477 lbl['text']=i
478 conn.commit()
479 print(result)
480 else:
481 error = Tk()
482 error.title("Ошибка")
483 error.geometry("500x200")
484 lbl = Label(error, text = "Ðеверный пароль или логин, попробуйте Ñнова")
485 lbl.grid(row = 0, column = 4)
486 def back():
487 error.destroy()
488 butback = Button(error, text = "Ðазад", command = back)
489 butback.grid(row = 2, column = 0, pady=10, sticky = W + E)
490
491 butadmin = Button(pr, text = "ОК",command = admin)
492 butadmin.grid(row = 4, column = 1,columnspan = 2, padx=30, pady=30, sticky = W + E)
493
494window = Tk()
495window.title("Меню")
496window.geometry("500x500")
497butbuy = Button(window, text = "Оформить билет", command = fbuy)
498butprint = Button(window, text = "ВывеÑти билеты",command = printt)
499butbuy.grid(row = 2, column = 2, padx=200, pady=100, sticky = W + E)
500butprint.grid(row = 4, column = 2, padx=200, pady=100, sticky = W + E)
501
502
503conn.commit()
504window.mainloop()