Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/02/2016, 15:43
EnriqueRocker
Invitado
 
Mensajes: n/a
Puntos:
Programa para sumar los numeros de una cadena

Usando funciones.
Se desea tener una calculadora de sumas y restas, que reciba una cadena de caracteres para que contenganlos elementos que integran las operaciones a realizar.Se tienen las siguientes restricciones:
1.La cadena introducida no debe ser mayor de 10 caracteres.
2.Solo se realizan sumas y restas
3.En caso de que el usuario introduzca otro operador (*, /, ó %), mandar un mensaje de “Error en sintaxis”; y volverá a pedir una nueva cadena.
4.La colocación del texto y resultado en el programa debe de estar bien distribuida en la pantalla.
5.El programa preguntará si desea introducir otra cadena a evaluar.
6.Mostrar el resultado enmarcadopor una guía de asteriscos, guiones, o caracteres
Esto es lo que llevo pero...no sale :/
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include <string.h>
using namespace std;
char condiciones(string);
char condicion1(string);
int separacion(string);
int sumaoresta(string);

char cadena[9];
char comprobacion[9];
main(){
int opcion;
cout<<"1.-Realizar una operacion"<<endl;
cout<<"2.-Salir"<<endl;
cin>>opcion;
do{
cout<<"Ingrese una cadena"<<endl;
cin>>cadena;
condicion1(cadena);
condiciones(cadena);
separacion(cadena);
system("pause");
}while(opcion!=1);
}






char condicion1(string){
int a;
a=strlen(cadena);
if(a>10){
cout<<"La cadena es demasiado grande"<<endl;
return(main());
}
else{
condiciones(cadena);
}
}

char condiciones(string){
int i;
int tam;
char a='*';
char b='/';
char c='%';
int d,e,f;
for(i=0;i<10;i++){
if(cadena[i]==a){
cout<<"Error de sintaxis"<<endl;
return(main());
}
else if(cadena[i]==b){
cout<<"Error de sintaxis"<<endl;
return(main());
}
else if(cadena[i]==c){
cout<<"Error de sintaxis"<<endl;
return(main());
}
else{
separacion(cadena);
}
}
}

int separacion(string){
int i,a;
for(i=0;i<10;i++){
if(isdigit(cadena[i])){
a=atoi(cadena);
comprobacion[i]=a;

}
else{
comprobacion[i]=cadena[i];

}
}
sumaoresta(comprobacion);
}
int sumaoresta(string){
char a='+';
char b='-';
int i;
char suma=0;
for(i=0;i<10;i++){
if(comprobacion[i]==a){
i=i-2;
suma=suma+comprobacion[i];
cout<<""<<suma;
}

else if(comprobacion[i]==b){
i=i-1;
suma=suma-comprobacion[i];}
cout<<""<<suma;
}

}