Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TestMyCode
- koivulahtisampsa
- TMC
- Organization MOOC
- Course mooc-2018-ohjelmointi
- Exercise osa07-Osa07_01.LintubongarinTietokanta
- Suggested solution
- Solution for osa07-Osa07_01.LintubongarinTietokanta
- src/Kayttoliittyma.java
- import java.util.Scanner;
- public class Kayttoliittyma {
- private Scanner lukija;
- private LintuTietokanta ltk;
- public Kayttoliittyma(Scanner lukija, LintuTietokanta ltk) {
- this.lukija = lukija;
- this.ltk = ltk;
- }
- public void kaynnista() {
- while (true) {
- String komento = kysy("?");
- if (komento.equals("Lopeta")) {
- break;
- } else if (komento.equals("Lisaa")) {
- lisaa();
- } else if (komento.equals("Havainto")) {
- havainto();
- } else if (komento.equals("Nayta")) {
- nayta();
- } else if (komento.equals("Tilasto")) {
- tilasto();
- } else {
- System.out.println("Tuntematon komento!");
- }
- }
- }
- public String kysy(String kysymys) {
- System.out.print(kysymys + " ");
- return lukija.nextLine();
- }
- public void lisaa() {
- String nimi = kysy("Nimi:");
- String latNimi = kysy("Latinankielinen nimi:");
- ltk.lisaa(nimi, latNimi);
- }
- public void havainto() {
- String nimi = kysy("Nimi:");
- boolean onnistuiko = ltk.havainto(nimi);
- if (!onnistuiko) {
- System.out.println(nimi + " ei ole lintu!");
- }
- }
- public void nayta() {
- String nimi = kysy("Nimi:");
- String mjono = ltk.nayta(nimi);
- if (mjono == null) {
- System.out.println(nimi + " ei ole lintu!");
- } else {
- System.out.println(mjono);
- }
- }
- public void tilasto() {
- System.out.print(ltk.tilasto());
- }
- }
- src/Lintu.java
- public class Lintu {
- private String nimi;
- private String latNimi;
- private int havainnot;
- public Lintu(String nimi, String latNimi) {
- this.nimi = nimi;
- this.latNimi = latNimi;
- this.havainnot = 0;
- }
- public String nimi() {
- return this.nimi;
- }
- public void havainto() {
- this.havainnot++;
- }
- public String toString() {
- return this.nimi + " (" + this.latNimi + "): " + this.havainnot + " havaintoa";
- }
- }
- src/LintuTietokanta.java
- import java.util.ArrayList;
- public class LintuTietokanta {
- private ArrayList<Lintu> linnut;
- public LintuTietokanta() {
- this.linnut = new ArrayList<>();
- }
- public boolean havainto(String nimi) {
- for (Lintu lintu : linnut) {
- if (lintu.nimi().equals(nimi)) {
- lintu.havainto();
- return true;
- }
- }
- return false;
- }
- public void lisaa(String nimi, String latNimi) {
- this.linnut.add(new Lintu(nimi, latNimi));
- }
- public String nayta(String nimi) {
- for (Lintu lintu : linnut) {
- if (lintu.nimi().equals(nimi)) {
- return lintu.toString();
- }
- }
- return null;
- }
- public String tilasto() {
- String tulos = "";
- for (Lintu lintu : linnut) {
- tulos += lintu.toString();
- }
- return tulos;
- }
- }
- src/Paaohjelma.java
- import java.util.Scanner;
- public class Paaohjelma {
- public static void main(String[] args) {
- // HUOM! Älä luo ohjelmassa muita Scanner-olioita. Jos ja toivottavasti
- // kun teet muita luokkia, anna allaoleva Scanner-olio niille
- // tarvittaessa parametrina.
- Scanner lukija = new Scanner(System.in);
- LintuTietokanta ltk = new LintuTietokanta();
- Kayttoliittyma kayttoliittyma = new Kayttoliittyma(lukija, ltk);
- kayttoliittyma.kaynnista();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement