lunes, 12 de mayo de 2014

Programa que simula una base datos de una tienda de abarrotes

/*Programa que simula una base datos de una tienda de abarrotes llamada la pequeña,
  autor: Rafael Damaso Santos,   e-mail: rafa-escorpion@live.com.mx  grupo: O6 */
/*ejecutenlo de preferencia en dev-c++, en caso de que usen el visual, quiten el comentario de la lib "stdafx")  saludos */
//#include "stdafx.h"
#include "fstream"
#include "iostream"
#include "string"
#include "cstdlib"
#include "iomanip"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

/********************************  FUNCIONES   *******************************/
void escanear();
void consulta();
void modifica();
void pausa();
/*****************************************************************************/

using namespace std;

int main()
{
int opcion=0, i=0;

do
{
system("cls");
                cout<<"***************************************"<<endl;
                cout<<"*BASE DE DATOS DE LA TIENDA LA PEQUEÑA*"<<endl;
                cout<<"***************************************"<<endl;
                cout<<"* Desarrollador: RAFAEL DAMASO SANTOS *"<<endl;
                cout<<"***************************************"<<endl;
                cout<<"\n MENU DE OPCIONES\n";
cout<<" 1. REGISTRO DE LOS PRODUCTOS.\n";
cout<<" 2. CONSULTA DE LOS PRODUCTOS.\n";
cout<<" 3. MODIFICA LA BASE DE DATOS.\n";
cout<<"\n";
cout<<" 0. SALIR";
cout<<"\n\n Elige una opcion: ";
cin>>opcion;

switch(opcion)
{
case 0:
       break;
case 1:
       escanear();
case 2:
       consulta();
case 3:
       modifica();
default:
        cout<<" opcion no disponible mi estimad@"<<endl;
        pausa();
} // switch
}// do

while(opcion !=0);
}//end of main



void pausa() //función que nos ayuda a parar el programa cuando lo necesitemos
{
cout<<"\n\n\n\n Pulsa cualquier tecla... ";
getch();
}//end of pausa



void escanear() //funcion que pide por teclado los datos del producto
{
fstream listacodigo;
string codigo;
string producto;
string precio;
string cantidad;
double cost;
int cont=0;
char option;

listacodigo.open("c:\\Examen de Damaso.txt", ios::out);
if(!listacodigo)
{
   cout<<"******************************************"<<endl;
   cout<<"***      ERROR AL CREAR SU ARCHIVO     ***"<<endl;
   cout<<"***          INTENTE DE NUEVO          ***"<<endl;
   cout<<"*** O PONGASE EN CONTACTO CON NOSOTROS ***"<<endl;
   cout<<"******************************************"<<endl;
   exit (EXIT_FAILURE);
}

   while (cont==0)
   {
    system("cls");
    codigo="";
    producto="";
    precio="";
    cantidad="";
    cost=0;

     cout<<"\n Complete la informacion pedida: \n"<<endl;
     while(codigo=="")
     {
        cout<<"codigo del producto: \n";
        getline(cin,codigo);
     }
     while(producto=="")
     {
         cout<<"nombre del producto: "<<endl;
         getline(cin,producto);
     }
     while(precio=="")
     {
        cout<<"precio del producto: \n";
        getline(cin,precio);
     }
     while(cantidad=="")
     {
         cout<<"cantidad de producto: "<<endl;
         getline(cin,cantidad);
   
listacodigo<<codigo<<"|"<<producto<<"|"<<precio<<"|"<<cantidad <<endl;
   
cout<<"\n REGISTRAR OTRO PRODUCTO? (S/N): ";
cin>>option;
if(option=='n'||option=='N')  {cont=1;}
}
listacodigo.close();
}

void consulta()
{
fstream listacodigo;
string codigo;
string producto;
string precio;
string cantidad;
string linea;

int cod1,cod2,cod3,cod4;

listacodigo.open("c:\\Examen de Damaso.txt", ios::out);
if(!listacodigo)
{
   cout<<"***      ERROR AL CREAR SU ARCHIVO     ***"<<endl;
   cout<<"***          INTENTE DE NUEVO          ***"<<endl;
   cout<<"*** O PONGASE EN CONTACTO CON NOSOTROS ***"<<endl;
   exit (EXIT_FAILURE);
}
cout << setprecision(2) << setiosflags(ios:: fixed);
cout << "Codigo  Producto  precio  cantidad \n"<<endl;
getline(listacodigo, linea, '\n');
while ( !listacodigo.eof())
codigo="";
producto="";
precio="";
cantidad="";
        cod1=linea.find('|');
cod2=linea.find('|', cod1 + 1);
cod3=linea.find('|', cod2 + 1);
cod4=linea.find('|', cod3 + 1);
             
                codigo=linea.substr(0, cod1);
producto=linea.substr(cod1 + 1, cod2 - cod1 - 1);
precio=linea.substr(cod2 + 1, cod3 - cod2 - 1);
                cantidad=linea.substr(cod3 + 1, cod4 - cod3 - 1);
cout<<codigo<<" " <<producto<<" "<<precio<<" "<<cantidad<<getline(codigo,linea,'\n');
}
listacodigo.close();
cout<<"\nPresione cualquier tecla y ENTER para regresar al menu"<<endl;
cin>>linea;

void modifica()
{
fstream listacodigo;
string codigo;
string producto;
string precio;
string cantidad;
string linea;
string modific;
string tmp;
long posicion=0;
 listacodigo.open("c:\\Examen de Damaso.txt", ios::out | ios :: out);
    if(!listacodigo)
       {
   cout<<"******************************************"<<endl;
   cout<<"***      ERROR AL CREAR SU ARCHIVO     ***"<<endl;
   cout<<"***          INTENTE DE NUEVO          ***"<<endl;
   cout<<"*** O PONGASE EN CONTACTO CON NOSOTROS ***"<<endl;
   cout<<"******************************************"<<endl;
   exit (EXIT_FAILURE);
       }
getline(cin,codigo),'n');
cout<<"**********************************************"<<endl;
cout<<"*        MODIFICACION DE LA INFORMACION      *\n";
cout<<"*NOTIFIQUE QUE SE HABRA CAMBIOS EN SU SISTEMA*\n";
cout<<"**********************************************\n"<<endl;
cout<<"PRODUCTO: ";
getline(cin,modific,'n');

getline(listacodigo,tmp,'n');
while(tmp.substr(0, modific.size()) !=modific && !listacodigo.eof())
{
posicion=listacodigo.tellg();
getline(listacodigo,tmp,'\n');
}

if(listacodigo.eof())
{
cout<<"****************************"<<endl;
cout<<"*NO SE ENCONTRO EL PRODUCTO*"<<endl;
cout<<"****************************"<<endl;
listacodigo.clear();
}
else
{
cout<<"Producto: ";
cin>>producto;
cout<<"precio: ";
cin>>precio;
cout<<"cantidad";
cin>>cantidad;

listacodigo.seekg(posicion);
listacodigo<<modific<<"|"<<producto<<"|"<<precio<<"|"<<cantidad<<"|"<<endl;
listacodigo.close();
system("cls");
cosulta();
}
}

6 comentarios:

  1. tiene un error el la linea 132 y 233

    ResponderEliminar
  2. En una tienda donde solo hay 10 productos se desea calcular el total de ganancia que produjo dicho negocio este mes. Para ellos se cuenta por producto con: precio del costo, precio de venta, código y cantidad vendida en este periodo. Realizar programa que permita calcular las ganancias de la tienda.

    ResponderEliminar
  3. le faltan algunas llaves para indicar abrir y cerrar si se las pones empieza a jalar, pero a mi me marca error en los getline que tiene

    ResponderEliminar
  4. Hola disculpen la molestia alguien me podria pasar el codigo sobre dev c++ de una tienda altas bajas facturacion y cajero de favor o simiar

    ResponderEliminar