Программа для создания калькулятора оценок на Python

Опубликовано: 5 Марта, 2022

Приведены разные баллы учащихся. Нам нужно найти оценки. Оценка за тест - это среднее значение соответствующих оценок, набранных в заданиях, тестах и лабораторных работах. Итоговая оценка за тест присваивается по формуле, приведенной ниже.

10% оценок, полученных при подаче заданий
70% оценок за тест
20% оценок набрано в Lab-Works


Оценка будет рассчитываться в соответствии с:

1. оценка> = 90: "А"
2. оценка> = 80: "B"
3. оценка> = 70: "C"
4. оценка> = 60: "D"

Также рассчитайте общую среднюю и буквенную оценку за класс.

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Below is the implementation :

# Python code for the Grade
# Calculator program in action
  
# Creating a dictionary which 
# consists of the student name,
# assignment result test results
# and their respective lab results
  
# 1. Jack"s dictionary
jack = { "name":"Jack Frost",
         "assignment" : [80, 50, 40, 20],
         "test" : [75, 75],
         "lab" : [78.20, 77.20]
       }
         
# 2. James"s dictionary
james = { "name":"James Potter",
          "assignment" : [82, 56, 44, 30],
          "test" : [80, 80],
          "lab" : [67.90, 78.72]
        }
  
# 3. Dylan"s dictionary
dylan = { "name" : "Dylan Rhodes",
          "assignment" : [77, 82, 23, 39],
          "test" : [78, 77],
          "lab" : [80, 80]
        }
          
# 4. Jessica"s dictionary
jess = { "name" : "Jessica Stone",
         "assignment" : [67, 55, 77, 21],
         "test" : [40, 50],
         "lab" : [69, 44.56]
       }
         
# 5. Tom"s dictionary
tom = { "name" : "Tom Hanks",
        "assignment" : [29, 89, 60, 56],
        "test" : [65, 56],
        "lab" : [50, 40.6]
      }
  
# Function calculates average 
def get_average(marks):
    total_sum = sum(marks)
    total_sum = float(total_sum)
    return total_sum / len(marks)
  
# Function calculates total average
def calculate_total_average(students):
    assignment = get_average(students["assignment"])
    test = get_average(students["test"])
    lab = get_average(students["lab"])
  
    # Return the result based
    # on weightage supplied
    # 10 % from assignments
    # 70 % from test
    # 20 % from lab-works
    return (0.1 * assignment +
            0.7 * test + 0.2 * lab)
  
  
# Calculate letter grade of each student
def assign_letter_grade(score):
    if score >= 90: return "A"
    elif score >= 80: return "B"
    elif score >= 70: return "C"
    elif score >= 60: return "D"
    else : return "E"
  
# Function to calculate the total
# average marks of the whole class
def class_average_is(student_list):
    result_list = []
  
    for student in student_list:
        stud_avg = calculate_total_average(student)
        result_list.append(stud_avg)
        return get_average(result_list)
  
# Student list consisting the
# dictionary of all students
students = [jack, james, dylan, jess, tom]
  
# Iterate through the students list
# and calculate their respective
# average marks and letter grade
for i in students :
    print(i["name"])
    print("=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
    print("Average marks of %s is : %s " %(i["name"],
                         calculate_total_average(i)))
                           
    print("Letter Grade of %s is : %s" %(i["name"],
    assign_letter_grade(calculate_total_average(i))))
      
    print()
  
  
# Calculate the average of whole class
class_av = class_average_is(students)
  
print( "Class Average is %s" %(class_av))
print("Letter Grade of the class is %s " 
        %(assign_letter_grade(class_av)))

Выход :

Джек Фрост
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + =
Средняя оценка Джека Фроста: 72,79 
Буквенная оценка Джека Фроста: C

Джеймс Поттер
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + =
Средняя оценка Джеймса Поттера: 75.962 
Буквенная оценка Джеймса Поттера: C

Дилан Роудс
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + =
Средняя оценка Дилана Роудса: 75.775 
Буквенная оценка Дилана Родса: C

Джессика Стоун
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + =
Средние оценки Джессики Стоун: 48.356 
Буквенная оценка Джессики Стоун: E

Том Хэнкс
= + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + = + =
Средняя оценка Тома Хэнкса: 57.26 
Буквенная оценка Тома Хэнкса: E

Средний класс 72,79
Буквенная оценка класса C