/
Str1ke
/
TheProject
Обзор
Документация
Войти
/
Str1ke
/
TheProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main.py
95 строк
4 KB
AlekseyF7
Initial commit: Student Performance Analyzer project
26 дек 2025, 13:51
26 дек 2025, 13:51
84047cc
Код
Авторство
О чём код?
""" Главный модуль для запуска анализа успеваемости студентов """ import sys import os from pathlib import Path # Добавляем корневую директорию в путь project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) from src.data_loader import DataLoader from src.analyzer import PerformanceAnalyzer from src.visualizer import PerformanceVisualizer def main(): """Основная функция для запуска анализа""" # Путь к данным data_file = "data/example_data.csv" print("=" * 60) print("АНАЛИЗАТОР УСПЕВАЕМОСТИ СТУДЕНТОВ") print("=" * 60) print() try: # Загрузка данных print("Загрузка данных...") loader = DataLoader(data_file) data = loader.load_data() print(f"✓ Загружено {len(data)} записей") print() # Инициализация анализатора analyzer = PerformanceAnalyzer(loader) # Общая статистика print("Вычисление общей статистики...") overall_stats = analyzer.calculate_overall_statistics() print(f"✓ Всего студентов: {overall_stats['total_students']}") print(f"✓ Общий средний балл: {overall_stats['overall_average']:.2f}") print() # Статистика по предметам print("Анализ успеваемости по предметам...") subject_stats = analyzer.get_subject_statistics() print(f"✓ Проанализировано {len(subject_stats)} предметов") print() # Студенты группы риска print("Определение студентов группы риска...") at_risk = analyzer.identify_at_risk_students(threshold=3.0) print(f"✓ Найдено студентов группы риска: {len(at_risk)}") print() # Визуализация print("Создание визуализаций...") visualizer = PerformanceVisualizer() visualizer.plot_student_scores_distribution(data) visualizer.plot_subject_comparison(subject_stats) student_summary = loader.get_all_students_summary() visualizer.plot_student_performance(student_summary, top_n=10) visualizer.create_summary_report(overall_stats, subject_stats, at_risk) print("✓ Графики сохранены в директорию reports/") print() # Пример рекомендаций для первого студента if len(data) > 0: first_student = data['student_id'].iloc[0] print(f"Рекомендации для студента {first_student}:") recommendations = analyzer.generate_recommendations(first_student) for i, rec in enumerate(recommendations, 1): print(f" {i}. {rec}") print() print("=" * 60) print("АНАЛИЗ ЗАВЕРШЕН УСПЕШНО") print("=" * 60) except FileNotFoundError as e: print(f"Ошибка: {e}") print("Убедитесь, что файл данных существует") sys.exit(1) except ValueError as e: print(f"Ошибка данных: {e}") sys.exit(1) except Exception as e: print(f"Неожиданная ошибка: {e}") sys.exit(1) if __name__ == "__main__": main()