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')
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.