package Alumno;

/**
*
* @author vina
*/
public class Alumno {
private String rut;
private String nombre;
private String apellidoMaterno;
private String apellidoPaterno;
private String asignatura;
private double []notasSolemnes;
private double []notasControles;

//Declaro constructores
public Alumno(){}
public Alumno(String rut, String nombre, String apellidoMaterno, String apellidoPaterno, String asignatura, double[] notasSolemnes, double[] notasControles) {
this.rut=rut;
this.nombre = nombre;
this.apellidoMaterno = apellidoMaterno;
this.apellidoPaterno = apellidoPaterno;
this.asignatura = asignatura;
//Asignación especial para los arreglos
this.notasSolemnes = new double[notasSolemnes.length];
for(int i=0;i<notasSolemnes.length;i++)
{
this.notasSolemnes=notasSolemnes;
}
this.notasControles = new double [notasControles.length];
for(int i=0;i<notasControles.length;i++)
{
this.notasControles=notasControles;
}
}
//Declaración de Accesadores y Mutadores

public String getRut() {
return rut;
}

public String getApellidoMaterno() {
return apellidoMaterno;
}

public void setApellidoMaterno(String apellidoMaterno) {
this.apellidoMaterno = apellidoMaterno;
}

public String getApellidoPaterno() {
return apellidoPaterno;
}

public void setApellidoPaterno(String apellidoPaterno) {
this.apellidoPaterno = apellidoPaterno;
}

public String getAsignatura() {
return asignatura;
}

public void setAsignatura(String asignatura) {
this.asignatura = asignatura;
}

public String getNombre() {
return nombre;
}

public void setRut(String rut) {
this.rut = rut;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public double[] getNotasControles() {
return notasControles;
}
/*
* Modifico el mutador del arreglo para poder ingresarle
* valores como corresponde
*/
public void setNotasControles(double[] notasControles) {
this.notasControles = new double [notasControles.length];
for(int i=0;i<notasControles.length;i++)
{
this.notasControles=notasControles;
}
}

public double[] getNotasSolemnes() {
return notasSolemnes;
}

public void setNotasSolemnes(double[] notasSolemnes) {
this.notasSolemnes = new double[notasSolemnes.length];
for(int i=0;i<notasSolemnes.length;i++)
{
this.notasSolemnes=notasSolemnes;
}
}
/*
* Método para calcular la posición de la peor nota dentro del arreglo
*/
int posicionPeorNota()
{
double notaMenor=7.1;
int pos = -1;
for(int i=0;i<notasSolemnes.length;i++)
{
if(notasSolemnes<notaMenor)
{
notaMenor=notasSolemnes;
pos=i;
}
}
return pos;
}
/*
* Metodo para encontrar la nota de cpontroles mas baja dentro del arreglo
*/
double peorNotaControl()
{
double notaMenor=7.1;
for(int i=0;i<notasControles.length;i++)
{
if(notasControles<notaMenor)
{
notaMenor=notasControles;
}
}
return notaMenor;
}

public double promedioSolemnes()
{
double promedio=0.0;
for(int i=0; i<notasSolemnes.length;i++)
{
promedio=promedio+notasSolemnes;
}
return(promedio/notasSolemnes.length);
}
public double promedioControles()
{
double promedio=0.0;
//duoble notaMenor=
for (int i = 0; i < notasControles.length; i++) {
promedio=promedio+notasControles;
}
return((promedio-peorNotaControl())/notasControles.length-1);
}

public int cantidadMorados()
{
int cantidad=0;
for (int i = 0; i < notasSolemnes.length; i++) {
if(notasSolemnes>=3.0&&notasSolemnes<=3.9)
{
cantidad++;
}
}
for (int i = 0; i < notasControles.length; i++) {
if(notasControles>=3.0&&notasControles<=3.9)
{
cantidad++;
}
}
return cantidad;
}
public void pruebaEspecial(double nuevaNota)
{
this.notasSolemnes[posicionPeorNota()]=nuevaNota;
}
public double notaFinal()
{
return((promedioSolemnes()*0.7)+(promedioControles()*0.3));
}
}
 
package TestApp;
import Alumno.*;
/**
*
* @author vina
*/
public class TestApp {
public static void main(String[] args) {
Alumno alu=null;
Alumno []curso=new Alumno[3];
double []sol={5.6,3.1,7.0,1.0};
double []con={6.6,5.9,1.0,6.8};
double []sol1={3.2,3.1,7.0,1.0};
double []con1={4.0,5.9,3.5,6.8};
double []sol2={6.5,3.4,7.0,3.9};
double []con2={6.6,5.9,6.9,6.8};
alu=new Alumno("1-1","Andree","Bastías","Morgado","PEF2501",sol,con);
curso[0]= alu;
alu=new Alumno("1-2","Mario","Vargas","Pedreros","PEF2501",sol1,con1);
curso[1]= alu;
alu=new Alumno("1-3","Merie","Dan","Soto","PEF2501",sol2,con2);
curso[2]=alu;
/*Buscar Alumno con rut 1-3 y mostrar cantidad de morados
para ese alumno*/
int pos=buscar("1-3",curso);
if (pos != -1)
{
System.out.println("Alumno: "+curso[pos].getNombre()+" "+curso[pos].getApellidoPaterno()+
" "+curso[pos].getApellidoMaterno());
System.out.println("\nCantidad de Morados: "+curso[pos].cantidadMorados());
}
else
{
System.out.println("ERROR!!Alumno No existe");
}
/*Buscar Alumno con rut 1-2 y mostrar:
* Notas Solemnes
* Promedio Solemnes
* Notas Controles
* Promedio Controles
* Nota Final
*/
pos=buscar("1-3",curso);
if(pos!=-1)
{
System.out.println("Notas del Alumno:"+curso[pos].getNombre()+" "+curso[pos].getApellidoPaterno()+
" "+curso[pos].getApellidoMaterno());
System.out.println("Notas Solemnes: ");
sol=curso[pos].getNotasSolemnes();
for (int i = 0; i < sol.length; i++) {
System.out.println("Solemne "+(i+1)+"="+sol+";");
}
System.out.println("Promedio Solemne: "+curso[pos].promedioSolemnes());
System.out.println("Notas Controles: ");
con=curso[pos].getNotasControles();
for (int i = 0; i < con.length; i++) {
System.out.println("Control "+(i+1)+"="+con+";");
}
System.out.println("Promedio Controles: "+curso[pos].promedioControles());
System.out.println("Nota Final: "+curso[pos].notaFinal());
}
else
{
System.out.println("ERROR!!Alumno No existe");
}

/*System.out.println("Nombre del Alumno: "+alu.getNombre()+
" "+alu.getApellidoPaterno()+" "+alu.getApellidoMaterno()+
"\n\n Asignatura: "+ alu.getAsignatura()+
"\n\n Nota Final: "+alu.notaFinal());
for (int i = 0; i < sol.length; i++) {
System.out.println("Nota Solemne "+(i+1)+": "+sol);
}
System.out.println("Promedio de Solemnes: "+alu.promedioSolemnes());
for (int i = 0; i < con.length; i++) {
System.out.println("Nota Control "+(i+1)+": "+con);
}
System.out.println("Promedio de Controles: "+alu.promedioControles());
System.out.println("Cantidad de Morados: "+alu.cantidadMorados());
alu.pruebaEspecial(3.5);
System.out.println("Cambio de peor Nota");
sol=alu.getNotasSolemnes();
for (int i = 0; i < sol.length; i++) {
System.out.println("Nota Solemne "+(i+1)+": "+sol);
}
System.out.println("Cantidad de Morados: "+alu.cantidadMorados());*/
}
static int buscar(String rut, Alumno []curso)
{
for (int i = 0; i<curso.length; i++) {
if(curso!=null&&curso.getRut().compareToIgnoreCase(rut)==0)
{
return i;//retorno la posición del Array donde encontré el RUT
}
}
return -1;//Caso no encontrado retorno una posición inválida
}
}