# main.py """ Главное меню программы. Загружает проект при старте и предоставляет доступ ко всем подменю. Обрабатывает прерывание Ctrl+C для корректного выхода. """ import sys from core.fs import load_project, save_project_partial from editor import editor_menu from plan import plan_menu from response import response_menu from analysis import analysis_menu from ascent import ascent_menu PROJECT_FILE = "project.json" def main(): mixture, design, responses = load_project(PROJECT_FILE) try: while True: print("\n" + "=" * 50) print("ГЛАВНОЕ МЕНЮ") print("1. Редактор состава") print("2. Планирование эксперимента") print("3. Ввод значений отклика") print("4. Анализ значений") print("5. Крутое восхождение") print("6. Выход") print("=" * 50) choice = input("Выберите пункт: ").strip() if choice == "6": print("До свидания! (данные не сохранены автоматически)") break elif choice == "1": editor_menu(mixture) elif choice == "2": design = plan_menu(mixture, design) elif choice == "3": responses = response_menu(design, responses) elif choice == "4": analysis_menu(mixture, design, responses) elif choice == "5": ascent_menu(mixture, design, responses) else: print("Неверный пункт.") except KeyboardInterrupt: print("\n\nОбнаружено прерывание (Ctrl+C).") # Спрашиваем, хочет ли пользователь сохранить текущий проект save_choice = input("Сохранить текущий проект перед выходом? (y/n, Enter = нет): ").strip().lower() if save_choice == 'y': save_project_partial(PROJECT_FILE, mixture, design, responses) print("Проект сохранён.") else: print("Выход без сохранения.") print("До свидания!") sys.exit(0) if __name__ == "__main__": main()