Задание 2
Создать программу на языке Java, в которой:
определить класс на основе информации об объекте индивидуального варианта. Поля данных класса должны быть закрытыми (private), а методы класса открытыми (public). В классе должны быть конструктор с параметрами и конструктор без параметров, методы доступа к закрытым полям класса и методы ввода и вывода значений полей класса.
Создать массив объектов и обработку информации об объектах согласно индивидуальному варианту задания. Выполнить сортировку объектов по какому-либо полю.
Индивидуальные варианты взять из лабораторной работы №1.
Пример 2
В листинге 2 представлена программа, в которой определен класс Student. Поля данных класса являются закрытыми (private), а методы класса открытыми (public). В классе определены конструкторы, методы доступа к закрытым полям класса и методы ввода и вывода значений полей класса.
В программе формируется исходный список студентов, список студентов с минимальным рейтингом, а также осуществляется поиск информации о рейтинге студента по его фамилии. Исходный список студента сортируется по фамилии в алфавитном порядке.
Для создания программы использовалась среда разработки NetBeans IDE 8.0. На рисунке 3 показан состав проекта программы.
Рисунок 3 – Состав проекта программы
Создание проекта в NetBeans: Файл -> Создать проект -> Java -> Приложение Java.
Компиляция, сборка и выполнение проекта: Выполнить -> Запустить проект.
На рисунке 4 показан результат выполнения программы.
Листинг 2
// Student.java
package primer2;
import java.util.*;
class Student implements Comparable
{ private String fam;
private String name;
private int grade; //рейтинг
public Student(String fam, String name, int grade)
{ this.fam = fam;
this.name = name;
this.grade = grade;
}
public Student(){};
public String getfam(){ return fam;}
public String getname(){ return name;}
public int getgrade(){ return grade;}
public void input()
{ Scanner in = new Scanner(System.in);
System.out.print("Фамилия: "); fam = in.nextLine();
System.out.print("Имя: "); name = in.nextLine();
System.out.print("Рейтинг: "); grade = in.nextInt();
}
public void output()
{ System.out.printf("%-10s%-10s %d\n",fam,name,grade);
}
@Override
public int compareTo(Object obj)
{ Student tmp = (Student)obj;
return fam.compareTo(tmp.getfam());
}
}
// Primer2.java
package primer2;
import java.util.*;
class Primer2 {
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();
int min = st[0].getgrade();
for(int i = 0; i<st.length; i++)
if (st[i].getgrade() < min)
min = st[i].getgrade();
in = new Scanner(System.in);
System.out.print("Укажите фамилию студента: ");
String fam = in.nextLine();
String f; int fl = 0;
for(int i = 0; i<st.length; i++)
{ f =st[i].getfam();
if (f.equals(fam))
{System.out.println("Рейтинг студента "+ fam+" - "+st[i].getgrade());
fl = 1;
}
}
if (fl == 0) System.out.println("Нет в списке студента "+fam);
System.out.println("Список студентов с минимальным рейтингом: ");
System.out.printf("%-10s%-10s%-10s\n","Фамилия","Имя","Рейтинг");
for(int i = 0; i<st.length; i++)
if (st[i].getgrade() == min)
st[i].output();
}
}
Рисунок 4 – Результат выполнения программы