Hi!
I've made this program, but not working :( First time I compiled it with MicrosoftC++ and gave me just 1 error, that corrected, then compiled it with DevC++ as teacher used it, and started giving me a lot of errors :S that some of them dont know how to correct them :( :(
Thanks in advanced :)
#include <cstdlib>
#include <iostream>
using namespace std;
struct art
{
char name [50];
char branch [50];
float PrecioVenta;
float PrecioCosto;
int stock;
void load_art(float &price, char name, char branch, float &PrecioVenta, float &PrecioCosto, int &stock);
void CambiarStock(int &stock);
void ConsultarPrecioCosto(char name[], float PrecioCosto);
void ConsultarPrecioVenta(char name[], float PrecioVenta);
void mostrar(char name[], float price, char branch[], float PrecioVenta, float PrecioCosto, int stock);
};
struct StockGeneral
{
art datos[100];
char encontrado;
int pos;
char NombreBuscado[100];
StockGeneral();
void BuscarStock(char NombreBuscado[], int &pos, char &encontrado);
float CambiarPrecioVenta (float PrecioVenta);
void CargarStockGeneral();
void CompraArticulos();
void MostrarStock();
};
struct client
{
char name[50];
int id;
char domicilio [100];
float precio_acumulado;
void CargarDatos(int &id, char nombre[], char domicilio[], float &precio_acumulado);
void MostrarDatos(int id, char nombre[], char domicilio[], float precio_acumulado);
void ConsultarSaldo();
void ActualizarSaldo(int id, float &precio_acumulado);
};
struct total_clients
{
client datos[100];
int tope;
void CargarTotalClientes();
void MostrarTotalClientes();
void BuscarTotalClientes(char NombreBuscado[],int &pos, char &encontrado);
};
struct venta
{
void CargarFactura(char name[], char branch[], int &stock, float &totalfactura);
void MostrarFactura (char name[], char branch[], int &stock, float totalfactura);
}
//----------------------------------
//
// ART - FUNCIONES
//
//----------------------------------
void art::load_art(float &price, char name, char branch, float &PrecioVenta, float &PrecioCosto, int &stock)
{
art article;
cout << " ------------------------------------- \n\n";
cout << " CARGA DATOS DEL ARTICULO: \n";
cout << " ------------------------------------- \n\n";
cout<< " Nombre: ";
cin.getline(article.name, 50);
cout << " Marca: ";
cin.getline(article.branch, 50);
cout << " Precio Venta: ";
cin >> article.PrecioVenta;
cout << " Precio Costo: ";
cin >> article.PrecioCosto;
cout << " Stock: ";
cin >> article.stock;
}
void art::CambiarStock (int &stock)
{
art article;
cout << " Ingrese el nombre del articulo: ";
cin.getline(article.name, 50);
cout << " Ingresar nuevo stock: ";
cin >> article.stock;
}
void art::ConsultarPrecioCosto (char name[], float PrecioCosto)
{
art article;
cout << " Ingrese el nombre del articulo: ";
cin.getline(article.name, 50);
cout << " El precio es: " << article.PrecioCosto;
}
void art::ConsultarPrecioVenta (char name[], float PrecioVenta)
{
art article;
cout << " Ingrese el nombre del articulo: ";
cin.getline(article.name, 50);
cout << " El precio es: " << article.PrecioVenta;
}
void art::mostrar(char name[], float price, char branch[], float PrecioVenta, float PrecioCosto, int stock)
{
art article;
cout << " -------------------------------------------------------------- \n";
cout << " -------------------------- ARTICULO --------------------------";
cout << " -- Nombre: " << article.name << "\n";
cout << " -- Marca: " << article.branch << "\n";
cout << " -- Precio de Venta: " << article.PrecioVenta << "\n"; //EXPECTED ; BEFORE "ARTICLE"
cout << " -- Precio de Costo: " << article.PrecioCosto << "\n";
cout << " -- Stock: " << article.stock << "\n"; // EPECTED ; BEFORE "ARTICLE"
cout << " -------------------------------------------------------------- \n";
}
//----------------------------------
//
// STOCK - FUNCIONES
//
//----------------------------------
StockGeneral::StockGeneral()
{
int tope[100];
for (int i =0; i <100; i++)
tope[i]=0;
}
void StockGeneral::CargarStockGeneral()
{
art article;
char rta;
int tope;
while (tope<100)
{
do {
datos[pos].load_art(price, name[], branch, PrecioVenta, PrecioCosto, stock);
tope++;
cout << " Cargar otro? S/N?";
cin >> rta;
cin.ignore();
} while(rta != 'n' && rta!='N');
system("CLS");
}
}
void StockGeneral::BuscarStock(char NombreBuscado[],int &pos, char &encontrado)
{
art article;
encontrado=0;
pos=0;
int tope=100;
int i=0;
while ((pos < tope) && (strcmp(NombreBuscado, article.name)!=0))
{
pos++;
if (pos<tope)
encontrado=1;
else
pos=1;
}
}
float StockGeneral::CambiarPrecioVenta (float PrecioVenta)
{
char encontrado;
art article;
cout << " Ingrese el nombre del articulo: ";
cin.getline(article.name, 50);
StockGeneral.BuscarStock(NombreBuscado[], pos, encontrado);
if (encontrado==0)
{
cout << " Ingresar precio de costo del articulo: ";
cin >> PrecioVenta;
}
else if (encontrado == 1)
cout << " No se puede cambiar el precio. \n El articulo ingresado no existe. \n\n";
return PrecioVenta;
}
void StockGeneral::CompraArticulos()
{
char NombreBuscado[100], encontrado;
int stockaux, pos;
cout << " Escribir nombre de articulo a cambiar stock: ";
cin.getline(NombreBuscado, 100);
StockGeneral.BuscarStock(NombreBuscado[], pos, encontrado);
if (encontrado==0)
{
cout << " Ingresar stock del articulo a comprar: ";
cin >> stockaux;
datos[pos].stock += stockaux;
cout << " Se actualizo el stock.-";
}
else if (encontrado == 1)
cout << " No se puede cambiar el precio. \n El articulo ingresado no existe. \n\n";
}
void StockGeneral::MostrarStock()
{
art articulo;
cout << " ------------------------------------------------------------------- \n";
cout << " -------------------------- STOCK GENERAL -------------------------- \n";
cout << " ------------------------------------------------------------------- \n";
for (int i=0; i <100; i++)
articulo.mostrar(name[], branch[], PrecioVenta, PrecioCosto, stock);
cout << " ------------------------------------------------------------------- \n";
cout << " ------------------------------------------------------------------- \n";
cout << " ------------------------------------------------------------------- \n";
}
//----------------------------------
//
// CLIENTE - FUNCIONES
//
//----------------------------------
void client::CargarDatos(int &id, char nombre[], char domicilio[], float &precio_acumulado)
{
client cliente;
cout << " INGRESO DE DATOS DEL CLIENTE: \n";
cout << " ------------------------------------- \n\n";
cout << " Codigo: ";
cin >> cliente.id;
cout << " Nombre: ";
cin.getline (cliente.name,50);
cout << " Domicilio: ";
cin.getline (cliente.domicilio,100);
cout << " Saldo Acumulado: ";
cin >> cliente.precio_acumulado;
}
void client::MostrarDatos(int id, char nombre[], char domicilio[], float precio_acumulado)
{
client cliente;
cout << " -+-+-+- DATOS DEL CLIENTE -+-+-+- \n";
cout << " ---------------------------------------------------- \n\n\n";
cout << " --- ID:" << cliente.id << " \n";
cout << " --- Nombre: " << cliente.name << " \n";
cout << " --- Domicilio: " << cliente.domicilio << "\n";
cout << " --- Saldo: " << cliente.precio_acumulado << "\n";
cout << " ---------------------------------------------------- \n\n\n";
}
void client::ConsultarSaldo()
{
client cliente;
cout << " Ingrese ID del cliente: ";
cin >> cliente.id;
cout << " El saldo es " << cliente.precio_acumulado << " \n";
}
void client::ActualizarSaldo(int id, float &precio_acumulado)
{
client cliente;
float nuevosaldo;
cout << " Ingresar ID del cliente: ";
cin >> cliente.id;
cout << " Ingrese nuevo Saldo: ";
cin >> nuevosaldo;
cliente.precio_acumulado = nuevosaldo;
}
//----------------------------------
// TOTAL DE CLIENTES
//
// FUNCIONES
//----------------------------------
void total_clients::CargarTotalClientes()
{
char rta;
while (tope<100)
{
do {
datos[tope].CargarDatos();
tope++;
cout << " Cargar otro? S/N?";
cin >> rta;
cin.ignore();
} while(rta != 'n' && rta!='N');
system("CLS");
}
}
void total_clients::MostrarTotalClientes()
{
client cliente;
int id;
char name [50], domicilio [100];
float precio_acumulado;
cout << " DETALLE DE TODOS LOS CLIENTES: \n";
cout << " ------------------------------------------------- \n\n";
cliente.MostrarDatos(id, name, domicilio, precio_acumulado);
cout << " ------------------------------------------------- \n\n";
}
void total_clients::BuscarTotalClientes(char NombreBuscado[],int &pos, char &encontrado)
{
art article;
encontrado=0;
pos=0;
int tope=100;
while ((pos <tope) && (strcmp(NombreBuscado, article[pos].name)!=0))
{
pos++;
if (pos<tope)
encontrado=true;
else
pos=1;
}
}
//----------------------------------
// FACTURAS
//
// FUNCIONES
//----------------------------------
void venta::CargarFactura(char name[], char branch[], int &stock, float totalfactura)
{
art articulo;
int stockfactura;
float totalfactura;
cout << " Ingresar nombre de articulo a vender: ";
cin.getline(articulo.name, 50);
StockGeneral.BuscarStock(NombreBuscado, pos, encontrado);
if (encontrado == 1)
{
cout << " Ingresar marca: ";
cin.getline(articulo.branch,50);
cout << " Ingresar stock: ";
cin >> stockfactura;
while (stockfactura > articulo.stock)
{
cout << " No se puede vender esa cantidad. \n Ingresar stock correcto: ";
cin >> stockfactura;
}
}
articulo.stock = articulo.stock - stockfactura;
totalfactura= stockfactura*articulo.PrecioVenta;
cout << " Ingresar nombre de cliente: ";
cin.getline (client.name, 50);
total_clients.BuscarCliente(NombreBuscado, pos, encontrado);
if (encontrado == 1)
{
client.precio_acumulado = client.precio_acumulado - totalfactura;
if (client.precio_acumulado < 0)
cout << " No se puede realizar esta venta.";
}
else if (encontrado ==0)
cout << " El cliente ingresado no existe. \n";
}
void venta::MostrarFactura(char name[], char branch[], int &stock, float totalfactura)
{
cout << " ---------------------------------------------------- ";
cout << " -- Articulo: " << art.name << "\n";
cout << " -- Marca: " << art.branch << "\n";
cout << " -- Stock vendido: " << art.stock << "\n\n";
cout << " -- Cliente: " << client.name << "\n";
cout << " -- Saldo actual del cliente: " << client.precio_acumulado << "\n\n\n";
cout << " ---------- TOTAL FACTURA: -- $" << totalfactura << "\n";
}
//----------------------------------
//
// MAIN
//
//----------------------------------
int main()
{
art articulos;
StockGeneral StockTotal;
client clientes;
total_clients todoslosclientes;
venta factura;
float totalfactura;
int stock;
char choice;
cout << " ------------------------------------------- \n";
cout << " -------------- ELEGIR ACCION -------------- \n";
cout << " ------------------------------------------- \n\n";
cout << " -1- Cargar articulos. \n"; // LLAMA A CARGAR DEL STOCKGENERAL
cout << " -2- Consultar Precio de Costo. \n";
cout << " -3- Consultar Precio de Venta. \n";
cout << " -4- Cambiar Stock. \n";
cout << " -5- Mostrar articulos. \n\n"; // MOSTRAR DEL STOCKGENERAL
cout << " -6- Buscar un articulo. \n";
cout << " -7- Comprar articulos. \n";
cout << " -8- Mostrar StockGeneral. \n\n";
cout << " -9- Cargar datos del cliente. \n";
cout << " -a- Consultar Saldo. \n";
cout << " -b- Actualizar saldo. \n";
cout << " -c- Buscar Cliente. \n";
cout << " -d- Mostrar clientes. \n\n";
cout << " -h- Cargar datos para factura. \n";
cout << " -i- Mostrar factura. \n\n";
cout << " -0- Salir. \n\n";
cout << " Elegiste: ";
cin >> choice;
cout << " ------------------------------------------- \n\n";
cout << " ------------------------------------------- \n\n";
cout << " ------------------------------------------- \n\n";
switch (choice)
{
case '1':
StockTotal.CargarStockGeneral();
break;
case '2':
articulo.consultarprecosto();
break;
case '3':
articulo.consultarprevta();
break;
case '4':
articulo.cambiarcosto();
break;
case '5':
StockTotal.MostrarStock();
break;
case '6':
StockTotal.BuscarStock(NombreBuscado[], pos, encontrado);
break;
case '7':
StockTotal.CompraArticulos();
break;
case '8':
StockTotal.MostrarStock();
break;
case '9':
todoslosclientes.CargarTotalClientes();
break;
case 'a': case 'A':
clientes.ConsultarSaldo();
break;
case 'b':case 'B':
clientes.ActualizarSaldo();
break;
case 'c': case 'C':
todoslosclientes.BuscarTotalClientes();
break;
case 'd': case 'D':
todoslosclientes.MostrarTotalClientes();
break;
case 'h': case 'H':
factura.CargarFactura(name[], branch[], stock, totalfactura);
break;
case 'i': case 'I':
factura.MostrarFactura();
break;
case'0':
cout << " ---Fin del programa--- \n";
}
system("PAUSE");
return EXIT_SUCCESS;
}