Задатак — Учитавање пријављених студената

← Недеља 11

Датотека садржи податке у формату:

indeks,ime,prezime,broj_poena

На пример:

101/2025,Ana,Jovanovic,28
102/2025,Marko,Petrovic,abc
103/2025,Milica,Ilic,31

Класа Student

Студент има:

  • индекс;
  • име;
  • презиме;
  • број поена.

Број поена мора бити у опсегу:

0–100

NeispravanStudentException

Направити сопствени цхецкед изузетак:

public class NeispravanStudentException extends Exception

ParserStudenta

Направити методу:

public static Student parsiraj(String red)
        throws NeispravanStudentException

Метода треба да провери:

  • да ли постоје тачно 4 поља;
  • да ли је индекс непразан;
  • да ли су име и презиме непразни;
  • да ли је број поена број;
  • да ли је број поена између 0 и 100.

Ако ред није исправан, бацити:

NeispravanStudentException

UcitajStudente

Направити методу:

public static List<Student> ucitaj(String putanja)
        throws IOException

Користити:

try-with-resources

За сваки ред:

  • покушати парсирање;
  • ако је ред неисправан, исписати упозорење;
  • наставити са следећим редом.

Грешка отварања/читања фајла треба да се проследи позиваоцу.

Main

Main треба да:

  • позове ucitaj;
  • ухвати IOException;
  • испише успешно учитане студенте.

Размислити

  1. Зашто ParserStudenta не хвата сопствени NeispravanStudentException?
  2. Зашто UcitajStudente хвата грешку појединачног реда?
  3. Зашто UcitajStudente не мора нужно да хвата IOException?
  4. Који ниво програма зна шта треба урадити ако фајл уопште не постоји?

Самостални део — Извештај о увозу

Датотека садржи име и број бодова раздвојене зарезом. Бодови су 0–100. Направити извештај исправних редова у новом фајлу и број одбијених редова. Сами расподелите одговорности.

Критеријум провере: Проверити празно име, абц, 101, додатни завршни зарез и недостајући фајл. Разликовати покварен садржај од грешке отварања. Подржан је једноставан формат без наводника и зареза унутар поља.

Предати мали Main са демонстрацијом и кратко образложење одлука. У овом делу нису задати називи класа или обавезни обрасци; образложено једноставније решење је прихватљиво. Најпре дефинисати уговор и очекивани резултат, па имплементирати.