Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' Seminar 2 '''
- class Student:
- def __init__(self, sId, sName, sMajor):
- self._sId = sId
- self._sName = sName
- self._sMajor = sMajor
- def __str__(self):
- return f"{self._sId} {self._sName} {self._sMajor}"
- class Module:
- def __init__(self, mCode, mName, mCapacity):
- self._mCode = mCode
- self._mName = mName
- self._mCapacity = mCapacity
- self._mCount = 0
- @property
- def Code(self):
- return self._mCode
- def addStudent(self, sCount):
- self._mCount += sCount
- def __str__(self):
- return f"{self._mCode} {self._mName} {self._mCount}"
- class Enrolment:
- _eId = 0
- def __init__(self, student, module):
- self._student = student
- self._module = module
- Enrolment._eId +=1 # Increment class variable by 1
- self._eId = Enrolment._eId # Use it as the Id for this instance
- def __str__(self):
- return self._student.__str__() + " " + self._module.__str__()
- def showModEn(modules, enrolments):
- for mod in modules:
- print(mod)
- for en in enrolments:
- print(en)
- def addEnrolment(students, modules, enrolments):
- sId = input("Enter student Id: ")
- mCode = input("Enter module code: ")
- # Get the student instance and module instance
- # Assuming both student and module exist
- student = students[sId]
- for mod in modules:
- if mod.Code == mCode:
- break
- # Create enrolment record and add to enrolments
- mod.addStudent(1) # Update module count
- en = Enrolment(student, mod)
- enrolments.append(en)
- def main():
- students = {'s1':Student('s1', 'Alice', 'BICT'), \
- 's2':Student('s2', 'Benny', 'BHERP')}
- modules = [Module('ICT133', 'Python', 200), \
- Module('ICT162', 'Python OO', 100)]
- enrolments = [] # Empty list
- menu = "1. Show\n2. Add enrolment\n0. Quit\n"
- while (True):
- print(menu)
- option = int(input("Choose an option: "))
- if option == 1:
- showModEn(modules, enrolments)
- elif option == 2:
- addEnrolment(students, modules, enrolments)
- elif option == 0:
- break
- else:
- print("Invalid option\n")
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement