When I first started my Fundamentals of Programming course, C++ was just a collection of syntax rules—cout, cin, int, for. The final project was my chance to turn those rules into something real, something that worked. I decided to build the "CBT - Computer Based Test," and this is the story of how I did it. What Inspired Me The inspiration was twofold. First, I wanted to build something that was interactive and relatable. As a student, I'm all too familiar with tests and quizzes, so creating my own Computer-Based Test (CBT) felt like a natural fit. Second, the idea was a perfect "final exam" for my C++ skills. A quiz app requires almost every concept I had learned. It needed user input (cin), output (cout), complex decisions (if-else and switch-case), and repetition (do-while loops). It was the ideal way to prove to myself that I had mastered the fundamentals. How I Built It I knew from the start that planning was everything. I began by drafting a detailed project proposal that became my roadmap. I decided to structure the app into four distinct modules, one for each quiz category. I was responsible for creating all of them: The IQ Section The English Section The Computer Science Section The Physics Section The "brain" of the program is a switch-case statement. When the user picks a category, the switch statement directs the program to the correct block of code (the module I built). The entire game is wrapped in a do-while loop. This was a key feature for me. It runs the game at least once, and at the very end, it asks, "Play again? (Y/N)". If the user enters 'y', the loop—and the fun—starts all over again. The Challenges I Faced No project is without its challenges. My biggest hurdle was just managing the sheer volume of code for a solo project. With four modules, each containing 10 questions, the main .cpp file became very long. Keeping the code clean, organized, and readable was a challenge in itself. The trickiest bug I found during testing was in the "Play Again" feature. A user would finish a game with a score of, say, 7/10. But when they chose to play again, they started the new game with their score still at 7! I realized I wasn't resetting the score = 0; variable inside the loop. It was a simple fix, but finding it taught me a lot about managing a program's "state." What I Learned This project taught me more than just how to use a switch statement or a do-while loop. Planning is Everything: The project proposal I wrote wasn't just a document for my instructor; it was my essential roadmap. Without it, I would have been lost. Code Organization is Key: As a solo developer, it's tempting to write messy code. I learned that organizing code into logical blocks (like my modules) is crucial for being able to find and fix bugs. Debugging is 90% of the Work: Writing the code was the easy part. Finding out why it didn't work was the real challenge. It taught me to be patient and methodical.## Inspiration.
Log in or sign up for Devpost to join the conversation.