HW2_SUMMER

.py

School

Pennsylvania State University *

*We aren’t endorsed by this school

Course

132

Subject

Computer Science

Date

Feb 20, 2024

Type

py

Pages

10

Uploaded by MateWasp883 on coursehero.com

import random class Course: ''' >>> c1 = Course('CMPSC132', 'Programming in Python II', 3) >>> c2 = Course('CMPSC360', 'Discrete Mathematics', 3) >>> c1 == c2 False >>> c3 = Course('CMPSC132', 'Programming in Python II', 3) >>> c1 == c3 True >>> c1 CMPSC132(3): Programming in Python II >>> c2 CMPSC360(3): Discrete Mathematics >>> c3 CMPSC132(3): Programming in Python II >>> c1 == None False >>> print(c1) CMPSC132(3): Programming in Python II ''' #Constructor def __init__(self, cid, cname, credits): self.cid = cid self.cname = cname self.credits = credits pass # Method to return string display def __str__(self): return f"{self.cid}({self.credits}): {self.cname}" pass __repr__ = __str__ #To see for equality def __eq__(self, other): if(other is None): return False if(self.cid==other.cid): return True else: return False def isValid(self): if(type(self.cid)==str and type(self.cname)==str and type(self.credits)==int): return True else: return False class Catalog: ''' >>> C = Catalog() >>> C.courseOfferings {} >>> C._loadCatalog("cmpsc_catalog_small.csv") >>> C.courseOfferings {'CMPSC 132': CMPSC 132(3): Programming and Computation II, 'MATH 230':
MATH 230(4): Calculus and Vector Analysis, 'PHYS 213': PHYS 213(2): General Physics, 'CMPEN 270': CMPEN 270(4): Digital Design, 'CMPSC 311': CMPSC 311(3): Introduction to Systems Programming, 'CMPSC 360': CMPSC 360(3): Discrete Mathematics for Computer Science} >>> C.removeCourse('CMPSC 360') 'Course removed successfully' >>> C.courseOfferings {'CMPSC 132': CMPSC 132(3): Programming and Computation II, 'MATH 230': MATH 230(4): Calculus and Vector Analysis, 'PHYS 213': PHYS 213(2): General Physics, 'CMPEN 270': CMPEN 270(4): Digital Design, 'CMPSC 311': CMPSC 311(3): Introduction to Systems Programming} >>> isinstance(C.courseOfferings['CMPSC 132'], Course) True ''' def __init__(self): self.courseOfferings = {} pass def addCourse(self, cid, cname, credits): if cid not in self.courseOfferings: self.courseOfferings[cid] = (Course(cid,cname,credits)) return "Course added successfully" else: return "Course already added" pass def removeCourse(self, cid): if cid not in self.courseOfferings: return "Course not found" else: del self.courseOfferings[cid] return "Course removed successfully" pass def _loadCatalog(self, file): with open(file, "r") as f: course_info = f.read() lst=course_info.split("\n") for i in lst: i = i.split(',') self.cid = i[0] self.cname = i[1] self.credits = i[2] self.courseOfferings[i[0]] = (Course(self.cid,self.cname,self.credits)) class Semester: ''' >>> cmpsc131 = Course('CMPSC 131', 'Programming in Python I', 3) >>> cmpsc132 = Course('CMPSC 132', 'Programming in Python II', 3) >>> math230 = Course("MATH 230", 'Calculus', 4) >>> phys213 = Course("PHYS 213", 'General Physics', 2) >>> econ102 = Course("ECON 102", 'Intro to Economics', 3) >>> phil119 = Course("PHIL 119", 'Ethical Leadership', 3) >>> spr22 = Semester() >>> spr22 No courses >>> spr22.addCourse(cmpsc132) >>> isinstance(spr22.courses['CMPSC 132'], Course) True
>>> spr22.addCourse(math230) >>> spr22 CMPSC 132; MATH 230 >>> spr22.isFullTime False >>> spr22.totalCredits 7 >>> spr22.addCourse(phys213) >>> spr22.addCourse(econ102) >>> spr22.addCourse(econ102) 'Course already added' >>> spr22.addCourse(phil119) >>> spr22.isFullTime True >>> spr22.dropCourse(phil119) >>> spr22.addCourse(Course("JAPNS 001", 'Japanese I', 4)) >>> spr22.totalCredits 16 >>> spr22.dropCourse(cmpsc131) 'No such course' >>> spr22.courses {'CMPSC 132': CMPSC 132(3): Programming in Python II, 'MATH 230': MATH 230(4): Calculus, 'PHYS 213': PHYS 213(2): General Physics, 'ECON 102': ECON 102(3): Intro to Economics, 'JAPNS 001': JAPNS 001(4): Japanese I} ''' def __init__(self): self.courses = {} pass #To convert into string def __str__(self): if len(self.courses)!=0: self.l1=list(self.courses.keys()) return ('; '.join(self.l1)) else: return "No courses" pass __repr__ = __str__ def addCourse(self, course): if course.cid not in self.courses: self.courses[course.cid]=(course) else: return "Course already added" pass def dropCourse(self, course): if course.cid in self.courses: self.courses.pop(course.cid) else: return "No such course" pass @property def totalCredits(self): totalcredits = 0
for course in self.courses: totalcredits += self.courses[course].credits return totalcredits pass @property def isFullTime(self): return (self.totalCredits>=12) pass class Loan: ''' >>> import random >>> random.seed(2) # Setting seed to a fixed value, so you can predict what numbers the random module will generate >>> first_loan = Loan(4000) >>> first_loan Balance: $4000 >>> first_loan.loan_id 17412 >>> second_loan = Loan(6000) >>> second_loan.amount 6000 >>> second_loan.loan_id 22004 >>> third_loan = Loan(1000) >>> third_loan.loan_id 21124 ''' def __init__(self, amount): self.amount = amount self.loan_id = self.__getloanID pass def __str__(self): return f"Balance: ${self.amount}" pass __repr__ = __str__ @property def __getloanID(self): return random.randint(10000, 99999) pass class Person: ''' >>> p1 = Person('Jason Lee', '204-99-2890') >>> p2 = Person('Karen Lee', '247-01-2670') >>> p1 Person(Jason Lee, ***-**-2890) >>> p2
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help