1. /**
  2. * GradeDistribution.java
  3. * @author Jose M Vidal <jmvidal@gmail.com>
  4. * Created on Feb 9, 2012
  5. *
  6. */
  7. 
  8. public class GradeDistribution {
  9. private int a;
  10. private int b;
  11. private int c;
  12. private int d;
  13. private int f;
  14. public void setAs(int a){
  15. this.a = a;
  16. }
  17. public void setBs(int b){
  18. this.b = b;
  19. }
  20. public void setCs(int c){
  21. this.c = c;
  22. }
  23. public void setDs(int d){
  24. this.d = d;
  25. }
  26. public void setFs(int f){
  27. this.f = f;
  28. }
  29. 
  30. public int getNumGrades(){
  31. return a + b + c + d + f;
  32. }
  33. public String getMedian(){
  34. int midpoint = getNumGrades() / 2;
  35. int count = f;
  36. if (count >= midpoint)
  37. return "F";
  38. count += d;
  39. if (count >= midpoint)
  40. return "D";
  41. count += c;
  42. if (count >= midpoint)
  43. return "C";
  44. count += b;
  45. if (count >= midpoint)
  46. return "B";
  47. return "A";
  48. }
  49. private String getStars(int x){
  50. String result = "";
  51. for (int i=0; i< x; i++)
  52. result += "*";
  53. return result;
  54. }
  55. public String toString() {
  56. return getStars(a) + " A\n" +
  57. getStars(b) + " B\n" +
  58. getStars(c) + " C\n" +
  59. getStars(d) + " D\n" +
  60. getStars(f) + " F\n";
  61. }
  62. 
  63. /**
  64. * @param args
  65. */
  66. public static void main(String[] args) {
  67. GradeDistribution grades = new GradeDistribution();
  68. grades.setAs(4);
  69. grades.setBs(10);
  70. grades.setCs(11);
  71. grades.setDs(1);
  72. grades.setFs(5);
  73. //print a pretty graph
  74. System.out.println(grades);
  75. System.out.println("There are a total of " + grades.getNumGrades() + " grades.");
  76. System.out.println("The median grade is " + grades.getMedian());
  77. grades.setAs(20);
  78. grades.setBs(15);
  79. grades.setCs(10);
  80. grades.setDs(5);
  81. grades.setFs(0);
  82. System.out.println(grades);
  83. System.out.println("There are a total of " + grades.getNumGrades() + " grades.");
  84. System.out.println("The median grade is " + grades.getMedian());
  85. 
  86. }
  87. 
  88. }