You are on page 1of 6

Universidad Cat lica del Nrte

Facultad de Ingeniera y Ciencias Gel gicas


Departament de Ingeniera de Sistemas y Cmputaci n

Profesor: NOMBRE PROFESOR


Ayudante: NOMBRE AYUDANTE

Ayudanta IV public class ProgramacionAvanzada {


private Semestre semestre = new Semestre(2,2016);
}

YouTube es la platafrma web ma s ppular para subir y cmpartir vdes, tant as que ls usuaris ma s
exitss han lgrad llegar a ser partners cn YuTube, trga ndles ganancias a partir del cntenid
cmpartid mediante anuncis, suscripcines, visitas y trs prducts asciads a sus canales dentr de la
platafrma.

Pr mtiv de celebraci n del de cim aniversari desde que Ggle adquiri YuTube, se premiara a ls
YuTubers ma s famss cnsiderand la u ltima de cada.

YuTube ha slicitad el desarrll de una platafrma para hacer entrega de ls premis. YuTube tiene un
dmini web, clave maestra y firma. Pr tra parte, ls YuTubers tienen nmbre (que n se repite), cantidad
de suscriptres, auspiciadr y cantidad de reprduccines. Un auspiciadr es la empresa que auspicia al
Yutuber, el cual tiene un ID (que n se repite), nmbre, an de inici y cantidad de YuTubers auspiciand (la
cantidad de YuTubers que puede auspiciadr es de un ma xim de 50). Finalmente, el premi debe llevar el
nmbre del premi, el nmbre del YuTuber junt al de su partner y la cantidad de suscriptres del YuTuber.

Su c dig debe permitir realizar las siguientes peracines en el siguiente orden:

1. Crear ds auspiciadres (la infrmaci n la crea usted).


2. Crear tres YuTubers (la infrmaci n la crea usted).
3. Agregar al u ltim auspiciadr ingresad el primer YuTuber cread. Del mism md asciar dich
auspiciadr al YuTuber en cuesti n.
4. Agregar al u ltim auspiciadr ingresad el segund YuTuber cread. Del mism md asciar dich
auspiciadr al YuTuber en cuesti n.
5. Agregar al u ltim auspiciadr ingresad el tercer YuTuber cread. Del mism md asciar dich
auspiciadr al YuTuber en cuesti n.
6. Desplegar la cantidad de YuTubers patrcinads pr el u ltim auspiciadr ingresad.
7. Desplegar la suma de tdas reprduccines de ls yutubers del u ltim auspiciadr cread.
8. Crear un premi (el nmbre del premi l crea usted) cn el nmbre del u ltim auspiciadr y u ltim
YuTuber cread.
9. Cambiar el auspiciadr del premi cread en el pas anterir pr el primer auspiciadr cread.
10. Desplegar el nmbre del YuTuber y del auspiciadr del premi cread en el pas 8.

Se pide (en el siguiente orden):


a) Diagrama de clases
b) C dig de cada clase y del Principal (main)
Solucin

a) Diagrama de Clases

b) Cdigo Java

public class Youtuber {

private String nombre;


private int cantSuscriptores;
private int cantReproducciones;
private Auspiciador auspiciador;

public Youtuber(String nombre, int cantSuscriptores, int cantReproducciones) {


this.nombre = nombre;
this.cantSuscriptores = cantSuscriptores;
this.cantReproducciones = cantReproducciones;
this.auspiciador = auspiciador;
}

public String getNombre() {


return this.nombre;
}

public int getCantSuscriptores() {


return this.cantSuscriptores;
}
public int getCantReproducciones() {
return this.cantReproducciones;
}

public Auspiciador getAuspiciador() {


return this.auspiciador;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public void setCantSuscriptores(int cantSuscriptores) {


this.cantSuscriptores = cantSuscriptores;
}

public void setCantReproducciones(int cantReproducciones) {


this.cantReproducciones = cantReproducciones;
}

public void setAuspiciador(Auspiciador auspiciador) {


this.auspiciador = auspiciador;
}

} // FIN CLASS YOUTUBER

public class Premio {

private String nombre;


private Youtuber youtuber;
private Auspiciador auspiciador;

public Premio(String nombre, Youtuber youtuber, Auspiciador auspiciador) {


this.nombre = nombre;
this.youtuber = youtuber;
this.auspiciador = auspiciador;
}

public String getNombre() {


return this.nombre;
}

public Youtuber getYoutuber() {


return this.youtuber;
}

public Auspiciador getAuspiciador() {


return this.auspiciador;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public void setYoutuber(Youtuber youtuber) {


this.youtuber = youtuber;
}

public void setAuspiciador(Auspiciador auspiciador) {


this.auspiciador = auspiciador;
}
}// FIN CLASS PREMIO

public class Auspiciador {

private int id;


private String nombre;
private int anioInicio;
private int cantYoutubers;
//arreglo que almacenar los youtubers patrocinados por el auspiciador
private Youtuber[] youtubers;

public Auspiciador(int id, String nombre, int anioInicio) {


this.id = id;
this.nombre = nombre;
this.anioInicio = anioInicio;
/*inicialmente cuando se crea al auspiciador, ste no posee youtubers
auspiciando*/
this.cantYoutubers = 0;
/*cada auspiciador tiene un mximo de 50 youtubers que puede
auspiciar*/
this.youtubers = new Youtuber[50];
}

public int getId() {


return this.id;
}

public String getNombre() {


return this.nombre;
}

public int getAnioInicio() {


return this.anioInicio;
}

public int getCantYoutubers() {


return this.cantYoutubers;
}

public boolean agregarYoutuber(Youtuber youtuber){


//se verifica si es o no es posible agregar/auspiciar ms youtubers
if(this.cantYoutubers == 50){
return false;
}
this.youtubers[this.cantYoutubers] = youtuber;
this.cantYoutubers++;
return true;
}

public int obtenerSumaReproducciones(){


int suma = 0;
for(int i =0; i< this.cantYoutubers; i++){
suma += this.youtubers[i].getCantReproducciones();
}
return suma;
}
}// FIN CLASS AUSPICIADOR

public class Principal {

public static void main(String[] args) {

//Paso 1
Auspiciador a1 = new Auspiciador(111,"CocaCola",2010);
Auspiciador a2 = new Auspiciador(222,"Nike",2013);

//Paso 2
Youtuber y1 = new Youtuber("Charango",856985,40000000);
Youtuber y2 = new Youtuber("Guitarra",256985,6000000);
Youtuber y3 = new Youtuber("Acordeon",145874,525000);

//Paso 3 - 4 - 5
//se asocia el ltimo auspiciador a cada youtuber ingresado
y1.setAuspiciador(a2);
y2.setAuspiciador(a2);
y3.setAuspiciador(a2);
//se asocia al auspiciador los youtubers que patrocina
a2.agregarYoutuber(y1);
a2.agregarYoutuber(y2);
a2.agregarYoutuber(y3);

//Paso 6
StdOut.println("Cantidad de youtubers auspiciados por "+a2.getNombre()+" es de "+a2.getCantYoutubers());

//Paso 7
StdOut.println("La suma de todas reproducciones de los youtubers auspiciados por "+a2.getNombre()+" es de
"+a2.obtenerSumaReproducciones());

//Paso 8
Premio premio = new Premio("Ms original",y3,a2);

//Paso 9
premio.setAuspiciador(a1);

//Paso 10
StdOut.println("El YouTuber del premio "+premio.getNombre()+" es "+premio.getYoutuber().getNombre()+" y
su auspiciador es "+premio.getAuspiciador().getNombre());
}