Advertisement
Radoslav_03

2.2_zad.py

Sep 17th, 2023
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.58 KB | None | 0 0
  1. class Student:
  2.     def __init__(self, student_id, fname, lname, age, gpa, major):
  3.         self.student_id = student_id
  4.         self.fname = fname
  5.         self.lname = lname
  6.         self.age = age
  7.         self.gpa = gpa
  8.         self.major = major
  9.  
  10.     def display_info(self):
  11.         print(f"Фак.номер: {self.student_id}")
  12.         print(f"Име: {self.fname}")
  13.         print(f"Фамилия: {self.lname}")
  14.         print(f"Възраст: {self.age}")
  15.         print(f"Успех: {self.gpa}")
  16.         print(f"Специалност: {self.major}")
  17.  
  18.     def avg_gpa(self, grades):
  19.         if not grades:
  20.             return 0.0
  21.        
  22.         total = sum(grades)
  23.         avg_gpa = total / len(grades)
  24.         return avg_gpa
  25.    
  26. def sort_by_age(student_list):
  27.     sorted_students = sorted(student_list, key=lambda x: x.age)
  28.     for student in sorted_students:
  29.         student.display_info()
  30.  
  31. def search_by_name(student_list, fname, lname):
  32.     found = False
  33.     for student in student_list:
  34.         if student.fname == fname and student.lname == lname:
  35.             found = True
  36.             student.display_info()
  37.             break
  38.     if not found:
  39.         print("Not found!!!")
  40.  
  41. def avg_by_name(student_list, fname, lname):
  42.     found = False
  43.  
  44.     for student in student_list:
  45.         if student.fname == fname and student.lname == lname:
  46.             found = True
  47.             avg_gpa = student.avg_gpa(student.gpa)
  48.             print(f"Average gpa of {fname} {lname}: {avg_gpa}")
  49.             break
  50.  
  51.     if not found:
  52.         print("Not found!!!")
  53.  
  54. def filter_by_major(student_list):
  55.     major_students = sorted(student_list, key=lambda student: student.major)
  56.     for student in major_students:
  57.         student.display_info()
  58.  
  59. def remove_student(student_list, student_id):
  60.     for student in student_list:
  61.         if student.student_id == student_id:
  62.             student_list.remove(student)
  63.             print(f"Student deleted!")
  64.             break
  65.     else:
  66.         print("Wrong student id!")
  67.  
  68. n = int(input("Брой студенти: "))
  69. student_list = []
  70.  
  71. for _ in range(n):
  72.     student_id = int(input())
  73.     fname = input()
  74.     lname = input()
  75.     age = int(input())
  76.     gpa = float(input())
  77.     major = input()
  78.  
  79.     student = Student(student_id, fname, lname, age, gpa, major)
  80.     student_list.append(student)
  81.  
  82. while True:
  83.  
  84.     print("1. Сортиране по възраст")
  85.     print("2. Търсене на студент по име и фамилия")
  86.     print("3. Изчисляване на средния успех на студент по име и фамилия")
  87.     print("4. Филтриране на студентите по специалност и извеждане на информация за тези студенти")
  88.     print("5. Премахване на студент от списъка по идентификационен номер")
  89.     print("6. Изход")
  90.  
  91.     choice = int(input())
  92.  
  93.     match choice:
  94.         case 1:
  95.             sort_by_age(student_list)
  96.         case 2:
  97.             fname = input()
  98.             lname = input()
  99.             search_by_name(student_list, fname, lname)
  100.         case 3:
  101.             fname = input()
  102.             lname = input()
  103.             avg_by_name(student_list, fname, lname)
  104.         case 4:
  105.             filter_by_major(student_list)
  106.         case 5:
  107.             student_id = int(input())
  108.             remove_student(student_list, student_id)
  109.             print(student_list)
  110.         case 6:
  111.             break
  112.         case _:
  113.             print("Wrong option!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement