Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Jean Pool en 12 Julio 2011, 09:57 am



Título: Ayuda con mi codigo
Publicado por: Jean Pool en 12 Julio 2011, 09:57 am
Buenas noches escribo aki por necesito de su ayuda no soy como los demas que piden tareas completa solo pido algo eh exo mi codigo fuente como una tiendita virtual ya esta todo listo solo que no c como poner para que sume todo el total de mi compra no solo de un producto aki le dejo mi codigo
Código:
/*De la galería de productos, el usuario introducirá el código y el número de unidades

del producto que desea comprar. El programa determinará el total a pagar, como una

factura.*/

#include <Stdio.h>

#include <windows.h>

#include <windows.h>

#include <string>

//Colores para fondos

#define BG_BLACK (0) //0

#define BG_NAVY (16) //BACKGROUND_BLUE

#define BG_GREEN (32) //BACKGROUND_GREEN

#define BG_TEAL (48) //BACKGROUND_BLUE | BACKGROUND_GREEN

#define BG_MAROON (64) //BACKGROUND_RED

#define BG_PURPLE (80) //BACKGROUND_BLUE | BACKGROUND_RED

#define BG_OLIVE (96) //BACKGROUND_GREEN | BACKGROUND_RED

#define BG_SILVER (112) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED

#define BG_GRAY (128) //BACKGROUND_INTENSITY

#define BG_BLUE (144) //BACKGROUND_BLUE | BACKGROUND_INTENSITY

#define BG_LIME (160) //BACKGROUND_GREEN | BACKGROUND_INTENSITY

#define BG_CYAN (176) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY

#define BG_RED (192) //BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_MAGENTA (208) //BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_YELLOW (224) //BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_WHITE (240) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY

//Colores para letras

#define FG_BLACK (0) //0

#define FG_NAVY (1) //FOREGROUND_BLUE

#define FG_GREEN (2) //FOREGROUND_GREEN

#define FG_TEAL (3) //FOREGROUND_BLUE | FOREGROUND_GREEN

#define FG_MAROON (4) //FOREGROUND_RED

#define FG_PURPLE (5) //FOREGROUND_BLUE | FOREGROUND_RED

#define FG_OLIVE (6) //FOREGROUND_GREEN | FOREGROUND_RED

#define FG_SILVER (7) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED

#define FG_GRAY (8) //FOREGROUND_INTENSITY

#define FG_BLUE (9) //FOREGROUND_BLUE | FOREGROUND_INTENSITY

#define FG_LIME (10) //FOREGROUND_GREEN | FOREGROUND_INTENSITY

#define FG_CYAN (11) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY

#define FG_RED (12) //FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_MAGENTA (13) //FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_YELLOW (14) //FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_WHITE (15) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY

void clrscr()/*Creando funcion para limpiar pantalla.*/

{

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coord = {0, 0};

DWORD count;

CONSOLE_SCREEN_BUFFER_INFO csbi;

GetConsoleScreenBufferInfo(hStdOut, &csbi);

FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);

SetConsoleCursorPosition(hStdOut, coord);

}

int main()

{

int salir,saliryesno;

salir=0;

while(salir==0){

clrscr();/*Llamando la funcion para limpiar pantalla.*/

HANDLE hStdInput = INVALID_HANDLE_VALUE,

hStdOutput = INVALID_HANDLE_VALUE;

hStdInput = GetStdHandle(STD_INPUT_HANDLE);

hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hStdOutput,BG_BLACK | FG_YELLOW);

printf("\n\t           BIENVENIDOS A LA BODEGA DE DON PEPITO\n");

printf("\t==================================================================\n\n");

int opt,uni,total;

printf("\t\tELIJA EL PRODUCTO DESEADO:\n\n");

printf("\t\tPRODUCTO\t\t\tCODIGO\n\n");

printf("\t\tCAMISA........................... 1\n");

printf("\t\tCINTURON......................... 2\n");

printf("\t\tZAPATOS.......................... 3\n");

printf("\t\tPANTALON......................... 4\n");

printf("\t\tCALCETINES....................... 5\n");

printf("\t\tFALDAS........................... 6\n");

printf("\t\tGORRAS........................... 7\n");

printf("\t\tSUETER........................... 8\n");

printf("\t\tCORBATA.......................... 9\n");

printf("\t\tCHAQUETA......................... 10\n\n");

printf("\t\tINTRODUZCA CODIGO: ");

scanf("%d",&opt,"\n");

while ((opt<1)||(opt>10))

{

printf(" CODIGO INCORRECTO. INTRODUZCA NUEVO CODIGO: ");

scanf("%d",&opt,"\r");

}

printf("\n");

switch(opt){

case 1:

printf("\t\tEL PRECIO ES: $20.00\n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=20*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 2:

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=15*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 3:

printf("\t\tEL PRECIO ES: $60.00 \n");

printf("INTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=60*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 4:

printf("\t\tEL PRECIO ES: $30.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=30*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 5:

printf("\t\tEL PRECIO ES: $7.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=7*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00 \n\n",total);

break;

case 6:

printf("\t\tEL PRECIO ES: $25.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=25*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 7:

printf("\t\tEL PRECIO ES: $12.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=12*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 8:

printf("\t\tEL PRECIO ES: $35.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=35*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 9:

printf("\t\tEL PRECIO ES: $22.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=22*uni;

printf("\n\t\tEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

case 10:

printf("\t\tEL PRECIO ES: $90.00 \n");

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

while(uni<0){

printf("\t\tINTRODUZCA NUMERO DE UNIDADES: ");

scanf("%d",&uni);

}

total=90*uni;

printf("\nEL TOTAL A PAGAR ES $%d.00\n\n",total);

break;

}

printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");

scanf("%d",&saliryesno);

switch(saliryesno){

case 1:

salir=1;

}

}

}

y bueno tbm me piden en el ejercico si la compra supera los 300 abra descuento x lo cual yo eh creado otro proyect que me saka el descuento pero a la hora k le puse random no siempre agarra descuento apartir de 300 trate de arreglarlo y no c puede quisiera ponerlo en un proyect junto los dos y no c puede si me dan ideas seria genial muxas gracias aki mi otro codigo de los descuentos
Código:
#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <windows.h>

#include <windows.h>

#include <string>

//Colores para fondos

#define BG_BLACK (0) //0

#define BG_NAVY (16) //BACKGROUND_BLUE

#define BG_GREEN (32) //BACKGROUND_GREEN

#define BG_TEAL (48) //BACKGROUND_BLUE | BACKGROUND_GREEN

#define BG_MAROON (64) //BACKGROUND_RED

#define BG_PURPLE (80) //BACKGROUND_BLUE | BACKGROUND_RED

#define BG_OLIVE (96) //BACKGROUND_GREEN | BACKGROUND_RED

#define BG_SILVER (112) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED

#define BG_GRAY (128) //BACKGROUND_INTENSITY

#define BG_BLUE (144) //BACKGROUND_BLUE | BACKGROUND_INTENSITY

#define BG_LIME (160) //BACKGROUND_GREEN | BACKGROUND_INTENSITY

#define BG_CYAN (176) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_INTENSITY

#define BG_RED (192) //BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_MAGENTA (208) //BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_YELLOW (224) //BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY

#define BG_WHITE (240) //BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY

//Colores para letras

#define FG_BLACK (0) //0

#define FG_NAVY (1) //FOREGROUND_BLUE

#define FG_GREEN (2) //FOREGROUND_GREEN

#define FG_TEAL (3) //FOREGROUND_BLUE | FOREGROUND_GREEN

#define FG_MAROON (4) //FOREGROUND_RED

#define FG_PURPLE (5) //FOREGROUND_BLUE | FOREGROUND_RED

#define FG_OLIVE (6) //FOREGROUND_GREEN | FOREGROUND_RED

#define FG_SILVER (7) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED

#define FG_GRAY (8) //FOREGROUND_INTENSITY

#define FG_BLUE (9) //FOREGROUND_BLUE | FOREGROUND_INTENSITY

#define FG_LIME (10) //FOREGROUND_GREEN | FOREGROUND_INTENSITY

#define FG_CYAN (11) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY

#define FG_RED (12) //FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_MAGENTA (13) //FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_YELLOW (14) //FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY

#define FG_WHITE (15) //FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY

int clrscr()/*Creando funcion para limpiar pantalla.*/

{

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

COORD coord = {0, 0};

DWORD count;

CONSOLE_SCREEN_BUFFER_INFO csbi;

GetConsoleScreenBufferInfo(hStdOut, &csbi);

FillConsoleOutputCharacter(hStdOut, ' ', csbi.dwSize.X * csbi.dwSize.Y, coord, &count);

SetConsoleCursorPosition(hStdOut, coord);

}

int main()

{

int salir,saliryesno;

salir=0;

while(salir==0){

clrscr();/*Llamando la funcion para limpiar pantalla.*/

HANDLE hStdInput = INVALID_HANDLE_VALUE,

hStdOutput = INVALID_HANDLE_VALUE;

hStdInput = GetStdHandle(STD_INPUT_HANDLE);

hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hStdOutput,BG_BLACK | FG_YELLOW);

printf("\n\tPROGRAMA 5. DESCUENTOS POR COMPRAS APLICANDO ALEATORIEDAD\n");

printf("\t==========================================================\n\n");

int random;

float gasto, ncargo;

printf("\nINTRODUZCA LA CANTIDAD TOTAL DE LA COMPRA: ");

scanf("%f",&gasto,"\n");

while (gasto < 0)

{

printf("NO EXISTEN CARGOS NEGATIVOS INTRODUZCA NUEVO GASTO: ");

scanf("%f",&gasto,"\n");

}

if (gasto >= 100){

printf("\nSU GASTO IGUALA O SUPERA LOS $100.00 Y POR TANTO PARTICIPA EN LA PROMOCION.\n");

printf("\n\t\t COLOR\t\t DESCUENTO\n\n");

printf("\t\tBOLA BLANCA\t\t NO TIENE\n");

printf("\t\tBOLA ROJA\t\t10 POR CIENTO\n");

printf("\t\tBOLA AZUL\t\t20 POR CIENTO\n");

printf("\t\tBOLA VERDE\t\t25 POR CIENTO\n");

printf("\t\tBOLA AMARILLA\t\t50 POR CIENTO\n\n");

srand(time(NULL));/*Inicializa el generador random*/

random=rand()%5;/*Genera los números random*/

switch(random){

case 1:

printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA BLANCA\n\n");

printf("LO SENTIMOS, NO HA GANADO NINGUN DESCUENTO. ");

printf("EL TOTAL A PAGAR ES DE $%.2f\n\n",gasto);

break;

case 2:

printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AZUL\n\n");

printf("FELIDADES, HA GANADO UN 20 POR CIENTO DE DESCUENTO \n\n");

ncargo=gasto-(gasto*0.2);

printf("SU NUEVO TOTAL A PAGAR ES: $%.2f\n\n", ncargo,"\n\n");

break;

case 3:

printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA VERDE\n\n");

printf("FELIDADES, HA GANADO UN 25 POR CIENTO DE DESCUENTO \n\n");

ncargo=gasto-(gasto*0.25);

printf("SU NUEVO TOTAL A PAGAR ES: $%.2f\n\n", ncargo,"\n\n");

break;

case 4:

printf("ALEATORIAMENTE USTED OBTUVO UNA BOLA AMARILLA\n\n");

printf("FELIDADES, HA GANADO UN 50 POR CIENTO DE DESCUENTO \n\n");

ncargo=gasto-(gasto*0.5);

printf("SU NUEVO TOTAL A PAGAR ES: $%.2f\n\n", ncargo,"\n\n");

break;

}

}

else{/*El gasto es menor a $100.00*/

printf("\n\nLO SENTIMOS, SU GASTO ES MENOR A CIEN DOLARES Y NO APLICA A LA PROMOCION.\n\n");

}

printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");

scanf("%d",&saliryesno);

switch(saliryesno){

case 1:

salir=1;

}

}

}