Введение в классы и объекты на С++, Java и C# (Лабораторная работа № 4), страница 4

В листинге 2 представлена программа на Java, в которой  определен класс Student. Класс Student содержит следующую информацию о студенте: фамилия, имя и оценки за экзамены по пяти предметах. Метод input() вводит информацию о студенте с клавиатуры. Метод sr_ball() рассчитывает рейтинг студента (средний балл по оценкам). Метод output() выводит информацию о студенте на экран. В классе также имеются: конструктор без параметров, конструктор с параметрами и методы доступа к полю fam (фамилия).

В методе main() создается массив объектов класса Student и выполняется его обработка: сортировка студентов по фамилии в алфавитном порядке, поиск студентов с минимальным рейтингом и поиск рейтинга студента по фамилии.

В методе main() также создаются одиночные объекты класса Student с использованием конструктора без параметров и конструктора с параметрами и выводится на экран содержимое их полей.

Программа включает два файла, которые входят в пакет javaapplication:

-  Student.java – файл с описанием класса Student;

- JavaApplication.java – файл с методом main() .

Для создания программы использовалась среда разработки NetBeans IDE 8.0. На рисунке 3 показан состав проекта программы.

Рисунок 3 – Состав проекта программы

Создание проекта в NetBeans: Файл -> Создать проект -> Java -> Приложение Java.

Добавление класса в проект: Файл -> Создать файл-> Java -> Класс Java.

Компиляция, сборка и выполнение проекта: Выполнить -> Запустить проект.

На рисунке 4 показан результат выполнения программы.

Листинг  2

// Student.java

package javaapplication;

import java.util.*;

class Student implements Comparable <Student>

 { private String fam;

   private String name;

   private  int []oc;

   public Student(String fam, String name, int []oc)

   {   this.oc = new int [5];

       System.arraycopy(oc, 0, this.oc, 0, 5);

       this.fam = fam;

       this.name = name;

   }

   public  Student()

   {  this.fam = "nofam";

      this.name= "noname";

      this.oc = new int [5];

   };

   public String getfam(){ return fam;}

   public void setfam(String fam1){fam = fam1;}

   public void input()

    { Scanner in = new Scanner(System.in);

      System.out.print("Фамилия: "); fam = in.nextLine();

      System.out.print("Имя: "); name = in.nextLine();

      System.out.print("Оценки за 5 экзаменов: ");

      for (int i=0;i<5;i++)

         oc[i]= in.nextInt();

    }

   public void output()

    { String str = String.format("%-10s%-10s   %.2f", fam, name, sr_ball());

      System.out.println(str);

       // System.out.printf("%-10s%-10s   %.2f\n", fam, name, sr_ball());

    }

   public float sr_ball()

   { float ball = 0;

     for (int i=0;i<5;i++)

       ball = ball + oc[i];

     ball = ball/5;

    return ball;

   }

 @Override

   public int compareTo(Student obj)

   {  return fam.compareTo(obj.getfam()); 

    }     

 }

// JavaApplication.java

package javaapplication;

import java.util.*;

public class JavaApplication {

public static void main(String[] args) {

Scanner in;

System.out.print("Введите кол-во студентов: ");

in = new Scanner(System.in);

int n = in.nextInt();

Student[] st = new Student[n];

for (int i = 0; i<st.length; i++)

{ st[i] = new Student();

st[i].input();

}   

Arrays.sort(st);

System.out.println("Список студентов: ");

System.out.printf("%-10s%-10s%-10s\n","Фамилия","Имя","Рейтинг");

for (int i = 0; i<st.length; i++)

st[i].output();

in = new Scanner(System.in);

System.out.print("Укажите фамилию студента: ");