Este es un pequeño proyecto de media hora.
El programa realiza conversiones entre Julios y Electrón-Voltios en los dos sentidos posibles según indique el usuario, pretende ser una ayuda para no tener que insertar números largos en la calculadora para resolver problemas problemas de
Química de 2º de Bachillerato. Pero es más bien un pequeño reto de programación para principiantes (como yo).
Compilado con MinGW.
Funciona perfectamente bajo Windows, funciona parcialmente bajo GNU/Linux por la códificación de la funcion LimpiarPantalla(); pero no es nada grave. El código está escrito en C usando sólo las cabeceras estándar y está comentado completamente en español.
El programa es software libre y contiene copyleft, lo cual quiere decir que puesdes redistribuir, modificar el código y demás sólamente bajo los términos de la Licencia General Pública de GNU (GPL).
Versión 0.0.1 (No creo que haga falta ninguna otra versión a no ser que
aprenda a hacer GUIs y lo actualice, pero la simplicidad es buena para aprender).
Aquí el código:
Probablemente la química no sea de vuestra competencia, pero la informática sí, agradecería opiniones sobre el código, estoy abierto a críticas para mejorar.
El programa realiza conversiones entre Julios y Electrón-Voltios en los dos sentidos posibles según indique el usuario, pretende ser una ayuda para no tener que insertar números largos en la calculadora para resolver problemas problemas de
Química de 2º de Bachillerato. Pero es más bien un pequeño reto de programación para principiantes (como yo).
Compilado con MinGW.
Funciona perfectamente bajo Windows, funciona parcialmente bajo GNU/Linux por la códificación de la funcion LimpiarPantalla(); pero no es nada grave. El código está escrito en C usando sólo las cabeceras estándar y está comentado completamente en español.
El programa es software libre y contiene copyleft, lo cual quiere decir que puesdes redistribuir, modificar el código y demás sólamente bajo los términos de la Licencia General Pública de GNU (GPL).
Versión 0.0.1 (No creo que haga falta ninguna otra versión a no ser que
aprenda a hacer GUIs y lo actualice, pero la simplicidad es buena para aprender).
Aquí el código:
Código (cpp) [Seleccionar]
/*Cabeceras incluidas*/
#include <stdio.h> /*Cabecera estándar*/
#include <stdlib.h> /*Cabecera estándar*/
/*Funciones declaradas (prototipos)*/
void limpiarBuffer (void); /*Limpia el buffer de entrada*/
void limpiarPantalla (void); /*Limpia la pantalla de la consola del sistema*/
void menu (void); /*Imprime un pequeño menú de bienvenida*/
void sentidoConversion (void); /*Indica el sentido en el que se realizará la conversión*/
void J_Ev (void); /*Realiza la conversion de Julios a Electron-Voltios*/
void Ev_J (void); /*Realiza la conversion de Electron-Voltios a Julios*/
void reinicio (void); /*Reinicia o finaliza el programa*/
/*Funcion main*/
int main (void)
{
menu();
sentidoConversion();
reinicio();
return 0;
}
/*Funciones definidas (cuerpos de las funciones)*/
void limpiarBuffer (void) /*Limpia el buffer de entrada*/
{
while (getchar() != '\n');
}
void menu (void) /*Imprime un pequeño menú de bienvenida*/
{
printf("--->Conversor Julios <-> Electron-Voltios\n");
}
void limpiarPantalla (void) /*Limpia la pantalla de la consola del sistema*/
{
system("cls");
}
void sentidoConversion (void) /*Indica el sentido en el que se realizará la conversión*/
{
/*Declaración de variables*/
unsigned char eleccion = 0; /*Valor por defecto en 0*/
/*Trámites con el usuario*/
printf("Como desea realizar la conversion?:\n");
printf("[1] -> Julios -> Electron-Voltios\n");
printf("[2] -> Electron-Voltios -> Julios\n");
printf("Su eleccion: ");
scanf("%hhu", &eleccion);
limpiarBuffer();
/*Derivar a una u otra funcion según la decisión del usuario*/
switch (eleccion)
{
case 1:
limpiarPantalla();
J_Ev();
break;
case 2:
limpiarPantalla();
Ev_J();
break;
default:
printf("ERROR: Inserte 1 o 2 segun el sentido de la conversion que desee.\n");
printf("Pulse [ENTER] para continuar...");
getchar();
limpiarPantalla();
sentidoConversion();
break;
}
}
void J_Ev (void) /*Realiza la conversion de Julios a Electron-Voltios*/
{
/*Declaración de variables*/
double J;
double Ev;
const double cargaElectron = 1.6e-19;
/*Trámites con el usuario*/
printf("Julios a convertir: ");
scanf("%lf", &J);
limpiarBuffer();
printf("Convirtiendo...\n");
/*Conversion*/
Ev = J/cargaElectron;
printf("%lg J = %lg Ev\n", J, Ev);
}
void Ev_J (void) /*Realiza la conversion de Electron-Voltios a Julios*/
{
/*Declaración de variables*/
double J;
double Ev;
const double cargaElectron = 1.6e-19;
/*Trámites con el usuario*/
printf("Electron-Voltios a convertir: ");
scanf("%lf", &Ev);
limpiarBuffer();
printf("Convirtiendo...\n");
/*Conversion*/
J = Ev*cargaElectron;
printf("%lg Ev = %lg J\n", J, Ev);
}
void reinicio (void) /*Reinicia o finaliza el programa*/
{
/*Declaración de variables*/
unsigned char eleccion = 0; /*Valor por defecto en 0*/
/*Trámites con el usuario*/
printf("Desea realizar otra conversion?\n");
printf("[1] -> Si\n");
printf("[2] -> No\n");
printf("Su eleccion: ");
scanf("%hhu", &eleccion);
limpiarBuffer();
/*Derivar a una u otra funcion según la decisión del usuario*/
switch (eleccion)
{
case 1:
limpiarPantalla();
main();
break;
case 2:
break;
default:
printf("ERROR: Inserte 1 o 2 la opcion que desee.\n");
printf("Pulse [ENTER] para continuar...");
getchar();
limpiarPantalla();
break;
}
}
Probablemente la química no sea de vuestra competencia, pero la informática sí, agradecería opiniones sobre el código, estoy abierto a críticas para mejorar.