Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2018, 15:50   #1
maximk301
Новичок
Джуниор
 
Регистрация: 20.10.2018
Сообщений: 2
По умолчанию Программа калькулятор в python

Начал писать прогу калькулятор, которая считает зп препода и тд, есть ошибки в коде, прошу помощи.

Код:
from tkinter import *
root = Tk()
root.title("Викладач")

Pari = 0 # Предмет: 0 - не обрано, 1 - ООП,
         # 2 - Методи оптимізації, 3 - Якість ПЗ,
         #4 - Засоби тестування.

# Ставка пари
s1, s2, s3, s4, = 50, 50, 50, 50.

#Доп ставка ( Перездача, Лабараторна )
f1, f2, f3, = 60, 50.

#Ставка екзамени ( Екзамен та Доп екзамен )
e1, e2, = 70, 70.

#Бонуси ( Виконав норму, Перевиконав норму )
b1, b2, = 20, 40. 

#--------------------------------------------
# Користувацькі функції

# функції вибору предмету
def para1 (event):
    global para
    para = 1

def para2 (event):
    global para
    para = 2

def para3 (event):
    global para
    para = 3

def para4 (event):
    global para
    para = 4

# Вивід набору продуктів
def show() :
    s=""
    if para == 0:
        s = "Пара не обрана"
    else:
        #створення строки з назвою пар
        if para == 1: s= "ООП\n"
        if para == 2: s= "Методи оптимізації\n"
        if para == 3: s= "Якість ПЗ\n"
        if para == 4: s= "Засоби тестування\n"

        #Створення строки Доп ставка
        if var_c1.get()==1:  
            if var_r1.get()==p1:
                s+="Лабараторна\n"
            else:
                s+="Перездача\n"
        else:
            s+="Без доп пари\n"
               
         #Створення строки Екзамени
            if var_c2.get() == 1:
                
                if var_r2.get() == e1:
                    s+="Екзамен\n"
            if var_r2.get() == e2:
                s+="Доп екзамен\n"
            else:
              s+="Без екзамену\n"

            #строка виконання норми
            if var_c3.get()==1:  
              if var_r3.get()==p1:
                s+="Виконав норму\n"
            else:
                s+="Перевиконав норму\n"
             else:
                s+="Не виконав\n"

    # Передаєм мітку 15 сформовану строку s
    stroka.set(s)
    # Розрахунок Заробітної плати
    def calculator(event):
        show() #виводим інфу про предмети

        if para == 0 # якщо пара не вибрана не рахуємо
        return

    stavka = 0

    # Початкове значення ставки залежить від пари
    if para == 1: stavka = s1
    if para == 1: stavka = s2         
    if para == 1: stavka = s3
    if para == 1: stavka = s4

     if var_c1.get()==1: # якщо доп пара обрана
       stavka += var_r1.get()

     if var_c2.get()==1: # якщо екзамен вибрано
        stavka += var_r2.get()

     if var_c3.get()==1: # якщо вибрана норма
        stavka += var_r3.get()

        # Добавляєм до напису клво ставки
        s = str(stroka.get())
        s = s + "\n" + str(stavka) + " Гривень."
        stroka.set(s)

        #Натискання кнопки О програмі
def about(event):  
    s = "Лабораторная работа №1\n"+\
        "Выполнил:\nстудент гр. БС(2)18_д/122_М\nКірілюк М.А"
    stroka.set(s)
    stavka=0

#----------------------------------------------------------
    # Створення віджетів

    # Мітки
    l1 = Label(root, text="Label 1", bg="pale green", bd=0)
    l2 = Label(root, text="Label 2", bg="pale green", bd=0)
    l3 = Label(root, text="Label 3", bg="pale green", bd=0)
    l4 = Label(root, text="Label 4", bg="pale green", bd=0)

    stroka = StringVar()
    stroka.set("")
    l5 = Label(root, textvariable=stroka, bg="white", bd=0,
    font="Courier 18 bold", height=9, width=30)

#Кнопки з назвою пар (в середині мітки11)
    b1 = Button(l1, text="ООП", font="Arial 20 bold",
            bg="gray64", activebackground="Goldenrod1")
    b2 = Button(l1, text="Методи оптимізації", font="Arial 20 bold",
            bg="gray64", activebackground="Goldenrod1")
    b3 = Button(l1, text="Якість ПЗ", font="Arial 20 bold",
            bg="gray64", activebackground="Goldenrod1")
    b4 = Button(l1, text="Засоби тестування", font="Arial 20 bold",
            bg="gray64", activebackground="Goldenrod1")
    
# Привязка кнопок пар к собитиям
   b1.bind("<Button-1>", para1)
   b2.bind("<Button-1>", para2)
   b3.bind("<Button-1>", para3)
   b4.bind("<Button-1>", para4)

   #Чек бокс для доп cтавки
   var_c1 = IntVar()
   var_c1.set(0)
   c1 = Checkbutton(l2, text="Доп Ставка", font="Arial 14",
                 bg="Skyblue1", variable=var_c1, 
                 onvalue=1, offvalue=0)

# Радіо кнопки для вибора доп ставка (в середені мітки 12)
   var_r1 = IntVar()
   var_r1.set(p1)
   r11 = Radiobutton(l2, text="Лабораторна", font="Arial 10",
                  bg="plum1", variable=var_r1, value=p1)
   r12 = Radiobutton(l2, text="Перездача", font="Arial 10",
                  bg="snow4", variable=var_r1, value=p2)

#Чек бокс для вибора cтавки екзамена
var_c2 = IntVar()
var_c2.set(0)
c2 = Checkbutton(l3, text="Напиток", font="Arial 14",
                 bg="Skyblue1", variable=var_c2, 
                 onvalue=1, offvalue=0)

#Радіокнопка для вибора Ставки екзамена
var_r2 = IntVar()
var_r2.set(d1)
r21 = Radiobutton(l3, text="Екзамен", font="Arial 10",
                  variable=var_r2, value=d1,
                  bg="snow4", width=7)
                 
r22 = Radiobutton(l3, text="Доп Екзамен", font="Arial 10",
                  variable=var_r2, value=d2,
                  bg="plum1", width=7)

#Чекбокс для бонуси
var_c3 = IntVar()
var_c3.set(0)
c3 = Checkbutton(l4, text="Соус", font="Arial 14",
                 bg="Skyblue1", variable=var_c3, 
                 onvalue=1, offvalue=0)

# Радіокнопка для вибока бонуса
var_r3 = IntVar()
var_r3.set(s1)
r31 = Radiobutton(l4, text="Виконав норму", font="Arial 10",
                  variable=var_r3, value=s1,
                  bg="plum1", width=7)
                 
r32 = Radiobutton(l4, text="Перевиконав норму", font="Arial 10",
               variable=var_r3, value=s2,
               bg="snow4", width=7)

#Кнопка для розрахунку ставки
b6 = Button(root, text="Рассчитать калории",
            font="Arial 24 bold", bg="red2", activebackground="red1",
            fg="white", activeforeground="white")
b6.bind("<Button-1>", calculator

        #Конопка о програме
        b7 = Button(root, text="О программе",
            font="Arial 8", bg="pale green", activebackground="khaki2")
b7.bind("<Button-1>", about)

#Упаковка віджетів
l1.pack(side=LEFT, expand=1, fill=BOTH)
l2.pack(side=TOP, expand=1, fill=BOTH)
l3.pack(side=TOP, expand=1, fill=BOTH)
l4.pack(side=TOP, expand=1, fill=BOTH)
l5.pack(side=TOP, expand=1, fill=BOTH)

b1.pack(side=TOP, expand=1, fill=BOTH)
b2.pack(side=TOP, expand=1, fill=BOTH)
b3.pack(side=TOP, expand=1, fill=BOTH)
b4.pack(side=TOP, expand=1, fill=BOTH)
b5.pack(side=TOP, expand=1, fill=BOTH)

c1.pack(side=TOP, expand=1, fill=BOTH)
r11.pack(side=LEFT, expand=1, fill=X)
r12.pack(side=LEFT, expand=1, fill=X)

c2.pack(side=TOP, expand=1, fill=BOTH)
r21.pack(side=LEFT, expand=1, fill=X)
r22.pack(side=LEFT, expand=1, fill=X)
r23.pack(side=LEFT, expand=1, fill=X)

c3.pack(side=TOP, expand=1, fill=BOTH)
r31.pack(side=LEFT, expand=1, fill=X)
r32.pack(side=LEFT, expand=1, fill=X)
r33.pack(side=LEFT, expand=1, fill=X)

b6.pack(side=TOP, expand=1, fill=BOTH)
b7.pack(side=LEFT, expand=1, fill=BOTH)

root.mainloop()
_____
Код программы нужно выделять (форматировать) тегами [CODE][/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 29.10.2018 в 16:13.
maximk301 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на python artem1234567 Помощь студентам 5 13.06.2018 02:41
Калькулятор на Python. Библиотека tkinter Bob123 Python 2 29.12.2017 17:20
Программа на Python ДмитрийЗинька Помощь студентам 1 06.10.2017 07:50
Python-калькулятор. Oinevle Python 3 21.12.2012 09:53
Калькулятор в Python BaceK Python 2 14.12.2010 22:03