Файл: Курсовой проект введение.doc

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 43

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Приложение должно запускаться на компьютере без необходимости установки каких-либо сторонних программ.

Графический интерфейс должен быть доступным для понимания пользователем и корректно отображать вычисления и кнопки.

Должны присутствовать экранные кнопки для закрытия и сворачивания приложения.

Приложение должно иметь свое имя и уникальную иконку.

После составления требования можно приступать к написанию приложения.

Шаги написания приложения

Прежде чем приступить к написанию приложения, необходимо определить какая среда разработки, окружение и библиотеки будут использованы при написании приложения. Средой разработки является – PyCharm, окружением – Conda, также будут использоваться стандартная библиотека Python 3.7 вместе с tkinter и ttkthemes для работы с графическим интерфейсом.

Первым шагом необходимо создать проект (изображение 6) который будет являться основой для работы в PyCharm.


Изображение 6 – Окно создания проекта в PyCharm.

После создания проекта в папке проекта необходимо создать файл с расширение .py в котором и будет записан весь код. В данном случае это будет файл calculator.py (Изображение 7).


Изображение 7 – Создание файла с расширением .py.

После создания файла приступим непосредственно к разработке, в первую очередь необходимо импортировать и настроить библиотеки tkinter и ttkthemes для создания “черновика” графического интерфейса приложения. Tkinter является встроенной библиотекой, для установки ttkthemes нужно использовать команду pip install ttkthemes в терминале Python

Далее используя операторы from и import импортируем библиотеки в текущий проект (изображение 8).


Изображение 8 – Код импорта библиотек.

Затем задаем параметры для окна приложения используя библиотеку ThemedTk (изображение 9). Где root = окно приложения.


Изображение 9 – Код задания параметров для окна приложения.

После задаем параметры размера поля ввода и выведения результата вычислений, где e = поле ввода чисел (изображение 10).



Изображение 10 – Код размера поля ввода и выведения результата вычислений.

Далее используя оператор def и button_click делаем возможным выведение результата выражения в поле ввода (изображение 11) STR значений. Также здесь используются объекты e.delete и e.insert которые будут описаны далее.


Изображение 11 – Код задания условия поля ввода и выведения результата вычислений.

Далее используя def задаем кнопку очистки поля ввода (изображение 12).


Изображение 12 – Код кнопки очистки поля.

Далее используя оператор def и глобальные переменные f_num и math, задаем значения кнопок математических действий плюс, минус, умножить, разделить (изображение 13)


Изображение 13 – Код кнопок плюс, минус, умножить, разделить.

Далее используя оператор if и def задаем условия для выведения ответа на экран при нажатии кнопки равно (изображение 14).


Изображение 14 – Код кнопки равно.

Далее задаем для каждой кнопки текстовое значение и функцию кнопки которое в последствие будет использовано пользователя для идентификации каждой кнопки (изображение 15)


Изображение 15 – Код задания кнопкам текстовых значений.

Далее используя гридовую систему выводим кнопки на экран как графические элементы (изображение 16).


Изображение 16 – Код вывода кнопок как графических элементов.

Затем добавляем строку для создания петли выполнения кода, чтобы приложение автоматически не закрывалось (изображение 17).


Изображение 17 – Код создание цикла работы приложения.

После завершения написания кода необходимо сохранить файл .py, затем открыть терминал Python и ввести $ pip install auto-py-to-exe, что позволит установить конвертер из .py в формат .exe. После установки конвертера, используя терминал ввести python -m auto_py_to_exe, данная команда откроет окно Auto Py To Exe, выполнить настройку (изображение 18), по нажатию кнопки Convert to exe программа произведет конвертацию файла в формат .exe и откроет папку с данным файлом (изображение 19).




Изображение 18 – Настройка Auto Py to Exe.
Изображение 19 – Содержание папки с .exe файлом.

При открытии файла приложение имеет вид, продемонстрированный на изображение 20. Данный файл может быть распространен отдельно и не требует каких-либо предустановленных приложений или интерпретаторов. Также в приложение 1 предоставлена ссылка на Github с полным кодом приложения и .exe файлом для запуска приложения.


Изображение 20 – GUI приложения «Калькулятор “МОИ”»

ЗАКЛЮЧЕНИЕ

Рассмотрим результаты работы целью которой являлось углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере на примере создание калькулятора на языке Python для выполнения простейших математических вычислений. В ходе выполнения работы была изучена теоретическая база языков программирования их история, виды, принципы работы, была подробно изучена парадигма объектно-ориентированного программирования, подробно изучен и применен язык программирования Python, изучены доступные аналоги приложения, которые послужили основой для составления требований к приложению, было успешно создано портативное приложение калькулятор и описаны шаги решения поставленных задач.

СПИСОК ИСТОЧНИКОВ

  1. Гавриков М. М., Иванченко А. Н., Гринченков Д. В. Теоретические основы разработки и реализации языков программирования. — КноРус, 2013. — 178 с.

  2. Братчиков И. Л. Синтаксис языков программирования. — Наука, 1975. — 230 с.

  3. Теренс Пратт, Марвин Зелковиц. Языки программирования: разработка и реализация. — 4-е издание. — Питер, 2002.

  4. Тимоти Бадд. «Объектно-ориентированное программирование в действии», Издательский дом "Питер", 1997. — 464 с.

  5. Марк Лутц. Программирование на Python / Пер. с англ. — 4-е изд. — СПб.: Символ-Плюс, 2011. — Т. I. — 992 с.

  6. Иан Грэхем. Объектно-ориентированные методы. Принципы и практика — 3-е изд. — М.: «Вильямс», 2004. — 880 с.

  7. Richard P. Gabriel – Objects Have Failed, 2002 – http://dreamsongs.com/ObjectsHaveFailedNarrative.html

  8. Guy L. Steele Jr. – Objects Have Not Failed, 2002 – http://dreamsongs.com/ObjectsHaveNotFailedNarr.html

  9. Григорий Алексеев. «Введение в Python» – https://habr.com/ru/post/450474/

  10. The Zen of Python – https://www.python.org/dev/peps/pep-0020/

  11. Glossary of Python – https://docs.python.org/3/glossary.html

  12. The Python Standard Library – https://docs.python.org/3/library/index.html

  13. Installing Python Modules – https://docs.python.org/3/installing/index.html

  14. Python Module Index – https://docs.python.org/3/py-modindex.html

  15. Регулярно обновляемая диаграмма истории языков программирования – https://www.levenez.com/lang/



Приложение 1

Исходный код приложения Калькулятор

from tkinter import *

from tkinter import ttk

from ttkthemes import ThemedTk

root = ThemedTk(theme='yaru') # Выбор темы

root.resizable(width=False, height=False) # Блокировка возможности изменения размера

root.title('Калькулятор "МОИ"') # Названия приложения

root.iconbitmap('C:/Users/petyhov/Desktop/CALCULATOR/calculator.ico') # Иконка приложения

e = ttk.Entry(root, width=48,) # Поле ввода чисел

e.grid(row=0, column=0, columnspan=4, padx=4, pady=4)

e.focus_set() #Фокусировка в поле ввода чисел

# Введение цифр в поле

def button_click(number):

current = e.get()

e.delete(0, END)

e.insert(0, str(current) + str(number)) # выводить STR значения чесел

# Комманда для очистки поля

def button_clear():

e.delete(0, END)

# Кнопка плюс

def button_plus():

first_number = e.get()

global f_num

global math

math = "плюс"

f_num = int(first_number)

e.delete(0, END)

# Кнопка минус

def button_minus():

first_number = e.get()

global f_num

global math

math = "минус"

f_num = int(first_number)

e.delete(0, END)

# Кнопка умножить

def button_multiply():

first_number = e.get()

global f_num

global math

math = "умножить"

f_num = int(first_number)

e.delete(0, END)

# Кнопка разделить

def button_divide():

first_number = e.get()

global f_num

global math

math = "делить"

f_num = int(first_number)

e.delete(0, END)

# кнопка равно

def button_equal():

second_number = e.get()

e.delete(0, END)

if math == 'плюс':

e.insert(0, f_num + int(second_number))

if math == 'умножить':

e.insert(0, f_num * int(second_number))

if math == 'делить':

e.insert(0, f_num / int(second_number))

if math == 'минус':

e.insert(0, f_num - int(second_number))

# Кнопки с цифрами

button_1 = ttk.Button(root, text='1', command=lambda: button_click(1))

button_2 = ttk.Button(root, text='2', command=lambda: button_click(2))

button_3 = ttk.Button(root, text='3', command=lambda: button_click(3))

button_4 = ttk.Button(root, text='4', command=lambda: button_click(4))

button_5 = ttk.Button(root, text='5', command=lambda: button_click(5))

button_6 = ttk.Button(root, text='6', command=lambda: button_click(6))

button_7 = ttk.Button(root, text='7', command=lambda: button_click(7))

button_8 = ttk.Button(root, text='8', command=lambda: button_click(8))

button_9 = ttk.Button(root, text='9', command=lambda: button_click(9))

button_0 = ttk.Button(root, text='0', command=lambda: button_click(0))

# кнопки математических выражений

button_plus = ttk.Button(root, text='+', command=button_plus)

button_equal = ttk.Button(root, text='=', command=button_equal)

button_multiply = ttk.Button(root, text='*', command=button_multiply)

button_minus = ttk.Button(root, text='-', command=button_minus)

button_divide = ttk.Button(root, text='/', command=button_divide)

# Системные кнопки

button_clear = ttk.Button(root, text='C', command=button_clear)

# выведение кнопок на экран

button_1.grid(row=3, column=0, ipady=10)

button_2.grid(row=3, column=1, ipady=10)

button_3.grid(row=3, column=2, ipady=10)

button_4.grid(row=2, column=0, ipady=10)

button_5.grid(row=2, column=1, ipady=10)

button_6.grid(row=2, column=2, ipady=10)

button_7.grid(row=1, column=0, ipady=10)

button_8.grid(row=1, column=1, ipady=10)

button_9.grid(row=1, column=2, ipady=10)

button_0.grid(row=4, column=1, ipady=10)

button_clear.grid(row=4, column=0, ipady=10)

button_equal.grid(row=4, column=3, ipady=10)

button_minus.grid(row=2, column=3, ipady=10)


button_plus.grid(row=3, column=3, ipady=10)

button_divide.grid(row=4, column=2, ipady=10)

button_multiply.grid(row=1, column=3, ipady=10)

root.mainloop() # Создание цикла приложения