Exemplo n.º 1
0
async def answer_q1(message: Message, state: FSMContext):
    course_name = message.text
    try:
        cid = db.get_id_course_by_name(course_name)
        score = db.get_grades(message.from_user.id, cid)
        await message.answer("Ваши оценки по курсу: " + str(score),
                             reply_markup=ReplyKeyboardRemove())
    except:
        await message.answer("Произошла непредвиденная ошибка")
    await state.finish()
Exemplo n.º 2
0
async def t_join_course2(message: Message, state: FSMContext):
    password = message.text
    data = await state.get_data()
    course_name = data.get("course_name")
    try:
        if db.check_course_password(course_name, password):
            db.teacher_join_course(message.from_user.id, db.get_id_course_by_name(course_name))
            await message.answer(f"Вы стали администратором курса {course_name}")
        else:
            await message.answer("Вы ввели неверный пароль\nПопробуйте ещё раз")
    except:
        await message.answer("Что-то пошло не так...")
    await state.finish()
Exemplo n.º 3
0
async def answer_q1(message: Message, state: FSMContext):
    try:
        answer = message.text
        cid = db.get_id_course_by_name(answer)
        list_of_students = db.get_list_of_students(cid)
        worst_students = ""
        for student in list_of_students:
            if sum(db.get_grades(student[0], cid)) < 56:
                worst_students = worst_students + f"{student[1]} {student[2]} : {sum(db.get_grades(student[0], cid))}\n"
        if len(list_of_students) == 0:
            await message.answer("Нет студентов на данном курсе", reply_markup=ReplyKeyboardRemove())
        else:
            await message.answer(worst_students, reply_markup=ReplyKeyboardRemove())
    except:
        await message.answer("Произошла непредвиденная ошибка", reply_markup=ReplyKeyboardRemove())
    await state.finish()
Exemplo n.º 4
0
async def sleave1(message: Message, state: FSMContext):
    course_name = message.text
    id_course = db.get_id_course_by_name(course_name)
    check = db.check_stud_in_course(message.from_user.id, id_course)
    if not check:
        await message.answer("Вас нет в списке студентов данного курса",
                             reply_markup=ReplyKeyboardRemove())
        await state.finish()
        return
    try:
        db.del_stud_from_course(message.from_user.id, id_course)
        await message.answer(f"Вы были удалены из курса {course_name}.\n",
                             reply_markup=ReplyKeyboardRemove())
    except:
        await message.answer("Вас нет в списке студентов данного курса",
                             reply_markup=ReplyKeyboardRemove())
    await state.finish()
Exemplo n.º 5
0
async def course_corr1(message: Message, state: FSMContext):
    try:
        answer = message.text
        cid = db.get_id_course_by_name(answer)
        list_of_students = db.get_list_of_students(cid)
        n = len(list_of_students)
        grades_list = []
        attendence_list = []
        ages_list = []
        couples_list = []
        for student in list_of_students:
            grades_list.append(sum(db.get_grades(student[0], cid)))
            couples_list = db.get_attendence(student[0], cid)
            couples_sum = 0
            ages_list.append(db.get_age(student[0]))
            for couple in couples_list:
                if couple == "Н" or couple == "У":
                    pass
                else:
                    couples_sum += 1
            attendence_list.append(couples_sum)

        grades_list = pd.Series(grades_list)
        attendence_list = pd.Series(attendence_list)
        ages_list = pd.Series(ages_list)
        if n == 0:
            await message.answer("Нет студентов на данном курсе",
                                 reply_markup=ReplyKeyboardRemove())
        elif len(couples_list) == 0:
            await message.answer("Занятий ещё не проводилось",
                                 reply_markup=ReplyKeyboardRemove())
        else:
            await message.answer(
                "Коэффециент корреляции между оценками и посещаемость: " +
                str(grades_list.corr(attendence_list)) +
                "Коэффециент корреляции между оценками и возрастом: " +
                str(grades_list.corr(ages_list)) +
                "Коэффециент корреляции между посещаемостью и возрастом: " +
                str(attendence_list.corr(ages_list)),
                reply_markup=ReplyKeyboardRemove())
    except:
        await message.answer("Произошла непредвиденная ошибка",
                             reply_markup=ReplyKeyboardRemove())
    await state.finish()
Exemplo n.º 6
0
async def s_join_course_1(message: Message, state: FSMContext):
    course_name = message.text
    try:
        id_course = db.get_id_course_by_name(course_name)
        check = db.check_stud_in_course(message.from_user.id, id_course)
        if check:
            await message.answer("Вы уже записаны на данный курс",
                                 reply_markup=ReplyKeyboardRemove())
        else:
            try:
                db.stud_join_course(message.from_user.id, id_course)
                await message.answer(
                    f"Вы успешно записались на курс {course_name}",
                    reply_markup=ReplyKeyboardRemove())
            except:
                await message.answer("Что-то пошло не так..",
                                     reply_markup=ReplyKeyboardRemove())
    except:
        await message.answer("Упс! Что-то пошло не так, попробуй ещё раз",
                             reply_markup=ReplyKeyboardRemove())
    await state.finish()
Exemplo n.º 7
0
async def answer_q1(message: Message, state: FSMContext):
    try:
        answer = message.text
        cid = db.get_id_course_by_name(answer)
        list_of_students = db.get_list_of_students(cid)
        n = len(list_of_students)
        grades_sum = 0
        ages_sum = 0
        couples_sum = 0
        fin_couples = 0
        for student in list_of_students:
            stud_couple = 0
            grades_sum += sum(db.get_grades(student[0], cid))
            ages_sum += db.get_age(student[0])
            for couple in db.get_attendence(student[0], cid):
                if couple == "Н" or couple == "У":
                    pass
                else:
                    couples_sum += 1
                    stud_couple += 1
            fin_couples = max(fin_couples, stud_couple)
        if n == 0:
            await message.answer("Нет студентов на данном курсе")
        elif fin_couples == 0:
            await message.answer("Занятий ещё не проводилось" +
                                 "Средний возраст студентов: " +
                                 str(ages_sum / n))
        else:
            await message.answer("Средний балл за курс: " +
                                 str(grades_sum / n) +
                                 "\nСредняя посещаемость: " +
                                 str(couples_sum / (n * fin_couples) * 100) +
                                 "%" + "\nСредний возраст студентов: " +
                                 str(ages_sum / n))
    except:
        await message.answer("Произошла непредвиденная ошибка")
    await state.finish()