/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

ayuda urgente

 
      Índice del Foro elrincondelc.com -> Algoritmos
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
jOansol



Registrado: 13 Abr 2013
Mensajes: 3

MensajePublicado: 13/04/2013 11:59 am
Título: ayuda urgente

hola que tal compañeros pues resulta que ayer viernes me dejaron un proyecto para el lunes y ya tengo como el 40% del programa lo demas no se como hacerlo porque tengo muy pocos conocimientos sobre CODEBLOCKS C espero puedan ayudarme les dejo lo que tengo que hacer y lo que tengo hecho en verdad les agradeceria mucho que me ayudaran saludos

esto es lo que tengo hecho:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct tienda
{
int dpto;
char articulo [10];
int pcompra;
int pventa;
int existencia;
int ganancia;
};
typedef struct tienda alm;
int cont=0;
void compras(alm A[20]);
void ventas (alm A[20]);
void desplegar(alm A[20]);
void status(alm A[20]);
void elem(alm A[20]);
int main()
{
int opc,op;
alm A[20];
do
{
system("cls");
printf ("1-compra\n2-ventas\n3-desplegar articulos\n4-desplegar status de articulo\n5-desplegar elementos sin existencia\n6-salir");
scanf ("%d",&opc);
switch (opc)
{
case 1:
do{
compras(A);
cont++;
printf ("deseas agregar otro articulo 1=si 2=no");
scanf("%d",&op);
}
while (op==1);

break;
case 2:
do{
ventas(A);

printf ("deseas agregar otro articulo vendido 1=si 2=no");
scanf("%d",&op);
}
while (op==1);
break;
case 3:
desplegar (A);
break;
case 4:
status(A);
break;
case 5:
elem (A);
break;
case 6:
printf ("hasta luego");
break;
}
}
while (opc!=6);
return 0;
}
void compras (alm A[20])
{
A[cont].ganancia=0;
system ("cls");
printf ("\ndame el departamento\t");
scanf("%d",&A[cont].dpto);
fflush (stdin);
printf ("como se llama el articulo\t");
gets(A[cont].articulo);
printf("dame el precio de compra\t");
scanf ("%d",&A[cont].pcompra);
printf ("dame el precio de venta\t");
scanf ("%d",&A[cont].pventa);
printf ("cuantos articulos tendras en existencia\t");
scanf ("%d",&A[cont].existencia);
}
void ventas (alm A[20])
{
char busca[15];
int i,ar;
system("cls");
fflush(stdin);
printf("\n que articulo vendiste:");
gets(busca);
for(i=0;i<cont;i++){
if(strcmp(busca,A[i].articulo)==0){
printf ("cuantos articulos vendiste");
scanf ("%d",&ar);
if(ar<=A[i].existencia)
{
A[i].existencia=A[i].existencia-ar;
A[i].ganancia=A[i].ganancia+(A[i].pventa*ar)-(A[i].pcompra*ar);
}
else
{
printf("no habia tantos articulos en el inventario\n");
}
}
}

}
void desplegar(alm A[20])
{
system("cls");
int i;
printf("\ninventario.\n");
for(i=0;i<cont;i++)
{
printf("departamento: %d",A[i].dpto);
printf("\n%d.articulo: %s\n",(i+1),A[i].articulo);

}
system("pause");
}
void status (alm A[20])
{
char busca[15];
int i;
system("cls");
fflush(stdin);
printf("\n que articulo deseas ver:");
gets(busca);
for(i=0;i<cont;i++){
if(strcmp(busca,A[i].articulo)==0){
printf("departamento: %d",A[i].dpto);
printf("\narticulo: %s\n",A[i].articulo);
printf("precio de compra: %d\n",A[i].pcompra);
printf("precio de venta : %d\n",A[i].pventa);
printf("existencia: %d\n",A[i].existencia);
printf("ganancias : %d\n",A[i].ganancia);

}
}
system("pause");
}

void elem (alm A[20])
{
int i;
for (i=0;i<cont;i++)
{
if(A[i].existencia==0)
{
printf("departamento: %d\n",A[i].dpto);
printf ("%s\n\n",A[i].articulo);
}
}
system("pause");
}

/////
y esto es lo que me piden:

Desarrollar un programa en C capaz de manejar un negocio, los alumnos elegirán el giro del mismo (sólo negocios lícitos y decentes).
Requerimientos mínimos:
El sistema debe de poder manejar:
1. Compras: comprar a proveedores, lo cual se refleja en un ingreso de mercancías al almacén
2. Ventas: Vender a clientes, lo cual se refleja en una salida de mercancía del almacén
3. Reportes:
a. Catálogo de productos
b. Búsqueda por producto
c. Impresión de la cartera de proveedores
d. Búsqueda de proveedores
e. Impresión de la cartera de clientes
f. Búsqueda de clientes

4. Cartera de Proveedores
5. Cartera de Clientes
6. Cartera de productos
Para los puntos 1 y 2 se debe de poder cargar los datos del producto y proveedores o clientes (según sea el caso) en forma automática tomando los datos de las carteras.
Para los puntos 4, 5 y 6 deben de poder dar de alta, borrado y modificaciones.
Puntos a evaluar:
1. Manejo de herramientas: Los alumnos deben de ser capaces de identificar y aplicar las diferentes herramientas de programación vistas hasta el momento para la resolución del problema.
a. Condicionales
b. Ciclos
c. Arreglos
d. Estructuras (sin apuntadores)
e. Funciones
f. Apuntadores
g. cadenas



de verdad quedaria muy agradecido con quien pueda ayudarme
gracias por leer mi post y su tiempo para contestar
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7516
Ubicación: Mexico

MensajePublicado: 14/04/2013 8:57 am
Título:

El problema principal es la aproximación que tomaste ya que no es la correcta.

El enunciado indica que se debe permitir agregar, eliminar y listar los datos relacionados (registros) de clientes y proveedores así como indicar las operaciones (transacciones, ya sea compra o venta) con estas ultimas afectando al inventario.

Eso no lo puedes (mas bien no deberías) implementar con un solo tipo de datos. En su lugar debes utilizar tablas (arrays de estructuras) con la información de cada tipo:
Clientes
Proveedores
Artículos
Existencias
Transacciones

Cada uno de ellos se representa con un TAD y tienes un array de cada uno. En cada tabla tienes un identificador único (su id) para identificarlo sin problemas en caso de que un registro cambie de posición ya sea por ordenacion o (como es tu caso) eliminación de este o algún otro.

La parte mas difícil (en términos relativos, claro) son las transacciones. Para estas utilizas identificadores de entidad y articulo. Por ejemplo si el tipo es compra y la entidad es 5 accedes al registro proveedor[5] y si el tipo es venta y la entidad es 3 accedes al registro cliente[3]. La idea de esto es no tener información duplicada y facilitar las operaciones.

Un ejemplo de las tablas a utilizar es:
Código:
#include <stdio.h>
#include <stdlib.h>
/* Mas encabezados */

struct cliente {
   int id;
   
   char nombre[123];
   char direccion[123];
   /* ... */
};

struct proveedor {
   int id;
   
   char nombre[123];
   char direccion[123];
   /* ... */
};

struct articulo {
   int id;
   
   char nombre[123];
   char descripcion[123];
   /* ... */
};

struct inventario {
   int id;
   
   int articulo;
   int unidades;
   /* ... */
};

struct transaccion {
   int tipo;        /* Compra o venta */
   char fecha[123]; /* Formato 2013/04/14 */
   int entidad;     /* id de proveedor o cliente */
   int articulo;
   int unidades;
   double costo;    /* Costo por unidad al comprar o vender */
};

/* ... */

struct cliente     cliente    [123];
struct proveedor   proveedor  [123];
struct articulo    articulo   [123];
struct inventario  inventario [123];
struct transaccion transaccion[123];

int num_clientes;
int num_proveedores;
int num_articulos;
int num_existencias;
int num_transacciones;

/* ... */


La intención es darte una idea de que partes faltan para desarrollar (sin tantos problemas) el programa.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
jOansol



Registrado: 13 Abr 2013
Mensajes: 3

MensajePublicado: 14/04/2013 10:38 am
Título:

Aquí el problema es que ya me atore ya no se cómo seguir ya intente e intente y no puedo de verdad ayer me desvele mucho y no le sale
Alguien que me pueda echar la mano.
Volver arriba
jOansol



Registrado: 13 Abr 2013
Mensajes: 3

MensajePublicado: 15/04/2013 7:40 am
Título:

consegui este en c++ podrian ayudarme a cambiarlo a C es que no tengo idea de como se cambia no lo se usar:


#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
using namespace std;

struct datos{ float a,b,c,d,e,f,g,h,i,j; } ;datos precio;
struct datos1{ int telefono; char nombre[30],correo[30]; } ;datos1 prov;
float productos [10] = {0},total = 0,totalisimo;
int fecha;
char nombrearchivo[100];




cout << "Que numero de producto del menu desea comprar: ";
cin >> opcion;
switch(opcion)
{
case 1:
{

FILE *archdisco1;
archdisco1 = fopen("preciosos.dat","at+");
fread(&precio,sizeof(precio),1,archdisco1);
cout << "Cuantos desea comprar: ";
cin >> nproducto[0];
productos[0] = nproducto[0] * precio.a;
cout << "total del producto: $ " << productos[0] << endl;
fclose(archdisco1);
break;
}
case 2:
{
FILE *archdisco1;
archdisco1 = fopen("preciosos.dat","at+");
fread(&precio,sizeof(precio),1,archdisco1);
cout << "Cuantos desea comprar: ";
cin >> nproducto[1];
productos[1] = nproducto[1] * precio.b;
cout << "total del producto: $ " << productos[1];
fclose(archdisco1);
break;
}
case 3:
{
FILE *archdisco1;
archdisco1 = fopen("preciosos.dat","at+");
fread(&precio,sizeof(precio),1,archdisco1);
cout << "Cuantos desea comprar: ";
cin >> nproducto[2];
productos[2] = nproducto [2]* precio.c;
cout << "total del producto: $ " << productos[2];
fclose(archdisco1);
break;
}
case 4:
{
FILE *archdisco1;
archdisco1 = fopen("preciosos.dat","at+");
fread(&precio,sizeof(precio),1,archdisco1);
cout << "Cuantos desea comprar: ";
cin >> nproducto[3];
productos[3] = nproducto[3] * precio.d;
cout << "total del producto: $ " << productos[3];
fclose(archdisco1);
break;
}
case 5:
{
FILE *archdisco1;
archdisco1 = fopen("preciosos.dat","at+");
fread(&precio,sizeof(precio),1,archdisco1);
cout << "Cuantos desea comprar: ";
cin >> nproducto[4];
productos[4] = nproducto[4] * precio.e;
cout << "total del producto: $ " << productos[4];
fclose(archdisco1);
break;
}
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 7516
Ubicación: Mexico

MensajePublicado: 16/04/2013 5:25 am
Título:

No te aconsejo que solo hagas eso (pasar ese programa de C++ a C) porque no hace lo que pide el enunciado. Para el caso tu primer programa cumple mejor con los requisitos.

Un saludo
_________________
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Volver arriba
      Índice del Foro elrincondelc.com -> Algoritmos
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com