veras.. cuando estas en tu calculadora, si tienes digitado 14 + 5.. y das click en el boton [ + ] muestras el resultado y esperas un numero nuevo.. pero si en vez de eso lo que esta escrito es: 14 + 5 * ... (sin numero al final) a la espera de un nuevo digito, podrias hacer una funcion que saque la ultima letra de la cadena de la operacion y pregunte si es un numero, si lo es, ejecuta la operacion y pide un valor, sino, cambiale esa letra por la letra correspondiente a la tecla que acabo de presionar...
Con respecto al porcentaje, por lo menos en la calculadora de windows.. este funciona dividiendo el ultimo digito por 100 y ejecutando una operacion (si la hay) con el penultimo: osea..
en tu calc: 14 * 16, click en %...-> 14 * 0.16 .....
Si digitas 14 solo y das click en % deberia darte sero, debido a que solo hay un digito
debes buscar la forma de siempre tener 2 y solo 2 digitos con un signo de operacion que los relacione
No se si me explique... lo importante es guardar en alguna parte los valores anteriores a la operacion que acabes de crear e ir reemplazandolos con una nueva cada vez que la crees pero dejando siempre solo un par de numeros y un signo
una secuencia:
el usuario digita:
4 + 6
ahora digita ( + ) mas..
10 + .... a la espera de cualquier otra cosa
al undir un boton, si este te manda un numero... agregalo a la cadena de operacion, ejemplo: undes 5->
10 + 5 .... a la espera..
pero si undes (asterisco [ * ] para multiplicacion)... entonces debera determinar que no debe poner el * al final.. ni sumar 10 + *, sino cambiar + por *, ya que + no es numero...
quedando asi: 10 * ... a la espera...
Ahora, si en este caso no undes un numero sino la tecla IGUAL (teniendo solo un numero y un signo), entonces debes tomar ese caracter de operacion y ejecutarlo para con el unico digito escrito
ejemplos:
10 * (tecla igual) -> 100
10 + (tecla igual) -> 20
10 - (tecla igual) -> 0
10 / (tecla igual) -> 1