06/04/2015, 10:50
|
Usuario no validado | | Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años, 1 mes Puntos: 5 | |
Respuesta: Qué hacer para que mi programa vuelva al menú anterior y siga ejecutandose Hize unos cambios, creo que lo logré, me gustaría que lo probaran y me digan sus opiniones y qué cosas puedo mejorar.
Código:
#include <stdio.h>
#include <stdlib.h>
/*
Tema V. Funciones
22. Escriba un programa en el cual haciendo uso de arreglos se puedan manipular conjuntos de números enteros donde se ofrezcan los siguientes servicios:
a)Insertar un elemento en el conjunto.
b)Eliminar un elemento del conjunto.
c)Determinar si un elemento es miembro o no en el conjunto.
d)Unión de conjuntos.
e)Intersección de conjuntos.
*/
//Declaración de prototipos
int RepetirPrograma(void);
int MenuPrincipal(size_t TamanoArreglo);
void MostrarConjunto(int laiArreglo[], size_t TamanoArreglo);
void InsertarElemento(int liElemento, int laiArreglo[], size_t TamanoArreglo);
void EliminarElemento(int liElemento, int laiArreglo[], size_t TamanoArreglo);
void DeterminarExistencia(int liElemento, int laiArreglo[], size_t TamanoArreglo);
int main()
{
//Declaración de variables
int liRepetirPrograma,
laiArreglo[] = {5,8,2,3,1,4,6,9,7,10}, liElemento;
do
{
//Procesamiento
switch (MenuPrincipal(sizeof (laiArreglo) / sizeof (int)))
{
case 1:
system("cls");
printf("1. Insertar un elemento en el conjunto");
printf("\n--------------------------------------");
printf("\nIngrese el elemento: ");
scanf("%d", &liElemento);
InsertarElemento(liElemento, laiArreglo, sizeof (laiArreglo) / sizeof (int));
MostrarConjunto(laiArreglo, sizeof (laiArreglo) / sizeof (int));
liRepetirPrograma = RepetirPrograma();
break;
case 2:
system("cls");
printf("2. Eliminar un elemento del conjunto");
printf("\n------------------------------------");
printf("\nIngrese el elemento: ");
scanf("%d", &liElemento);
EliminarElemento(liElemento, laiArreglo, sizeof (laiArreglo) / sizeof (int));
MostrarConjunto(laiArreglo, sizeof (laiArreglo) / sizeof (int));
liRepetirPrograma = RepetirPrograma();
break;
case 3:
system("cls");
printf("3. Determinar si un elemento es miembro o no en el conjunto");
printf("\n-----------------------------------------------------------");
printf("\nIngrese el elemento: ");
scanf("%d", &liElemento);
DeterminarExistencia(liElemento, laiArreglo, sizeof (laiArreglo) / sizeof (int));
MostrarConjunto(laiArreglo, sizeof (laiArreglo) / sizeof (int));
liRepetirPrograma = RepetirPrograma();
break;
case 4:
break;
case 5:
break;
}
} while (liRepetirPrograma == 1);
return 0;
}
int RepetirPrograma(void)
{
int liRepetirPrograma;
printf("-------------------------------------------------------------------------------\nPresione 1 para volver al men%c anterior...\n=> ", 163);
scanf("%d", &liRepetirPrograma);
return liRepetirPrograma;
}
int MenuPrincipal(size_t TamanoArreglo)
{
system("cls");
int liOpcionMenu;
printf("NOTA: Tama%co m%cximo del conjunto: %d\n", 164, 160, TamanoArreglo);
printf("\n----------MENU-----------------------------------------------------------------");
printf("\n1. Insertar un elemento en el conjunto");
printf("\n2. Eliminar un elemento del conjunto");
printf("\n3. Determinar si un elemento es miembro o no en el conjunto");
printf("\n4. Uni%cn de conjuntos", 162);
printf("\n5. Intersecci%cn de conjuntos", 162);
printf("\n-------------------------------------------------------------------------------");
do
{
printf("\n=> ");
scanf("%d", &liOpcionMenu);
if (liOpcionMenu <= 0 || liOpcionMenu > 5)
printf("\n\tError!, debe ingresar un valor de 1 a 5.\n");
} while (liOpcionMenu <= 0 || liOpcionMenu > 5);
return liOpcionMenu;
}
void MostrarConjunto(int laiArreglo[], size_t TamanoArreglo)
{
int liContador;
printf("\nCONJUNTO: ");
for (liContador = 0; liContador < TamanoArreglo; liContador++)
{
printf("%d", laiArreglo[liContador]);
if (liContador < TamanoArreglo - 1)
printf(", ");
}
printf("\n");
}
void InsertarElemento(int liElemento, int laiArreglo[], size_t TamanoArreglo)
{
int liContador, liCondicionElse = 0;
for (liContador = 0; liContador < TamanoArreglo; liContador++)
{
if (laiArreglo[liContador] == 0)
{
laiArreglo[liContador] = liElemento;
printf("\n---------------------------------------------\n| Insertado correctamente de la posici%cn %d. |\n---------------------------------------------\n", 162, liContador + 1);
liCondicionElse++;
return;
}
}
if (liCondicionElse == 0)
printf("\n\tAviso!, todas las posiciones estan ocupadas.\n");
}
void EliminarElemento(int liElemento, int laiArreglo[], size_t TamanoArreglo)
{
int liContador, liCondicionElse = 0;
for (liContador = 0; liContador < TamanoArreglo; liContador++)
{
if (laiArreglo[liContador] == liElemento)
{
laiArreglo[liContador] = 0;
printf("\n---------------------------------------------\n| Eliminado correctamente de la posici%cn %d. |\n---------------------------------------------\n", 162, liContador + 1);
liCondicionElse++;
return;
}
}
if (liCondicionElse == 0)
printf("\n\tAviso!, no existe ese elemento en el conjunto.\n");
}
void DeterminarExistencia(int liElemento, int laiArreglo[], size_t TamanoArreglo)
{
int liContador, liCondicionElse = 0;
for (liContador = 0; liContador < TamanoArreglo; liContador++)
{
if (laiArreglo[liContador] == liElemento)
{
printf("\n------------------------------------------\n| Elemento encontrado en la posici%cn %d. |\n------------------------------------------\n", 162, liContador + 1);
liCondicionElse++;
return;
}
}
if (liCondicionElse == 0)
printf("\n\tAviso!, no existe ese elemento en el conjunto.\n");
}
|