class Trabalho {
private String tipo, titulo, orientador
; private double nota;
this .titulo = titulo;
this .orientador = orientador;
this .nota = nota;
switch ( nivel_curso) {
case "Graduação (Bacharelado)" : tipo = "TCC" ; break ;
case "Lato sensu" : tipo = "Monografia" ; break ;
case "Mestrado" : tipo = "Dissertação" ; break ;
case "Doutorado" : tipo = "Tese" ; break ;
}
}
String resp
= "Título de trabalho (" + tipo
+ "): " ; resp += titulo + "\n " ;
resp += "Orientador(a): Prof. " + orientador + "\n " ;
resp += "Nota: " + nota + "\n " ;
return resp;
}
}
class TrabalhoNulo extends Trabalho {
public TrabalhoNulo( ) {
super ( null , null , - 1.0 , "" ) ;
}
return "Curso Superior Tecnologia não tem obrigatoriedade de trabalho de conclusão de curso" ;
}
}
class Curso {
private double mensalidade;
return nome;
}
return nível;
}
public double getMensalidade( ) {
return mensalidade;
}
double mensalidade) {
this .nome = nome;
this .n ível = nível;
this .mensalidade = mensalidade;
}
}
class Aluno{
private int cód_matrícula;
private boolean é_bolsista;
private double desconto;
private Curso curso;
private Trabalho trabalho;
int cód_matrícula,
boolean é_bolsista,
double desconto,
Curso curso,
Trabalho trabalho) {
this .nome = nome;
this .c ód_matrícula = cód_matrícula;
this .é_bolsista = é_bolsista;
this .desconto = desconto;
this .curso = curso;
this .trabalho = trabalho;
}
public String getMensalidadeFinal
( ) { if ( é_bolsista)
{
resp += "Bolsista com desconto de: " + this .desconto + "%\n " ;
resp += "Mensalidade: R$ " + this .curso .getMensalidade ( ) * ( 1 - this .desconto / 100 ) ;
}
else resp += "Mensalidade: R$ " + this .curso .getMensalidade ( ) ;
return resp;
}
{
String resp
= "Aluno: " + this .
nome + "\n " ; resp += "Curso: " + this .curso .getNivel ( ) + " em " + this .curso .getNome ( ) + "\n " ;
resp += this .getMensalidadeFinal ( ) ;
resp += trabalho.getDados ( ) ;
return resp;
}
}
class Teste
{
public static void main
( String args
[ ] ) {
Curso ads = new Curso( "ADS" ,
"Graduação" ,
920.50 ) ;
Trabalho trabalho1 = new TrabalhoNulo( ) ;
Aluno a1 = new Aluno( "Martin Fowler" ,
11223344 ,
true ,
20.5 ,
ads,
trabalho1) ;
Curso computacao_aplicada = new Curso( "Computação Aplicada" ,
"Mestrado" ,
2150.45 ) ;
Trabalho trabalho2 = new Trabalho( "Ademir Frango" , "Refactors" , 10 , computacao_aplicada.getNivel ( ) ) ;
Aluno a2 = new Aluno( "Kent Beck" ,
22334455 ,
false ,
0 ,
computacao_aplicada,
trabalho2) ;
System .
out .
println ( a1.
getDados ( ) ) ; System .
out .
println ( a2.
getDados ( ) ) ; }
}
Y2xhc3MgVHJhYmFsaG8gewoJcHJpdmF0ZSBTdHJpbmcgdGlwbywgdGl0dWxvLCBvcmllbnRhZG9yOwoJcHJpdmF0ZSBkb3VibGUgbm90YTsKCXB1YmxpYyBUcmFiYWxobyhTdHJpbmcgb3JpZW50YWRvciwgU3RyaW5nIHRpdHVsbywgZG91YmxlIG5vdGEsIFN0cmluZyBuaXZlbF9jdXJzbykgewoJCXRoaXMudGl0dWxvID0gdGl0dWxvOwoJCXRoaXMub3JpZW50YWRvciA9IG9yaWVudGFkb3I7CgkJdGhpcy5ub3RhID0gbm90YTsKCQlzd2l0Y2ggKG5pdmVsX2N1cnNvKSB7CgkJCWNhc2UgIkdyYWR1YcOnw6NvIChCYWNoYXJlbGFkbykiIDogdGlwbyA9ICJUQ0MiIDsgYnJlYWs7CgkJCWNhc2UgIkxhdG8gc2Vuc3UiIDogdGlwbyA9ICJNb25vZ3JhZmlhIiA7IGJyZWFrOwoJCQljYXNlICJNZXN0cmFkbyIgOiB0aXBvID0gIkRpc3NlcnRhw6fDo28iIDsgYnJlYWs7CgkJCWNhc2UgIkRvdXRvcmFkbyIgOiB0aXBvID0gIlRlc2UiIDsgYnJlYWs7CgkJfQoJfQoJcHVibGljIFN0cmluZyBnZXREYWRvcygpIHsKCQlTdHJpbmcgcmVzcCA9ICJUw610dWxvIGRlIHRyYWJhbGhvICgiICt0aXBvKyIpOiAiOwoJCXJlc3AgKz0gdGl0dWxvICsgIlxuIjsKCQlyZXNwICs9ICJPcmllbnRhZG9yKGEpOiBQcm9mLiAiICsgb3JpZW50YWRvciArICJcbiI7CgkJcmVzcCArPSAiTm90YTogIiArIG5vdGEgKyAiXG4iOwoJCXJldHVybiByZXNwOwoJfQp9CgpjbGFzcyBUcmFiYWxob051bG8gZXh0ZW5kcyBUcmFiYWxobyB7CglwdWJsaWMgVHJhYmFsaG9OdWxvKCkgewoJCXN1cGVyKG51bGwsIG51bGwsIC0xLjAsICIiKTsKCX0KCXB1YmxpYyBTdHJpbmcgZ2V0RGFkb3MoKSB7CgkJcmV0dXJuICJDdXJzbyBTdXBlcmlvciBUZWNub2xvZ2lhIG7Do28gdGVtIG9icmlnYXRvcmllZGFkZSBkZSB0cmFiYWxobyBkZSBjb25jbHVzw6NvIGRlIGN1cnNvIjsKCX0KfQoKY2xhc3MgQ3Vyc28gewoJcHJpdmF0ZSBTdHJpbmcgbm9tZSwgbsOtdmVsOwoJcHJpdmF0ZSBkb3VibGUgbWVuc2FsaWRhZGU7CgkKCXB1YmxpYyBTdHJpbmcgZ2V0Tm9tZSgpIHsKICAgICAgICByZXR1cm4gbm9tZTsKICAgIH0KICAgIAogICAgcHVibGljIFN0cmluZyBnZXROaXZlbCgpIHsKICAgICAgICByZXR1cm4gbsOtdmVsOwogICAgfQogICAgCiAgICBwdWJsaWMgZG91YmxlIGdldE1lbnNhbGlkYWRlKCkgewogICAgICAgIHJldHVybiBtZW5zYWxpZGFkZTsKICAgIH0KCQoJcHVibGljIEN1cnNvIChTdHJpbmcgbm9tZSwKCQkJCVN0cmluZyBuw612ZWwsCgkJCQlkb3VibGUgbWVuc2FsaWRhZGUpIHsKCQl0aGlzLm5vbWUgPSBub21lOwoJCXRoaXMubsOtdmVsID0gbsOtdmVsOwoJCXRoaXMubWVuc2FsaWRhZGUgPSBtZW5zYWxpZGFkZTsKCQkJCX0KfQoKY2xhc3MgQWx1bm97Cglwcml2YXRlIFN0cmluZyBub21lOwoJcHJpdmF0ZSBpbnQgY8OzZF9tYXRyw61jdWxhOwoJcHJpdmF0ZSBib29sZWFuIMOpX2JvbHNpc3RhOwoJcHJpdmF0ZSBkb3VibGUgZGVzY29udG87Cglwcml2YXRlIEN1cnNvIGN1cnNvOwoJcHJpdmF0ZSBUcmFiYWxobyB0cmFiYWxobzsKCQoJcHVibGljIEFsdW5vKFN0cmluZyBub21lLAoJCQkJaW50IGPDs2RfbWF0csOtY3VsYSwKCQkJCWJvb2xlYW4gw6lfYm9sc2lzdGEsCgkJCQlkb3VibGUgZGVzY29udG8sCgkJCQlDdXJzbyBjdXJzbywKCQkJCVRyYWJhbGhvIHRyYWJhbGhvKSB7CgkJdGhpcy5ub21lID0gbm9tZTsKCQl0aGlzLmPDs2RfbWF0csOtY3VsYSA9IGPDs2RfbWF0csOtY3VsYTsKCQl0aGlzLsOpX2JvbHNpc3RhID0gw6lfYm9sc2lzdGE7CgkJdGhpcy5kZXNjb250byA9IGRlc2NvbnRvOwoJCXRoaXMuY3Vyc28gPSBjdXJzbzsKCQl0aGlzLnRyYWJhbGhvID0gdHJhYmFsaG87CgkJCQl9CgkJCgkJcHVibGljIFN0cmluZyBnZXRNZW5zYWxpZGFkZUZpbmFsKCkgewoJCQlTdHJpbmcgcmVzcCA9ICIiOwoJCQlpZiAow6lfYm9sc2lzdGEpCgkJCXsKCQkJCXJlc3AgKz0gIkJvbHNpc3RhIGNvbSBkZXNjb250byBkZTogIiArIHRoaXMuZGVzY29udG8gKyAiJVxuIjsKCQkJCXJlc3AgKz0gIk1lbnNhbGlkYWRlOiBSJCAiICsgdGhpcy5jdXJzby5nZXRNZW5zYWxpZGFkZSgpKigxLXRoaXMuZGVzY29udG8vMTAwKTsKCQkJfQoJCQllbHNlIHJlc3AgKz0gIk1lbnNhbGlkYWRlOiBSJCAiICsgdGhpcy5jdXJzby5nZXRNZW5zYWxpZGFkZSgpOwoJCQlyZXR1cm4gcmVzcDsKCQl9CgkJCgkJcHVibGljIFN0cmluZyBnZXREYWRvcygpCgkJewoJCQlTdHJpbmcgcmVzcCA9ICJBbHVubzogIisgdGhpcy5ub21lICsiXG4iOwoJCQlyZXNwICs9ICJDdXJzbzogIiArIHRoaXMuY3Vyc28uZ2V0Tml2ZWwoKSArICIgZW0gIiArIHRoaXMuY3Vyc28uZ2V0Tm9tZSgpICsiXG4iOwoJCQlyZXNwICs9IHRoaXMuZ2V0TWVuc2FsaWRhZGVGaW5hbCgpOwoJCQlyZXNwICs9IHRyYWJhbGhvLmdldERhZG9zKCk7CgkJCXJldHVybiByZXNwOwoJCX0KfQoKY2xhc3MgVGVzdGUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBhcmdzW10pCgl7CgkJQ3Vyc28gYWRzID0gbmV3IEN1cnNvKCJBRFMiLAoJCQkJCQkJIkdyYWR1YcOnw6NvIiwKCQkJCQkJCTkyMC41MCk7CgkJVHJhYmFsaG8gdHJhYmFsaG8xID0gbmV3IFRyYWJhbGhvTnVsbygpOwoJCUFsdW5vIGExID0gbmV3IEFsdW5vKCJNYXJ0aW4gRm93bGVyIiwKCQkJCQkJCTExMjIzMzQ0LAoJCQkJCQkJdHJ1ZSwKCQkJCQkJCTIwLjUsCgkJCQkJCQlhZHMsCgkJCQkJCQl0cmFiYWxobzEpOwoJCQkJCQkJCgkJQ3Vyc28gY29tcHV0YWNhb19hcGxpY2FkYSA9IG5ldyBDdXJzbygiQ29tcHV0YcOnw6NvIEFwbGljYWRhIiwKCQkJCQkJCSJNZXN0cmFkbyIsCgkJCQkJCQkyMTUwLjQ1KTsJCQkJCQoJCVRyYWJhbGhvIHRyYWJhbGhvMiA9IG5ldyBUcmFiYWxobygiQWRlbWlyIEZyYW5nbyIsICJSZWZhY3RvcnMiLCAxMCwgY29tcHV0YWNhb19hcGxpY2FkYS5nZXROaXZlbCgpKTsKCQlBbHVubyBhMiA9IG5ldyBBbHVubygiS2VudCBCZWNrIiwKCQkJCQkJCTIyMzM0NDU1LAoJCQkJCQkJZmFsc2UsCgkJCQkJCQkwLAoJCQkJCQkJY29tcHV0YWNhb19hcGxpY2FkYSwKCQkJCQkJCXRyYWJhbGhvMik7CgkJCQkJCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oYTEuZ2V0RGFkb3MoKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKGEyLmdldERhZG9zKCkpOwoJfQp9CgkJCQ==