Testes de múltipla escolha

Published by persolut in

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 classe Testpaper deve implementar a interface ITestpaper fornecida no modelo de código, que tem as seguintes propriedades:

  1. string Subject
  2. string[] MarkScheme
  3. string PassMark

As interfaces não definem construtores para as classes que as implementam, portanto você precisará adicionar um método construtor que receba os parâmetros (string subject, string[] markScheme, string passMark).

Além disso, precisamos criar objetos de alunos para fazer o teste! Crie outra classe chamada Student que implemente a interface IStudent fornecida, que tem os seguintes membros:

  1. string[] TestsTaken
  2. void TakeTest(ITestpaper paper, string[] answers)

Exemplos

paper1 = new Testpaper("Maths", new string[] { "1A", "2C", "3D", "4A", "5A" }, "60%")
paper2 = new Testpaper("Chemistry", new string[] { "1C", "2C", "3D", "4A" }, "75%")
paper3 = new Testpaper("Computing", new string[] { "1D", "2C", "3C", "4B", "5D", "6C", "7A" }, "75%")

student1 = new Student()
student2 = new Student()
student1.TestsTaken ➞ { "No tests taken" }
student1.TakeTest(paper1, new string[] { "1A", "2D", "3D", "4A", "5A" })
student1.TestsTaken ➞ { "Maths: Passed! (80%)" }

student2.TakeTest(paper2, { "1C", "2D", "3A", "4C" })
student2.TakeTest(paper3, { "1A", "2C", "3A", "4C", "5D", "6C", "7B" })
student2.TestsTaken ➞ { "Chemistry: Failed! (25%)", "Computing: Failed! (43%)" }

Observações

  • Arredonde as porcentagens para o número inteiro mais próximo.
  • Lembre-se de que a propriedade TestsTaken deve retornar { "No tests taken" } quando nenhum teste tiver sido realizado ainda.
  • Quando um ou mais testes tiverem sido realizados, a propriedade TestsTaken deverá retornar um array de strings ordenado alfabeticamente pela matéria, no formato mostrado acima.