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