Hola buenas gente, tengo un problema con esta tarea de estructuras, consiste en un programa que almacene el inventario de muebles y luego los liste dependiendo de su tipo, material o código, el problema es cuando uso la opción 5 que es buscar un mueble por su nombre, si ustedes ingresan un mueble y luego buscan con esa opción el mueble, este aparecerá por un segundo y luego desaparece, no se si deje mal puesto algún system("cls") por ahí o algo escribí mal, la idea es que quede fijo el listado hasta que elija otra opción.
Y lo otro si alguien me puede decir como poner una "ñ" en el printf porfa.
Adjunto mi código para que puedan probarlo.
De antemano gracias.
Solucionado jajajajaj
Y lo otro si alguien me puede decir como poner una "ñ" en el printf porfa.
Adjunto mi código para que puedan probarlo.
De antemano gracias.
Código (csharp) [Seleccionar]
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#include<dos.h>
#define MAXLINEA 30
#define MAXTIPO 15
#define MAXCOLOR 15
#define MAXMATERIAL 20
#define MAXMUEBLE 1000
enum { Anadir=1, Listartodo, Listartipo, Listarmaterial, Buscarmueble, Eliminarmueble, Salir};
struct fecha {
int dia;
int mes;
int ano;
};
struct mueble {
int codigo;
char tipo[MAXTIPO];
char color[MAXCOLOR];
char material[MAXMATERIAL];
struct fecha creacion;
int precio;
};
struct bodega {
struct mueble bod[MAXMUEBLE];
int cant;
};
int main (void) {
struct bodega mis_muebles;
int opc, i, j;
char tipo[MAXTIPO];
char material[MAXMATERIAL];
char linea[MAXLINEA];
int codigo;
mis_muebles.cant = 0;
do{
do{
printf ("---------------------\n");
printf ("Inventario Muebletex\n");
printf ("---------------------\n");
printf ("1) Anadir mueble\n");
printf ("2) Listar muebles\n");
printf ("3) Listar por tipo de mueble\n");
printf ("4) Listar por tipo de material\n");
printf ("5) Buscar mueble\n");
printf ("6) Eliminar mueble\n");
printf ("7) Salir\n\n");
printf ("Opcion: ");
gets(linea); sscanf (linea, "%d", &opc);
if (opc < 1 || opc > 7){
printf ("Opcion inexistente. Debe estar entre 1 y 5\n");
}
} while(opc < 1 || opc > 7);
switch (opc) {
case Anadir:
sleep(1);
system("cls");
if (mis_muebles.cant == MAXMUEBLE){
printf("Lo sentimos, La memoria esta llena.\n");
} else{
printf("Codigo: ");
gets(linea); sscanf (linea, "%d", &mis_muebles.bod[mis_muebles.cant].codigo);
printf("\nFecha:\n\n");
do{
printf("Dia: ");
gets(linea); sscanf (linea, "%d", &mis_muebles.bod[mis_muebles.cant].creacion.dia);
if (mis_muebles.bod[mis_muebles.cant].creacion.dia < 1 || mis_muebles.bod[mis_muebles.cant].creacion.dia > 31){
printf ("Opcion inexistente. Debe estar entre 1 y 31\n");
}
} while (mis_muebles.bod[mis_muebles.cant].creacion.dia < 1 || mis_muebles.bod[mis_muebles.cant].creacion.dia > 31);
do{
printf("Mes: ");
gets(linea); sscanf (linea, "%d", &mis_muebles.bod[mis_muebles.cant].creacion.mes);
if (mis_muebles.bod[mis_muebles.cant].creacion.mes < 1 || mis_muebles.bod[mis_muebles.cant].creacion.mes > 12){
printf ("Opcion inexistente. Debe estar entre 1 y 12\n");
}
} while (mis_muebles.bod[mis_muebles.cant].creacion.mes < 1 || mis_muebles.bod[mis_muebles.cant].creacion.mes > 12);
do{
printf("Ano: ");
gets(linea); sscanf (linea, "%d", &mis_muebles.bod[mis_muebles.cant].creacion.ano);
if (mis_muebles.bod[mis_muebles.cant].creacion.ano < 1000 || mis_muebles.bod[mis_muebles.cant].creacion.ano > 3000){
printf ("Opcion inexistente. Debe estar entre 1000 y 3000\n");
}
} while (mis_muebles.bod[mis_muebles.cant].creacion.ano < 1000 || mis_muebles.bod[mis_muebles.cant].creacion.ano > 3000);
printf("\nTipo de mueble: ");
gets(mis_muebles.bod[mis_muebles.cant].tipo);
printf("Material: ");
gets(mis_muebles.bod[mis_muebles.cant].material);
printf("Color: ");
gets(mis_muebles.bod[mis_muebles.cant].color);
printf("Precio: ");
gets(linea); sscanf (linea, "%d", &mis_muebles.bod[mis_muebles.cant].precio);
mis_muebles.cant++;
}
sleep(1);
system("cls");
break;
case Listartodo:
sleep(1);
system("cls");
for(i = 0; i < mis_muebles.cant; i++){
printf("--------------------------------------\n");
printf("Codigo: %d Fecha: %d/%d/%d\n", mis_muebles.bod[i].codigo,
mis_muebles.bod[i].creacion.dia,
mis_muebles.bod[i].creacion.mes,
mis_muebles.bod[i].creacion.ano);
printf("Tipo de mueble: %s\n", mis_muebles.bod[i].tipo);
printf("Material: %s\n", mis_muebles.bod[i].material);
printf("Color: %s\n", mis_muebles.bod[i].color);
printf("Precio: $%d pesos\n", mis_muebles.bod[i].precio);
printf ("\n");
}
break;
case Listartipo:
sleep(1);
system("cls");
printf("Tipo de mueble a buscar: "); gets(tipo);
for(i = 0; i < mis_muebles.cant; i++){
if (strcmp(tipo, mis_muebles.bod[i].tipo) == 0){
printf("--------------------------------------\n");
printf("Codigo: %d Fecha: %d/%d/%d\n", mis_muebles.bod[i].codigo,
mis_muebles.bod[i].creacion.dia,
mis_muebles.bod[i].creacion.mes,
mis_muebles.bod[i].creacion.ano);
printf("Tipo de mueble: %s\n", mis_muebles.bod[i].tipo);
printf("Material: %s\n", mis_muebles.bod[i].material);
printf("Color: %s\n", mis_muebles.bod[i].color);
printf("Precio: $%d pesos\n", mis_muebles.bod[i].precio);
}
}
break;
case Listarmaterial:
sleep(1);
system("cls");
printf("Tipo de material a buscar: "); gets(material);
for(i = 0; i < mis_muebles.cant; i++){
if (strcmp(material, mis_muebles.bod[i].material) == 0){
printf("--------------------------------------\n");
printf("Codigo: %d Fecha: %d/%d/%d\n", mis_muebles.bod[i].codigo,
mis_muebles.bod[i].creacion.dia,
mis_muebles.bod[i].creacion.mes,
mis_muebles.bod[i].creacion.ano);
printf("Tipo de mueble: %s\n", mis_muebles.bod[i].tipo);
printf("Material: %s\n", mis_muebles.bod[i].material);
printf("Color: %s\n", mis_muebles.bod[i].color);
printf("Precio: $%d pesos\n", mis_muebles.bod[i].precio);
}
}
break;
case Buscarmueble:
sleep(1);
system("cls");
printf("Ingrese el codigo del producto a buscar: "); scanf("%d", &codigo);
for(i = 0; i < mis_muebles.cant; i++){
if(codigo == mis_muebles.bod[i].codigo){
printf("Codigo: %d Fecha: %d/%d/%d\n", mis_muebles.bod[i].codigo,
mis_muebles.bod[i].creacion.dia,
mis_muebles.bod[i].creacion.mes,
mis_muebles.bod[i].creacion.ano);
printf("Tipo de mueble: %s\n", mis_muebles.bod[i].tipo);
printf("Material: %s\n", mis_muebles.bod[i].material);
printf("Color: %s\n", mis_muebles.bod[i].color);
printf("Precio: $%d pesos\n", mis_muebles.bod[i].precio);
}
}
break;
case Eliminarmueble:
sleep(1);
system("cls");
printf("Ingrese el codigo del producto para eliminar: "); scanf("%d", &codigo);
for(i = 0; i < mis_muebles.cant; i++){
if(codigo == mis_muebles.bod[i].codigo){
break;
}
}
if(i < mis_muebles.cant){
for(j = i+1; j < mis_muebles.cant; j++){
mis_muebles.bod[j-1] = mis_muebles.bod[j];
mis_muebles.cant--;
}
}
sleep(1);
system("cls");
break;
}
} while(opc != Salir);
}
Solucionado jajajajaj