Tkinter. GUI. Проєкт "Комунальні платежі"

Про матеріал
Написи, Поля. Кнопки на обчислення на очищення полів. Метод пакування place() Метод get(). Перетворення типів, обчислення, зворотнє перетворення типів для виведення результатів обчислень. Обробка помилок через імпорт messagebox Учні розпочинають практичну роботу із наданого шаблону коду. лише для газу.
Перегляд файлу

Теоретична складова:


Метод .get() - отримання значення, введеного в поле.

ВСЕ, що вводимо або виводимо в поле - текстовий тип даних.

 

Тому ДЛЯ обчислень необхідно застосувати перетворення текстових даних в числовий ( цілі або раціональні).

 

Так само необхідно перетворити в текстовий тип для виведення обчислених результатів: число- в текст.


ПРАКТИЧНА СКЛАДОВА

===========================================================

Проаналізуємо програмний код БЕЗ використання модуля TKinter

 https://docs.google.com/document/d/e/2PACX-1vTcv4pkEnpaxgkBjgaKI38WdoKeefS-txvhWAP0aYlqOwT5RG3FPqChx_zrGEjteq78WdvTa7fDE4Dh/pub

 

Для переведення вартості в копійках в гривні та копійки:

оскільки працюємо з цілими числами, то використовуємо операції для обчислення

 частки від ділення на 100 ( це і будуть гривні)

та остачі від ділення на 100 (решта копійки)

=============================================================
 

ПРАКТИЧНЕ ЗАВДАННЯ:

===============================================

1. ЗМІНИТИ МЕТОДИ ПАКУВАННЯ ВІДЖЕТІВ

2. Доповнити код розрахунками за електроенергію та обчисленням суми за комунальні послуги в копійках.

3. Обчислити загальну вартість цих послуг у копійках

4. Перевести загальну суму до оплати в гривні та копійки

 

====================================

ЗАСТОСУВАТИ МЕТОД place()

====================================

 

ОЦІНЮВАННЯ:

- ПРАЦЮЮЧИЙ проєкт по газу+електрика, але через метод pack()- 9 балів

- ПРАЦЮЮЧИЙ проєкт по газу+електрика через метод place(x= , y= )- 11 балів


ШАБЛОН КОДУ ДЛЯ копіювання та подальшого РЕДАГУВАННЯ:

 

# ========імпортуємо модуль і спливаюче вікно================

from tkinter import *

from tkinter import messagebox

#====== створюємо вікно ==============================

window = Tk()

window.title('Комунальні платежі: газ' )

window.config(bg='lightblue' )

window.geometry('450x400')

lbl__ = Label(window, text='Привіт, я твій помічник!! ' )

lbl__.pack()

 

#====  ОЧИЩЕННЯ ПОЛІВ і МІТОК ===

def cleener():

    ent1.delete(0,END)

    ent2.delete(0,END)

    ent3.delete(0,END)

       

    lbl4.configure(text='')

    lbl5.configure(text='')

 

 

def clickCalc():

    #==== Вводимо Показники газового лічильника та вартість газу в копійках====

    #==== Відразу перетворюємо тексти в Полях на цілі числа====

    g_start = int(ent1.get())

    g_end= int(ent2.get())

    vart_g=int(ent3.get())

 

    sum_gaz_kop =(g_end- g_start )* vart_g

   

    sum_gaz_grn_= sum_gaz_kop // 100

    sum_gaz_kop2_= sum_gaz_kop % 100

   

    #==== Виводимо результати арифметичних дій  як рядки ====

    lbl4.configure(text= 'Всього за газ в копійках ' + str(sum_gaz_kop) )

    lbl5.configure(text= 'Сплатити за газ ' + str(sum_gaz_grn_) + ' гривень  та  ' + str(sum_gaz_kop2_)+' коп.' )

   

#==== Введення даних по газу ============

lbl1 = Label(window, text='Показник газового лічильника на початок місяця ' )

lbl1.pack()

ent1 = Entry(window, width=10)

ent1.pack()

lbl2 = Label(window, text='Показник газового лічильника на кінець місяця ' )

lbl2.pack()

ent2 = Entry(window, width=10)

ent2.pack()

 

lbl3 = Label(window, text='Вартість газу ( в копійках) ')

lbl3.pack()

ent3 = Entry(window, width=10)

ent3.pack()

 

#==== Мітки для виведення ЗНАЧЕНЬ РЕЗУЛЬТАТІВ====

 

lbl4 = Label(window, text='')

lbl4.pack()

lbl5 = Label(window, text='')

lbl5.pack()

 

#===== Подія на кнопку для обрахування ===================

btn1 = Button(window, text=' Сплатити за газ ', command = clickCalc)

btn1.pack()

 

btn2 = Button(window, text=' Очистити все ', command = cleener)

btn2.pack()

#===== утримуємо вікно в консолі ===============================

window.mainloop()

#===============================================================

Що маємо та що очікуємо:


СТАРТОВЕ ВІКНО ( від pack() до place) )

       


 

ПІСЛЯ ВВЕДЕННЯ ДАНИХ ТА ПОДІЇ НА КНОПКУ-1:

 

  1. Додати обробку правильності введення показників

 

—---------------------------------------------------------------------------------------------------------------------------------------

ПЕРЕВІРКА ПРАВИЛЬНОСТІ ВВЕДЕННЯ ПОКАЗНИКІВ -

ВІКНО сповіщення про помилку введення

Додаємо в функцію clickCalc після введення даних  та прив’язування їх до змінних

if g_end <= g_start:

    messagebox.showinfo('ERROR', 'Показники на кінець місяця менше, ніж на початку')

 

Для електрики - самостійно


 

Середня оцінка розробки
Структурованість
5.0
Оригінальність викладу
5.0
Відповідність темі
5.0
Загальна:
5.0
Всього відгуків: 1
Оцінки та відгуки
  1. Константиненко Лариса Георгіївна
    Загальна:
    5.0
    Структурованість
    5.0
    Оригінальність викладу
    5.0
    Відповідність темі
    5.0
docx
Додано
23 квітня
Переглядів
65
Оцінка розробки
5.0 (1 відгук)
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку