Un ingeniero técnico en mecánica enfrenta a menudo el desafío de realizar cálculos relacionados con la resistencia de materiales, tales como el momento de inercia, momento flector, y esfuerzos cortantes. Esto puede implicar el uso de fórmulas complejas y repetitivas. Esta aplicación en Java ayuda a realizar cálculos comunes de mecánica estructural y de materiales, permitiendo al ingeniero ahorrar tiempo y reducir errores.
A continuación, se presenta el código y su explicación.
Código para el cálculo de resistencia de materiales en Java
import java.util.Scanner;
public class MechanicalEngineerTool {
// Clase principal
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int option;
do {
System.out.println("\n--- Herramienta de Ingeniería Mecánica ---");
System.out.println("1. Calcular Momento de Inercia para Sección Rectangular");
System.out.println("2. Calcular Esfuerzo Normal");
System.out.println("3. Calcular Momento Flector");
System.out.println("4. Salir");
System.out.print("Seleccione una opción: ");
option = scanner.nextInt();
switch (option) {
case 1 -> calculateMomentOfInertia(scanner);
case 2 -> calculateNormalStress(scanner);
case 3 -> calculateBendingMoment(scanner);
case 4 -> System.out.println("Saliendo de la herramienta...");
default -> System.out.println("Opción no válida. Inténtelo de nuevo.");
}
} while (option != 4);
scanner.close();
}
// Método para calcular el momento de inercia
private static void calculateMomentOfInertia(Scanner scanner) {
System.out.println("\n--- Cálculo del Momento de Inercia ---");
System.out.print("Ingrese la base de la sección (en mm): ");
double base = scanner.nextDouble();
System.out.print("Ingrese la altura de la sección (en mm): ");
double height = scanner.nextDouble();
double inertia = (base * Math.pow(height, 3)) / 12;
System.out.printf("El momento de inercia de la sección es: %.2f mm^4\n", inertia);
}
// Método para calcular el esfuerzo normal
private static void calculateNormalStress(Scanner scanner) {
System.out.println("\n--- Cálculo del Esfuerzo Normal ---");
System.out.print("Ingrese la fuerza aplicada (en N): ");
double force = scanner.nextDouble();
System.out.print("Ingrese el área transversal (en mm^2): ");
double area = scanner.nextDouble();
double stress = force / area;
System.out.printf("El esfuerzo normal es: %.2f MPa\n", stress);
}
// Método para calcular el momento flector
private static void calculateBendingMoment(Scanner scanner) {
System.out.println("\n--- Cálculo del Momento Flector ---");
System.out.print("Ingrese la fuerza aplicada (en N): ");
double force = scanner.nextDouble();
System.out.print("Ingrese la distancia al punto de aplicación (en mm): ");
double distance = scanner.nextDouble();
double bendingMoment = force * distance;
System.out.printf("El momento flector es: %.2f N·mm\n", bendingMoment);
}
}
Explicación del código
Clase principal MechanicalEngineerTool
:
Define el punto de entrada del programa con el método main
.
Utiliza un bucle do-while
para mantener un menú interactivo que permite al usuario seleccionar distintas herramientas de cálculo.
Scanner:
Se usa para leer la entrada del usuario. Permite al ingeniero introducir datos como dimensiones, fuerzas y áreas.
Menú interactivo:
Muestra opciones claras para el usuario (cálculos disponibles).
Usa un switch
para ejecutar diferentes métodos según la elección del usuario.
Método calculateMomentOfInertia
:
Calcula el momento de inercia para una sección rectangular usando la fórmula:
Donde b es la base y h la altura.
Método calculateNormalStress
:
Calcula el esfuerzo normal según la fórmula:
Donde F es la fuerza aplicada y A el área de la sección transversal.
Método calculateBendingMoment
:
Calcula el momento flector utilizando:
Donde F es la fuerza y d la distancia al punto de aplicación.
Validación de salida:
La opción 4 permite salir del programa limpiamente, mostrando un mensaje.
Utilidad práctica
Esta herramienta permite a un ingeniero mecánico:
Reducir errores manuales en cálculos repetitivos.
Ahorrar tiempo en tareas comunes.
Facilitar el acceso rápido a valores precisos en el lugar de trabajo.
Si estáis interesados en que programe una aplicación que os sea útil en vuestro día a día profesional, no dudéis en contactar conmigo a través de mi página web.