From 37edb2e2aa772e6ed87867f12fef5b3868e9cb4e Mon Sep 17 00:00:00 2001 From: Adrienucl <adrien.payen@student.uclouvain.be> Date: Sun, 3 Dec 2023 17:47:04 +0100 Subject: [PATCH] 99% of the project is done --- .DS_Store | Bin 6148 -> 6148 bytes Data_Base.xlsx | Bin 28989 -> 28979 bytes .../algorithme_gestion_etudiants.py | 283 +++++++++++------- .../algorithme_student_generate.py | 10 +- 4 files changed, 172 insertions(+), 121 deletions(-) diff --git a/.DS_Store b/.DS_Store index f9eff7d8caa48695afec3a1f76904ad3a16c43f0..c66136cf486383b3afb2e9e018a604d3a5ae1499 100644 GIT binary patch delta 453 zcmZoMXfc=|#>B!ku~2NHo}wr>0|Nsi1A_nqLn=caLp(zXkS^Z*ka;<CJxEG`A(0`4 zp@<<9SsJKFkD-DghoP9E!ZRm7IVmSU39OcZDIG}b{Raaei-CcU!3AhS2@uCKI04CG zpgB17GIpctt!Ll|Do$p|0FzLc;kKIbC#rS^L7=`0h609spz}+B*5?7O&jpGV<8%P3 z3DzLj=Ym}i@_#ZzDbU9_UC*!{X#G5x&o}chsW5UF8k^`S7@8VPwqRbU$pv%-$np{f tBU}z(a0Hn#`5g1v&Fmcf9Kc8dM#OjK$^0UY9KbkY0?IOMju2VH3;<lOaK``u delta 100 zcmZoMXfc=|#>B)qu~2NHo}wr#0|Nsi1A_nqLn=cFLp+eoV~F2axSWxZb+Zer3L}S+ znT3vmk-6pM0=9*l#W)06CN{`!X6NAN0GhE`kmEb^WPTAx4xlL@V^}svh^%1-02LP$ AYybcN diff --git a/Data_Base.xlsx b/Data_Base.xlsx index d9513acf2c25892a5e2e901484c9020144c85240..120e1ff2f3611fc448aae7f91eb8f85f9ec407ad 100644 GIT binary patch delta 24736 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 A#{d8T delta 24742 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 E0JF35-T(jq diff --git a/projet_personnel/algorithme_gestion_etudiants.py b/projet_personnel/algorithme_gestion_etudiants.py index 1de243a..f9d71dc 100644 --- a/projet_personnel/algorithme_gestion_etudiants.py +++ b/projet_personnel/algorithme_gestion_etudiants.py @@ -190,15 +190,15 @@ def register(data, firstname, lastname, date_of_birth, place_of_birth, address, return def generate_matricule(firstname, lastname, date_of_birth): - consonants_name = ''.join([c for c in firstname if c.lower() not in 'aeiouy'])[:3] - consonants_surname = ''.join([c for c in lastname if c.lower() not in 'aeiouy'])[:2] - last_consonant_surname = ''.join([c for c in lastname if c.lower() not in 'aeiouy']).lower()[-1] # not sure if it's the consonant of the first name or the last name - birth_year_last_two_digits = str(date_of_birth)[-2:] + consonant_of_firstname = ''.join([c for c in firstname if c.lower() not in 'aeiou'])[:3] + consonant_of_lastname = ''.join([c for c in lastname if c.lower() not in 'aeiou'])[:2] + last_consonant_of_lastname = ''.join([c for c in lastname if c.lower() not in 'aeiou']).lower()[-1] # ne sait pas si c'est la consonne du prénom ou du nom + year_of_birth_string = str(date_of_birth)[-4:] random_integer = random.randint(0, 10) - matricule_e = f"{consonants_name}{consonants_surname}{last_consonant_surname}{birth_year_last_two_digits}{random_integer}" - matricule_e = matricule_e.lower() + matricule = f"{consonant_of_lastname }{consonant_of_firstname}{last_consonant_of_lastname}{year_of_birth_string}{random_integer}" + matricule = matricule.lower() - return matricule_e + return matricule # MODIFYING THE DATA OF A STUDENT def modify(data): @@ -364,7 +364,7 @@ def modify(data): data.at[student_index, 'Matricule'] = matricule # Update the Matricule column with the new matricule - print("be careful because of a modification the registration number has changed :") + print("Be careful because of a modification the registration number has changed :") print(f"the new matricule is : {matricule}") @@ -374,15 +374,15 @@ def modify(data): # Mapping for field names to DataFrame column names field_mapping = { - 1: 'Name', - 2: 'Surname', - 3: 'Date of Birth', - 4: 'Place of Birth', - 5: 'Address', - 6: 'Telephone', - 7: 'Email', - 8: 'Gender', - 9: 'Academic Year', + 1: 'Name', + 2: 'Surname', + 3: 'Date of Birth', + 4: 'Place of Birth', + 5: 'Address', + 6: 'Telephone', + 7: 'Email', + 8: 'Gender', + 9: 'Academic Year', 10: 'Curriculum', 12: 'Campus' } @@ -460,11 +460,11 @@ def filter_students(data): headers = ["Firstname", "Lastname", "Matricule"] print(tabulate(table_data, headers=headers, tablefmt="pretty")) - export_choice = input("Do you want to export the list to an Excel file? (yes/no): ").lower() - if export_choice == "yes": + export_choice = input("Do you want to export the list to an Excel file? (YES/NO): ").upper() + if export_choice == "YES": export_to_excel(data) - read_choice = input("Do you want to read the exported list from an Excel file? (yes/no): ").lower() - if read_choice == "yes": + read_choice = input("Do you want to read the exported list from an Excel file? (YES/NO): ").upper() + if read_choice == "YES": read_exported_list() @@ -565,7 +565,6 @@ def sort_by_academic_year(data): export_option(sorted_data) -# attention il faut pouvoir matcher ceci avec les résultats obtenus def sort_passed(data): course_columns = data.columns[11:] print("Available Courses:") @@ -604,7 +603,6 @@ def sort_failed(data): failed_data = data[data[selected_course] < 10] - # Notez que 'selected_course' doit être passé comme une liste pour inclure la note du cours dans 'columns_to_show' see_the_data( failed_data, columns_to_show=['Firstname', 'Lastname', selected_course]) export_option( failed_data) @@ -646,127 +644,180 @@ def see_the_data(data, columns_to_show=None): # STATS def statistics_analysis(data): - print('1. Get basic statistics') - print('2. Get all student grades') - print('3. Get all grades for a course') - print('4. Export all statistics') + print_menu([ + "Get basic statistics", + "Get all student grades", + "Get all grades for a course", + ]) + + stats_choice = get_valid_input("Enter the number of what you want to do: ", 1, 3) + + if stats_choice == 1 : + results = search_and_display_stats(data, "Statistics") + elif stats_choice == 2: + results = search_and_display_stats(data, "Grades") + elif stats_choice == 3: + results = course_grades(data) +def print_menu(options): + for index, option in enumerate(options, start=1): + print(f"{index}. {option}") + +def get_valid_input(prompt, lower_limit, upper_limit): while True: - stats_choice = input("Enter the number of what you want to do: ") - if stats_choice.isdigit(): - stats_int = int(stats_choice) - if 1 <= stats_int <= 4: - print("The choice is valid.") - break + user_input = input(prompt) + if user_input.isdigit(): + user_choice = int(user_input) + if lower_limit <= user_choice <= upper_limit: + return user_choice else: - print("The choice must be one of those proposed.") - - if stats_choice == "1": - basic_stats(data) - elif stats_choice == "2": - all_grades(data) - elif stats_choice == "3": - course_grades(data) - elif stats_choice == "4": - export_stats(data) - -def basic_stats(data): - search_criteria = input("Enter the search criteria for student statistics (Name/Surname/Matricule): ").capitalize() - - if search_criteria == "Name": - name_search = input("Enter the name of the student: ") - results = data[data['Name'].str.contains(name_search, case=False, na=False)] - elif search_criteria == "Surname": - surname_search = input("Enter the surname of the student: ") - results = data[data['Surname'].str.contains(surname_search, case=False, na=False)] - elif search_criteria == "Matricule": - matricule_search = input("Enter the matricule of the student: ") - results = data[data['Matricule'].str.contains(matricule_search, case=False, na=False)] + print(f"The choice must be between {lower_limit} and {upper_limit}.") + else: + print("Invalid input. Please enter a valid number.") + +def search_and_display_stats(data, stats_type): + print_menu(["Search by Firstname", "Search by Lastname", "Search by Matricule"]) + search_criteria = get_valid_input(f"Enter the number of the search criteria for student {stats_type}: ", 1, 3) + + if search_criteria == 1: + field_name = "Firstname" + elif search_criteria == 2: + field_name = "Lastname" + elif search_criteria == 3: + field_name = "Matricule" else: print("Invalid search criteria.") return + search_term = input(f"Enter the {field_name.lower()} of the student: ") + results = data[data[field_name].str.contains(search_term, case=False, na=False)] + + if not results.empty: + if stats_type == "Statistics": + display_statistics(results) + elif stats_type == "Grades": + display_student_grades(results) + else: + print(f"No students found with the specified {field_name}.") + +def display_statistics(results): numeric_columns = results.select_dtypes(include=['number']).columns for index, row in results.iterrows(): - student_name = f"{row['Name']} {row['Surname']}" + student_name = f"{row['Firstname']} {row['Lastname']}" student_grades = [row[column] for column in numeric_columns if not pd.isnull(row[column])] if student_grades: - lowest_grade = min(student_grades) - highest_grade = max(student_grades) - average_grade = statistics.mean(student_grades) - median_grade = statistics.median(student_grades) - std_deviation = statistics.stdev(student_grades) - - print(f"\nStatistics for student {student_name}:") - print(f"Lowest grade: {lowest_grade}") - print(f"Highest grade: {highest_grade}") - print(f"Average grade: {average_grade}") - print(f"Median grade: {median_grade}") - print(f"Standard deviation of grades: {std_deviation}") + print_student_statistics(student_name, student_grades) else: print(f"\nNo grades found for student {student_name}.") + export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() + if export_choice == 'YES': + export_stats(results) + +def print_student_statistics(student_name, student_grades): + lowest_grade = min(student_grades) + highest_grade = max(student_grades) + average_grade = statistics.mean(student_grades) + median_grade = statistics.median(student_grades) + std_deviation = statistics.stdev(student_grades) + + table = [ + ["Lowest grade", lowest_grade], + ["Highest grade", highest_grade], + ["Average grade", average_grade], + ["Median grade", median_grade], + ["Standard deviation of grades", std_deviation] + ] + + print(f"\nStatistics for student {student_name}:") + print(tabulate(table, headers=["Metric", "Value"], tablefmt="pretty")) + +def display_student_grades(results): + for index, row in results.iterrows(): + student_name = f"{row['Firstname']} {row['Lastname']}" + print(f"\nGrades for student {student_name}:") + table = [[column, grade] for column, grade in row.iteritems() if pd.notnull(grade)] + print(tabulate(table, headers=["Course", "Grade"], tablefmt="pretty")) + export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() + if export_choice == 'YES': + export_stats(results) -def all_grades(data): - search_criteria = input("Enter the search criteria for student grades (Name/Surname/Matricule): ").capitalize() - - if search_criteria == "Name": - name_search = input("Enter the name of the student: ") - results = data[data['Name'].str.contains(name_search, case=False, na=False)] - elif search_criteria == "Surname": - surname_search = input("Enter the surname of the student: ") - results = data[data['Surname'].str.contains(surname_search, case=False, na=False)] - elif search_criteria == "Matricule": - matricule_search = input("Enter the matricule of the student: ") - results = data[data['Matricule'].str.contains(matricule_search, case=False, na=False)] - else: - print("Invalid search criteria.") - return +def course_grades(data): + print("Here is the list of courses:") + print(data.select_dtypes(include=['number']).columns) - student = data[data['Matricule'].str.contains(matricule_search, case=False, na=False)] + course_name = input("For which course do you want to display grades? ") - if student.empty: - print(f"No student found with matricule {matricule_search}.") - return + if course_name in data.columns: + students_in_course = data[data[course_name].notnull()] + + if not students_in_course.empty: + display_course_grades(students_in_course, course_name) + else: + print(f"No students participated in the course {course_name}.") + else: + print(f"The specified course ({course_name}) was not found.") + + export_choice = input("Do you want to export these statistics? (YES/NO): ").upper() + if export_choice == 'YES': + export_stats(students_in_course) - # Select columns containing grades - grade_columns = student.select_dtypes(include=['number']).columns + return students_in_course - # Display student's grades - print(f"Grades for student with matricule {matricule_search}:") - for column in grade_columns: - if not pd.isnull(student[column].values[0]): - print(f"{column}: {student[column].values[0]}") +def display_course_grades(students_in_course, course_name): + print(f"\nGrades of students for the course {course_name}:") + table = [ + ["Matricule", "Grade"], + *[[row['Matricule'], row[course_name]] for _, row in students_in_course.iterrows() if not pd.isnull(row[course_name])] + ] + print(tabulate(table, headers="firstrow", tablefmt="pretty")) -def course_grades(data): - numeric_columns = data.select_dtypes(include=['number']).columns.tolist() - print("Here is the list of courses:") - for column in numeric_columns: - print(column) +def export_stats(data): + # Ensure numeric columns only + numeric_columns = data.select_dtypes(include=['number']).columns + + # Calculate overall statistics + overall_stats = calculate_overall_stats(data, numeric_columns) + + # Save overall statistics to Excel + overall_stats.to_excel("overall_statistics.xlsx", index=False) - course_name = input(print("For which course do you want to display grades?")) + # Calculate and save statistics for each student + for index, row in data.iterrows(): + student_name = f"{row['Firstname']} {row['Lastname']}" + student_stats = calculate_student_stats(row, numeric_columns) + student_stats.to_excel(f"{student_name}_statistics.xlsx", index=False) - if course_name not in data.columns: - print(f"The specified course ({course_name}) was not found.") - return + print("Statistics exported successfully.") - # Filter students who participated in this course (non-null grade) - students_in_course = data[data[course_name].notnull()] +def calculate_overall_stats(data, numeric_columns): + all_grades = [row[column] for column in numeric_columns for _, row in data.iterrows() if not pd.isnull(row[column])] + + overall_stats = { + "Lowest grade": min(all_grades), + "Highest grade": max(all_grades), + "Average grade": statistics.mean(all_grades), + "Median grade": statistics.median(all_grades), + "Standard deviation of grades": statistics.stdev(all_grades) + } - if students_in_course.empty: - print(f"No student participated in the course {course_name}.") - return + return pd.DataFrame(list(overall_stats.items()), columns=["Metric", "Value"]) - # Display grades of students for the specified course - print(f"Grades of students for the course {course_name}:") - for index, row in students_in_course.iterrows(): - print(f"Matricule: {row['Matricule']}, Grade: {row[course_name]}") +def calculate_student_stats(row, numeric_columns): + student_grades = [row[column] for column in numeric_columns if not pd.isnull(row[column])] -def export_stats(data): + student_stats = { + "Lowest grade": min(student_grades), + "Highest grade": max(student_grades), + "Average grade": statistics.mean(student_grades), + "Median grade": statistics.median(student_grades), + "Standard deviation of grades": statistics.stdev(student_grades) + } + + return pd.DataFrame(list(student_stats.items()), columns=["Metric", "Value"]) - return # Example of usage # Make sure you have defined and loaded your DataFrame 'data' before calling this function @@ -776,7 +827,7 @@ def export_stats(data): # Action def action(): - print("What do you want to do?\nBelow, you will find what is possible followed by the commands to type.\n") + print("What do you want to do?\nBelow, you will find what is possible followed by the commands to type.") print("1. Register a student") print("2. Modify one or more fields") print("3. Delete a student") diff --git a/projet_personnel/algorithme_student_generate.py b/projet_personnel/algorithme_student_generate.py index b37fb2c..9206e0c 100644 --- a/projet_personnel/algorithme_student_generate.py +++ b/projet_personnel/algorithme_student_generate.py @@ -148,12 +148,12 @@ for each in range(number_of_students): # générer des données # attribution du matricule - consonant_of_lastname = ''.join([c for c in last_name if c.lower() not in 'aeiou'])[:3] - consonant_of_firstname = ''.join([c for c in first_name if c.lower() not in 'aeiou'])[:2] - last_consonant_of_firstname = ''.join([c for c in first_name if c.lower() not in 'aeiou']).lower()[-1] # ne sait pas si c'est la consonne du prénom ou du nom - year_of_birth_string = str(year_of_birth)[-2:] + consonant_of_firstname = ''.join([c for c in first_name if c.lower() not in 'aeiou'])[:3] + consonant_of_lastname = ''.join([c for c in last_name if c.lower() not in 'aeiou'])[:2] + last_consonant_of_lastname = ''.join([c for c in last_name if c.lower() not in 'aeiou']).lower()[-1] # ne sait pas si c'est la consonne du prénom ou du nom + year_of_birth_string = str(year_of_birth)[-4:] random_integer = random.randint(0, 10) - matricule = f"{consonant_of_lastname }{consonant_of_firstname}{last_consonant_of_firstname}{year_of_birth_string}{random_integer}" + matricule = f"{consonant_of_lastname }{consonant_of_firstname}{last_consonant_of_lastname}{year_of_birth_string}{random_integer}" matricule = matricule.lower() -- GitLab