Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package polltriin_p7;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.io.Writer;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.Set;
- /**
- *
- * @author triin Poll, 166156, RDIR31
- * Failis hoia tudengi kood ja keskmine hinne
- Kasutaja funktsioonide abil leia j2rgmised andmed
- >Min hinne ja tudengite nimekiri, kellel oli halvem tulemus
- >Maks. hinne ja tudengite nimekiri, kellel on parem tulemus
- >Sisestatud sisseastumise aasta tudengite andmed (tudengi kood ja keskmine hinne)
- >Kuva 6pilaste koodid ja hinne,kellel 6µppeedukus oli vahemikus ... kuni .... (andmed sorteeri hinde j2rgi)
- Andmete kuvamiseks loo menuu
- Salvesta kasutaja tegevused, failis hoia kuup2ev koos kellaaega ja menuu punktid
- */
- public class PollTriin_P7 {
- public static HashMap<String, Double> map = new HashMap<String, Double>();
- public static String filePath = "F:/Netbeans/Projektid/PollTriin_P7/katse.txt"; // faili asukoht
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) throws FileNotFoundException, IOException {
- String line;
- BufferedReader lugeja = new BufferedReader(new FileReader(filePath)); // loeb faili rida
- while ((line = lugeja.readLine()) != null) //loeb faili ja paneb andmed map`i
- {
- String[] parts = line.split(" ", 2); // loob string massiivi
- if (parts.length >= 2) // paneb failis olevad andmed vastavalt kohale, kas key`sse v6i map`i
- {
- String key = parts[0];
- String value = parts[1];
- map.put(key, new Double(value));
- }
- }
- SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yy"); //kuup2ev
- Date date = new Date();
- // teksti kirjutamine faili https://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java
- try(FileWriter fw = new FileWriter("Kasutaja_Tegevused.txt", true);
- BufferedWriter bw = new BufferedWriter(fw);
- PrintWriter out = new PrintWriter(bw))
- {
- out.println("");
- out.println(" Kuup2ev: " + dateFormat.format(date)); //kirjutab faili kehtiva kuup2eva
- }
- int valik;
- Scanner sc = new Scanner(System.in);
- do{ // Kuvab menyyd,
- System.out.println("\n____________________________________________________________________");
- System.out.printf("%nVali tegevus:%n");
- System.out.println("1) Min hinne ja tudengite nimekiri, kellel oli halvem tulemus " );
- System.out.println("2) Maks. hinne ja tudengite nimekiri, kellel on parem tulemus");
- System.out.println("3) Sisestatud sisseastumise aasta tudengite andmed (tudengi kood ja keskmine hinne) ");
- System.out.println("4) Kuva 6pilaste koodid ja hinne,kellel 6µppeedukus oli vahemikus ... kuni .... (andmed sorteeri hinde j2rgi)");
- System.out.println("5) V2lja \n");
- valik = sc.nextInt(); // kasutaja sisend
- SimpleDateFormat dateFormat1 = new SimpleDateFormat("HH:mm:ss"); // kellaaeg
- Date date1 = new Date();
- // teksti kirjutamine faili
- try(FileWriter fw = new FileWriter("Kasutaja_Tegevused.txt", true);
- BufferedWriter bw = new BufferedWriter(fw);
- PrintWriter out = new PrintWriter(bw))
- {
- out.println("");
- out.println(" Kellaaeg: " + dateFormat1.format(date1)); // kirjutab faili kellaaja
- out.println(" Menyy punkt: " + valik); // kirjutab faili kasutaja valikud, mis menyys tehtud olid
- }
- switch(valik) //Vastavalt sisestatud numbrile k2ivitab mingi tegevuse
- {
- case 1: min(); break;
- case 2: max(); break;
- case 3: aastaAndmed(); break;
- case 4: hinded(); break;
- }
- }
- while(valik!=5);//l6petab programmi t;;
- }
- public static void min() throws FileNotFoundException, IOException //k6ige v2iksema hinde leidmine
- {
- System.out.println("\n Min hinne");
- double minValue = 5;
- for (Map.Entry<String, Double> entry : map.entrySet()) {
- if (entry.getValue() < minValue || entry.getValue() == minValue) { // kontrollib, kas hinne on k6ige v2ikesm, v6i v6rdne k6ige v2iksemaga
- String minKey = entry.getKey(); // 6pilaskood
- minValue = entry.getValue(); // k6ige v2iksem hinne
- System.out.println(minKey + " " + minValue);
- }
- }
- }
- public static void max() throws FileNotFoundException, IOException // k6ige suurema hinde leidmine
- {
- System.out.println("\n Max hinne");
- double maxValue = 0;
- for (Map.Entry<String, Double> entry : map.entrySet()) {
- if (entry.getValue() > maxValue || entry.getValue() == maxValue) { // kontrollib, kas hinne on k6ige suurem, v6i v6rdne k6ige suuremaga
- String maxKey = entry.getKey(); // 6pilaskood
- maxValue = entry.getValue(); // k6ige suurem hinne
- System.out.println(maxKey + " " + maxValue);
- }
- }
- }
- public static void aastaAndmed() throws IOException // andmed vastavalt sisseastunud aastale
- {
- Scanner sc = new Scanner(System.in);
- System.out.println("\n Sisesta sisseastumis aasta (n2iteks: 2015): ");
- String valik = sc.next(); // kasutaja sisend, aasta
- System.out.println("\n tudengite andmed (tudengi kood ja keskmine hinne)");
- for ( Map.Entry<String, Double> entry : map.entrySet())
- {
- if(valik.charAt(3) == entry.getKey().charAt(1) && valik.charAt(2) == entry.getKey().charAt(0)){ // kontrollib, kas siestatud aastaga on sisseastujaid olnud
- System.out.println(" " + entry.getKey() +" "+ entry.getValue());
- }
- }
- // teksti kirjutamine faili https://stackoverflow.com/questions/1625234/how-to-append-text-to-an-existing-file-in-java
- try(Writer wr = new FileWriter("Kasutaja_Tegevused.txt", true);
- BufferedWriter bw = new BufferedWriter(wr);
- PrintWriter out = new PrintWriter(bw))
- {
- out.println(" Aasta: " + valik); //kirjutab faili kasutaja sisestatud aasta
- }
- }
- public static void hinded() throws IOException // 6pilaste kood ja hinne, vastavalt hinde vahemikule
- {
- Scanner sc = new Scanner(System.in);
- System.out.println("\n Sisesta 6ppeedukust vahemik (n2iteks: 1.0 kuni 2.2): ");
- double valik1 = sc.nextDouble(); // esimese hinde sisend
- double valik2 = sc.nextDouble(); // teise hinde sisend
- System.out.println("\n 6pilaste koodid ja hinne(sorteeritud suurima hinde j2rgi)");
- // Hinnete(value) j2rgi sorteerimine http://www.java2novice.com/java-interview-programs/sort-a-map-by-value/
- Set<Map.Entry<String, Double>> set = map.entrySet();
- java.util.List<Map.Entry<String, Double>> list = new ArrayList<Map.Entry<String, Double>>(set);
- Collections.sort( list, new Comparator<Map.Entry<String, Double>>()
- {
- public int compare( Map.Entry<String, Double> o1, Map.Entry<String, Double> o2 )
- {
- return (o2.getValue()).compareTo( o1.getValue() );
- }
- } );
- for(Map.Entry<String, Double> entry:list){
- if(valik1 <= entry.getValue() && valik2 >= entry.getValue()){ // vastavalt sisestatud hinde vahele, leiab vahemikus olevad 6pilased ja nende hinded
- System.out.println(" " + entry.getKey() +" "+ entry.getValue());
- }
- }
- // teksti kirjutamine faili
- try(Writer wr = new FileWriter("Kasutaja_Tegevused.txt", true);
- BufferedWriter bw = new BufferedWriter(wr);
- PrintWriter out = new PrintWriter(bw))
- {
- out.println(" Hinne: (" +(double) valik1 + " kuni " + (double) valik2+ ")"); //kirjutab faili kasutaja sisestatud hinde vahemiku
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement