elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Problemas con programa usando struct en: 28 Noviembre 2013, 22:30 pm
Ohh.. creo que ya  capte como hacerlo...al menos usando la opción 3, y con respecto al uso del define en printf y scanf, sep mal habito mio, se me pego de un libro de programación que me encontré que traía algunos ejemplos hechos de esa manera xD.

Gracias, voy a hacer los cambios (esperar hacerlos bien) y rogar que funcione, si sigo con problemas volveré a postear aquí owo. Gracias dato000!!! *.*
2  Programación / Programación C/C++ / Problemas con programa usando struct en: 28 Noviembre 2013, 03:17 am
Buenas tengo algunos problemas con este programa y quisiera ver si me pueden ayudar.

En si las fallas que no consigo corregir son de que si por ejemplo en principio lleno 2 datos struct, y después quiero volver al menú para agregar el tercero, me conserve los anteriores sin borrarlos, y que cuando seleccione la opción de imprimir en pantalla, me aparezcan los 2 primeros + el tercero que se agrego después.

El otro problema es que si quiero realizar una búsqueda ya sea por Marca o N. de Registro me haga la búsqueda en todos los struct que solo la busca en el primero.

Espero que me puedan ayudar, gracias de antemano y buenas noches.

Código
Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 3
#define p printf
#define s scanf

 struct x
 {
 int serie, exi;
 char mod[20], marca[20], color[50];
 float precio;
 }coche[MAX];

 void imprimir(int);
 void imprimir_cod(int, int);
 void imprimir_marc(int, char);
 void agregar(int);

 /*coche[0].precio=200000;*/
 /*busqueda por n. de serie o marca*/
 void agregar(int exi)
 {
     int i=0,j, z;
     while(i<exi)
     {
         p("Inserta los siguientes datos que se te pidan\n");
         for(i=0;i<exi;i++)
         {
           p("Datos de Producto %d\n", i+1);
           p("Modelo\n");
           s("%s", & coche[i].mod);
           p("\n");
           p("Marca\n");
           s("%s", & coche[i].marca);
           p("\n");
           p("N. de Serie\n");
           s("%d", & coche[i].serie);
           p("\n");
           p("Precio\n");
           s("%f", & coche[i].precio);
           p("\n");
           p("Color\n");
           s("%s", & coche[i].color);
           p("\n");
           p("Inventario\n");
           s("%d", & coche[i].exi);
           system("cls");
         }
         i++;
         system("cls");
     }

 }


 void imprimir(int exi)
 {
     int i;
     for(i=0;i<exi;i++)
     {
         p("Modelo %s\n",coche[i].mod);
         p("Marca %s\n", coche[i].marca);
         p("N. de Serie %d\n", coche[i].serie);
         p("Precio %.2f\n", coche[i].precio);
         p("Color %s\n", coche[i].color);
         p("Inventario %d\n", coche[i].exi);
         p("\n");
     }
     i++;
 }

 void imprimir_cod(int exi, int serie)
 {
     int i;
     for(i=0;i<exi;i++)
     {
         p("Modelo %s\n",coche[i].mod);
         p("Marca %s\n", coche[i].marca);
         p("N. de Serie %d\n", coche[i].serie);
         p("Precio %.2f\n", coche[i].precio);
         p("Color %s\n", coche[i].color);
         p("Inventario %d\n", coche[i].exi);
         p("\n");
     }
     i++;
 }

  void imprimir_marc(int exi, char marca)
 {
     int i;
     for(i=0;i<exi;i++)
     {
         p("Modelo %s\n",coche[i].mod);
         p("Marca %s\n", coche[i].marca);
         p("N. de Serie %d\n", coche[i].serie);
         p("Precio %.2f\n", coche[i].precio);
         p("Color %s\n", coche[i].color);
         p("Inventario %d\n", coche[i].exi);
         p("\n");
     }
     i++;
 }



 int main()
 {
     int exi, opc, r, q=0,i=0, serie, cont;
     char marca[20];
     do{
     p("Que funcion deseas realizar\n");
     p("1.Agregar Datos\n");
     p("2.Imprimir Datos\n");
     p("3.Buscar Datos por N. de Serie\n");
     p("4.Buscar Datos por Marca\n");
     s("%d", & opc);

     system("cls");
     switch(opc)
     {
         case 1:
         q++;
         p("Cuanto elementos agregaras\n");
         p("No mas de 3 lementos\n");
         p("Puedes agregar elementos en el orden que desees\n");
         s("%d", & exi);
         /*cont=exi*/

         system("cls");
         while(exi>MAX)
         {
             p("NO puedes tener mas de 3 elementos\n");
             p("Cuanto elementos agregaras\n");
             s("%d", & exi);
             system("cls");
         }

         agregar(exi);

         do{
         p("Para regresar al menu principal y agregar mas datos presione 1\n");
         s("%d", & r);
         system("cls");
         }while(r!=1);

         break;

         case 2:
         while(q==0)
         {
             p("No hay datos que imprimir\nRegresando a menu principal\n");
             main();
             q++;
         }

         imprimir(exi);

         do{
         p("Para regresar al menu principal y agregar mas datos presione 1\n");
         s("%d", & r);
         system("cls");
         }while(r!=1);

         break;

         case 3:
         while(q==0)
         {
             p("No hay datos que buscar\nRegresando a menu principal\n");
             main();
             q++;
         }
         p("Que numero de Serie buscas\n");
         s("%d", & serie);

         if(serie==coche[i].serie)
         {

             p("Se encontro el modelo de vehiculo\n");
             imprimir_cod(1,serie);
         }
         else p("No se encontro el modelo de vehiculo\n");

          do{
         p("Para regresar al menu principal y hacer otros movimientos 1\n");
         s("%d", & r);
         system("cls");
         }while(r!=1);

         break;

         case 4:
          while(q==0)
         {
             p("No hay datos que buscar\nRegresando a menu principal\n");
             main();
             q++;
         }
         p("Que marca de Vehiculo buscas\n");
         s("%s", & marca);

         if (strcmp(marca, coche[i].marca) == 0)
         {
             p("Se encontro la Marca del vehiculo\n");
             imprimir_marc(1,*marca);
         }
         else p("No se encontro la Marca del vehiculo\n");

          do{
         p("Para regresar al menu principal y hacer otros movimientos 1\n");
         s("%d", & r);
         system("cls");
         }while(r!=1);

     }
     }while(r==1);
    }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines