Changed the JSON generator to generate JSON that includes the correct answer for the expression.
This commit is contained in:
@@ -1 +1,2 @@
|
||||
__pycache__
|
||||
*.json
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
class Expression:
|
||||
expression = ""
|
||||
variables = []
|
||||
|
||||
def __init__(self, expression_string, variables):
|
||||
self.expression = expression_string
|
||||
self.variables = variables
|
||||
|
||||
class Variable:
|
||||
VARIABLE_TYPES = {
|
||||
"i" : "Interest",
|
||||
"I" : "Interest",
|
||||
"n" : "Time",
|
||||
"N" : "Time"
|
||||
}
|
||||
|
||||
def __init__(self, name, type, starting_point = 0, ending_point = 0):
|
||||
self.name = name
|
||||
self.type = type
|
||||
self.starting_point = starting_point
|
||||
self.ending_point = ending_point
|
||||
|
||||
@staticmethod
|
||||
def get_variable_type(variable_name):
|
||||
if not variable_name in Variable.VARIABLE_TYPES:
|
||||
return "Unknown"
|
||||
return Variable.VARIABLE_TYPES[variable_name]
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"expression": "i + 2 + n",
|
||||
"variables": {
|
||||
"n1": {
|
||||
"name": "n1",
|
||||
"type": "Unknown",
|
||||
"starting_point": 0,
|
||||
"ending_point": 0
|
||||
},
|
||||
"i1": {
|
||||
"name": "i1",
|
||||
"type": "Unknown",
|
||||
"starting_point": 0,
|
||||
"ending_point": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
class Expression:
|
||||
expression = ""
|
||||
correct_answer = 0
|
||||
variables = []
|
||||
|
||||
def __init__(self, expression_string, variables):
|
||||
def __init__(self, expression_string, variables, correct):
|
||||
self.expression = expression_string
|
||||
self.variables = variables
|
||||
self.correct_answer = correct
|
||||
|
||||
class Variable:
|
||||
VARIABLE_TYPES = {
|
||||
|
||||
@@ -66,6 +66,11 @@ def transform(object):
|
||||
raise TypeError("Only Books and Index will be JSON serialized!")
|
||||
|
||||
exp = input("Enter the expression the student will use: ")
|
||||
correct_answer = input("Enter the correct anwser for the expression: ")
|
||||
try:
|
||||
correct_answer = float(correct_answer)
|
||||
except ValueError:
|
||||
print("The anwser must be numeric! Will not be included in output file.")
|
||||
tokens = tokenizer.get_tokens_from_expression_string(exp)
|
||||
|
||||
for t in tokens:
|
||||
@@ -92,5 +97,5 @@ while True:
|
||||
print("Invalid selection %s." %(response))
|
||||
continue
|
||||
|
||||
with open("data.json", "w", encoding="utf-8") as f:
|
||||
json.dump(expression.Expression(exp, variables), f, default=transform, indent = 4)
|
||||
with open("expression.json", "w", encoding="utf-8") as f:
|
||||
json.dump(expression.Expression(exp, variables, correct_answer), f, default=transform, indent = 4)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import token
|
||||
import tokenizer
|
||||
import expression
|
||||
import calc_engine
|
||||
import json
|
||||
|
||||
@@ -9,6 +10,10 @@ fileLocation = input('File Path to JSON: ')
|
||||
|
||||
#userInput = input('Enter your formula: ')
|
||||
tokens = tokenizer.get_tokens_from_expression_string("2 + 6 / 2")
|
||||
with open("expression.json", "r") as f:
|
||||
j = json.load(f)
|
||||
exp = expression.Expression(json.loads(j))
|
||||
print(exp)
|
||||
#results = calc_engine.calculate_results(tokens.copy())
|
||||
#print(results)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user