Inspiration

Growing up, we did not have enough resources to practice math and the teacher could only give so many. Now, our siblings face the same problem. We were inspired to create MathQuizzies to help others practice and perfect their math skills. It can also serve as a useful program to replenish your math skills during the summer when everyone has taken a break from math. The core of MathQuizzies aims to help students, from our state, our nation, and even the world with math. No one should have to sacrifice their skills because they don't have quick access to math resources or because their materials are too boring.

What it does

The program first displays a menu with each number representing a math course and the number ten as exit. It then prompts the user to enter a number and navigates the user to the corresponding questions for that course. The user gets two tries on each question and the program does a good job of counting the score and the accuracy. If the accuracy is above 0.875, it sends a message that congratulates the user for mastering this skill. If below, it provides a link to a spreadsheet of more resources for the user to learn the material and then come back to. After the user has finished entering all the answers, the program loops again and provides the menu once more. At this time, the user can then enter a new number for a new math course, or they can exit the loop and program will stop.

How we built it

We built the program with java, using two classes: Main and Course. The Course class is a blueprint for each course and its questions and answers. Every instance of the Course class is a different math course we provide. The Main class has the while loop and instantiates the objects of the course class. The menu and program is in a driven loop that only stops when the user entered number is 10. In the Course class, the majority of the work happens in the method QuizTime where it consists of a nested while loop in a for loop that counts the score, accuracy, and the number of tries the user gets. It outputs a string URL for the resource spreadsheet if the user gets the answer wrong two times. The Course class also has some accessor methods to access the score and accuracy in the main class.

Challenges we ran into

Because we were mostly beginners, it was very difficult to first understand classes and methods. We didn't know that data members had to be private and how objects of classes worked. Then, our menu loop in the main class didn't work because we somehow had an infinite loop. Luckily, we removed a line out of the loop and that fixed it.

Accomplishments that we're proud of

We are very proud that we were able to successfully create new classes and the instances of each class actually worked. We are proud of our dedication to this program and the determination we had to finish this on time.

What we learned

We learned that for loops can actually be very tricky and it is best to be very careful when using nested loops. Also, specifically, we learned about the continue and break function in java that lets us break out of a for loop to go to the next one or to break out of a while loop. We learned that program often take a lot of time and you shouldn't expect it to work right away.

What's next for MathQuizzies

With some time, we hope to expand our program to include subtopics for each course and then maybe hyperlink a URL that navigates the user to a Youtube channel where we teach math workshops.

Built With

Share this project:

Updates