fork download
  1. class Trabalho{
  2. private String tipo, título, orientador;
  3. private double nota;
  4. public Trabalho (String orientador, String título, double nota, String nível_curso){
  5. this.título = título;
  6. this.orientador = orientador;
  7. this.nota = nota;
  8. switch (nível_curso)
  9. {
  10. case "Graduação (Bacharelado)": tipo= "TCC"; break;
  11. case "Lato sensu": tipo = "Monografia"; break;
  12. case "Mestrado": tipo = "Dissertação"; break;
  13. case "Doutorado": tipo = "Tese"; break;
  14. }
  15. }
  16. public String getDados(){
  17. String resp = "Título do trabalho (" +tipo+"): ";
  18. resp += título + "\n";
  19. resp += "Orientador(a): Prof. " + orientador + "\n";
  20. resp += "Nota: " + nota + "\n";
  21. return resp;
  22. }
  23. }
  24.  
  25. class TrabalhoNulo extends Trabalho{
  26. public TrabalhoNulo(){
  27. super(null,null,-1.0,"");
  28. }
  29. public String getDados(){
  30. return "Obs: CST não têm obrigatoriedade de trabalho de conclusão\n";
  31. }
  32. }
  33.  
  34. class Curso{
  35. private String nome_curso, nível_curso;
  36. private double mensalidade_curso;
  37.  
  38. public Curso(String nome_curso, String nível_curso, double mensalidade_curso){
  39. this.nome_curso = nome_curso;
  40. this.nível_curso = nível_curso;
  41. this.mensalidade_curso = mensalidade_curso;
  42. }
  43.  
  44. public String getDados(){
  45. return "Curso: " + this.nível_curso + " em " + this.nome_curso +"\n";
  46. }
  47.  
  48. public double getMensalidade(){
  49. return mensalidade_curso;
  50. }
  51.  
  52. public String getNível(){
  53. return nível_curso;
  54. }
  55.  
  56. }
  57.  
  58. class Aluno{
  59. private String nome;
  60. private int cód_matrícula;
  61. private boolean é_bolsista;
  62. private double mensalidade_curso, desconto;
  63. protected Curso curso;
  64. private Trabalho trabalho;
  65.  
  66. public Aluno(String nome,
  67. Curso curso,
  68. Trabalho trabalho,
  69. int cód_matrícula,
  70. boolean é_bolsista,
  71. double desconto) {
  72. this.nome = nome;
  73. this.curso = curso;
  74. this.trabalho = trabalho;
  75. this.cód_matrícula = cód_matrícula;
  76. this.é_bolsista = é_bolsista;
  77. this.desconto = desconto;
  78. }
  79.  
  80. public String getMensalidadeFinal(){
  81. String resp = "";
  82. if (é_bolsista)
  83. {
  84. resp += "Bolsista com desconto de: " + this.desconto + "%\n";
  85. resp += "Mensalidade: R$ " + curso.getMensalidade()*(1-this.desconto/100)+"\n";
  86. }
  87. else resp += "Mensalidade: R$ " + curso.getMensalidade()+"\n";
  88. return resp;
  89. }
  90.  
  91. public String getDados()
  92. {
  93. String resp = "Aluno: "+ this.nome +"\n";
  94. resp += curso.getDados();
  95. resp += this.getMensalidadeFinal();
  96. resp += trabalho.getDados();
  97. return resp;
  98. }
  99. }
  100.  
  101. class Teste
  102. {
  103. public static void main (String args[])
  104. {
  105. Curso curso1 = new Curso ("ADS", "Graduação", 920.50);
  106. Trabalho trabalho1 = new TrabalhoNulo();
  107. Curso curso2 = new Curso ("Computação Aplicada", "Mestrado", 2150.45);
  108. Trabalho trabalho2 = new Trabalho("Peter Coad","Impacto da Refatoração",9.5,curso2.getNível());
  109. Aluno a1 = new Aluno("Martin Fowler",
  110. curso1,
  111. trabalho1,
  112. 11223344,
  113. true,
  114. 20.5);
  115. Aluno a2 = new Aluno("Kent Beck",
  116. curso2,
  117. trabalho2,
  118. 22334455,
  119. false,
  120. 0);
  121. System.out.println(a1.getDados());
  122. System.out.println(a2.getDados());
  123. }
  124. }
Success #stdin #stdout 0.29s 59120KB
stdin
Standard input is empty
stdout
Aluno: Martin Fowler
Curso: Graduação em ADS
Bolsista com desconto de: 20.5%
Mensalidade: R$ 731.7975
Obs: CST não têm obrigatoriedade de trabalho de conclusão

Aluno: Kent Beck
Curso: Mestrado em Computação Aplicada
Mensalidade: R$ 2150.45
Título do trabalho (Dissertação): Impacto da Refatoração
Orientador(a): Prof. Peter Coad
Nota: 9.5