Problema con clear screen

Iniciado por Miguelito, 26 Junio 2019, 07:45 AM

0 Miembros y 1 Visitante están viendo este tema.

Miguelito

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.

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