Advertisement
Zizalik

PRaks7

Dec 12th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.70 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package polltriin_p7;
  7.  
  8. import java.io.BufferedReader;
  9. import java.io.BufferedWriter;
  10. import java.io.FileNotFoundException;
  11. import java.io.FileReader;
  12. import java.io.FileWriter;
  13. import java.io.IOException;
  14. import java.io.PrintWriter;
  15. import java.io.Writer;
  16. import java.text.SimpleDateFormat;
  17. import java.util.ArrayList;
  18. import java.util.Collections;
  19. import java.util.Comparator;
  20. import java.util.Date;
  21. import java.util.HashMap;
  22. import java.util.Map;
  23. import java.util.Scanner;
  24. import java.util.Set;
  25.  
  26. /**
  27. *
  28. * @author triin Poll, 166156, RDIR31
  29. * Failis hoia tudengi kood ja keskmine hinne
  30.  
  31. Kasutaja funktsioonide abil leia j2rgmised andmed
  32.  
  33. >Min hinne ja tudengite nimekiri, kellel oli halvem tulemus
  34. >Maks. hinne ja tudengite nimekiri, kellel on parem tulemus
  35. >Sisestatud sisseastumise aasta tudengite andmed (tudengi kood ja keskmine hinne)
  36. >Kuva 6pilaste koodid ja hinne,kellel 6µppeedukus oli vahemikus ... kuni .... (andmed sorteeri hinde j2rgi)
  37. Andmete kuvamiseks loo menuu
  38.  
  39. Salvesta kasutaja tegevused, failis hoia kuup2ev koos kellaaega ja menuu punktid
  40. */
  41. public class PollTriin_P7 {
  42. public static HashMap<String, Double> map = new HashMap<String, Double>();
  43. public static String filePath = "F:/Netbeans/Projektid/PollTriin_P7/katse.txt"; // faili asukoht
  44.  
  45. /**
  46. * @param args the command line arguments
  47. */
  48. public static void main(String[] args) throws FileNotFoundException, IOException {
  49.  
  50. String line;
  51. BufferedReader lugeja = new BufferedReader(new FileReader(filePath)); // loeb faili rida
  52. while ((line = lugeja.readLine()) != null) //loeb faili ja paneb andmed map`i
  53. {
  54. String[] parts = line.split(" ", 2); // loob string massiivi
  55. if (parts.length >= 2) // paneb failis olevad andmed vastavalt kohale, kas key`sse v6i map`i
  56. {
  57. String key = parts[0];
  58. String value = parts[1];
  59. map.put(key, new Double(value));
  60. }
  61. }
  62.  
  63. SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yy"); //kuup2ev
  64. Date date = new Date();
  65. // teksti kirjutamine faili https://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java
  66. try(FileWriter fw = new FileWriter("Kasutaja_Tegevused.txt", true);
  67. BufferedWriter bw = new BufferedWriter(fw);
  68. PrintWriter out = new PrintWriter(bw))
  69. {
  70. out.println("");
  71. out.println(" Kuup2ev: " + dateFormat.format(date)); //kirjutab faili kehtiva kuup2eva
  72. }
  73.  
  74. int valik;
  75. Scanner sc = new Scanner(System.in);
  76.  
  77. do{ // Kuvab menyyd,
  78. System.out.println("\n____________________________________________________________________");
  79. System.out.printf("%nVali tegevus:%n");
  80. System.out.println("1) Min hinne ja tudengite nimekiri, kellel oli halvem tulemus " );
  81. System.out.println("2) Maks. hinne ja tudengite nimekiri, kellel on parem tulemus");
  82. System.out.println("3) Sisestatud sisseastumise aasta tudengite andmed (tudengi kood ja keskmine hinne) ");
  83. System.out.println("4) Kuva 6pilaste koodid ja hinne,kellel 6µppeedukus oli vahemikus ... kuni .... (andmed sorteeri hinde j2rgi)");
  84. System.out.println("5) V2lja \n");
  85. valik = sc.nextInt(); // kasutaja sisend
  86.  
  87. SimpleDateFormat dateFormat1 = new SimpleDateFormat("HH:mm:ss"); // kellaaeg
  88. Date date1 = new Date();
  89. // teksti kirjutamine faili
  90. try(FileWriter fw = new FileWriter("Kasutaja_Tegevused.txt", true);
  91. BufferedWriter bw = new BufferedWriter(fw);
  92. PrintWriter out = new PrintWriter(bw))
  93. {
  94. out.println("");
  95. out.println(" Kellaaeg: " + dateFormat1.format(date1)); // kirjutab faili kellaaja
  96. out.println(" Menyy punkt: " + valik); // kirjutab faili kasutaja valikud, mis menyys tehtud olid
  97. }
  98.  
  99. switch(valik) //Vastavalt sisestatud numbrile k2ivitab mingi tegevuse
  100. {
  101. case 1: min(); break;
  102. case 2: max(); break;
  103. case 3: aastaAndmed(); break;
  104. case 4: hinded(); break;
  105. }
  106. }
  107. while(valik!=5);//l6petab programmi t;;
  108. }
  109.  
  110.  
  111. public static void min() throws FileNotFoundException, IOException //k6ige v2iksema hinde leidmine
  112. {
  113. System.out.println("\n Min hinne");
  114. double minValue = 5;
  115. for (Map.Entry<String, Double> entry : map.entrySet()) {
  116. if (entry.getValue() < minValue || entry.getValue() == minValue) { // kontrollib, kas hinne on k6ige v2ikesm, v6i v6rdne k6ige v2iksemaga
  117. String minKey = entry.getKey(); // 6pilaskood
  118. minValue = entry.getValue(); // k6ige v2iksem hinne
  119. System.out.println(minKey + " " + minValue);
  120. }
  121. }
  122. }
  123.  
  124.  
  125. public static void max() throws FileNotFoundException, IOException // k6ige suurema hinde leidmine
  126. {
  127. System.out.println("\n Max hinne");
  128. double maxValue = 0;
  129. for (Map.Entry<String, Double> entry : map.entrySet()) {
  130. if (entry.getValue() > maxValue || entry.getValue() == maxValue) { // kontrollib, kas hinne on k6ige suurem, v6i v6rdne k6ige suuremaga
  131. String maxKey = entry.getKey(); // 6pilaskood
  132. maxValue = entry.getValue(); // k6ige suurem hinne
  133. System.out.println(maxKey + " " + maxValue);
  134. }
  135. }
  136. }
  137.  
  138.  
  139. public static void aastaAndmed() throws IOException // andmed vastavalt sisseastunud aastale
  140. {
  141. Scanner sc = new Scanner(System.in);
  142. System.out.println("\n Sisesta sisseastumis aasta (n2iteks: 2015): ");
  143. String valik = sc.next(); // kasutaja sisend, aasta
  144.  
  145. System.out.println("\n tudengite andmed (tudengi kood ja keskmine hinne)");
  146. for ( Map.Entry<String, Double> entry : map.entrySet())
  147. {
  148. if(valik.charAt(3) == entry.getKey().charAt(1) && valik.charAt(2) == entry.getKey().charAt(0)){ // kontrollib, kas siestatud aastaga on sisseastujaid olnud
  149. System.out.println(" " + entry.getKey() +" "+ entry.getValue());
  150. }
  151. }
  152. // teksti kirjutamine faili https://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java
  153. try(Writer wr = new FileWriter("Kasutaja_Tegevused.txt", true);
  154. BufferedWriter bw = new BufferedWriter(wr);
  155. PrintWriter out = new PrintWriter(bw))
  156. {
  157. out.println(" Aasta: " + valik); //kirjutab faili kasutaja sisestatud aasta
  158. }
  159. }
  160.  
  161.  
  162. public static void hinded() throws IOException // 6pilaste kood ja hinne, vastavalt hinde vahemikule
  163. {
  164. Scanner sc = new Scanner(System.in);
  165. System.out.println("\n Sisesta 6ppeedukust vahemik (n2iteks: 1.0 kuni 2.2): ");
  166. double valik1 = sc.nextDouble(); // esimese hinde sisend
  167. double valik2 = sc.nextDouble(); // teise hinde sisend
  168.  
  169. System.out.println("\n 6pilaste koodid ja hinne(sorteeritud suurima hinde j2rgi)");
  170.  
  171. // Hinnete(value) j2rgi sorteerimine http://www.java2novice.com/java-interview-programs/sort-a-map-by-value/
  172. Set<Map.Entry<String, Double>> set = map.entrySet();
  173. java.util.List<Map.Entry<String, Double>> list = new ArrayList<Map.Entry<String, Double>>(set);
  174. Collections.sort( list, new Comparator<Map.Entry<String, Double>>()
  175. {
  176. public int compare( Map.Entry<String, Double> o1, Map.Entry<String, Double> o2 )
  177. {
  178. return (o2.getValue()).compareTo( o1.getValue() );
  179. }
  180. } );
  181. for(Map.Entry<String, Double> entry:list){
  182. if(valik1 <= entry.getValue() && valik2 >= entry.getValue()){ // vastavalt sisestatud hinde vahele, leiab vahemikus olevad 6pilased ja nende hinded
  183. System.out.println(" " + entry.getKey() +" "+ entry.getValue());
  184. }
  185. }
  186.  
  187. // teksti kirjutamine faili
  188. try(Writer wr = new FileWriter("Kasutaja_Tegevused.txt", true);
  189. BufferedWriter bw = new BufferedWriter(wr);
  190. PrintWriter out = new PrintWriter(bw))
  191. {
  192. out.println(" Hinne: (" +(double) valik1 + " kuni " + (double) valik2+ ")"); //kirjutab faili kasutaja sisestatud hinde vahemiku
  193. }
  194. }
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement