Java fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.7 KiB

Peltipoliisi on 80 nopeusrajoitusalueella. Jos alueella ajaa ylinopeutta korkeintaan 20 kilometriä tunnissa, saa rikesakon. Jos ylinopeus on yli 20 kilometriä, tulee päiväsakkoa. Päiväsakon rahamäärä määräytyy vähentämällä nettokuukausituloista peruskulutusvähennys 255 euroa ja jakamalla saatu erotus luvulla 60 eli (nettotulo-255)/60. Päiväsakon alin euromäärä on vähintään 6 euroa.

Tee ohjelma Peltipoliisi, joka kertoo, menikö ajetulla nopeudella rikesakolle vai päiväsakolle. Jos meni päiväsakolle, kerro yhden päiväsakon määrä. Jos annettu nopeus ei ole ylinopeutta, tulostaa ohjelma "Ei sakkoja". Jos tulee vain rikesakko, tulostaa ohjelmasi vain tekstin "Rikesakko".

Mikäli ylinopeus on yli 20 km/h, täytyy ohjelmasi tulostaa teksti "Päiväsakko" ja kysyä kuljettajan kuukausitulot. Lopuksi tulosta yhden päiväsakon määrä annetuilla tuloilla esimerkkisuorituksen mukaisesti.

Example output:
Anna nopeutesi: 101
Päiväsakko
Anna nettokuukausitulosi: 400,00
Päiväsakon määrä on 6,00 euroa

Peltipoliisi.java

import java.text.DecimalFormat;
import java.util.Scanner;
import java.util.InputMismatchException;
public class Peltipoliisi {
public static void main(String[] args) {
DecimalFormat r2 = new DecimalFormat("0.00");
Scanner syote = new Scanner(System.in);
int rajoitusalue = 80;
try {
System.out.print("Anna nopeutesi: ");
double nopeus = syote.nextDouble();
if (nopeus < 0 || nopeus > 999) {
throw new InputMismatchException();
}
if (nopeus <= rajoitusalue + 20) {
// rikesakko
System.out.println("Rikesakko");
}else if (nopeus >= rajoitusalue + 20) {
int peruskuluvahennys = 255;
// päiväsakko
System.out.println("Päiväsakko");
System.out.print("Anna nettokuukausitulosi: ");
double nettotulo = syote.nextDouble();
if (nettotulo < 0) {
throw new InputMismatchException();
}
double paivasakko_maara = (nettotulo - peruskuluvahennys) / 60;
if (paivasakko_maara < 6) {
paivasakko_maara = 6;
}
System.out.print("Päiväsakon määrä on " + r2.format(paivasakko_maara) + " euroa");
} else {
System.out.println("Ei sakkoja");
}
} catch (InputMismatchException e) {
System.err.println("Virheellinen syöte");
System.exit(1);
}
System.exit(0);
}
}