fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7.  
  8. class GradeBookTest
  9. {
  10. public static void main( String[] args )
  11. {
  12.  
  13. int[] gradesArray = { 87, 68, 94, 100, 83, 78, 85, 91, 76, 87 };
  14.  
  15. GradeBook myGradeBook = new GradeBook("CS101 Introduction to Java Programming", gradesArray );
  16. myGradeBook.displayMessage();
  17. myGradeBook.processGrades();
  18. }
  19. }
  20.  
  21.  
  22. class GradeBook
  23. {
  24. private String courseName;
  25. private int[] grades;
  26.  
  27. public GradeBook( String name, int[] gradesArray )
  28. {
  29. courseName = name;
  30. grades = gradesArray;
  31. }
  32. public void setCourseName( String name )
  33. {
  34. courseName = name;
  35. }
  36. public String getCourseName()
  37. {
  38. return courseName;
  39. }
  40. public void displayMessage()
  41. {
  42. System.out.printf( "Welcome to the grade book for%s!",getCourseName() );
  43. }
  44. public void processGrades()
  45. {
  46. outputGrades();
  47. System.out.printf( "Class average is %.2f", getAverage() );
  48. outputBarChart();
  49. }
  50. public double getAverage()
  51. {
  52. int total = 0; // initialize total
  53. for ( int grade : grades )
  54. total += grade;
  55. return ( double ) total / grades.length;
  56. }
  57.  
  58. public void outputBarChart()
  59. {
  60. int[] frequency=new int[11];
  61.  
  62. for(int i = 0; i < grades.length; i++){
  63. /*
  64. switch(grades[i]/10){
  65. case 0:
  66. frequency[0]++;
  67. break;
  68. case 1:
  69. frequency[1]++;
  70. break;
  71. case 2:
  72. frequency[2]++;
  73. break;
  74. case 3:
  75. frequency[3]++;
  76. break;
  77. case 4:
  78. frequency[4]++;
  79. break;
  80. case 5:
  81. frequency[5]++;
  82. break;
  83. case 6:
  84. frequency[6]++;
  85. break;
  86. case 7:
  87. frequency[7]++;
  88. break;
  89. case 8:
  90. frequency[8]++;
  91. break;
  92. case 9:
  93. frequency[9]++;
  94. break;
  95. case 10:
  96. frequency[10]++;
  97. break;
  98. }*/
  99.  
  100. frequency[grades[i]/10]++; //例如25分 歸類到frequency[2]
  101. }
  102.  
  103. System.out.println();
  104. System.out.print("Grade distribution:");
  105. for(int i = 0; i < frequency.length; i++){
  106. System.out.println();
  107. if(i == frequency.length-1)
  108. System.out.print("100:");
  109. else
  110. System.out.print(i+"0-"+i+"9:");
  111. for(int j = 0; j < frequency[i]; j++){
  112. System.out.print("*");
  113. }
  114. }
  115.  
  116. }
  117.  
  118. public void outputGrades()
  119. {
  120. System.out.println( "The grades are:" );
  121. for ( int student = 0; student < grades.length; student++ )
  122. System.out.printf( "Student %2d: %3d", student + 1, grades[ student ] );
  123. }
  124. }
Success #stdin #stdout 0.05s 2184192KB
stdin
Standard input is empty
stdout
Welcome to the grade book forCS101 Introduction to Java Programming!The grades are:
Student  1:  87Student  2:  68Student  3:  94Student  4: 100Student  5:  83Student  6:  78Student  7:  85Student  8:  91Student  9:  76Student 10:  87Class average is 84.90
Grade distribution:
00-09:
10-19:
20-29:
30-39:
40-49:
50-59:
60-69:*
70-79:**
80-89:****
90-99:**
100:*