daily pastebin goal
30%
SHARE
TWEET

Untitled

a guest Mar 13th, 2018 55 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. TestMyCode
  2.  koivulahtisampsa
  3. TMC
  4. Organization MOOC
  5. Course mooc-2018-ohjelmointi
  6. Exercise osa07-Osa07_01.LintubongarinTietokanta
  7. Suggested solution
  8. Solution for osa07-Osa07_01.LintubongarinTietokanta
  9. src/Kayttoliittyma.java
  10.  
  11. import java.util.Scanner;
  12.  
  13. public class Kayttoliittyma {
  14.  
  15.     private Scanner lukija;
  16.     private LintuTietokanta ltk;
  17.  
  18.     public Kayttoliittyma(Scanner lukija, LintuTietokanta ltk) {
  19.         this.lukija = lukija;
  20.         this.ltk = ltk;
  21.     }
  22.  
  23.     public void kaynnista() {
  24.  
  25.         while (true) {
  26.             String komento = kysy("?");
  27.  
  28.             if (komento.equals("Lopeta")) {
  29.                 break;
  30.             } else if (komento.equals("Lisaa")) {
  31.                 lisaa();
  32.             } else if (komento.equals("Havainto")) {
  33.                 havainto();
  34.             } else if (komento.equals("Nayta")) {
  35.                 nayta();
  36.             } else if (komento.equals("Tilasto")) {
  37.                 tilasto();
  38.             } else {
  39.                 System.out.println("Tuntematon komento!");
  40.             }
  41.         }
  42.     }
  43.  
  44.     public String kysy(String kysymys) {
  45.         System.out.print(kysymys + " ");
  46.         return lukija.nextLine();
  47.     }
  48.  
  49.     public void lisaa() {
  50.         String nimi = kysy("Nimi:");
  51.         String latNimi = kysy("Latinankielinen nimi:");
  52.  
  53.         ltk.lisaa(nimi, latNimi);
  54.     }
  55.  
  56.     public void havainto() {
  57.         String nimi = kysy("Nimi:");
  58.  
  59.         boolean onnistuiko = ltk.havainto(nimi);
  60.         if (!onnistuiko) {
  61.             System.out.println(nimi + " ei ole lintu!");
  62.         }
  63.     }
  64.  
  65.     public void nayta() {
  66.         String nimi = kysy("Nimi:");
  67.         String mjono = ltk.nayta(nimi);
  68.         if (mjono == null) {
  69.             System.out.println(nimi + " ei ole lintu!");
  70.         } else {
  71.             System.out.println(mjono);
  72.         }
  73.     }
  74.  
  75.     public void tilasto() {
  76.         System.out.print(ltk.tilasto());
  77.     }
  78.  
  79. }
  80.  
  81.  
  82. src/Lintu.java
  83.  
  84. public class Lintu {
  85.  
  86.     private String nimi;
  87.     private String latNimi;
  88.     private int havainnot;
  89.  
  90.     public Lintu(String nimi, String latNimi) {
  91.         this.nimi = nimi;
  92.         this.latNimi = latNimi;
  93.         this.havainnot = 0;
  94.     }
  95.  
  96.     public String nimi() {
  97.         return this.nimi;
  98.     }
  99.  
  100.     public void havainto() {
  101.         this.havainnot++;
  102.     }
  103.  
  104.     public String toString() {
  105.         return this.nimi + " (" + this.latNimi + "): " + this.havainnot + " havaintoa";
  106.     }
  107. }
  108.  
  109.  
  110. src/LintuTietokanta.java
  111.  
  112. import java.util.ArrayList;
  113.  
  114. public class LintuTietokanta {
  115.  
  116.     private ArrayList<Lintu> linnut;
  117.  
  118.     public LintuTietokanta() {
  119.         this.linnut = new ArrayList<>();
  120.     }
  121.  
  122.     public boolean havainto(String nimi) {
  123.         for (Lintu lintu : linnut) {
  124.             if (lintu.nimi().equals(nimi)) {
  125.                 lintu.havainto();
  126.                 return true;
  127.             }
  128.         }
  129.  
  130.         return false;
  131.     }
  132.  
  133.     public void lisaa(String nimi, String latNimi) {
  134.         this.linnut.add(new Lintu(nimi, latNimi));
  135.     }
  136.  
  137.     public String nayta(String nimi) {
  138.         for (Lintu lintu : linnut) {
  139.             if (lintu.nimi().equals(nimi)) {
  140.                 return lintu.toString();
  141.             }
  142.         }
  143.  
  144.         return null;
  145.     }
  146.  
  147.     public String tilasto() {
  148.         String tulos = "";
  149.         for (Lintu lintu : linnut) {
  150.             tulos += lintu.toString();
  151.         }
  152.  
  153.         return tulos;
  154.     }
  155.  
  156. }
  157.  
  158.  
  159. src/Paaohjelma.java
  160.  
  161. import java.util.Scanner;
  162.  
  163. public class Paaohjelma {
  164.  
  165.     public static void main(String[] args) {
  166.         // HUOM! Älä luo ohjelmassa muita Scanner-olioita. Jos ja toivottavasti
  167.         // kun teet muita luokkia, anna allaoleva Scanner-olio niille
  168.         // tarvittaessa parametrina.
  169.  
  170.         Scanner lukija = new Scanner(System.in);
  171.  
  172.         LintuTietokanta ltk = new LintuTietokanta();
  173.  
  174.         Kayttoliittyma kayttoliittyma = new Kayttoliittyma(lukija, ltk);
  175.         kayttoliittyma.kaynnista();
  176.     }
  177.  
  178. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top