Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luisix en 11 Abril 2013, 17:14 pm



Título: Necesito ayuda con mi programa :S No se mantiene abierto
Publicado por: luisix en 11 Abril 2013, 17:14 pm
Lo que trato de hacer es una caja registradora, pero estoy comenzando en esto del lenguaje c
yo se que para que se detenga se le pone un getche (); pero sige sin detenerse

como quiera eso, y si me lo pueden checar y decirme que le falta, gracias


Título: Re: Necesito ayuda con mi programa :S No se mantiene abierto
Publicado por: luisix en 11 Abril 2013, 17:16 pm
este es el codigo..
//Programa que simula una caja registradora en un super mercado
//Se ingresan productos y se calcula el monto de todos ellos

#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <process.h>
#include <string.h>
#define MAXPROD 50
struct producto{
int id;
float costo;
char desc[30];
};

producto Productos[MAXPROD];
//Aqui guardaremos los productos
//----------------------------------------------------------------------//
void inicializaProductos(){
int i;

//Aqui limpiamos nuestro arreglo de productos de posible basura al crearse
for(i=0;i<MAXPROD;i++){
Productos.id = 0;
Productos.costo = 0;
strcpy(Productos.desc,NULL);
}
/*
Aqui tengo la base de datos de los productos disponibles y
sus caracteristicas, como id, costo y descripcion.
Solo tener cuidado de no ingresar id repetidos
*/
Productos[0].id = 5050;
Productos[0].costo = 12.5;
strcpy(Productos[0].desc,"Coca Cola 1.5L");
///////////////////////////////////////////////////////////
Productos[1].id = 4040;
Productos[1].costo = 8.5;
strcpy(Productos[1].desc,"Flan Art Grande");
///////////////////////////////////////////////////////////
Productos[2].id = 3030;
Productos[2].costo = 8.5;
strcpy(Productos[2].desc,"Agua Bonafont 1/2 Litro");
///////////////////////////////////////////////////////////
}

float BuscarProducto(int id_producto,int x){

int i,flag=0;

for(i=0;i<MAXPROD;i++){
if(Productos.id == id_producto){
flag = 1;
break;
}
}
if(flag == 0){
return -1; //Error id no encontrado
}

printf("ntt%st%.2f",Productos.desc,Productos.costo);
return Productos.costo;
}
//----------------------------------------------------------------------//
 main(){
char opcion;
int x;
int prod; //Aqui guardamos que producto se agrega a la cuenta
float costo; //Acumulado de la cuenta del cliente
float costoProdActual; //Nos da el costo del producto actual
inicializaProductos();
while(1){ //Consideramos un while infinito, en
//teoria una caja registradora siempre esta encendida
clrscr();
costo = 0; //Iniciamos el costo de cada compra
printf("nnttt--**MENU**--");
printf("nntti.-Ingresa nuevo cliente"); // inicia una nueva factura
printf("nntts.-Salir"); //termina la ejecucion del programa
printf("nnttOpcion ---> ");
opcion = getche(); //Obtenemos la opcion del usuario
if(opcion == 's'){
return(1); //Salimos del programa
getche();
}
if(opcion == 'i'){
x=0;
clrscr();
while(prod != -1){
printf("nttIngresa -1 para terminar lista");
printf("nnttDame el numero de producto->");
scanf("%d",&prod);

printf(" ") ;
if(prod != -1 ){
x++;
costoProdActual = BuscarProducto(prod,x);
if(costoProdActual != -1){
costo += costoProdActual;
}
else{

printf("Producto no encontrado");
}

printf("tttttt");
printf("ntTotal: %.2f",costo);
return(1);

}
}//Fin segundo while
}
}//Fin del while principal
}


Título: Re: Necesito ayuda con mi programa :S No se mantiene abierto
Publicado por: 85 en 12 Abril 2013, 01:46 am
un humilde consejo, ya que noto que no te respondieron..
que el código lo pongas en las etiquetas correspondientes, fijate en las opciones para la composición del mensaje, hay una lista con etiquetas de código. Y no usar con IO porque no te dan soporte acerca de eso generalmente XD. Sin mirar tu código, probá mandando un system("pause"); en algún lado, usar getchar(), getc(stdin), o cin.get(), hay otras formas..
Salu2