Question

In: Computer Science

Chapter 9 project 1 & 2(these are combined into one project) : Add methods to the...

Chapter 9 project 1 & 2(these are combined into one project) : Add methods to the Student class that compare two Student objects. One method should test for equality. The other methods should support the other possible comparisons. In each case, the method returns the result of the comparison of the two students' names. Place several Student objects into a list and shuffle it. Then run the sort method with this list and display all of the students' information.

I keep getting error code:

Traceback (most recent call last):
File "C:/Users/talka/Desktop/ITF100/HeatherMorgan.Project9.py", line 98, in
main()
File "C:/Users/talka/Desktop/ITF100/HeatherMorgan.Project9.py", line 78, in main
student1 = Student("Heather", 1)
TypeError: Student() takes no arguments

Here is what i have:

import random

class Student(object):
"""Represents a student."""

def __init__(self, name, number):
"""Constructor creates a Student with the given
name and number of scores and sets all scores
to 0."""
self.name = name
self.scores = []
for count in range(number):
self.scores.append(0)


def getName(self):
"""Returns the student's name."""
return self.name


def setScore(self, i, score):
"""Resets the ith score, counting from 1."""
self.scores[i - 1] = score

def getScore(self, i):
"""Returns the ith score, counting from 1."""
return self.scores[i - 1]

def getAverage(self):
"""Returns the average score."""
return sum(self.scores)/ len(self.scores)

def getHighScore(self):
"""Returns the highest score."""
return max(self.scores)


def __str__(self):
"""Returns the string representation of the student."""
return "Name: " + self.name + "\nScores: " + \
" ".join(map(str, self.scores))

def __eq__(self, other):
"""Tests self and other for equality."""
if self is other:
return True
elif type(self) != type(other):
return False
else:
return self.numer == other.numer and \
self.denom == other.denom

def __lt__(self,other):
"""Returns self < other, with respect to names."""
return self.name < other.name

def __ge__(self, other):
"""Returns self >= other, with respect to names."""
return self.names >= other.name


def shuffle(self):
"""Shuffles the list."""
random.shuffle(self.name)

  
def main():
"""Tests sorting."""
lyst = []
#creates student
student1 = Student("Heather", 1)
student2 = Student("Olivia", 2)
lyst.append(student1)
lyst.append(student2)

for i in range (1,6):
student.setScore(i,100)
  

random.shuffle(lyst)
print("Unsorted list of students")

for studentName in lyst:
print(studentName)
lyst.sort()
print("\nSorted list of students")
for studentName in lyst:
print(studentName)

if __name__=="__main__":
main()

]

Solutions

Expert Solution

Please find the code below:

class Student(object):
def __init__(self, name, number):
self.name = name
self.scores = []
for count in range(number):
self.scores.append(0)
  
def getName(self):
  
return self.name
  
def setScore(self, i, score):
  
self.scores[i - 1] = score
  
def getScore(self, i):
  
return self.scores[i - 1]
  
def getAverage(self):
  
return sum(self.scores) / len(self._scores)
  
def getHighScore(self):
  
return max(self.scores)
def __eq__(self,student):
return self.name == student.name
  
def __ge__(self,student):
return self.name == student.name or self.name>student.name
  
def __lt__(self,student):
return self.name<student.name
  
def __str__(self):
return "Name: " + self.name + "\nScores: " + \
" ".join(map(str, self.scores))
  
  

def main():
student = Student("Ken", 5)
print(student)
for i in range(1, 6):
student.setScore(i, 100)
print(student)
  
print("\nSecond student")
student2 = Student("Ken", 5)
print(student2)
  
print("\nThird student")
student3 = Student("Amit", 5)
print(student3)
  
print("\nChecking equal student1 and student 2")
print(student.__eq__(student2))
  
print("\nChecking equal student1 and student 3")
print(student.__eq__(student3))
  
print("\nChecking greater than equal student1 and student 3")
print(student.__ge__(student3))
  
print("\nChecking less than student1 and student 3")
print(student.__lt__(student3))

if __name__ == "__main__":
main()

output:


Related Solutions

Chapter 9 Programming Project (Inheritance, Abstract Class/Methods, Overriding Methods) -For all classes, you need to provide...
Chapter 9 Programming Project (Inheritance, Abstract Class/Methods, Overriding Methods) -For all classes, you need to provide the accessor and mutator methods for all instance variables, and provide/override the toString methods. -Create a Customer class that has the attributes of name and age. Provide a method named importanceLevel. Based on the requirements below, I would make this method abstract. -Extend Customer to two subclasses: FlightCustomer, and RetailCustomer -FlightCustomer attributes: ticketPrice, seatNumber (The seat number should be a randomly generated number between...
Chapter 9 thoroughly discusses the circumstances under which and the methods for reducing project duration. Section...
Chapter 9 thoroughly discusses the circumstances under which and the methods for reducing project duration. Section 9.2 explains 10 options for accelerating project completion: Adding resources Outsourcing project work Scheduling overtime Establish a core project team Do it twice - fast and correctly Improve the efficiency of the project team Fast-tracking Critical-chain Reducing project scope Compromising quality I want you to think about a time where you have executed one of these methods at work when a project was taking...
chapter 9 h 2 Exercise 9-16 Flexible Budgets in a Cost Center [LO9-1, LO9-2] Packaging Solutions...
chapter 9 h 2 Exercise 9-16 Flexible Budgets in a Cost Center [LO9-1, LO9-2] Packaging Solutions Corporation manufactures and sells a wide variety of packaging products. Performance reports are prepared monthly for each department. The planning budget and flexible budget for the Production Department are based on the following formulas, where q is the number of labor-hours worked in a month: Cost Formulas Direct labor $16.40q Indirect labor $4,500 + $1.50q Utilities $5,700 + $0.60q Supplies $1,200 + $0.40q Equipment...
code the following methods: one returning the average weekly hours and a method to add a...
code the following methods: one returning the average weekly hours and a method to add a weeks hours to the array of hours (this means creating a larger array).
Add your own method (or use one or more of the existing methods) to insert the...
Add your own method (or use one or more of the existing methods) to insert the following set of numbers (1, 5, 19, 7, 23, 17, 2) in a linked list (use one function-call per number, and preserve the order of insertion). Once inserted print the linked list such that the output displays the numbers in reverse order. (2, 17, 23, 7, 19, 5, 1) JAVA CODE BELOW class aNode { char data; aNode next; aNode(char mydata) { // Constructor...
Example You and a classmate are assigned a project on which you will receive one combined...
Example You and a classmate are assigned a project on which you will receive one combined grade. You each want to receive a good grade, but you also want to avoid hard work. In particular, here is the situation: - If both of you work hard, you both get an A, which gives each of you 40 units of happiness - If only one of you work hard, you both get a B, which gives each of you 30 units...
You and a classmate are assigned a project on which you will receive one combined grade....
You and a classmate are assigned a project on which you will receive one combined grade. You each want to receive a good grade, but you also want to avoid hard work. In particular, here is the situation: If both of you work hard, you both get an A, which gives each of you 40 units of happiness. If only one of you works hard, you both get a B, which gives each of you 30 units of happiness. If...
3) Chapter 9 goes to great lengths to describe two main methods of estimating a stock’s...
3) Chapter 9 goes to great lengths to describe two main methods of estimating a stock’s intrinsic value: 1) the Discounted Dividends Model and 2) the Enterprise-Based Approach to Valuation also know as the Corporate Valuation Model. Please explain the basic components of these two models, compare these two models, discuss which one is best in your opinion, and why.
Chapter 9 discusses the criteria/methods used to evaluate the proposed investments. In 500 words or more,...
Chapter 9 discusses the criteria/methods used to evaluate the proposed investments. In 500 words or more, discuss the following: The best criterion to evaluate a project, and why? List other methods used to evaluate project worthiness and how the best criterion is better than each one of them
Chapter 9: Applying Excel Data Year 2 Quarter Year 3 Quarter 1 2 3 4 1...
Chapter 9: Applying Excel Data Year 2 Quarter Year 3 Quarter 1 2 3 4 1 2 Budgeted unit sales 40,000 60,000 100,000 50,000 70,000 80,000 • Selling price per unit $8 per unit • Accounts receivable, beginning balance $65,000 • Sales collected in the quarter sales are made 75% • Sales collected in the quarter after sales are made 25% • Desired ending finished goods inventory is 30% of the budgeted unit sales of the next quarter • Finished...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT