Tee ohjelma Opintopisteet, joka kysyy, monesko lukukausi opiskelijalla on menossa. Tämän jälkeen ohjelma, kuinka monta opintopistettä opiskelija on saanut kunakin lukukautena. Lopuksi ohjelma kertoo - kuinka paljon opiskelijalla pitäisi olla tähän mennessä opintopisteitä, kun lukukauden tavoite on 30 opintopistettä, - opiskelijan yhteenlaskettujen opintopisteiden määrän, - ilmoituksen, onko jäljessä tavoitteesta, tavoitteessa vai yli tavoitteen ("Olet jäljessä tavoitteesta.", "Olet tavoitteessa." tai "Olet edellä tavoitteesta.") - vielä tutkintoon vaadittavien pisteiden määrän, kun tutkinto on 210 opintopistettä. ``` Example output: Anna lukukausien määrä: 3 Anna 1. lukukauden opintopisteesi: 40 Anna 2. lukukauden opintopisteesi: 27 Anna 3. lukukauden opintopisteesi: 30 Sinulla pitäisi olla tähän mennessä 90 opintopistettä. Sinulla on 97 opintopistettä. Olet edellä tavoitteesta. Tutkinnosta puuttuu vielä 113 opintopistettä. ``` -------------------- **Opintopisteet.java** ``` import java.util.Scanner; import java.text.DecimalFormat; import java.util.InputMismatchException; public class Opintopisteet { public static void main(String[] args) { DecimalFormat r2 = new DecimalFormat("0.00"); Scanner syote_lukukausi = new Scanner(System.in); int tutkinto_op = 210, lukukausi_op = 30; System.out.print("Anna lukukausien määrä: "); try { int lukukaudet = syote_lukukausi.nextInt(); if (lukukaudet < 1 || lukukaudet > 8) { System.err.println("Syötetty lukukausien määrä on virheellinen. Ohjelma keskeytetty"); System.exit(1); } String tavoite_lause = ""; int lukukausi_op_tavoite = 0, opiskelija_op_yht = 0; for (int i = 1; i <= lukukaudet; i++) { int max_tries = 4; System.out.print("Anna " + i + ". lukukauden opintopisteesi: "); while (max_tries > 0) { try { Scanner syote_op = new Scanner(System.in); int opiskelija_op = syote_op.nextInt(); if (opiskelija_op < 0) { throw new InputMismatchException(); } else { opiskelija_op_yht += opiskelija_op; } lukukausi_op_tavoite += lukukausi_op; break; } catch (InputMismatchException e) { System.err.println( "Opintopisteiden täytyy olla positiivinen kokonaisluku\n" + "Yritä uudelleen (kertoja jäljellä: " + (max_tries - 1) + ")" ); max_tries -= 1; continue; } } if (max_tries == 0) { System.err.println("Syöttämäsi opintopisteet ovat virheelliset. Ohjelma keskeytetty"); System.exit(1); } } if (opiskelija_op_yht > lukukausi_op_tavoite) { tavoite_lause = "Olet edellä tavoitteesta."; } else if (opiskelija_op_yht == lukukausi_op_tavoite) { tavoite_lause = "Olet tavoitteessa."; } else { tavoite_lause = "Olet jäljessä tavoitteesta."; } System.out.printf( "Sinulla pitäisi olla tähän mennessä %s opintopistettä.\n" + "Sinulla on %s opintopistettä.\n" + "%s\n" + "Tutkinnosta puuttuu vielä %s opintopistettä.", lukukausi_op_tavoite, opiskelija_op_yht, tavoite_lause, (tutkinto_op - opiskelija_op_yht) ); } catch (InputMismatchException e) { System.err.println("Lukukauden täytyy olla kokonaisluku. Ohjelma keskeytetty"); System.exit(1); } } } ```