Ayuda con mi programa en C++

Iniciado por AlexisGT, 3 Noviembre 2016, 01:50 AM

0 Miembros y 1 Visitante están viendo este tema.

AlexisGT

Hola he programado el siguiente codigo, soy nuevo en el tema asi que posiblemente mi codigo sea ineficiente y con muchos errores xD

Código (cpp) [Seleccionar]
//Declaracion de Variables
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <iomanip>
#include <stdlib.h>

#define N 50

//Prototipos de Funciones
void vacio();
void anadir();
void MenuTraducir();
char Traducir (char);

//Estructura para almacenar las palabras
typedef struct {

char eng[N];
char esp[N];
int lleno;

}traductor;
traductor trad[N];

//Main
using namespace std;

int main (){
char op;
char op2;

vacio();


do{
system("cls");
cout << setw (10) << "***** MENU *****" << endl << endl;
cout << setw (10) << "a - Ingresar Palabra."  << endl;
cout << setw (10) << "b - Traducir Frase." << endl << endl;
cout << "Ingrese una opcion: ";
cin >> op;
cout << endl;

if (op == 'a'){
system("cls");
anadir();
}else{
if (op == 'b'){
system("cls");
MenuTraducir();

}else{
cout << "\n... ERROR, CARACTER NO VALIDO !! ...." << endl;
}
}
cout << "\nRealizar otra operacion (S/N)? : ";
cin >> op2;
cout << endl;
} while(op2 == 'S' || op2 == 's');
}

//Funcion Vacio (Verifica si hay lugares vacios en la estructura para llenar)
void vacio(){
for (int i=0; i < N; i++){
trad[i].lleno = 0;
}
}

//Funcion Añadir (Añade palabras en la Estructura)
void anadir (){
int salir = 0;
for (int i=0; i < N && salir == 0; i++){
if (trad[i].lleno == 0){
cout << "Introduce la palabra en Ingles: ";
fflush (stdin);
cin.getline(trad[i].eng,80);

cout << "\nIntroduce la palabra en Español: ";
fflush (stdin);
cin.getline(trad[i].esp,80);

trad[i].lleno = 1;
salir = 1;
}
}
}

//Funcion MenuTraducir (Muestra en Pantalla un Menu de Traduccion)
void MenuTraducir(){
char x;
char y;

cout << "a - Traducir de Ingles  -  Español \n";
cout << "b - Traducir de Español -  Ingles \n";
cout << "Elige una opcion: ";
cin >> x;

if (x == 'a'){
system("cls");
Traducir (x);
}else{
if (x == 'b'){
system("cls");
Traducir (x);
}else{
cout << "\n... ERROR, CARACTER NO VALIDO !! ...." << endl;
}
}

}

//Funcion Traducir (Traduce las frases Ingresadas por el Usuario)
char Traducir (char opcion){
int x;
int a;
int temp=0;
char b [N];
char * tok;

if (opcion == 'a'){
x = 1;
}

cout << "Introduce la Frase que deseas Traducir: ";
fflush (stdin);
cin.getline(b,80);

if (x == 1){
for (int i = 0; i < N && temp == 0; i++){
a = strcmp (b,trad[i].eng);
if (a == 0){
cout << "\nLa traduccion es : " << trad[i].esp << endl << endl;
temp = 1;
}
}
}else{
for (int i = 0; i < N && temp == 0; i++){
a = strcmp (b,trad[i].esp);
if (a == 0){
cout << "\nLa traduccion es : " << trad[i].eng << endl << endl;
temp = 1;
}
}
}
}




Ahora lo que quiero hacer es una funcion que separe la frase por palabras y la traduzca pero no se como hacerla, por ejemplo:

frase en español: hola triste gato

quiero separar esa frase por palabra y luega mostrarla traducida en pantalla:

su frase traducida es: hello sad cat

he avanzado hasta este punto pero ahora me he quedado estancado :( de antemano gracias por su ayuda.


Mod: Los códigos deben ir en etiquetas GeSHi