Muy bueno tio, este script esta muy guapo!!
Thanks por el aporte
Thanks por el aporte

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú//FICHEROS DE CABECERA
#include "stdio.h"
#include "math.h"
#include "ctype.h"
//DEFINICION DE CONSTANTES
#define PI 3.1416
//DECLARACION DE FUNCIONES
unsigned int fmenu();
void fopcion_longitud();
void fopcion_area();
void fopcion_volumen();
unsigned int fpedir_radio();
double fcalcular_longitud(unsigned int radio);
double fcalcular_area(unsigned int area);
double fcalcular_volumen(unsigned int volumen);
//FUNCION PRINCIPAL
void main()
{
//DECLARACION DE VARIABLES
unsigned int opcion;
//OPERACIONES
do
{
opcion = fmenu();
switch(opcion)
{
case 1:fopcion_longitud();
break;
case 2:fopcion_area();
break;
case 3:fopcion_volumen();
break;
case 4:puts("\nFinal del P1440502");
break;
default: printf("\nOpcion: %u erronea",opcion);
}
}while(opcion !=4);
}
//ENVIA UN MENU A LA CONSOLA
unsigned int fmenu()
{
//DECLARACIONES
unsigned int opcion;
//OPERACIONES
puts("\n CON ESTE PROGRAMA PUEDE");
puts("\n -----------------------");
puts("\n1.CALCULAR LA LONGITUD DE LA CIRCUNFERENCIA");
puts("\n2.CALCULAR EL AREA DE LA CIRCUNFERENCIA");
puts("\n3.CALCULAR EL VOLUMEN DE LA ESFERA");
puts("\n\n TECLEEE LA OPCION DESEADA");
scanf("%u",&opcion);
return(opcion);
}
//TRATA LA OPCION DE PROCESO DE TRATAR LONGITUDES
void fopcion_longitud()
{
//DECLARACIONES
unsigned int radio;
char res;
double longitud;
//OPERACIONES
do
{
radio = fpedir_radio();
longitud = fcalcular_longitud(radio);
printf("\nRadio: %u Longitud: %8.2lf",radio,longitud);
puts("\nDesea calcular otra longitud?");
fflush(stdin);
res = getchar();
res = tolower(res);
}while(res == 's');
}
//TOMA DE CONSOLA EL RADIO
unsigned int fpedir_radio()
{
//DECLARACIONES
unsigned int radio;
//OPERACIONES
puts("\nTeclee Radio");
scanf("%u",&radio);
return(radio);
}
//CALCULA LA LONGITUD DE UNA CIRCUNFERENCIA
double fcalcular_longitud(unsigned int radio)
{
//DECLARACIONES
double longitud;
//OPERACIONES
longitud = 2 * PI * radio;
return(longitud);
}
//TRATA LA OPCION DE PROCESO DE CALCULAR AREAS
void fopcion_area()
{
//DECLARACIONES
unsigned int radio;
char res;
double area;
//OPERACIONES
do
{
radio=fpedir_radio();
area=fcalcular_area(radio);
printf("\nRadio: %u Area: %8.2lf",radio,area);
puts("\n¿Desea calcular otro area");
fflush(stdin);
res = getchar();
res = tolower(res);
}while(res == 's');
}
//CALCULA EL AREA DE UNA CIRCUNFERENCIA
double fcalcular_area(unsigned int radio)
{
//DECLARACIONES
double area;
//OPERACIONES
area = PI*pow(radio,2);
return(area);
}
//TRATA LA OPCION DE PROCESO DE CALCULAR VOLUMENES
void fopcion_volumen()
{
//DECLARACIONES
unsigned int radio;
char res;
double volumen;
//OPERACIONES
do
{
radio = fpedir_radio();
volumen = fcalcular_volumen(radio);
printf("\nRadio: %u Area: %8.2lf",radio,volumen);
puts("\n¿Desea calcular otro volumen?");
fflush(stdin);
res = getchar();
res = tolower(res);
}while(res=='s');
}
//CALCULA EL VOLUMEN DE UNA ESFERA
double fcalcular_volumen(unsigned int radio)
{
//DECLARACIONES
double volumen;
//OPERACIONES
volumen = (4/3)*PI*pow(radio,3);
return(volumen);
}
#include "stdio.h"
#include "string.h"
#define ELEMENTOS 100
struct LIBRO
{
long int codigo;
char titulo[20];
char autor[20];
int precio;
};
int fopcion();
int finsertar_libros(int elementos, struct LIBRO *pvlibros);
void fconsultar_libros(int elementos, struct LIBRO *pvlibros);
void fconsultar_precios(int elementos, struct LIBRO *pvlibros);
void fmodificar_precios(int elementos, struct LIBRO *pvlibros);
void fvisualizar_libros(int elementos, struct LIBRO *pvlibros);
struct LIBRO fpedir_datos();
long int fpedir_codigo();
void fpedir_titulo(char*ptitulo);
void fpedir_autor(char*pautor);
int fpedir_precio();
void fvisualizar(int elementos,struct LIBRO*pvlibros);
int fbusqueda_lineal_t(int elementos,char*ptitulo,char*pautor,struct LIBRO*pvlibros);
int fbusqueda_lineal_c(int elementos,long int codigo,struct LIBRO*pvlibros);
void fordenar_baraja(int elementos, struct LIBRO*pvlibros);
void main()
{
int opcion;
int elementos=0;
struct LIBRO v_libros[ELEMENTOS];
do
{
opcion=fopcion();
switch(opcion)
{
case 1: elementos = finsertar_libros (elementos,v_libros);
break;
case 2:fconsultar_libros(elementos,v_libros);
break;
case 3:fconsultar_precios(elementos,v_libros);
break;
case 4:fmodificar_precios(elementos,v_libros);
break;
case 5:fvisualizar_libros(elementos,v_libros);
break;
case 6:puts("\nFinal de p1450303");
break;
default : puts("\nOpcion erronea");
}
}while(opcion!=6);
}
int fopcion()
{
int opcion;
puts("\n C A T A L O G O D E L I B R O S"
"\n 1.-Añadir titulos al catalogo de libros"
"\n 2.-Consultar si existe un libro"
"\n 3.-Consultar precios"
"\n 4.-Modificar precios"
"\n 5.-Visualizar el catalogo"
"\n 6.-Finalizar el proceso"
"\n Teclee la opcion de proceso deseada");
scanf("%d",&opcion);
return(opcion);
}
int finsertar_libros(int elementos,struct LIBRO*pvlibros)
{
char res;
do
{
if(elementos==ELEMENTOS)
{
puts("\nNo hay espacio para almacenar mas libros");
goto fin;
}
pvlibros[elementos]=fpedir_datos();
elementos++;
puts("\n¿Quieres añadir otro titulo al catalogo?");
fflush(stdin);
res=getchar();
}while(res=='s'||res=='S');
fin:puts("\nFinal de la opcion de proceso 1");
return(elementos);
}
struct LIBRO fpedir_datos()
{
struct LIBRO libro;
libro.codigo=fpedir_codigo();
fpedir_titulo(libro.titulo);
fpedir_autor(libro.autor);
libro.precio=fpedir_precio();
return(libro);
}
long int fpedir_codigo()
{
long int codigo;
puts("\nTeclea codigo del libro");
scanf("%ld",&codigo);
return(codigo);
}
void fpedir_titulo(char *ptitulo)
{
puts("\nTeclea titulo del libro");
fflush(stdin);
gets(ptitulo);
}
void fpedir_autor(char*pautor)
{
puts("\nTeclea autor del libro");
fflush(stdin);
gets(pautor);
}
int fpedir_precio()
{
int precio;
puts("\nTeclea precio del libro");
scanf("%d",&precio);
return(precio);
}
void fconsultar_libros(int elementos,struct LIBRO * pvlibros)
{
int i;
char titulo[20];
char autor[30];
char res;
if(elementos==0)
{
puts("\nNo existen libros en el catalogo");
goto fin;
}
do
{
fpedir_titulo(titulo);
fpedir_autor(autor);
i=fbusqueda_lineal_t(elementos,titulo,autor,pvlibros);
if(i!=-1)
printf("\nEl libro de titulo %s y autor %s tiene de codigo %ld y precio de %d pts",
(pvlibros+i)->titulo,(pvlibros+i)->autor,(pvlibros+i)->codigo,(pvlibros+i)->precio);
else
printf("\nEl libro de titulo %s y autor %s no existe",titulo,autor);
puts("\n¿Quiere buscar otro libro?");
fflush(stdin);
res=getchar();
}while(res=='s'||res=='S');
fin:puts("\nFinal de la opcion de proceso 2");
}
int fbusqueda_lineal_t(int elementos,char *ptitulo,char*pautor,struct LIBRO*pvlibros)
{
int i;
i=0;
while(i<(elementos-1)&&(strcmp(pvlibros->titulo,ptitulo)!=0
||strcmp(pvlibros->autor,pautor)!=0))
{
i++;
pvlibros++;
}
if(strcmp(pvlibros[i].titulo,ptitulo)==0&&
strcmp(pvlibros[i].autor,pautor)==0)
return(i);
else
return(-1);
}
void fconsultar_precios(int elementos,struct LIBRO*pvlibros)
{
int i;
long int codigo;
char res;
if(elementos==0)
{
puts("\nNo existen libros en el catalogo");
goto fin;
}
do
{
codigo=fpedir_codigo();
i=fbusqueda_lineal_c(elementos,codigo,pvlibros);
if(i!=-1)
printf("\nEl codigo %ld correspondiente al titulo %s y autor %s y su precio es %d pts",
(pvlibros+i)->codigo,(pvlibros+i)->titulo,(pvlibros+i)->autor,
(pvlibros+i)->precio);
else
printf("\nEl libro de codigo%ld no existe",codigo);
puts("\n¿Quieres consultar otro precio?");
fflush(stdin);
res=getchar();
}while(res=='s'||res=='S');
fin:puts("\nFinal de la opcion de proceso 3");
}
int fbusqueda_lineal_c(int elementos,long int codigo,struct LIBRO*pvlibros)
{
int i;
i=0;
while(i<(elementos-1)&& pvlibros->codigo!=codigo)
{
i++;
pvlibros++;
}
if(pvlibros->codigo==codigo)
return(i);
else
return(-1);
}
void fmodificar_precios(int elementos,struct LIBRO*pvlibros)
{
int i;
long int codigo;
int precio;
char res;
if(elementos==0)
{
puts("\nNo existen libros en el catalogo");
goto fin;
}
do
{
codigo=fpedir_codigo();
i=fbusqueda_lineal_c(elementos,codigo,pvlibros);
if(i!=-1)
{
precio=fpedir_precio();
printf("\nEl codigo %ld correspondiente al titulo %s y autor%s que tiene precio %d pts pasa a costar %s pots",
(pvlibros+i)->codigo,(pvlibros+i)->titulo,(pvlibros+i)->autor,
(pvlibros+i)->precio,precio);
(pvlibros+i)->precio=precio;
}
else
printf("\nEl libro de codigo %ld no existe",codigo);
puts("\n¿Quieres modificar el precio de otro libro?");
fflush(stdin);
res=getchar();
}while(res=='s'||res=='S');
fin:puts("\nFinal de la opcion de proceso 3");
}
void fvisualizar_libros(int elementos,struct LIBRO*pvlibros)
{
int i;
struct LIBRO wpvlibros[ELEMENTOS];
if(elementos==0)
{
puts("\nNo existen libros en el catalogo");
goto fin;
}
for (i=0;i<elementos;i++)
wpvlibros[i] = *(pvlibros+i);
fordenar_baraja(elementos,wpvlibros);
fvisualizar(elementos,wpvlibros);
fin:puts("\nFinal de la opcion de proceso 5");
}
void fvisualizar(int elementos,struct LIBRO*pvlibros)
{
int i;
puts(" CATALOGO DE LIBROS");
puts(" ------------------");
puts(" TITULO AUTOR PRECIO");
puts(" ------ ----- ------");
for (i=0;i<elementos;i++,pvlibros++)
printf("\n %s %s %d",pvlibros->titulo,pvlibros->autor,pvlibros->precio);
}
void fordenar_baraja(int elementos,struct LIBRO*pvlibros)
{
int i;
int j;
struct LIBRO aux;
struct LIBRO*pj;
for (i=1,pvlibros++;i<elementos;i++,pvlibros++)
{
aux=(*pvlibros);
j = i-1;
pj=pvlibros-1;
while(j > 0&& strcmp (pj -> titulo,aux.titulo)>0)
{
*(pj+1)=*(pj);
j--;
pj--;
}
if(strcmp(pj->titulo,aux.titulo)>0)
{
*(pj+1)=*(pj);
*(pj) = aux;
}
else
*(pj+1)=aux;
}
}