Skip to content

IHJavaApril2025/lab-calculadora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

LAB | Especificación de Clases para una Calculadora

Introducción

En este lab, implementareis una calculadora básica en Java. La calculadora debe ser capaz de realizar operaciones matemáticas simples como suma, resta, multiplicación y división. Además, debe incluir conversiones de unidades y cálculos de módulo y valor absoluto.

Objetivo principal

Aprenderemos a implementar clases y métodos en Java, así como a trabajar en equipo usando git y GitHub. Vamos a dividirnos en grupos para realizar el lab. Cada persona se enfocará en una clase diferente y luego juntaremos todo en usando git.

Instrucciones

  1. Crea un nuevo repositorio en GitHub con el título calculator-lab, este repositorio debe estar vacío, ni siquiera deberá contener el readme. (Un solo repositorio por grupo).
  2. Invita a tus compañer@s de grupo al repositorio (deberéis compartir vuestro usuario de github).
  3. Crea un nuevo proyecto con IntelliJ usando maven. El nombre del proyecto será calculator-lab. (Un solo proyecto por grupo).
  4. Inicializa git en el proyecto.
git init
  1. Crea una clase inicial dentro de la carpeta java llamada "Main". Esta clase contendrá el método main y será el punto de entrada de la aplicación. En esta clase no se implementará ninguna lógica, la usaremos más adelante. De momento pongamos un println para ver que todo funciona bien.
public class Main {
    public static void main(String[] args) {
        System.out.println("Hola mundo!");
    }
}
  1. Añadir y subir los cambios al repositorio.
git add .
git commit -m "Initial commit"
git push origin main
  1. El resto del equipo deberá clonar el repositorio. Un clone es una copia del repositorio que tenemos en github pero localmente en nuestro ordenador.
git clone <url del repositorio>
  1. Cada miembro del equipo deberá crear su propia rama. El nombre de la rama será el nombre de la persona que la crea mas el nombre de la clase que va a implementar. Por ejemplo, si yo me llamo "Juan" y voy a implementar la clase "Suma", el nombre de mi rama será Juan-suma.
git checkout -b Juan-suma
  1. Implementar la clase. Cada miembro del equipo deberá implementar su propia clase siguiendo las instrucciones que se encuentran más abajo.

  2. Definir convención para el naming. Cada miembro del equipo deberá seguir la misma convención para el nombre de las clases y métodos que hayáis acordado. Así que toca ponerse de acuerdo. 😅

Clase 1: Sum

Implementa operaciones relacionadas con la suma.

Métodos:

  1. Suma de dos números double (reales)

    • Parámetros: 2 números double
    • Salida (return): 1 número real (resultado)
  2. Suma de dos números enteros (int)

    • Parámetros: 2 números enteros
    • Salida: 1 número entero (resultado)
  3. Suma de tres números double

    • Parámetros: 3 números double
    • Salida: 1 número real (resultado)

(EXTRA) 4. Suma con valor acumulado Recuerdas las calculadoras que tienen un botón de "M+"? Pues vamos a hacer algo parecido.

  • Parámetro: 1 número (se acumulará al valor guardado)
  • La clase mantendrá un valor acumulado interno.

Clase 2: Sub

Implementa operaciones relacionadas con la resta.

Métodos:

  1. Resta de dos números double (reales)

    • Parámetros: 2 números double
    • Salida: 1 número real (resultado)
  2. Resta de dos números enteros (int)

    • Parámetros: 2 números enteros
    • Salida: 1 número entero (resultado)
  3. Resta de tres números double

    • Parámetros: 3 números double
    • Salida: 1 número real (resultado)

(EXTRA) 4. Resta con valor acumulado

  • Parámetro: 1 número (se restará al valor acumulado)
  • La clase mantendrá un valor acumulado interno.

Clase 3: Product

Implementa operaciones de multiplicación y potencia.

Métodos:

  1. Producto de dos números reales

    • Parámetros: 2 números reales
    • Salida: 1 número real (resultado)
  2. Producto de dos números enteros

    • Parámetros: 2 números enteros
    • Salida: 1 número entero (resultado)
  3. Producto de tres números reales

    • Parámetros: 3 números reales
    • Salida: 1 número real (resultado)
  4. Potencia

    • Parámetros: base (número), exponente (número)
    • Salida: 1 número (resultado de la operación)

Clase 4: Division

Implementa operaciones de división.

Métodos:

  1. División de dos números reales

    • Parámetros: 2 números reales
    • Salida: 1 número real (resultado)
  2. División de dos números enteros

    • Parámetros: 2 números enteros
    • Salida: 1 número entero (resultado)
  3. Inverso de un número real

    • Parámetro: 1 número real
    • Salida: 1 número real (1/valor_entrada)

Clase 5: Module

Operaciones de módulo y valor absoluto.

Métodos:

  1. Cálculo del módulo

    • Parámetros: int a, int b
    • Salida: int (a % b)
  2. Valor absoluto

    • Parámetro: double a
    • Salida:
      • Si a ≥ 0: |a| = a
      • Si a < 0: |a| = -a

Clase 6: UnitConverter

Conversiones de temperatura y ángulos.

Métodos:

  1. Celsius a Fahrenheit

    • Fórmula: F = (C × 9/5) + 32
    • Parámetro: double celsius
    • Salida: double (fahrenheit)
  2. Fahrenheit a Celsius

    • Fórmula: C = (F - 32) × 5/9
    • Parámetro: double fahrenheit
    • Salida: double (celsius)
  3. Grados a Radianes

    • Fórmula: radianes = grados × π / 180
    • Parámetro: double grados
    • Salida: double (radianes)
  4. Radianes a Grados

    • Fórmula: grados = radianes × 180 / π
    • Parámetro: double radianes
    • Salida: double (grados)

Git y GitHub

  1. Una vez hemos implementado todos los métodos, vamos a hacer un commit. Cada persona deberá hacer un commit de su rama.
git add .
git commit -m "Implementación de la clase Suma"
  1. Subir los cambios al repositorio.
git push origin Juan-suma
  1. Merge localmente. Una vez que todos los miembros del equipo han subido sus cambios, uno de los miembros del equipo deberá hacer un merge de todas las ramas en la rama principal.
  • Volvemos a la rama principal:
git checkout main 
  • Hacemos un merge de cada rama:
git merge Juan-suma
git merge Maria-resta
git merge Pedro-multiplicacion

Verás que los cambios de cada rama se han añadido a la rama principal.

  1. Subir los cambios al repositorio.
git push origin main

Ahora la rama main contiene todos los cambios de cada miembro del equipo.

  1. Actualizar el repositorio local. Una vez que hemos hecho el merge, cada miembro del equipo deberá actualizar su repositorio local.
git checkout main
git pull origin main

Así tendremos la última versión del código en nuestro repositorio local. Confirma con tu compañer@ que todo ha ido bien.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published