Sfoglia il codice sorgente

Загрузить файлы ''

gr601_schugal 4 anni fa
parent
commit
4c2e4c2083
5 ha cambiato i file con 263 aggiunte e 0 eliminazioni
  1. 79 0
      form3.py
  2. 59 0
      form4.py
  3. 19 0
      form5.py
  4. 71 0
      funcs.py
  5. 35 0
      list.py

+ 79 - 0
form3.py

@@ -0,0 +1,79 @@
+from tkinter import *
+from tkinter import messagebox
+from funcs import writeDriver
+
+window = Tk()
+window.title('Регистрация')
+window.geometry('430x650')
+window.resizable(False, False)
+
+font_header = ('Arial', 15)
+font_entry = ('Arial', 12)
+label_font = ('Arial', 11)
+base_padding = {'padx': 10, 'pady': 8}
+header_padding = {'padx': 10, 'pady': 12}
+
+def clicked():
+    messagebox.showinfo('Ok')
+    a1 = str(a1_entry.get())
+    a2 = str(a2_entry.get())
+    a3 = int(a3_entry.get())
+    a4 = str(a4_entry.get())
+    a5 = int(a5_entry.get())
+    a6 = int(a6_entry.get())
+    a7 = int(a7_entry.get())
+    a8 = float(a8_entry.get())
+    a9 = float(a9_entry.get())
+    writeDriver(a1, a2, a3, a4, a5, a6, a7, a8, a9)
+
+main_label = Label(window, text='Регистрация водителя', font=font_header, justify=CENTER, **header_padding)
+main_label.pack()
+
+a1 = Label(window, text='ФИО', font=label_font , **base_padding)
+a1.pack()
+a1_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a1_entry.pack()
+
+a2 = Label(window, text='Номер удаставерения', font=label_font , **base_padding)
+a2.pack()
+a2_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a2_entry.pack()
+
+a3 = Label(window, text='Срок действия, год', font=label_font , **base_padding)
+a3.pack()
+a3_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a3_entry.pack()
+
+a4 = Label(window, text='Категория', font=label_font , **base_padding)
+a4.pack()
+a4_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a4_entry.pack()
+
+a5 = Label(window, text='Водительский стаж', font=label_font , **base_padding)
+a5.pack()
+a5_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a5_entry.pack()
+
+a6 = Label(window, text='Количество ДТП', font=label_font , **base_padding)
+a6.pack()
+a6_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a6_entry.pack()
+
+a7 = Label(window, text='Количество неоплаченных штрафов', font=label_font , **base_padding)
+a7.pack()
+a7_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a7_entry.pack()
+
+a8 = Label(window, text='Страховой взнос', font=label_font , **base_padding)
+a8.pack()
+a8_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a8_entry.pack()
+
+a9 = Label(window, text='Текущий баланс', font=label_font , **base_padding)
+a9.pack()
+a9_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+a9_entry.pack()
+
+send_btn = Button(window, text='Регистрация водителя', command=clicked)
+send_btn.pack(**base_padding)
+window.mainloop()

+ 59 - 0
form4.py

@@ -0,0 +1,59 @@
+from tkinter import *
+from tkinter import messagebox
+import math
+
+window = Tk()
+window.title('Взнос')
+window.geometry('430x500')
+window.resizable(False, False)
+
+font_header = ('Arial', 15)
+font_entry = ('Arial', 12)
+label_font = ('Arial', 11)
+base_padding = {'padx': 10, 'pady': 8}
+header_padding = {'padx': 10, 'pady': 12}
+
+def clicked():
+    coast = float(coast_entry.get())
+    ageUse = float(ageUse_entry.get())
+    fines = float(fines_entry.get())
+    accidents = float(accidents_entry.get())
+    age = float(age_entry.get())
+    sum = ((coast * (1 -  (ageUse / 10)) * 0.1) + (0.2 * fines)) + (accidents - 0.2 * age) 
+    messagebox.showinfo('Операция размера выплаты', 'Размер выплаты = {sum} Eth.'.format(sum=sum))
+
+main_label = Label(window, text='Сумма взноса', font=font_header, justify=CENTER, **header_padding)
+main_label.pack()
+coast_label = Label(window, text='Рыночная стоимость тс', font=label_font , **base_padding)
+coast_label.pack()
+
+coast_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+coast_entry.pack()
+
+ageUse_label = Label(window, text='Срок эксплуатации тс', font=label_font , **base_padding)
+ageUse_label.pack()
+
+ageUse_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+ageUse_entry.pack()
+
+fines_label = Label(window, text='Количество неоплаченных штрафов', font=label_font , **base_padding)
+fines_label.pack()
+
+fines_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+fines_entry.pack()
+
+accidents_label = Label(window, text='Количество ДТП водителя', font=label_font , **base_padding)
+accidents_label.pack()
+
+accidents_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+accidents_entry.pack()
+
+age_label = Label(window, text='Водительский стаж', font=label_font , **base_padding)
+age_label.pack()
+
+age_entry = Entry(window, bg='#fff', fg='#444', font=font_entry)
+age_entry.pack()
+
+send_btn = Button(window, text='Провести расчет выплаты', command=clicked)
+send_btn.pack(**base_padding)
+window.mainloop()

+ 19 - 0
form5.py

@@ -0,0 +1,19 @@
+from tkinter import *
+from tkinter import messagebox
+import json
+import os
+
+window = Tk()
+window.title('Взнос')
+window.geometry('430x500')
+window.resizable(False, False)
+
+def clicked():
+     with open('bank', 'r') as file:
+        text = json.load(file)
+        score = float(text["score"])
+        messagebox.showinfo('<Баланс', 'Баланс банка = {score} Eth.'.format(score=score))
+
+send_btn = Button(window, text='Провести расчет выплаты', command=clicked)
+send_btn.pack(**base_padding)
+window.mainloop()

+ 71 - 0
funcs.py

@@ -0,0 +1,71 @@
+import json
+import os
+
+def writeTrans(sender, recipient, amount):
+    bcDir = os.curdir + '/Trans/'
+    files = os.listdir(bcDir)
+    files = sorted([int(i) for i in files])
+    lastFile = files[-1]
+    fileName = str(lastFile + 1)
+    data = {'sender': sender,
+            'recipient': recipient,
+            'amount': amount
+    }
+    if sender == 'bank':
+        score = 0
+        with open('bank', 'r') as file:
+            text = json.load(file)
+            score = float(text["score"]) - amount
+            with open('bank', 'w') as file:
+                json.dump({'score': score}, file, indent=4)
+    if recipient == 'bank':
+        score = 0
+        with open('bank', 'r') as file:
+            text = json.load(file)
+            score = float(text["score"]) + amount
+            with open('bank', 'w') as file:
+                json.dump({'score': score}, file, indent=4)
+    if sender == 'agency':
+        score = 0
+        with open('agency', 'r') as file:
+            text = json.load(file)
+            score = float(text["score"]) - amount
+            with open('agency', 'w') as file:
+                json.dump({'score': score}, file, indent=4)
+    if recipient == 'agency':
+        score = 0
+        with open('agency', 'r') as file:
+            text = json.load(file)
+            score = float(text["score"]) + amount
+            with open('agency', 'w') as file:
+                json.dump({'score': score}, file, indent=4)
+            
+
+    with open(bcDir + fileName, 'w') as file:
+        json.dump(data, file, indent=4)
+
+def writeDriver(fullName, number, deadline, category, exp, numbersac, fines, premium, balance):
+    bcDir = os.curdir + '/drivers/'
+    files = os.listdir(bcDir)
+    files = sorted([int(i) for i in files])
+    lastFile = files[-1]
+    fileName = str(lastFile + 1)
+    data = {'fullName': fullName,
+            'cardNumber': number,
+            'cardDeadline': deadline,
+            'category': category,
+            'exp': exp,
+            'number of accidents': numbersac,
+            'fines': fines,
+            'premium': premium,
+            'balance': balance
+
+    }
+    with open(bcDir + fileName, 'w') as file:
+        json.dump(data, file, indent=4)
+
+def checkBank():
+    with open('bank', 'r') as file:
+        text = json.load(file)
+        score = float(text["score"])
+    return score 

+ 35 - 0
list.py

@@ -0,0 +1,35 @@
+from tkinter import *
+ 
+pack = False
+ 
+def insert():
+    global pack
+    if pack:
+        frame2.pack_forget()
+        b.pack_forget()
+        frame.pack()
+        b.pack()
+        pack = False
+    else:
+        l['text'] = e1.get()
+        frame.pack_forget()
+        b.pack_forget()
+        frame2.pack()
+        b['text'] = 'Назад'
+        b.pack()
+        pack = True
+ 
+root = Tk()
+ 
+frame = Frame(root)
+e1 = Entry(frame, width=50)
+e1.pack()
+frame.pack()
+ 
+frame2 = Frame(root)
+l = Label(frame2, text="", font="Arial 32")
+l.pack()
+ 
+b = Button(text="Вставить", command=insert)
+b.pack()
+root.mainloop()