forked from LaunchCodeEducation/Candidate-Testing-Autograded
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcandidate-testing.js
79 lines (68 loc) · 2.77 KB
/
candidate-testing.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
const input = require('readline-sync');
// TODO 2: modify your quiz app to ask 5 questions //
// TODO 1.1a: Define candidateName //
let candidateName = "";
// TODO 1.2a: Define question, correctAnswer, and candidateAnswer //
let question = "Who was the first American woman in space? ";
let correctAnswer = "Sally Ride";
let candidateAnswer = "";
//TODO: Variables for Part 2
let questions = ["Who was the first American woman in space? ",
"True or false: 5 kilometer == 5000 meters? ",
"(5 + 3)/2 * 10 = ? ",
"Given the array [8, 'Orbit', 'Trajectory', 45], what entry is at index 2? ",
"What is the minimum crew size for the ISS? "];
let correctAnswers = ["Sally Ride", "true", "40", "Trajectory", "3"];
let candidateAnswers = [];
function askForName() {
// TODO 1.1b: Ask for candidate's name //
candidateName = input.question("Please enter your name here: ");
}
function askQuestion() {
// TODO 1.2b: Ask candidate the question and assign the response as candidateAnswer //
for (let i = 0; i < questions.length; i++) {
candidateAnswers.push(input.question(questions[i]));
}
}
function gradeQuiz(candidateAnswers) {
let numCorr = 0;
// TODO 1.2c: Let the candidate know if they have answered the question correctly or incorrectly //
// Lower case vs upper case - I don't know that it matters but visually I think lowercase would be better
// if leave off i for candidate answers all answers show up
for (let i = 0; i < candidateAnswers.length; i++)
{
if (candidateAnswers[i].toLowerCase() === correctAnswers[i].toLowerCase()){
numCorr++;
console.log(`Great job! Your answer is correct: ${candidateAnswers[i]}`)
} else {
console.log(`Oh no! Your answer is wrong: ${candidateAnswers[i]}`);
}
}
// the template literal fixe
//TODO 3.2 use this variable to calculate the candidates score. //changed questions.length instead of 5 and instead of else if stmts just made it a break for 80 with a grade and it worked!
let grade = numCorr/(questions.length)*100;
if (grade >= 80) {
console.log(`Wow, you passed with ${numCorr} out of ${questions.length}. Your grade is ${grade}%`);
} else { console.log (`Yikes! You did not pass with ${numCorr} out of ${questions.length}. Your grade is ${grade}%`);
}
return grade;
}
function runProgram() {
askForName();
// TODO 1.1c: Greet candidate using their name //
console.log( "Welcome," + candidateName);
askQuestion();
gradeQuiz(this.candidateAnswers);
}
// ----------- Don't write any code or change any code below this line ---------- //
module.exports = {
candidateName: candidateName,
question: question,
correctAnswer: correctAnswer,
candidateAnswer: candidateAnswer,
questions: questions,
correctAnswers: correctAnswers,
candidateAnswers: candidateAnswers,
gradeQuiz: gradeQuiz,
runProgram: runProgram
};