Testes de múltipla escolha
Sua tarefa é escrever um programa que permita aos professores criar um teste de múltipla escolha em uma classe chamada Testpaper e também atribuir uma nota mínima para aprovação. A matéria do teste também deve ser incluída. Os atributos estão na seguinte ordem:
subjectmarkschemepass_mark
Além disso, precisamos criar objetos de alunos para fazer o teste! Crie outra classe chamada Student e faça o seguinte:
- Crie um atributo chamado
tests_takene defina'No tests taken'como valor padrão. - Crie um método chamado
take_test(), que receba o objeto testpaper que eles estão realizando e as respostas do aluno. Compare o que eles escreveram com o gabarito e adicione ao/crie um dicionário atribuído atests_takenda maneira mostrada no ponto abaixo. - Cada chave do dicionário deve ser a matéria do teste e cada valor deve ser uma string no formato mostrado nos exemplos abaixo (se o aluno foi reprovado ou não, e sua porcentagem entre parênteses).
Exemplos
paper1 = Testpaper("Maths", ["1A", "2C", "3D", "4A", "5A"], "60%")
paper2 = Testpaper("Chemistry", ["1C", "2C", "3D", "4A"], "75%")
paper3 = Testpaper("Computing", ["1D", "2C", "3C", "4B", "5D", "6C", "7A"], "75%")
student1 = Student()
student2 = Student()student1.tests_taken ➞ "No tests taken"
student1.take_test(paper1, ["1A", "2D", "3D", "4A", "5A"])
student1.tests_taken ➞ {"Maths" : "Passed! (80%)"}
student2.take_test(paper2, ["1C", "2D", "3A", "4C"])
student2.take_test(paper3, ["1A", "2C", "3A", "4C", "5D", "6C", "7B"])
student2.tests_taken ➞ {"Chemistry" : "Failed! (25%)", "Computing" : "Failed! (43%)"}Observações
- Arredonde as porcentagens para o número inteiro mais próximo.
- Lembre-se de que o atributo
tests_takendeve retornar 'No tests taken' quando nenhum teste tiver sido realizado ainda.