Pruebas de opción múltiple
Tu tarea es escribir un programa que permita a los profesores crear una prueba de opción múltiple en una clase llamada Testpaper y también poder asignar una calificación mínima para aprobar. La clase Testpaper debe implementar la interfaz ITestpaper proporcionada en la plantilla de código, que tiene las siguientes propiedades:
string Subjectstring[] MarkSchemestring PassMark
Las interfaces no definen constructores para las clases que las implementan, por lo que tendrás que agregar un método constructor que reciba los parámetros (string subject, string[] markScheme, string passMark).
Además, ¡debemos crear objetos de estudiantes para realizar la prueba! Crea otra clase llamada Student que implemente la interfaz IStudent proporcionada, que tiene los siguientes miembros:
string[] TestsTakenvoid TakeTest(ITestpaper paper, string[] answers)
Ejemplos
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%)" }Notas
- Redondea los porcentajes al número entero más cercano.
- Recuerda que la propiedad
TestsTakendebe devolver{ "No tests taken" }cuando todavía no se haya realizado ninguna prueba. - Cuando se haya realizado una o más pruebas, la propiedad
TestsTakendebe devolver un arreglo de cadenas ordenado alfabéticamente por asignatura, en el formato mostrado arriba.