chezahuynya1/app/menu_load.py

158 lines
7.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from app.utils.system import clear_console
from app.zadachi.zadacha1 import zadacha1
from app.zadachi.zadacha2 import zadacha2
from app.zadachi.zadacha3 import zadacha3
from app.zadachi.zadacha4 import zadacha4
class menu:
def __init__(self):
pass # Конструктор пока пустой, при необходимости можно добавить параметры
def main_menu(self):
clear_console()
while True:
print('\nMain Menu:')
print('1. Задача 1')
print('2. Задача 2')
print('3. Задача 3')
print('4. Задача 4')
print('5. Задача 5 (недоступно)')
print('6. Задача 6 (недоступно)')
print('0. Exit')
choice = input('Select an option: ')
clear_console()
if choice == '1':
self.zadacha1_menu() # Переход к подменю Задачи 1
elif choice == '2':
self.zadacha2_menu() # Переход к подменю Задачи 2
elif choice == '3':
self.zadacha3_menu() # Переход к подменю Задачи 3
elif choice == '4':
self.zadacha4_menu() # Добавлен вызов меню задачи 4
elif choice == '5':
print('Временно недоступно')
elif choice == '6':
print('Временно недоступно')
elif choice == '0':
print('Exiting program...')
break
else:
print('Invalid option')
def zadacha1_menu(self):
"""Меню для задачи 1 с подкатегориями."""
clear_console()
while True:
print('\nЗадача 1:')
print('1. Линейно сгенерировать массив Y, зависящий от x')
print('2. Квадратично сгенерировать массив Y, зависящий от x')
print('0. Назад')
choice = input('Выберите подкатегорию: ')
clear_console()
z1 = zadacha1() # создаем объект для задачи 1
if choice == '1':
z1.plot_lin_data() # Выполнить первую подзадачу
#return # Вернуться в основное меню после выполнения
elif choice == '2':
z1.plot_sqr_data() # Выполнить вторую подзадачу
#return # Вернуться в основное меню после выполнения
elif choice == '0':
break # Вернуться в основное меню
else:
print('Неверный выбор, попробуйте снова.')
def zadacha2_menu(self):
"""Меню для задачи 2 (расчет коэффициентов методом наименьших квадратов)."""
clear_console()
z1 = zadacha1() # Используем объект задачи 1 для генерации данных
z2 = zadacha2() # Создаем объект для задачи 2
while True:
print('\nЗадача 2:')
print('1. Рассчитать коэффициенты b0 и b1 для линейной модели')
print('2. Сделать прогноз по рассчитанным коэффициентам')
print('0. Назад')
choice = input('Выберите подкатегорию: ')
clear_console()
if choice == '1':
# Генерация линейных данных с помощью функции из задачи 1
x_data, y_data = z1.create_lin_array()
# Рассчет коэффициентов b0 и b1 методом наименьших квадратов
b0, b1 = z2.calculate_coefficients(x_data, y_data)
print(f'Рассчитанные коэффициенты:')
print(f'b0 (свободный член) = {b0}')
print(f'b1 (коэффициент наклона) = {b1}')
elif choice == '2':
# Пример предсказания на новых данных
x_data, y_data = z1.create_lin_array() # Сначала генерируем данные
b0, b1 = z2.calculate_coefficients(x_data, y_data) # Рассчитываем коэффициенты
# Выполняем прогноз
predicted_y = z2.predict(x_data, b0, b1)
print(f'Предсказанные значения Y на основе рассчитанных коэффициентов:')
print(predicted_y)
elif choice == '0':
break # Вернуться в основное меню
else:
print('Неверный выбор, попробуйте снова.')
def zadacha3_menu(self):
"""Меню для задачи 3 (построение графика регрессии и расчет метрик)."""
clear_console()
z1 = zadacha1() # Используем объект задачи 1 для генерации данных
z2 = zadacha2() # Используем объект задачи 2 для расчета коэффициентов
while True:
print('\nЗадача 3:')
print('1. Построить график регрессии и рассчитать метрики')
print('0. Назад')
choice = input('Выберите подкатегорию: ')
clear_console()
if choice == '1':
x_data, y_data = z1.create_lin_array()
b0, b1 = z2.calculate_coefficients(x_data, y_data)
# Создаем объект задачи 3 и выполняем построение графика
z3 = zadacha3(x_data, y_data, b0, b1)
z3.plot_regression()
elif choice == '0':
break # Вернуться в основное меню
else:
print('Неверный выбор, попробуйте снова.')
def zadacha4_menu(self):
"""Меню для задачи 4 (работа с полиномиальными данными)."""
clear_console()
z4 = zadacha4() # Создаем объект задачи 4
while True:
print('\nЗадача 4:')
print('1. Провести визуальный анализ остатков')
print('0. Назад')
choice = input('Выберите подкатегорию: ')
clear_console()
if choice == '1':
z4 = zadacha4()
z4.analyze_residuals()
elif choice == '0':
break
else:
print('Неверный выбор, попробуйте снова.')