Merhaba,

Bu yazımda dizi örneklerinden birinin kodunu paylaşacağım. Dizi örneklerine güzel bir örnek öğrencilerin notlarının belirttiğimiz dizide tutulması olacaktır.  Bu örnekte sabit olarak belirlediğimiz öğrenci notlarını GradeBookTest.java dosyamızda bir diziye aktarıyoruz. Daha sonra öğrencilerin notlarını gösteriyoruz. Minimum, Maksimum ve Ortalama değerleri kodumuzda hesaplatıp gösteriyoruz.

Ayrıca outputBarChart() içinde belirttiğimiz aralıklarda olan öğrenci notlarını * ile gösteriyoruz.

Aşağıdaki kodumuzu çalıştırdığınızda çıktısı aşağıdaki gibi olacaktır:

Welcome to the grade book for : Programlama
The grades are :
Student 1 : 87
Student 2 : 68
Student 3 : 94
Student 4 : 100
Student 5 : 83
Student 6 : 78
Student 7 : 85
Student 8 : 91
Student 9 : 76
Student 10 : 87
Class average is 84.9
Lowest grade is 68 Highest grade 100
Grade Distribution :
00-09:
10-19:
20-29:
30-39:
40-49:
50-59:
60-69:*
70-79:**
80-89:****
90-99:**
  100: *

 

GradeBook.java dosyası

public class GradeBook {

	private String courseName;
	private int grades[]; //Öğrenci notları grades dizininde tutuyoruz.

	public GradeBook(String name, int gradesArray[])
	{
		courseName=name;
		grades=gradesArray;
	}

	public void setCourseName(String name)
	{
		courseName=name;
	}

	public String getCourseName()
	{
		return courseName;
	}

	// kullanıcıya hangi ders için notları gösterdiğimizi belirtiyoruz
	public void displayMessage()
	{
		System.out.println("Welcome to the grade book for : "+ getCourseName());

	}

	public void processGrades()
	{
		outputGrades(); // Öğrenci notlarını gösteren metodu çağırıyoruz.

		System.out.println("Class average is "+getAverage()); // Sınıf ortalamasını gösteriyoruz

		System.out.println("Lowest grade is " +getMinimum()+" Highest grade "+ getMaximum()); // Minimum ve maksimum puanları gösteriyoruz.

		outputBarChart(); // Belirlediğimiz aralıklarda not alan öğrencileri * la gösteren bir grafik metodu çağırıyoruz
	}

	public int getMinimum()  // En düşük notu alan öğrenciyi buluyoruz
	{
		int lowgrade=grades[0];

		for (int grade:grades)
		{
			if (grade<lowgrade)
				lowgrade=grade;
		}
		return lowgrade;
	}

	public int getMaximum() // En yüksek notu alan öğrenciyi buluyoruz
	{
		int highgrade=grades[0];
		for (int grade:grades)
		{
			if (grade>highgrade)
				highgrade=grade;
		}
		return highgrade;
	}

	public double getAverage() //Sınıf ortalamasını hesaplıyoruz
	{
		int total=0;
		for (int grade:grades)
			total+=grade;
		return (double)total/grades.length;
	}

	public void outputBarChart() // Belirttiğimiz aralıklarda not alan öğrencileri * lar ile ifade ediyoruz
	{
		System.out.println("Grade Distribution :");

		int frequency[]=new int[11];

		for (int grade:grades)
			++frequency[grade/10];

		for (int count=0; count<frequency.length; count++)
		{
			if (count==10)
				System.out.printf("%5d: ",100);
			else
				System.out.printf("%02d-%02d:", count*10, count*10+9);

			for (int stars=0; stars<frequency[count];stars++)
				System.out.print("*");
				System.out.println();
		}
	}

	public void outputGrades() // Dizinimizdeki öğrenci notlarını gösteriyoruz
	{
		System.out.println("The grades are :");

		for (int student=0; student<grades.length;student++)
			System.out.println("Student "+(student+1)+" : "+grades[student]);
	}

}

GradeBookTest.java dosyası

public class GradeBookTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int gradesArray[]={87,68,94,100,83,78,85,91,76,87}; //Öğrenci notlarını sabit olarak giriyoruz

		GradeBook myGradeBook=new GradeBook("Programlama", gradesArray);
		myGradeBook.displayMessage();
		myGradeBook.processGrades();
	}

}