Você está na página 1de 5

Tarea 2: ING1310

• Fecha de entrega: Jueves 19 de Octubre


• La tarea se puede entregar hasta las 12 de la noche.
• Entregue la tarea en un sólo archivo .java. Este archivo debe incluir la clase Nota, la clase
Alumno y la clase Tarea2 que se encuentra en el sitio web.
• Si es de la Sección 1 envíe su tarea a ing1310@gmail.com
• Si es de la Sección 2 envíe su tarea a través de moodle.

Pregunta 1
La Universidad de los Andes necesita manejar la lista de sus alumnos y para esto le ha pedido a
usted que implemente dos clases, la clase Nota y la clase Alumno.

Parte a)
Implemente la clase Nota. Esta clase contiene:
1. 5 Atributos: nota (double), curso (String), créditos (int), semestre (int) y año (int). Todos
los atributos son privados. Usted le puede asignar los nombres que quiera a los atributos.

2. 2 Constructores:
El primer constructor no tiene parámetros y le asigna el valor 1.0 a nota, null a curso,
5a créditos, 1 a semestre y 2006 a año.

El segundo constructor tiene 5 parámetros y le asigna el primero a nota, el segundo a


curso, el tercero a creditos, el cuarto a semestre y el quinto a año. La nota debe tener a lo
más un decimal si tiene más de uno deberá aproximar la nota al real con un decimal más
cercano. Por ejemplo, si tiene un 5.45 la nota será un 5.5, y si tiene un 5.44 la nota será
un 5.4.

A la nota se le debe asignar un valor entre 1.0 y 7.0. Si se trata de asignarle un valor fuera
de ese rango, debe asignarle el valor 1.0 e imprimir el siguiente mensaje “La nota debe
estar entre 1.0 y 7.0. Se le ha asignado el valor 1.0”.

Al curso sólo se le debe asignar un String sin espacios y de tamaño máximo 8. Si se trata
de asignarle un String que no cumpla estas condiciones, debe asignarle null e imprimir el
siguiente mensaje: “Curso no debe tener espacios y debe tener a lo más 8 caracteres. Se le
ha asignado null”.

A los créditos, sólo se les debe asignar el valor 5, 10 ó15. Si se trata de asignarles un
valor que no cumpla estas condiciones, debe asignarles el valor 5 e imprimir el siguiente
mensaje. “Un curso puede tener 5, 10 ó 15 créditos. Se le ha asignado el valor 5”.

Al semestre, sólo se le debe asignar el valor 1 ó 2. Si se trata de darle otro valor, debe
asignarle 1 e imprimir el siguiente mensaje “Para semestre se acepta 1 ó 2. Se le ha
asignado el valor 1”.
Al año, sólo se le debe asignar un valor entre 1980 y 2006. Si se trata de asignarle un
valor fuera de ese rango, debe asignarle 2006 e imprimir el siguiente mensaje “El año
debe estar entre 1980 y 2006. Se le ha asignado el valor 2006”.

3. Métodos getNota y setNota para ver y cambiar la nota.


La nota debe tener a lo más un decimal, si tiene más de uno deberá aproximar la nota al
real con un decimal más cercano.

A la nota, se le debe asignar un valor entre 1.0 y 7.0. Si se trata de asignarle un valor
fuera de ese rango, no debe cambiar el valor de la nota del objeto implícito (el objeto con
que se llama al método) y debe imprimir el siguiente mensaje “La nota debe estar entre
1.0 y 7.0. No se ha cambiado el valor que tenía”.

4. Métodos getCdtos y setCdtos para ver y cambiar créditos.


A los créditos, sólo se les debe asignar el valor 5, 10 ó 15. Si se trata de asignarles un
valor que no cumpla estas condiciones, no debe cambiar el valor de los créditos del
objeto implícito y debe imprimir el siguiente mensaje. “Un curso puede tener 5, 10 ó 15
créditos. No se ha cambiado el valor que tenía”.

5. Métodos getCurso y setCurso para ver y cambiar el curso.


Al curso, sólo se le debe asignar un String sin espacios y de tamaño máximo 8. Si se trata
de asignarle un String que no cumpla estas condiciones, no debe cambiar el curso del
objeto implícito y debe imprimir el siguiente mensaje: “Curso no debe tener espacios y
debe tener a lo más 8 caracteres. No se ha cambiado el curso que tenía”.

6. Métodos getSem y setSem para ver y cambiar el semestre.


Al semestre, sólo se le debe asignar el valor 1 ó 2. Si se trata de darle otro valor, no debe
cambiar el valor del semestre y debe imprimir el siguiente mensaje “Para semestre se
acepta 1 ó 2. No se ha cambiado el valor que tenía”.

7. Métodos getAño y setAño para ver y cambiar el año.


Al año, sólo se le debe asignar un valor entre 1980 y 2006. Si se trata de asignarle un
valor fuera de ese rango, no debe cambiar el año del objeto implícito y debe imprimir el
siguiente mensaje “El año debe estar entre 1980 y 2006. No se ha cambiado el valor que
tenía”.

8. Método toString para la clase Nota.


Este método debe retornar un String con el siguiente formato:
nota= 5.4
curso= ING1310
creditos= 10
semestre= 2
año= 2006

Parte b)
Implemente la clase Alumno. Para esta clase asumiremos que un alumno nunca tiene más de 100
notas. Esta clase contiene:
1. 8 Atributos: nombre (String), dirección (String), teléfono (int), año de ingreso (int),
promedio ponderado acumulado (double), notas (Nota[]), password de la universidad
(String) y password del alumno (String). Todos los atributos son privados y usted le
puede dar los nombres que desee. El atributo que creará para guardar el password de la
universidad debe ser static, final e igual a “Andes”.
El promedio ponderado acumulado se calcula ponderando las notas del alumno según los
créditos de cada nota.
Por ejemplo, si el alumno tiene nota 5.0 de 5 créditos, 6.0 de 5 créditos y 4.0 de 10
créditos, el promedio ponderado acumulado será:
(5.0*5 + 6.0*5 + 4.0*10)/20= 4.75  4.8

El promedio debe tener a lo más un decimal, si tiene más de uno deberá aproximar la nota
al real con un decimal más cercano.

2. 3 Constructores:
El primer constructor no tiene parámetros y le asigna el valor null a nombre, null a dir, 0
a teléfono, 2006 a ingreso, 1.0 al promedio, un arreglo de notas de tamaño 100 al arreglo
de notas, y “1234” al password del alumno. Recuerde que cuando se crea un arreglo de
objetos, Java automáticamente le asigna null a cada elemento del arreglo.

El segundo constructor tiene 4 parámetros y le asigna el primero a nombre, el segundo a


la dirección, el tercero al teléfono y el cuarto al año de ingreso. Al promedio le asigna el
valor 1.0, a las notas le asigna un arreglo de notas de tamaño 100, y “1234” al password
del alumno.
El año de ingreso sólo puede ser entre 1980 y 2006. Si se trata de asignarle un valor fuera
de ese rango, debe asignarle el valor 2006 al año de ingreso y debe imprimir el siguiente
mensaje “El ingreso debe estar entre 1980 y 2006. Se le ha asignado el valor 2006”.

El tercer constructor tiene 6 parámetros y le asigna el primero a nombre, el segundo a la


dirección, el tercero al teléfono, el cuarto al año de ingreso, el quinto a las notas y el
sexto al password del alumno.
Si el arreglo tiene un tamaño menor que 100 debe crear un nuevo arreglo de notas de
tamaño 100 y copiar las notas que se entregaron en este nuevo arreglo. Asuma que nunca
recibe un arreglo de tamaño mayor que 100.
El año de ingreso sólo puede ser entre 1980 y 2006. Si se trata de asignarle un valor fuera
de ese rango, debe asignarle el valor 2006 al año de ingreso y debe imprimir el siguiente
mensaje “El ingreso debe estar entre 1980 y 2006. Se le ha asignado el valor 2006”.
El promedio se calcula ponderando las notas del alumno según los créditos de cada nota
(recuerde aproximar).

3. Métodos getNombre y setNombre para ver y cambiar el nombre.


El método setNombre debe tener un parámetro llamado pass (puede tener más
parámetros), y sólo si pass es igual al password de la universidad o el password del
alumno (objeto implícito) se podrá cambiar el nombre del alumno. En caso contrario debe
imprimir “Password incorrecto”.

4. Métodos getDir y setDir para ver y cambiar la dirección.


El método setDir debe tener un parámetro llamado pass (puede tener más parámetros), y
sólo si pass es igual al password de la universidad o el password del alumno (objeto
implícito) se podrá cambiar la dirección del alumno. En caso contrario debe imprimir
“Password incorrecto”.

5. Métodos getFono y setFono para ver y cambiar el teléfono.


El método setFono debe tener un parámetro llamado pass (puede tener más parámetros),
y sólo si pass es igual al password de la universidad o el password del alumno (objeto
implícito) se podrá cambiar el teléfono del alumno. En caso contrario debe imprimir
“Password incorrecto”.

6. Métodos getIngreso y setIngreso para ver y cambiar el año de ingreso.


Al año de ingreso, sólo se le debe asignar un valor entre 1980 y 2006. Si se trata de
asignarle un valor fuera de ese rango, no debe cambiar el año de ingreso del objeto
implícito y debe imprimir el siguiente mensaje “El ingreso debe estar entre 1980 y 2006.
No se ha cambiado el valor que tenía”.
El método setIngreso debe tener un parámetro llamado pass (puede tener más
parámetros), y sólo si pass es igual al password de la universidad se podrá cambiar el año
de ingreso del alumno. En caso contrario debe imprimir “Password incorrecto”.

7. Método getNotas para ver las notas de un alumno.


El método getNotas debe tener un parámetro llamado pass, y sólo si pass es igual al
password de la universidad se podrá retornar el arreglo de notas del alumno. En caso
contrario debe imprimir “Password incorrecto” y retornar null.

8. Método agregarNota para agregar una nota al alumno. Este método debe ser de instancia.
El método agregarNota debe tener un parámetro llamado pass (puede tener más
parámetros), y sólo si pass es igual al password de la universidad se podrá agregar una
nota al arreglo de notas del alumno. En caso contrario debe imprimir “Password
incorrecto” y no debe agregar la nota.
Si se agrega la nota, deberá también cambiar el promedio ponderado acumulado.

9. Método getProm para ver el promedio ponderado acumulado.


El método getProm debe tener un parámetro llamado pass, y sólo si pass es igual al
password de la universidad o el password del alumno (objeto implícito) se podrá
retornar el promedio ponderado acumulado del alumno. En caso contrario debe imprimir
“Password incorrecto” y retornar -1.

10. Método setPassAlum para cambiar el password del alumno.


El método setPassAlum debe tener un parámetro llamado pass (puede tener más
parámetros), y sólo si pass es igual al password de la universidad o al password del
alumno (objeto implícito) se podrá cambiar el password del alumno. En caso contrario
debe imprimir “Password incorrecto” y no cambiar el password del alumno.

11. Método imprimeHist que retorna el historial del alumno como un String
Este método debe tener un parámetro llamado pass, y sólo si pass es igual al password de
la universidad o el password del alumno el método retorna el historial del alumno. En
caso contrario retorna el String “Password Incorrecto”.
Implemente este método como método de instancia.
El método retorna el historial del alumno con el siguiente formato (debe incluir todas
las notas):

Nombre: Andres Rojas


Direccion: Av. Vitacura 2200, Vitacura
Telefono: 5553322
Año de Ingreso: 2006
Promedio Ponderado Acumulado: 6.5

Curso Nota Semestre Año Creditos


ING1110 6.0 1 2006 5
ING4120 6.0 1 2006 5
ING3112 7.0 1 2006 10
etc

Si no tiene notas aun, sólo incluya el encabezado de esta tabla.


Curso Nota Semestre Año Creditos

Importante:
1. Para comprobar que sus clases funcionan, pruebe sus clases con el programa Tarea2.java
que se encuentra en el sitio web.
Cuando ejecute el programa, en pantalla se debería imprimir lo que está en el archivo
Imprime.txt que se encuentra en el sitio web.
2. Ningún método interactúa con el usuario, es decir, ningún método le va a pedir al usuario
que ingrese datos.
3. Recuerde que los constructores y los métodos toString son métodos de instancia.
4. Los métodos getters y setters impleméntelos como métodos de instancia.

Você também pode gostar