You could make yourself a text based relational database using a CSV format:
users.csv
1 2 3
|
id,name
1,John
2,Sarah
|
questions.csv
1 2 3
|
id,question,answer
1,What is 10 times 10,100
2,What is 10 times 20,200
|
user_questions.csv
1 2
|
id,user_id,question_id,correct
1,1,1,false
|
Say John logs in and we want to know his progress Look up his name in users.csv and find his id. Then collect all of the lines in user_questions.csv where the value in the user_id column is equal to John's id. These are the questions he has answered. You can use this list to find questions he has not answered in questions.csv.
So you basically need 4 classes here, User, Question, UserQuestion, and a class to read and manipulate a csv file.
For example, Sarah logs in. Her id can't be found in user_questions.csv, so she hasn't answered any questions. We retrieve a list of all of the questions, and offer them to her to answer. Say she answers question 1 with 100, which is correct. We add a line to user_questions.csv "2,2,1,true". The first 2 is the id of the UserQuestion, it is a new entry, so it gets an id one greater than the last entry. The second two is Sarah's id. The one is the id of the question, and the true is the fact that she got it correct.
This set up is pretty powerful. For example, with this data you can get information like "what percentage of users got question 1 correct?".