Advertisement
Guest User

Untitled

a guest
Mar 13th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement