C/C++
Cи, модульное тестирование
Добрый вечер, не могли бы знающие люди помочь студенту. Я пытаюсь освоить модульное тестирование но не могу понять как сравнивать последовательные значения проходимые через scanf. в коде есть 3 последовательных перехода которые грубо говоря присваивают трем разным переменным подряд разные значения которые вводит сам пользователь а потом значение другой переменной увеличиваются в зависимости от трёх остальных. как сравнивать функцию такого типа ?
Создается строковой массив вопросов.
Создается массив правильных ответов (индекс соответствует номеру вопроса, значение по этому индексу - правильному ответу). Если правильных ответом может быть больше одного или разному ответу соответствуют разные баллы - то подойдет двумерный массив. где по индексу строки (номеру вопроса) и индексу столбца (полученному ответу) находится значение получаемого бала (помним что двумерный можно представить и в виде одномерного :)
Создается функция приема ответа на вопрос (для односимвольных значений лучше использовать функцию getchar или ее вариации т.е. ответ "1" воспринимать как char '1' с последующей конвертацией в значение int 1 Так легко исключить возможные ошибки из scanf связанные с неправильным вводом).
Функция принимает номер вопроса, массив ответов, массив вопросов возвращает балл, который суммируется в основной программе.
Создается массив правильных ответов (индекс соответствует номеру вопроса, значение по этому индексу - правильному ответу). Если правильных ответом может быть больше одного или разному ответу соответствуют разные баллы - то подойдет двумерный массив. где по индексу строки (номеру вопроса) и индексу столбца (полученному ответу) находится значение получаемого бала (помним что двумерный можно представить и в виде одномерного :)
Создается функция приема ответа на вопрос (для односимвольных значений лучше использовать функцию getchar или ее вариации т.е. ответ "1" воспринимать как char '1' с последующей конвертацией в значение int 1 Так легко исключить возможные ошибки из scanf связанные с неправильным вводом).
Функция принимает номер вопроса, массив ответов, массив вопросов возвращает балл, который суммируется в основной программе.
#include
#include
int ask(int num, const char* txt[], const int* val)
{
printf("%s\n", txt[num*5]);
for (int i = 0; i < 4; i++) printf("%d : %s\n", i + 1, txt[num*5 + i + 1]);
char ch;
do
{
ch = getch(); //или _getch для MSVS
} while (ch < '0' || ch>'4');
return val[num * 4 + ch - '1'];
}
int main()
{
const char* askstr[] = {
"How many money you need?","1 dollar","100 dollar","all money","nothing",
"What programming language do you learn now?","C++","C","Fortran","TurboBasic"};
const int values[] = {10,0,0,20,5,20,0,0};
int youvalue = 0;
for (int i = 0; i < 2; i++) youvalue += ask(i, askstr, values);
printf("You MIQ is:%d", youvalue);
}
А еще лучше вопросы и ответы хранить в виде структуры, чтобы не сбиваться какому вопросу какой ответ соответствует при наполнении базы.ты уверен, что тебе нужно тестировать именно ввод данных с клавиатуры, а не механизм получения четвертого значения из трех имеющихся?
Амантур Эсеналиев
Приложение выдаёт что-то вроде опросника где пользователь выбирает значения от 1 до 4 где предустановлены ответы на вопрос. условный ответ 2 на вопрос номер один добавляет потом 20 к переменной v так же различные значения добавляют и остальные вопросы. в итоге получается число которое подаётся уже в другую функцию и выводит ячейку массива со структурой, с номером который в итоге получила переменная во время опросника . Нужно проверить чтобы ввод данных с клавиатуры уже во время работы приложения корректно проверялся на то что были введены значения которые удовлетворяют условиям опросника.
Похожие вопросы
- Тестирование метода Stack
- Функцию или оператор надо сделать для класса? Cи++
- Задание на языке Cи
- C++ тестирование сириус задача8
- Модульные круглогодичные дома
- Объясните простым языком что это значит "модульного типа" что это значит? Что значит "трудно герметизируются"?
- Как подобрать установку водоподготовки воды? Блочно модульные установки водоподготовки для котельной установки, цена?
- Стоит ли строить модульный дом?
- Здравствуйте. У меня вопрос. Ребенку три года, он идет на тестирование в логопедическую группу. Можно ли присутствоват
- Я программист java,c++,c#,cи, нужен ли я кому нибудь?