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
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);
}
}
}