Source code for course

#!/usr/bin/env python3
import sys
import term
import student


[docs]class course: """ The course class represents a singular course and its pertinent information, such as offer times, prerequisites, and if it has been completed. """ def __init__( self, name: str, offerTimes = [], prereqs=[], completed=False, importance=0 ): """ :param name: The name of the course (with no spaces) :param offerTimes: A list containing strings of which terms the course is offered (ex. ['Sp','Su']) :param prereqs: A list of course names that are prerequisites :param completed: Boolean of if the course is Completed :param importance: integer value of importance of course (how many classes require this class, calculated later) :returns: None """ self.name = name self.prereqs = prereqs self.completed = completed self.offerTimes = offerTimes self.importance = importance
[docs] def takeCourseBool(self, student, term): """ :param student: student object from student.py :param term: term the course wants to be taken (ex 'Sp') :returns: Whether the student can take this course that term """ if self.completed == False: for course in self.prereqs: if course not in student.completed.keys(): #print("Student needs to complete", course) return False if term not in self.offerTimes: #print("Course not offered in", term) return False return True return False
[docs] def setCompleted(self, student): """ Sets course as completed :param student: student object from student.py :returns: None """ self.completed = True student.updateCompleted()
[docs] def setImportance(self, value): """ Sets importance of course :param value: Integer value # classes that require this course :returns: None """ self.importance = value
[docs] def printPrereqs(self): """ Prints prereqs :param: None :returns: None """ print("Prerequisites:") for course in self.prereqs: course.printCourse()
[docs] def printCourse(self): """ Prints course information :param: None :returns: None """ s = f'{self.name}:\nPreRequisites = {str(self.prereqs)}\nOffertimes = {str(self.offerTimes)}\nCompleted = {str(self.completed)}\nImportance = {str(self.importance)}' print(s)