Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- LNames = ['აბაშიძე', 'ანთიძე', 'არჩვაძე', 'ახალაია', 'ბაძაღუა',
- 'ბერიანიძე', 'ბერიშვილი', 'გვენცაძე', 'გიგაური', 'გიორგაძე', 'გოგალაძე']
- GNames = [
- 'ანა', 'ანუკი', 'ბარბარე', 'გვანცა', 'დიანა', 'ეკა', 'ელენე', 'ვერონიკა', 'ვიქტორია', 'თათია', 'თამარი', 'თეა', 'თეკლე', 'თინიკო',
- 'იზაბელა', 'ია', 'იამზე', 'ლია', 'ლიკა', 'ლანა', 'ლამზირა', 'მარიკა', 'მანანა', 'მაია', 'მაკა', 'მარიამი', 'ნანა', 'ნანი', 'ნატა', 'ნატო', 'ნია',
- 'ნინო', 'ნონა', 'ოლიკო', 'სალომე', 'სოფიკო'
- ]
- BNames = ['ალეკო', 'ალიკა', 'ამირან', 'ანდრია', 'არჩილი', 'ასლანი', 'ბაჩუკი',
- 'ბექა''გიგა', 'გიგი', 'გიორგი', 'გოგა', 'დავითი', 'დათა', 'ერეკლე', 'თემური']
- Names = GNames + BNames
- Subjects = ['კომპიუტერული უნარ-ჩვევები II', 'ფიზიკის შესავალი', 'ქიმიის შესავალი', 'კალკულუსი II',
- 'პროგრამირების საფუძვლები', 'ობიექტზე ორიენტირებული პროგრამირება: C++', 'ალგორითმები II', 'მონაცემთა სტრუქტურები']
- Prerequisites = ['კომპიუტერული უნარ-ჩვევები I', 'ბუნება', 'მეცნიერება', 'კალკულუსი I',
- 'პროგრამირების შესავალი', 'c++ შესავალი', 'ალგორითმები I', 'მონაცემთა ანალიზი']
- prereq_dict = dict(zip(Subjects, Prerequisites))
- class Student:
- def __init__(self, fname, lname) -> None:
- self.fname = fname
- self.lname = lname
- def __str__(self) -> str:
- return self.__repr__()
- def __repr__(self) -> str:
- return f'<{self.fname} {self.lname}>'
- class Subject:
- def __init__(self, sub_name) -> None:
- self.sub_name = sub_name
- self.students: list[dict[str, Student]] = []
- self.prerequisites = []
- def add_pre_requisite(self):
- pass
- def enroll(self, student: Student, score: float = 0):
- self.__validate_student(student)
- for pr in self.prerequisites:
- if student not in [st['student'] for st in pr.students]:
- raise Exception(f'{student} is not able to take {self.sub_name} subject')
- self.students.append(
- {
- 'student': student,
- 'score': score
- }
- )
- def __validate_student(self, student: Student):
- if not isinstance(student, Student):
- raise Exception('object must be a Student instance!')
- def pass_or_fail(self, student: Student):
- self.__validate_student(student)
- for st in self.students:
- if st['student'] is student:
- if st['score'] < 51:
- print('fail')
- else:
- print('pass')
- return
- def __repr__(self) -> str:
- return f'Subject Name: {self.sub_name}'
- subject_list = [Subject('Calculus II'), Subject('Calculus I')]
- calculus_I = subject_list[1]
- calculus_II = subject_list[0]
- # calculus_II.prerequisites.append(calculus_I)
- student_1 = Student(Names[random.randint(0, len(Names)-1)],
- LNames[random.randint(0, len(LNames)-1)])
- # calculus_I.enroll(student_1, 65)
- calculus_II.enroll(student_1, 65)
- print(calculus_II)
- print(calculus_II.students)
- calculus_II.pass_or_fail(student_1)
- # student_list = []
- # for i in range(0,101):
- # student_name = f'student_{i}'
- # student_name = Students(Names[random.randint(0, len(Names)-1)], LNames[random.randint(0, len(LNames)-1)], Subjectss[random.randint(0,len(Subjectss)-1)],random.randint(20,100))
- # student_list.append(student_name)
- # subject_1 = Subjects(Subjectss[random.randint(1,len(Subjectss)-1)],student_list[random.randint(2,101)],prereq_dict[Subjectss[random.randint(1,len(Subjectss)-1)]])
- # print(f'Subject Name: {subject_1.sub_name},\nPrerequisite Name: {subject_1.prerequisite}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement