#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>//para controlar cadenas
#include <stdio.h>
#include <windows.h>
#include <ctype.h>
using namespace std;
int clave;
//declaracion
void fin();
void modificar(char producto[100][50],float pvp[100],int cantidad[100],int n);
void eliminar(char producto[100][50],float pvp[100],int cantidad[100],int n);
void comprar(char producto[100][50],float pvp[100],int cantidad[100],int n);
void menu(char producto[100][50],float pvp[100],int cantidad[100],int n);
int ValidarPalabra(char* p) ;
//***********************************************************************proceso vañidar palabra***********************************************************
int ValidarPalabra(char* p)
{
char *temp = p;
do
{
if(!isalpha(*p) && *p)
{
printf("%s no es una palabra.\n", temp);
return 1;
}
}
while(*p++);
return 0;
}
//********************************************************************************************************************************************************
//*************************************************procedimi salir*****************************************************************
void fin()
{
system("cls");
cout<<"00000000 00000 00000 000000 000 00000 00000"<<endl;
cout<<"000 000 000 000 000 00 000 000 000 00"<<endl;
cout<<"000 0000 00000 0000000 00 000 0000000 00000"<<endl;
cout<<"000 00 000000 000 000 00 000 000 000 00"<<endl;
cout<<"00000000 000 000 000 000 000000 000 000 000 00000...made in 633-649"<<endl;
cout<<""<<endl;
cout<<""<<endl;
}
//**********************************************procedimiento modificar************************************************************
void modificar(char producto[100][50],float pvp[100],int cantidad[100],int n)
{
float pv;
int can,i,band=0;
char p;
i=0;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
while(band==0)
{
//*************************************************************************validar numero********************************************************************
char Cadena[50];/// Declarar un Char para capturar los datos
int Numero,k; /// i para contador
bool Error=false;
while(band==0)
{
do{
k=0;
try{
cout<<"Que producto desea modificar escoja el numero: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
i= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(i>0 && i<=n)
{
band=1;
}
else
{
cout<<"ERROR, el producto no existe por favor escoja un producto existente"<<endl;
}
}
//**************************************************************************fin******************************************************************************
}
i=i-1;
//************************************************************validar palabra********************************************************************
char palabra[20];
cout<<"Ha escogido "<<producto[i]<<endl;
do
{
cout<<"producto: ";
scanf("%s", palabra);
}
while(ValidarPalabra(palabra));
strcpy(producto[i],palabra);
//************************************************************************************************************************************************
cout<<"precio de "<<p<<" : ";
cin>>pv;
pvp[i]=pv;
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
int Numero; /// i para contador
bool Error=false;
int a,k;
char Cadena[50];
band=0;
while(band==0)
{
do{
k=0;
try{
cout<<"Cantidad: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
Numero= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(Numero>0)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
cantidad[i]=Numero;
cout<<endl;
cout<<"____________________________PRODUCTOS_________________________________"<<endl;
cout<<endl<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
n=i;
getch();
system("cls");
menu(producto,pvp,cantidad,n);
}
//*************************************************procedimiento eliminar**********************************************************
void eliminar(char producto[100][50],float pvp[100],int cantidad[100],int n)
{
int pos,i,band=0;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
//*************************************************************************validar numero********************************************************************
char Cadena[50];/// Declarar un Char para capturar los datos
int Numero,k; /// i para contador
bool Error=false;
while(band==0)
{
do{
k=0;
try{
cout<<"Que producto desea eliminar escoja el numero: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
pos= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(pos>0 && pos<=n)
{
band=1;
}
else
{
cout<<"ERROR, el producto no existe por favor escoja un producto existente"<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
for(i=pos;i<=n-1;i++)
{
strcpy(producto[i],producto[i+1]);
pvp[i]=pvp[i+1];
cantidad[i]=cantidad[i+1];
}
//eliminacion
system("cls");
cout<<"El dato fue eliminado con exito"<<endl;
cout<<"____________________________PRODUCTOS_________________________________"<<endl;
cout<<endl<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
n=n-1;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
menu(producto,pvp,cantidad,n);
}
//*****************************************************procedimiento comprar*******************************************************
void comprar(char producto[100][50],float pvp[100],int cantidad[100],int n)
{
char compra[100][50],productocompra[100][50];
float cpvp[100];
int i,can,x,j,pos,fac,cont=0;
int ccantidad[100],pro,resto;
float total=0;
cout<<" Tienda Virtual"<<endl;
char op;
do
{
system("cls");
cout<<"____________________________PRODUCTOS_________________________________"<<endl;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
int Numero; /// i para contador
bool Error=false;
int a,k,band;
char Cadena[50];
while(band==0)
{
do{
k=0;
try{
cout<<"Que producto desea comprar: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
pro= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(pro>0 && pro<=n)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
pro=pro-1;
strcpy(productocompra[cont],producto[pro]);
cout<<"ha escogido "<<productocompra[cont]<<endl;
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos /// i para contador
while(band==0)
{
do{
k=0;
try{
cout<<"cuantos desea de ese producto: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
resto= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(resto<=cantidad[pro])
{
cantidad[pro]=cantidad[pro]-resto;
cpvp[j]=pvp[pro];
ccantidad[j]=resto;
total=(cpvp[j]*resto)+total;
j=j+1;
band=1;
}
else
{
cout<<"ya no hay esa cantidad "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
cont=cont+1;
cout<<"desea mas productos: si(1) no(0) ";
cin>>op;
}while(op=='1' && op!='0');
n=j-1;
for(i=0;i<=10;i++)
{
Sleep(200);
cout<<".";
}
system("cls");
cout<<" Productos escojidos"<<endl;
cout<<" Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(j=0;j<=n;j++)
{
cout<<j+1<<" "<<productocompra[j]<<" "<<"$ "<<cpvp[j]<<" "<<ccantidad[j]<<endl;
}
getch();
cout<<"1.- factura a consumidor"<<endl;
cout<<"2.- factura a usuario"<<endl;
cout<<"Escoja la opcion: ";
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
char Cadena[50];
int Numero; /// i para contador
bool Error=false;
int a,k;
int band=0;
while(band==0)
{
do{
k=0;
try{
cout<<">> ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
fac= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(fac<=2 && fac>=1)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
switch(fac)
{
case 1:
{
system("cls");
cout<<"___________________________________________________"<<endl;
cout<<"Nombre: Consumidor final"<<endl;
cout<<"Cedula: **********"<<endl;
cout<<"Lugar: ************"<<endl;
cout<<"Libreria Casi te regalamos"<<endl;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(j=0;j<=n;j++)
{
cout<<j+1<<" "<<productocompra[j]<<" "<<"$ "<<cpvp[j]<<" "<<ccantidad[j]<<endl;
}
cout<<endl<<endl<<" Total: "<<total<<endl;
cout<<" Firma................."<<endl;
cout<<endl<<endl<<"___________________________________________________"<<endl;
break;
}
case 2:
{
int cedula;
char nombre[25];
char vive[25];
system("cls");
cout<<"Datos personales"<<endl;
cout<<"Ingrese su nombre: ";
cin>>nombre;
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
int Numero; /// i para contador
bool Error=false;
char Cadena[50];
int a,k;
int band;
while(band==0)
{
do{
k=0;
try{
cout<<"ingrese su cedula: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
cedula= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(cedula>100000000)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
cout<<"Ingrese donde vive: ";
cin>>vive;
getch();
system("cls");
cout<<"___________________________________________________"<<endl;
cout<<"Libreria Casi te regalamos"<<endl;
cout<<"nombre: "<<nombre<<endl;
cout<<"Cedula: "<<cedula<<endl;
cout<<"Lugar: "<<vive<<endl;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(j=0;j<=n;j++)
{
cout<<j+1<<" "<<productocompra[j]<<" "<<"$ "<<cpvp[j]<<" "<<ccantidad[j]<<endl;
}
cout<<endl<<endl<<" Total: "<<total<<endl;
cout<<" Firma................."<<endl;
cout<<endl<<endl<<"___________________________________________________"<<endl;
break;
}
}
}
//**********************************************procedimiento menu****************************************************************
void menu(char producto[100][50],float pvp[100],int cantidad[100],int n)
{
int x,i,band=0;
system("cls");
cout<<"Espere.";
for(i=0;i<=10;i++)
{
Sleep(100);
cout<<".";
}
system("cls");
cout<<"Espere.";
for(i=0;i<=10;i++)
{
Sleep(100);
cout<<".";
}
system("cls");
cout<<"____________________________PRODUCTOS_________________________________"<<endl;
cout<<"Producto"<<" "<<"precio"<<" "<<"cantidad"<<endl;
for(i=0;i<n;i++)
{
cout<<i+1<<" "<<producto[i]<<" "<<"$ "<<pvp[i]<<" "<<cantidad[i]<<endl;
}
cout<<"_______________________________"<<endl;
cout<<"1.- Modificar algun producto "<<endl;
cout<<"2.- Eliminar algun producto "<<endl;
cout<<"3.- Vender productos "<<endl;
cout<<"4.- Salir "<<endl;
cout<<"_______________________________"<<endl;
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
char Cadena[50];
int Numero; /// i para contador
bool Error=false;
int a,k;
while(band==0)
{
do{
k=0;
try{
cout<<">> ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
x= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(x<=4 && x>=1)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
switch(x)
{
case 1:{
band=0;
while(band==0)
{
cout<<"ingrese su clave: ";
cin>>clave;
if(clave==101)
{
band=1;
modificar(producto,pvp,cantidad,n);
}
else
{
cout<<"clave incorrecta"<<endl;
}
}
break;
}
case 2:{
int band=0;
while(band==0)
{cout<<"Ingrese su clave: ";
cin>>clave;
if(clave==101)
{
eliminar(producto,pvp,cantidad,n);
band=1;
}else
{
cout<<"clave incorrecto"<<endl;
}
}break;
}
case 3:{comprar(producto,pvp,cantidad,n);break;}
case 4:{fin();break;}
}
}
//**********************************************************programa_principal*******************************************************
int main()
{
char producto[100][50], p;
float pvp[100],pv;
int cantidad[100],n,i,can,x,j,pos,band=0;
system("color b0");
cout<<" Estado Inicial"<<endl;
cout<<"00000000 000 0000000 0000 0000 000 0000"<<endl;
cout<<" 000 000 000 00000 0000 00 00 000 000"<<endl;
cout<<" 000 000 0000000 000000 0000 00 00 000000000"<<endl;
cout<<" 000 000 000 000 00000 00 00 000000000"<<endl;
cout<<" 000 000 0000000 000 00000 000 000 000"<<endl;
//*************************************************************************validar numero********************************************************************
char Cadena[50];/// Declarar un Char para capturar los datos
int Numero,k; /// i para contador
bool Error=false;
while(band==0)
{
do{
k=0;
try{
cout<<"Cuantos Productos desea ingresar en su tienda: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
n= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(n>0)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
for(i=0;i<n;i++)
{
//************************************************************validar palabra********************************************************************
char palabra[20];
do
{
cout<<"ingrese producto: ";
scanf("%s", palabra);
}
while(ValidarPalabra(palabra));
strcpy(producto[i],palabra);
//************************************************************************************************************************************************
while(band!=1)
{
cout<<"precio de "<<producto[i]<<" : ";
cin>>pv;
if(pv>=0.1)
{
pvp[i]=pv;
band=1;
}else
{cout<<"dato no valido digite correctamente "<<endl;
}
}
band=0;
//*************************************************************************validar numero********************************************************************
/// Declarar un Char para capturar los datos
int Numero; /// i para contador
Error=false;
int a;
while(band==0)
{
do{
k=0;
try{
cout<<"Cantidad: ";
cin>>Cadena;///pedir datos por teclado
while (Cadena[k]){///recorre desde la primera posición hasta la ultima
if (isalpha(Cadena[k]))/// isalpha es una función que analiza que carácter alfabético
throw Cadena[k]; /// si existe un carácter alfabético, controlamos el error con throw
k++; /// Contador incrementa en 1
}
Error=false; /// si no hay caracteres alfabéticos entonces el error es falso
}
catch (char){
Error=true;
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}while(Error==true);
Numero= atoi(Cadena); /// atoi es una función que convierte una cadena a numero
if(Numero>0)
{
band=1;
}
else
{
cout<<"El numero Ingresado no es correcto, por favor ingresa otro numero: "<<endl;
}
}
band=0;
//**************************************************************************fin******************************************************************************
cantidad[i]=Numero;
cout<<endl;
}
menu(producto,pvp,cantidad,n);
getch();
return 0;
}
//*******************************************************************FIN********************************************************
cpp.
La contraseña es 101
ResponderEliminarDisculpa, hay pequeño error en el código que pegaste, no sé si podría mostrarte
Eliminar