Member 13757304 Ответов: 3

Я не знаю, как сделать этот вопрос, не могли бы вы помочь мне решить эту проблему с помощью массива и методов в C#?


Вы должны написать программу, чтобы отметить экзамен с множественным выбором, который будут писать студенты. Правильные ответы таковы::

 1. E   2. D   3. D
 4. B   5. A   6. C
 7. E   8. B   9. D
10. C  11. D  12. A
13. A  14. D  15. D
16. E  17. A  18. E
19. A  20. D


Чтобы сдать экзамен, студент должен правильно ответить на 15 из 20 вопросов. Экзаменационные вопросы печатаются на бумаге, и студенты вводят свои ответы на вопросы с помощью написанной вами программы. После того как студенты введут все ответы на вопросы, программа либо выведет сообщение о том, что они сдали экзамен и общее количество правильных ответов, либо сообщение о том, что они провалили экзамен и общее количество неправильных ответов, а также список номеров вопросов, которые студент пропустил.

Что я уже пробовал:

Не знаю, как это сделать, и мне немного трудно решить этот вопрос и немного запутаться в этом.

PIEBALDconsult

Напишите его любым удобным вам способом. Но вы должны это написать.

3 Ответов

Рейтинг:
1

OriginalGriff

Начните с чтения входных данных от пользователя и хранения их в массиве - это должно быть просто для вас, это, вероятно, просто расширение вашего предыдущего домашнего задания и хранение результатов в массиве.
Когда он введет их все, проверьте, что он доволен своими ответами, а затем повторите его ответы, сравнивая их с правильными значениями.
Вероятно, самый простой способ сделать это-сохранить ответы в виде массива символов, и это очень просто сделать:

char[] correct = "EDDBAC...".ToArray();

Тогда все, что вам нужно сделать, это проверить его результат и распечатать его оценку.

Делайте это поэтапно и тестируйте каждый этап по мере прохождения - это не сложно, и вы должны быть в состоянии сделать это довольно быстро, немного подумав.
Дайте ему попробовать!


Рейтинг:
0

PIEBALDconsult

Во-первых, напишите функцию, которая вычисляет расстояние Левенштейна между двумя строками.
Расстояние Левенштейна - Википедия[^]

Затем используйте его для сравнения тестовых ответов студента с ключом ответа.

string key =
@"
 1. E   2. D   3. D
 4. B   5. A   6. C
 7. E   8. B   9. D
10. C  11. D  12. A
13. A  14. D  15. D
16. E  17. A  18. E
19. A  20. D
" ;

string test =
@"
 1. E   2. D   3. D
 4. B   5. A   6. C
 7. A   8. B   9. D
10. C  11. D  12. A
13. A  14. B  15. D
16. E  17. A  18. E
19. A  20. D
" ;

System.Console.WriteLine ( Levenshtein ( test , key ) ) ;


Результатом является количество неверных ответов.
Может потребоваться некоторая незначительная нормализация строк.

Сделано.


Рейтинг:
0

Patrice T

Цитата:
Не знаю, как это сделать, и мне немного трудно решить этот вопрос и немного запутаться в этом.

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

Использование некоторых методов анализа поможет вам, Метод Дейкстры сверху вниз это хорошее начало.
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]