From fb3e5bea9ab0e1f220d7cb3a9a0871e445f83e46 Mon Sep 17 00:00:00 2001 From: Satvik-Singh192 Date: Thu, 13 Nov 2025 10:40:13 +0530 Subject: [PATCH] feat: added typing speed tester --- Src/TypingSpeedTester/TypingSpeedTester.cpp | 73 ++++++++++++++++++++ Src/TypingSpeedTester/TypingSpeedTester.exe | Bin 0 -> 122826 bytes 2 files changed, 73 insertions(+) create mode 100644 Src/TypingSpeedTester/TypingSpeedTester.cpp create mode 100644 Src/TypingSpeedTester/TypingSpeedTester.exe diff --git a/Src/TypingSpeedTester/TypingSpeedTester.cpp b/Src/TypingSpeedTester/TypingSpeedTester.cpp new file mode 100644 index 0000000..41775c0 --- /dev/null +++ b/Src/TypingSpeedTester/TypingSpeedTester.cpp @@ -0,0 +1,73 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; +using namespace std::chrono; + +string getRandomSnippet() { + vector snippets = { + "for(int i = 0; i < n; ++i) cout << arr[i] << ' ';", + "if(a > b) swap(a, b);", + "while(left <= right) mid = (left + right) / 2;", + "vector nums = {1, 2, 3, 4, 5};", + "cout << \"Hello, World!\" << endl;" + }; + srand((unsigned) time(0)); + return snippets[rand() % snippets.size()]; +} + +int countMistakes(const string& original, const string& typed) { + int mistakes = 0; + int len=max(original.size(), typed.size()); + for (int i = 0; i < len; ++i) { + if (i>=original.size()||i>=typed.size()||original[i]!=typed[i]) + mistakes++; + } + return mistakes; +} + +void showResults(const string& snippet, const string& typed, double duration) { + int totalChars=snippet.size(); + int mistakes=countMistakes(snippet, typed); + double accuracy=((double)(totalChars - mistakes) / totalChars) * 100.0; + + double minutes = duration/60.0; + double wpm = (typed.size()/5.0)/minutes; + + cout << "\n\n========== RESULTS ==========\n"; + cout << "Time Taken: " << fixed << setprecision(2) << duration << " seconds\n"; + cout << "Mistakes: " << mistakes << "\n"; + cout << "Accuracy: " << fixed << setprecision(2) << accuracy << "%\n"; + cout << "Typing Speed: " << fixed << setprecision(2) << wpm << " WPM\n"; + cout << "=============================\n\n"; +} + +int main() { + cout << "==============================\n"; + cout << " Code Typing Speed Tester\n"; + cout << "==============================\n\n"; + + string snippet = getRandomSnippet(); + cout << "Type the following code snippet exactly as shown:\n\n"; + cout << "-> " << snippet << "\n\n"; + cout << "Press ENTER when you’re done typing.\n\n"; + + cout << "Start typing below:\n> "; + auto start = high_resolution_clock::now(); + + string typed; + getline(cin, typed); + + auto end = high_resolution_clock::now(); + duration diff = end - start; + + showResults(snippet, typed, diff.count()); + + cout << "Thank you for using the Code Typing Speed Tester!\n"; + return 0; +} diff --git a/Src/TypingSpeedTester/TypingSpeedTester.exe b/Src/TypingSpeedTester/TypingSpeedTester.exe new file mode 100644 index 0000000000000000000000000000000000000000..2b27fe87f1cf107448e0affbded00b9864792f42 GIT binary patch literal 122826 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

OE&KQLf+1h?A98VI~SNj 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