calculadora + interrogatorio

Iniciado por peterfly, 1 Diciembre 2011, 22:51 PM

0 Miembros y 3 Visitantes están viendo este tema.

peterfly

hoy estaba jugando a un juego de sumas... y me preguntaba que si se puede juntar los dos siguientes codigos

codigo 1
#include <cstdlib>
#include <iostream>
#include <stdio.h>
int main()
{
   unsigned long long int a,b;
    printf("primer numero:");
    scanf(" %llu", &a);
   
    printf("segon numero:");
    scanf(" %llu", &b);
   
    printf("el resultat es %llu", a+b);
   
   system("PAUSE");
   return EXIT_SUCCESS;
}


codigo 2
*preguntes i respostes*/
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>
int main (void)
{

   int i;
   char cadena1[40]="";
       char respuesta =0;
   do{
   printf("pregunta \n \n");
   printf("escriba la pregunta:  ");
   gets(cadena1);
   
   i= strcmp(cadena1,"cuantos años tengo");
   if (i==0){
   printf("10");
   }
   i= strcmp(cadena1,"de donde soy");
   if (i==0){
   printf("valencia");
   }

std::cout << "\n\ndesea continuar (S o N o C)?\n";
std::cin >> respuesta;
setbuf(stdin,NULL);
switch (respuesta){
     
case 's':
printf("ha salido con la respuesta s\n\n\n");
break;

case 'c':
printf("\nprograma creado por\nGUILLEM BORRAS I MARTI");
break;

case 'n':
printf("ha salido con la respuesta n");
return false;
break;
default:

printf("ha salido sin la letra n o s");
return false;
break;

}
}while ((respuesta =='s')||(respuesta == 'S'));

    getchar();
    return 0;
}


alguien me puede ayudar a juntarlos???

gracias de antemano

Leyer


peterfly

la verdad es que si... pero se puede??? como???... no lo se... por eso lo preguntaba...

rir3760

Es posible, la forma mas facil es colocando el codigo de cada programa en una funcion (por supuesto con las correcciones pertinentes).

Un empujon:
Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;

#include <cstdio>
using std::printf;
using std::scanf;

void fn_programa_a();
void fn_programa_b();

int main()
{
fn_programa_a();
fn_programa_b();

return 0;
}

void fn_programa_a()
{
unsigned long a;
unsigned long b;

printf("primer numero:");
scanf("%lu", &a);

printf("segon numero:");
scanf("%lu", &b);

printf("el resultat es %lu", a+b);
}

void fn_programa_b()
{
// codigo del segundo programa ...
}


Dos detalles a considerar: 1) Casi no utilizas las facilidades del lenguaje C++ y 2) El tipo "long long" no existe en C++ estandar (pero si en C99).

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

peterfly

he puesto el siguente codigo
#include <iostream>
using std::cout;
using std::endl;

#include <cstdio>
using std::printf;
using std::scanf;

void fn_programa_a();
void fn_programa_b();

int main()
{
fn_programa_a();
fn_programa_b();

return 0;
}

void fn_programa_a()
{
unsigned long a;
unsigned long b;

printf("primer numero:");
scanf("%lu", &a);

printf("segon numero:");
scanf("%lu", &b);

printf("el resultat es %lu", a+b);
}

void fn_programa_b()
{
unsigned long a;
unsigned long b;

int i;
    char cadena1[40]="";
        char respuesta =0;
    do{
    printf("pregunta \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);
   
    i= strcmp(cadena1,"cuantos años tengo");
    if (i==0){
    printf("10");
    }
    i= strcmp(cadena1,"de donde soy");
    if (i==0){
    printf("valencia");
    }

std::cout << "\n\ndesea continuar (S o N o C)?\n";
std::cin >> respuesta;
setbuf(stdin,NULL);
switch (respuesta){
       
case 's':
printf("ha salido con la respuesta s\n\n\n");
break;

case 'c':
printf("\nprograma creado por\nGUILLEM BORRAS I MARTI");
break;

case 'n':
printf("ha salido con la respuesta n");
return false;
break;
default:

printf("ha salido sin la letra n o s");
return false;
break;

}
}while ((respuesta =='s')||(respuesta == 'S'));
}


y donde pone
return false;

me dice el siguiente error
return-statement with a value, in funcion returning 'void'

rir3760

Porque al declarar la funcion:
Código (cpp) [Seleccionar]
void fn_programa_b();
Se esta indicando que ella no retorna un valor, si vas a utilizar la sentencia de retorno esta debe ser:
Código (cpp) [Seleccionar]
return;

Pero como esta tu programa lo mejor es simplemente eliminarla.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

peterfly

muxas gracias amigo... aora me falta que al principio me pregunte si quiero usar la calculadora o si quiero usar el interrogatorio...

rir3760

Para eso solo debes crear un menú donde el usuario elija la opción y en base a esta se llame a una de las funciones.

Inténtalo, no es difícil.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

peterfly

He puesto el siguiente codigo
/*calculadora + interrogatori*/

#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <string.h>

int main()
{
int opcion;

do{
printf("\n *** MENU *** \n");
printf("\n 1. Calculadora\n");
printf("\n 2. Interrogatorio");
printf("\n Selecciona una opcio: ");
scanf("%d",&opcion);

}while(opcion < 1 || opcion > 2);
switch(opcion)
{
case 1:
unsigned long long int a,b;
printf("\n ***CALCULADORA***\n");
printf("primer numero:");
scanf(" %llu", &a);    
printf("segon numero:");
scanf(" %llu", &b);
printf("el resultat es %llu", a+b);
break;

case 2:
char cadena1[40]="";
char respuesta =0;
do{
printf("\n ***INTERROGATORIO***\n");
printf("escriba una pregunta:  ");
gets(cadena1);
   {
int i;
i= strcmp(cadena1,"cuantos años tengo");
if (i==0){
printf("pocos");
}
i= strcmp(cadena1,"cuando naci");
if (i==0){
printf("no me acuerdo");
break;
}
getche();
return 0;
}


Y donde pone:
getche();
return 0;
}

me dice "error" y no consigo resolverlo... me podeis ayudar???

gracias

peterfly

no me di cuenta... envez de poner
getchar();

puse
getche();


pero sigo con el problema de antes pero envez de en esa parte solo me dice error en el ultimo "}"