Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- ვთქვათ, მოცემულია list-ი, რომელიც შედგება 100 სტუდენტის მონაცემისგან შემდგარი (შემდეგი
- მიმდევრობით: გვარი, სახელი, საგანი, შეფასება.) სტრიქონებისგან. შექმენით სტუდენტების კლასი,
- რომელსაც ექნება სტუდენტის (ზემოთ მოყვანილი) ატრიბუტები და მეთოდები: კონსტრუქტორი,
- ატრიბუტების სტრიქონული წარმოდგენის (__str__), საგანზე (რომელიც აუცილებლობის
- შემთხვევაში შეიძლება გამოყენებული იქნას როგორც ლექსიკონის გასაღები) შეფასების მიღების და
- შეფასების დაყენების. დაწერეთ პროგრამა, რომელიც მოცემული list-სგან შეავსებს კლასის
- ობიექტებისგან შემდგარ list-ს. პროგრამამ დაბეჭდოს საგნების მიხედვით სტუდენტების
- სტატისტიკა: რამდენმა ჩააბარა და რამდენი ჩაიჭრა.
- შენიშვნა. შესაბამისი სიმრავლის მიღება შესაძლებელია ქვემოთ მოყვანილი კოდით
- """
- from random import choice, randint
- LNames = ['აბაშიძე','ანთიძე','არჩვაძე','ახალაია','ბაძაღუა','ბერიანიძე','ბერიშვილი','გვენცაძე','გიგაური','გიორგაძე','გოგალაძე','გოცირიძე','დალაქიშვილი','ვარდიძე','ზარანდია','თადუმაძე','კანკია','კაპანაძე','კასრაძე','კვარაცხელია','კვესელავა','კვინიკაძე','კოპაძე','კორძაია','კუსრაძე','ლაბაძე','ლაცაბიძე','მაისურაძე','მარჯანიძე','მაჩალაძე','მაცაბერიძე','მელია','მეტრეველი','მიქავა','მიქაძე','მოდებაძე','მონიავა']
- GNames =['ანა','ანუკი','ბარბარე','გვანცა','დიანა','ეკა','ელენე','ვერონიკა','ვიქტორია','თათია','თამარი','თეა','თეკლე','თინიკო','იზაბელა','ია','იამზე','ლია','ლიკა','ლანა','ლამზირა','მარიკა','მანანა','მაია','მაკა','მარიამი','ნანა','ნანი','ნატა','ნატო','ნია','ნინო','ნონა','ოლიკო','სალომე','სოფიკო','ქეთევანი','ქრისტინე','შორენა','ხატია']
- BNames =['ალეკო','ალიკა','ამირან','ანდრია','არჩილი','ასლანი','ბაჩუკი','ბექა''გიგა','გიგი','გიორგი','გოგა','დავითი','დათა','ერეკლე','თემური','იაკობ','ილია','ირაკლი','ლადო','ლაშა','მიხეილ','ნიკა','ოთარი','პაატა','რამაზ','რამინი','რატი','რაული','რევაზი','რომა','რომანი','საბა','სანდრო','სერგი','სიმონ','შალვა','შოთა','ცოტნე','ჯაბა','ჯემალ']
- Subjects = ['კომპიუტერული უნარ-ჩვევები', 'ფიზიკის შესავალი','ქიმიის შესავალი','კალკულუსი II',
- 'პროგრამირების საფუძვლები','ობიექტზე ორიენტირებული პროგრამირება: C++','ალგორითმები I','ალგორითმები II','მონაცემთა სტრუქტურები']
- firstname = "firstname"
- lastname = "lastname"
- class Person:
- def __init__(self, fullname:tuple=(firstname, lastname)):
- self._fullname = {
- firstname: fullname[0],
- lastname: fullname[1]
- }
- self._sex = 'M' if fullname[0] in BNames else 'F'
- def __str__(self):
- return f"Name: {self._fullname[firstname]},\tLast Name: {self._fullname[lastname]}\nSex: {self._sex}"
- class Student(Person):
- def __init__(self, fullname :tuple, subject :dict= ("subject", []), gpa :int=0):
- if not fullname:
- super().__init__()
- else:
- super().__init__(fullname)
- self.__subject = subject
- self.__gpa = gpa
- @property
- def subject(self):
- return self.__subject
- def __str__(self):
- return Person.__str__(self) + f"\n{self.__subject}\nGPA: {self.__gpa}"
- def generatestudent():
- fullname = (choice(BNames + GNames), choice(LNames))
- points = [randint(0, 100) for _ in range(randint(1,5))]
- subject = {choice(Subjects): points}
- gpa = randint(0, 4)
- return Student(fullname, subject, gpa)
- students = [generatestudent() for _ in range(100)]
- success = sum(1 if sum(next(iter(student.subject.values()))) >= 51 else 0 for student in students)
- print(f"Successful students count: {success}")
- for student in students:
- if sum(next(iter(student.subject.values()))) < 51:
- print(f"{student}\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement