Hello I am currently taking a course in Data Structures with

Hello, I am currently taking a course in Data Structures with Python. Here is my question:

In this assignment, we will develop an algorithm to calculate the final grade for a class of 15 students. There are 5 assignments (20 points each) as well a midterm and a final (100 points each). Another 10 points are for in-class participation.

All the assignments and tests contribute to the final grade equally. Additionally, the in-class participation (either thru Discussions or in real-time) is also a part of the final grade.

What I have so far:

# Steven Ochoa
# Assignment_1.py


class Student:

name = \"\"
net_id = \"\"
final_grade = \"\"
let_grade = \"\"

# Class Constructor
def __init__(self, name, net_id, final_grade, let_grade):
self.name = name
self.netID = net_id
self.final_grade = final_grade
self.letter_grade = let_grade

# Print student-line
def print_student(self):
print(self.formatTemplate.format(self.studentID, self.studentName, self.assignmentSum, self.midterm, self.final,
slef.participation, self.totalGrade, self.letterGrade))
  
def add_grades ():

# Gathering grades for the 5 assignments
print(\"Insert assignment grades (20 point scale):\")
  
assignment1, assignment2, assignment3, assignment4, assignment5 = eval(input(\"Enter your assignment grades:\"))

# Total grade for Assignments

total = (assignment1+assignment2+assignment3+assignment4+assignment5)

# Gathering grades for the Mid-Term and the Final
print(\"Insert exam grades (100 point scale):\")
  
mid_term = eval(input(\"Midterm grade:\"))
final = eval(input(\"Final grade:\"))

# Exam Average
exam_average = (final + mid_term)/2

# Participation points
print(\"Insert participation grade (10 point scale) :\")
  
participation = eval(input(\"Participation:\"))

# Final grade report
final_grade = (total*0.45) + (exam_average*0.45) + participation

return final_grade

def letter_grade(final_grade):

# Calculates the letter grade
str(final_grade)

if final_grade > 100:
return \"Error!\"
if 100 >= final_grade > 89:
return \"Final grade:\", final_grade, \"A\"
if 89 >= final_grade > 79:
return \"Final grade:\", final_grade, \"B\"
if 79 >= final_grade > 69:
return \"Final grade:\", final_grade, \"C\"
if 69 >= final_grade > 59:
return \"Final grade:\", final_grade, \"D\"
if 59 >= final_grade > 0:
return \"Final grade:\", final_grade, \"F\"
if 0 > final_grade:
return \"ERROR!\"

def main(letter_grade, final_grade):

# Introduction to the program
print(\"This program calculates your Final Grade.\")

# Set up loop for multiple students
student_list = []
another_student = \"yes\"

while another_student == \"yes\":
# Adding another student
# Gathering Student Information
name = input(\"What is the student\'s name?:\")
net_id = input(\"What is the student\'s net-ID?:\")

f_grade = add_grades
let_grade = letter_grade(final_grade)

studentList.append[(name, net_id, f_grade, let_grade)]
another_student = input(\"Add another student? Enter yes or no\")
  
# Create a header
# Print table in a loop
for student in range(5):
print(\"Student Name:\", name, \"Net-ID:\", net_id, \"Final Grade:\", f_grade, \"Letter Grade:\", let_grade)
print()
main()

The program runs, but it messes up after I input the student id.

Solution


#Modified assignment program
#The python program that runs on 3.4.3
# Assignment_1.py
class Student:
    name = \"\"
    net_id = \"\"
    final_grade = \"\"
    let_grade = \"\"

    # Class Constructor
    def __init__(self, name, net_id, final_grade, let_grade):
        self.name = name
        self.netID = net_id
        self.final_grade = final_grade
        self.letter_grade = let_grade

    # Print student-line
    def print_student(self):
        print(self.formatTemplate.format(self.studentID, self.studentName, self.assignmentSum, self.midterm, self.final,
                                         slef.participation, self.totalGrade, self.letterGrade))
      
def add_grades ():

        # Gathering grades for the 5 assignments
        print(\"Insert assignment grades (20 point scale):\")
  
        assignment1, assignment2, assignment3, assignment4, assignment5 = eval(input(\"Enter your assignment grades:\"))

        # Total grade for Assignments

        total = (assignment1+assignment2+assignment3+assignment4+assignment5)

        # Gathering grades for the Mid-Term and the Final
        print(\"Insert exam grades (100 point scale):\")
  
        mid_term = eval(input(\"Midterm grade:\"))
        final = eval(input(\"Final grade:\"))

        # Exam Average
        exam_average = (final + mid_term)/2

        # Participation points
        print(\"Insert participation grade (10 point scale) :\")
      
        participation = int(input(\"Participation:\"))

        # Final grade report
        final_grade = (total*0.45) + (exam_average*0.45) + participation

        return final_grade

def letter_grade(final_grade):

    # Calculates the letter grade
    str(final_grade)

    if final_grade > 100:
        return \"Error!\"
    if 100 >= final_grade > 89:
        return \"Final grade:\", final_grade, \"A\"
    if 89 >= final_grade > 79:
        return \"Final grade:\", final_grade, \"B\"
    if 79 >= final_grade > 69:
        return \"Final grade:\", final_grade, \"C\"
    if 69 >= final_grade > 59:
        return \"Final grade:\", final_grade, \"D\"
    if 59 >= final_grade > 0:
        return \"Final grade:\", final_grade, \"F\"
    if 0 > final_grade:
        return \"ERROR!\"

#remove arguments to main
def main():

    # Introduction to the program
    print(\"This program calculates your Final Grade.\")

    # Set up loop for multiple students
    studentList = []
    another_student = \"yes\"
       
    while another_student == \"yes\":
        # Adding another student
        # Gathering Student Information
        name = input(\"What is the student\'s name?:\")
        net_id = int(input(\"What is the student\'s net-ID?:\"))

        f_grade = add_grades()
        let_grade = letter_grade(f_grade)
        #Modification
        #studentList name should as declared studentList
        studentList.append([name, net_id, f_grade, let_grade])
        another_student = input(\"Add another student? Enter yes or no\")
      
    # Create a header
    # Print table in a loop
    #Modification only print for given students in len(studentList)
    for student in range(len(studentList)):
        print(\"Student Name:\", name, \"Net-ID:\", net_id, \"Final Grade:\", f_grade, \"Letter Grade:\", let_grade)
        print()
main()


--------------------------------------------------

Sample Output:

>>> ================================ RESTART ================================
>>>
This program calculates your Final Grade.
What is the student\'s name?:r
What is the student\'s net-ID?:1
Insert assignment grades (20 point scale):
Enter your assignment grades:20,20,20,20,20
Insert exam grades (100 point scale):
Midterm grade:20
Final grade:20
Insert participation grade (10 point scale) :
Participation:1
Add another student? Enter yes or nono
Student Name: r Net-ID: 1 Final Grade: 55.0 Letter Grade: (\'Final grade:\', 55.0, \'F\')

Hello, I am currently taking a course in Data Structures with Python. Here is my question: In this assignment, we will develop an algorithm to calculate the fin
Hello, I am currently taking a course in Data Structures with Python. Here is my question: In this assignment, we will develop an algorithm to calculate the fin
Hello, I am currently taking a course in Data Structures with Python. Here is my question: In this assignment, we will develop an algorithm to calculate the fin
Hello, I am currently taking a course in Data Structures with Python. Here is my question: In this assignment, we will develop an algorithm to calculate the fin

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site