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

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