Skip to content

navanizard/Study-Guide-CLI

Repository files navigation

Study Guide CLI

This is a command-line study guide application written in C++ that dynamically generates and adjusts quizzes based on user performance. It was developed as a project for CSCI 135: Software Analysis & Design I at Hunter College, where we were encouraged to iteratively build upon our code each week — refining functionality, improving logic, and eventually creating a complete study tool.

What started as a small assignment grew into something genuinely useful. I actually used this project to prepare for my midterm and found it incredibly helpful for reinforcing concepts we’d learned in class.

🧠 How It Works

When the program runs, it reads from a file of pre-written question-answer pairs and presents them to you one at a time. It tracks your performance across the quiz and displays your results at the end.

The key features include:

  • Adaptive Prioritization: If you answer a question incorrectly three times, the program identifies its topic and flags all questions with that same topic as a top priority. Those questions move up in the queue so you can focus on your weaker areas.
  • 🔀 Randomized Practice: To prevent memorization and encourage real understanding, the program randomly shuffles the order of questions (except for those prioritized by difficulty).
  • 📝 Built-In Grading: At the end of your session, you’ll get a summary of how you did — including how many questions you got right and your overall accuracy percentage.

This approach mimics spaced repetition and helps improve retention through targeted review.

The code is modular and includes:

  • main.cpp: The driver file that runs the program loop.
  • quiz.cpp: Functions for reading questions, tracking attempts, and ordering the quiz strategically.
  • Text files: These files contain the quiz questions and answers.

📸 Screenshots

Welcome Screen:

Welcome Screen

Sample Question:

Sample Question Answered Incorrectly

Final Results:

Results

🚀 Getting Started

To compile and run the project:

  1. Clone the repository:

    git clone https://github.com/your-username/Study-Guide-CLI.git
  2. Navigate to the project directory:

    cd Study-Guide-CLI
  3. Compile the code using the g++ compiler with the C++20:

     g++ -std=c++20 -o study-guide main.cpp quiz.cpp
    
  4. Run the executable:

    ./study-guide

You can modify the question file or create your own using a simple text format.

📚 Educational Purpose

This project reflects my journey learning C++ — from simple I/O and file processing to more advanced concepts like arrays, pointers, classes, and data tracking. Building this project helped me practice debugging, modular design, and real-world application of class materials.

More importantly, it gave me something practical that I could use to study smarter, not just harder.

🔐 License

This project is licensed under the MIT License. See the LICENSE file for more details.

🙏 Credits

  • Huge appreciation to Professor Tong Yi, whose question files and feedback laid the groundwork for this tool.
  • Special thanks to the CS teaching staff at Hunter College for their guidance throughout the semester.

About

A C++ command-line quiz program that tracks progress, adapts to your weaknesses, and helps you study— originally built to prep for CSCI 135 exams at Hunter College.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages