Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-й семестр / Лаб.работы / Мет.ук. к л.р.5.doc
Скачиваний:
61
Добавлен:
12.03.2016
Размер:
212.99 Кб
Скачать

Задание 2

Изменить программу, созданную Java на основе задания 2 лабораторной работы № 4. В метод ввода значений полей класса индивидуального варианта добавить проверку допустимости вводимых значений. В случае недопустимых значений полей выбрасывать исключения, которые необходимо обработать в методе main() главного класса программы.

Пример 2

В листинге 2 представлена программа, в которой формируется исходный список студентов, список студентов с минимальным рейтингом, а также осуществляется поиск информации о рейтинге студента по его фамилии. Исходный список студента сортируется по фамилии в алфавитном порядке. В методе input выполняется проверка вводимых значений для поля рейтинг (grade). Рейтинг студента должен быть целым числом в диапазоне от 0 до 100.

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

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

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

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

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

Листинг 2

// Student.java

package primer2;

import java.util.*;

import java.io.*;

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()throws Exception

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

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

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

System.out.print("Рейтинг: "); grade = in.nextInt();

if (grade < 0 || grade > 100)

throw new Exception("Ошибка: Рейтинг должен быть от 0 до 100!");

}

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.*;

import java.io.*;

class Primer2 {

public static void main(String[] args) {

Scanner in; int n; Student[] st = null;

try

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

in = new Scanner(System.in);

n = in.nextInt();

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 (Student st1 : st) {

st1.output();

}

int min = st[0].getgrade();

for (Student st1 : st) {

if (st1.getgrade() < min) {

min = st1.getgrade();

}

}

in = new Scanner(System.in);

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

String fam = in.nextLine();

String f; int fl = 0;

for (Student st1 : st) {

f = st1.getfam();

if (f.equals(fam)) {

System.out.println("Рейтинг студента "+ fam+" - " + st1.getgrade());

fl = 1;

}

}

if (fl == 0) System.out.println("Нет в списке студента "+fam);

System.out.println("Список студентов с минимальным рейтингом: ");

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

for (Student st1 : st) {

if (st1.getgrade() == min) {

st1.output();

}

}

}

catch (InputMismatchException e)

{ System.out.println("Это НЕ число!!!" + e);

}

catch (Exception e)

{ System.out.println(e);}

}

}

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

Соседние файлы в папке Лаб.работы