Changed the JSON generator to generate JSON that includes the correct answer for the expression.
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
__pycache__
|
__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:
|
class Expression:
|
||||||
expression = ""
|
expression = ""
|
||||||
|
correct_answer = 0
|
||||||
variables = []
|
variables = []
|
||||||
|
|
||||||
def __init__(self, expression_string, variables):
|
def __init__(self, expression_string, variables, correct):
|
||||||
self.expression = expression_string
|
self.expression = expression_string
|
||||||
self.variables = variables
|
self.variables = variables
|
||||||
|
self.correct_answer = correct
|
||||||
|
|
||||||
class Variable:
|
class Variable:
|
||||||
VARIABLE_TYPES = {
|
VARIABLE_TYPES = {
|
||||||
|
|||||||
@@ -66,6 +66,11 @@ def transform(object):
|
|||||||
raise TypeError("Only Books and Index will be JSON serialized!")
|
raise TypeError("Only Books and Index will be JSON serialized!")
|
||||||
|
|
||||||
exp = input("Enter the expression the student will use: ")
|
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)
|
tokens = tokenizer.get_tokens_from_expression_string(exp)
|
||||||
|
|
||||||
for t in tokens:
|
for t in tokens:
|
||||||
@@ -92,5 +97,5 @@ while True:
|
|||||||
print("Invalid selection %s." %(response))
|
print("Invalid selection %s." %(response))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
with open("data.json", "w", encoding="utf-8") as f:
|
with open("expression.json", "w", encoding="utf-8") as f:
|
||||||
json.dump(expression.Expression(exp, variables), f, default=transform, indent = 4)
|
json.dump(expression.Expression(exp, variables, correct_answer), f, default=transform, indent = 4)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import token
|
import token
|
||||||
import tokenizer
|
import tokenizer
|
||||||
|
import expression
|
||||||
import calc_engine
|
import calc_engine
|
||||||
import json
|
import json
|
||||||
|
|
||||||
@@ -9,6 +10,10 @@ fileLocation = input('File Path to JSON: ')
|
|||||||
|
|
||||||
#userInput = input('Enter your formula: ')
|
#userInput = input('Enter your formula: ')
|
||||||
tokens = tokenizer.get_tokens_from_expression_string("2 + 6 / 2")
|
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())
|
#results = calc_engine.calculate_results(tokens.copy())
|
||||||
#print(results)
|
#print(results)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user