• Viernes 8 de Noviembre de 2024, 13:04

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - antiheroes

Páginas: [1]
1
C/C++ / Algo Falla
« en: Martes 12 de Junio de 2007, 20:23 »
Lo primero de todo pedir disculpas, por el otro tema que abrí, y segundo haber si ahora podeis ayudarme a encontrar donde he cometido los errores.

He empezado a hacer el ejercicio que os había comentado basándome en otro ejercicio similar que hice hacce tiempo, pero no acaba de funcionar.

#include <stdio.h>
#include <string.h>

struct sstock  
{
        char codigo_producto [4];
        char descripcion_producto [20];
        int stock_actual;
        float valor;                                                                                                                  
};    

void entrar_stock(struct sstock astock[4])
{
    int i;
    for(i=0;i<4;i++)
    {
        printf("\n\nIntroduce el producto [%d]",i);
        printf("\nCodigo_producto:"); scanf("%s",astock.codigo_producto);
        printf("\nDescripcion_producto:"); scanf("%s",astock.descripcion_producto);
        printf("\nStock_actual:"); scanf("%d",&astock.stock_actual);
        printf("\nValor:"); scanf("%f",&astock.valor);
    }    
}

void buscar_stock(struct sstock astock[4], char *codigo_producto)
{
    int i;
    for(i=0;i<4;i++)
      if (strcmp(astock.codigo_producto,codigo_producto)==0)
            {
                printf("\n\nProducto: [%d]",i);
                printf("\nCodigo_producto: %s",astock.codigo_producto);
                printf("\nDescripcion_producto: %s",astock.descripcion_producto);
                printf("\nStock_actual: %d",astock.stock_actual);
                printf("\nValor: %f",astock.valor);
            }    
}

void imp_stock(struct sstock astock[4])
{
    int i;
    for(i=0;i<4;i++)
    {
        printf("\n\nProducto: [%d]",i);
        printf("\nCodigo_producto: %s",astock.codigo_producto);
        printf("\nDescripcion_producto: %s",astock.descripcion_producto);
        printf("\nStock_actual: %d",astock.stock_actual);
        printf("\nValor: %f",astock.valor);
    }    
}

void ordenar_stock(struct sstock astock[4])
{
    int i,j;
    struct sstock tstock;
   
    for(i=0;i<4-1;i++)
        for(j=i+1;j<4;j++)
                if (strcmp(astock.codigo_producto,astock[j].codigo_producto)>0)
                {
                     strcpy(tstock.codigo_producto,astock.codigo_producto);
                     strcpy(tstock.descripcion_producto,astock.descripcion_producto);
                     tstock.stock_actual=astock.stock_actual;
                     tstock.valor=astock.valor;
                     
                     strcpy(astock.codigo_producto,astock[j].codigo_producto);
                     strcpy(astock.descripcion_producto,astock[j].descripcion_producto);
                     astock.stock_actual=astock[j].stock_actual;
                     astock.valor=astock[j].valor;
                     
                     strcpy(astock.codigo_producto,tstock.codigo_producto);
                     strcpy(astock.descripcion_producto,tstock.descripcion_producto);
                     astock.stock_actual=tstock.stock_actual;
                     astock.valor= tstock.valor;
             
                }    
         
}
main()
{
    struct sstock astock[4];
    int opcion;
    char codigo_producto[4];
   
    do
    {
                do
                {
                        printf("\n 1- Entrar stock");
                        printf("\n 2- Buscar stock");
                        printf("\n 3- Listar stock");
                        printf("\n 4- Salir\n");
                        printf("Opcion:");
                        scanf("%d",&opcion);
                } while (opcion<1 || opcion>4);  
                 
                switch(opcion)
                {
                        case 1: entrar_stock(astock);
                            break;
                        case 2:
                                printf("Introduce el codigo_producto a buscar:");
                                scanf("%s",codigo_producto);
                                buscar_stock(astock,codigo_producto);
                                getche();
                             break;
                        case 3:
                            imp_stock(astock);
                            ordenar_stock(astock);  
                            break;
                        case 4: exit(1);
                            break;
                 }    
                getch();
  } while (1);      
}

El fallo es que escoja la opción del menú que escoja siempre me pide que introduzca los datos.

Una pregunta, como puedo guardar los productos en un fichero?

2
C/C++ / Solución Para 2 Ejercicios En C
« en: Martes 12 de Junio de 2007, 17:34 »
Hola, soy nuevo en este foro y se que es mucho pedir, pero me gustaría si pudierais ayudarme a resolver este ejercicio que me salió en un examen, el cual suspendí, y tendré la posibilidad de recuperarlo dentro de muy poco y el profe me ha dicho que sería similar, así que si me lo resolvieseis me haríais un grandísimo favor.
Los ejercicios son estos (el que más cuenta es el primero, con lo que el segundo si quereis no hace falta ni que os lo miréis).

1).

Define una estructura de la siguiente forma:

struct stock
{
   char codigo_producto [4];  // identificador de 3 letras
   char descripcion_producto [20];
   int stock_actual;
   float valor;  // precio en euros
};

Define una matriz de 4 elementos de dicha estructura y realiza un programa con las siguientes opciones de menú:

a. Entrar stock
b. Listar stock ordenado por el campo stock_actual
c. Buscar stock actual de un determinado producto por el campo codigo_producto
d. Calcula el valor total de stock (la suma de todos los productos por su valor)
e. Guardar todos los productos en un fichero
f. Salir

Cada función del menú a de llamar a una función definida de forma conveniente y a la cual se pasa la array de estructuras.


2)
 Escribe un programa que pida el nombre de un fichero de texto, lo abra y cree un segundo fichero eliminando los espacios en blanco del primero. Si el fichero no existe tendrás que mostrar un mensaje de error en consecuencia.

Se que son el primero es un ejercicio grandísimo, pero como ya he dicho si pudiese hacermelo alguien le estaría muy agradecido.
Muchísimas gracias de antemano.

Páginas: [1]