Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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

ID: 3787951 • Letter: H

Question

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.

Explanation / Answer


#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')

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote