Здравствуй, Уважаемый! 
 
Прошу помощи в решении нелегкой задачи создания калькулятора с помощью javascript, jquery или даже angular.js 

 Для более детального пояснения задачи прикладываю jpg, чтобы наглядно объяснить, чего пытаюсь добиться.
Подскажите, пожалуйста, методы решения следующей задачи:
Хочу создать калькулятор, где input'ы будут 
зависимы друг от друга, и в зависимости от их значений будет выполняться расчет стоимости. Я уже замучился в поиске решений или похожих примеров, для решения моей задачи - всё безуспешно 
1. Первая часть состоит из 4-х форм (
x, y, z и 
суммы), где значения 
y и 
z меняются в зависимости от нажатия на 
1, 2, 3. Значение 
x заполняется вручную. 
Сумма считается посредством умножения 
x, y, z.
2. Вторая часть состоит из 6-и форм (
A,B,C,D,E,F), где значение 
A берется из 
y (или так же, как и 
y, при нажатии на 
1,2,3). Форма 
B заполняется вручную с клавиатуры. Значение 
C берет уже заполненное значение 
B и прибавляет 5%. Форма 
E берет уже посчитанное значение 
C и умножает на 
y (которое уже определено в п.1). Значение 
F вводится вручную с клавиатуры. Форма 
D показывает результат 
F деленное на 
A.
3. Третья часть состоит из объединения п.1 и п.2, т.е. общего результата проделанного расчета. Эти последние 9 форм могут быть простыми неактивными input'ами или span'ами.
Форма 
I берет уже посчитанное значение 
C. Форма 
L берет уже посчитанное значение 
E. А форма 
O умножает посчитанное 
E на 
D.
Форма 
H берет введенное значение 
B. Форма 
K берет введенное значение 
B и умножает на 
A (либо 
y), затем плюсует 
сумму. Форма 
N берет посчитанное значение 
K и умножает на посчитанное ранее 
D.
Форма 
G выдает результат вычитания 
I - 
H, форма 
J вычитание 
L - 
K, ну а 
M O - 
N.
На практике можно обойтись без 
A,H,I,L, потому что они всё равно дублируют значения указанные ранее. В jpg файле оранжевые поля означают, что ввод в них производится с клавиатуры. Форма 
C оранжевого цвета так же означает, что она может быть изменена, но не повлияет на 
B, а только лишь на 
E и 
O (и 
L, когда будет туда передаваться).
Вот я и ломаю голову, как всё это связать вместе. Ведь иерархия вычислений прослеживается, а как брать результат из вычислимого input'а не понимаю 
 
Подскажите, пожалуйста, метод создания такой формы или похожий пример, где можно было бы подсмотреть похожую реализацию. Буду безгранично благодарен!!!