Advertisement
0xPaulius

lab1Metodai

Dec 1st, 2022
951
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.79 KB | None | 0 0
  1.  
  2. import java.io.*;
  3. import java.util.StringTokenizer;
  4.  
  5. public class Metodai {
  6.  
  7.     //metodas skaito duomenis is failo
  8.     public static Gyvunas[] skaityti_sar (File file, int n){
  9.         Gyvunas A[] = new Gyvunas [n]; //sukuriamas masyvo objektas
  10.         String eilute;  // kintamasis 1 eilutei skaityti
  11.         int sk = 0; //rasymo i masyva skaitliukas
  12.         String pav, salis;
  13.         int amzius;
  14.         double svoris;
  15.  
  16.         try {
  17.             BufferedReader file_in = new BufferedReader (new FileReader(file));
  18.             while (true){
  19.  
  20.                 if ((eilute = file_in.readLine()) == null) break;
  21.                 StringTokenizer st = new StringTokenizer(eilute);
  22.  
  23.                 pav = st.nextToken();
  24.                 amzius = Integer.parseInt(st.nextToken());
  25.                 svoris = Double.parseDouble(st.nextToken());
  26.                 salis = st.nextToken();
  27.  
  28.                 A[sk]= new Gyvunas (pav, amzius, svoris, salis);
  29.                 sk ++;
  30.                 if (sk==n) break;
  31.             }
  32.         }
  33.         catch (IOException e) {System.out.println("Ivedimo klaida");}
  34.         catch (IndexOutOfBoundsException e) {System.out.println("Masyvo ribu klaida");}
  35.  
  36.         return A;
  37.     }
  38.  
  39.     //metodas suskaiciuoja kiek faile yra irasu eiluciu
  40.     public static int skaiciuotiEilutes (File file) {
  41.         int sk = 0;
  42.         try {
  43.             BufferedReader file_in = new BufferedReader (new FileReader (file));
  44.             while (true){
  45.                 if ((file_in.readLine()) == null){
  46.                     file_in.close();
  47.                     return sk;}
  48.                 sk++;
  49.             }
  50.         }
  51.         catch (IOException e) {System.out.println("Skaitymo is failo klaida");}
  52.         return sk;
  53.     }
  54.  
  55.     //metodas sukuria nauja, vienetu didesni masyva, nei buvo pries iterpima
  56.     //ir i ji perkopijuoja pradinio masyvo duomenis
  57.     public static Gyvunas[] kopijuotiMas(Gyvunas A[], int n){
  58.         Gyvunas A2[] = new Gyvunas[n];
  59.         for (int i=0; i<n-1; i++ )
  60.             A2[i]=A[i];
  61.         return A2;
  62.     }
  63.  
  64.     public static Gyvunas[] iterpti(Gyvunas G[], int n){
  65.         BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
  66.         String pav, salis;
  67.         int amzius;
  68.         double svoris;
  69.         int vieta;
  70.  
  71.         while (true){
  72.             System.out.println("Iveskite gyvuno pavadinima:");
  73.             try {
  74.                 pav = in.readLine();
  75.                 break;
  76.             }
  77.             catch (IOException e) {System.out.println("Ivedimo klaida");}
  78.         }
  79.  
  80.         while (true){
  81.             System.out.println("Iveskite gyvuno amziu:");
  82.             try {
  83.                 amzius = Integer.parseInt(in.readLine());
  84.                 break;
  85.             }
  86.             catch (IOException e) {System.out.println("Ivedimo klaida");}
  87.             catch (NumberFormatException e) {System.out.println("Ivedet ne sveika skaiciu!");}
  88.         }
  89.  
  90.         while (true){
  91.             System.out.println("Iveskite gyvuno svori:");
  92.             try {
  93.                 svoris = Double.parseDouble(in.readLine());
  94.                 break;
  95.             }
  96.             catch (IOException e) {System.out.println("Ivedimo klaida");}
  97.             catch (NumberFormatException e) {System.out.println("Ivedet ne skaiciu!");}
  98.         }
  99.  
  100.         while (true){
  101.             System.out.println("Iveskite gyvuno kilmes sali:");
  102.             try {
  103.                 salis = in.readLine();
  104.                 break;
  105.             }
  106.             catch (IOException e) {System.out.println("Ivedimo klaida");}
  107.         }
  108.  
  109.         Gyvunas naujas = new Gyvunas(pav, amzius, svoris, salis);
  110.  
  111.         while (true){
  112.             System.out.println("Masyve yra " + (n-1) + " elementu. Iveskite i kuria vieta iterpti nauja gyvuna(1 - "+ n +"):");
  113.             try {
  114.                 vieta = Integer.parseInt(in.readLine());
  115.                 if (vieta > n) System.out.println("Ivedete per dideli skaiciu!");
  116.                 else if (vieta < 1) System.out.println("Ivedete per maza skaiciu!");
  117.                 else break;
  118.             }
  119.             catch (IOException e) {System.out.println("Ivedimo klaida");}
  120.             catch (NumberFormatException e) {System.out.println("Ivedet ne sveika skaiciu!");}
  121.         }
  122.  
  123.         for (int i=n-1; i>vieta-1; i--)
  124.             G[i]=G[i-1];
  125.         G[vieta-1]=naujas;
  126.  
  127.         return G;
  128.     }
  129.  
  130.     public static Gyvunas[] salinti(Gyvunas G[], int n, int vieta){
  131.         for (int i=vieta; i<n; i++)
  132.             G[i]=G[i+1];
  133.         return G;
  134.     }
  135.  
  136.     //Metodas suranda sunkiausia gyvuna ir ji iraso naujame masyve
  137.     public static Gyvunas[] surasti (Gyvunas G[], int n){
  138.         Gyvunas A[] = new Gyvunas[1]; //sukuriam nauja 1 iraso masyva, nes surasim tik 1 gyvuna
  139.         Gyvunas max = G[0];
  140.         for (int i=1; i<n; i++)
  141.             if (max.gautiSvori()<G[i].gautiSvori()) max = G[i];
  142.         A[0]=max;
  143.         return A;
  144.     }
  145.  
  146.     public static void spausdinti_sar_faile (PrintWriter rasyti, Gyvunas [] A, int n) {
  147.         if (n > 0) {
  148.             spausdinti_antraste_faile (rasyti);
  149.             rasyti.println("*************************************************************");
  150.             for (int i=0; i<n; i++) {
  151.                 rasyti.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPav(),15)+ " * "+ prailginti(A[i].gautiAmziu()+"", 6)+
  152.                         " * " + prailginti(A[i].gautiSvori()+"", 6) + " * " + prailginti(A[i].gautiSali(), 15) + " *");
  153.             }
  154.             rasyti.println("*************************************************************");
  155.         }
  156.         else rasyti.println("Masyvas tuscias!");
  157.     }
  158.  
  159.     public static void spausdinti_antraste_faile (PrintWriter rasyti){
  160.         rasyti.println("*************************************************************");
  161.         rasyti.println("* Nr. *   Pavadinimas   * Amzius * Svoris *  Kilmes salis   *");
  162.     }
  163.  
  164.     public static void spausdinti_sar_ekrane ( Gyvunas [] A, int n) {
  165.         if (n > 0) {
  166.             spausdinti_antraste_ekrane ();
  167.             System.out.println("*************************************************************");
  168.             for (int i=0; i<n; i++) {
  169.                 System.out.println("* " + prailginti((i+1)+"", 3) +" * "+prailginti(A[i].gautiPav(),15)+ " * "+ prailginti(A[i].gautiAmziu()+"", 6)+
  170.                         " * " + prailginti(A[i].gautiSvori()+"", 6) + " * " + prailginti(A[i].gautiSali(), 15) + " *");
  171.             }
  172.             System.out.println("*************************************************************");
  173.         }
  174.         else System.out.println("Masyvas tuscias!");
  175.     }
  176.  
  177.     public static void spausdinti_antraste_ekrane (){
  178.         System.out.println("*************************************************************");
  179.         System.out.println("* Nr. *   Pavadinimas   * Amzius * Svoris *  Kilmes salis   *");
  180.     }
  181.  
  182.     public static String prailginti (String reiksme, int ilgis){
  183.         for (int i=reiksme.length(); i<ilgis; i++)
  184.             reiksme += " ";
  185.         return reiksme;
  186.     }
  187.  
  188.     //Metodas suranda sunkesnius gyvunus uz duota svori
  189.     public static Gyvunas[] surastiGyvunus (Gyvunas[] A,int n){
  190.         BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
  191.         double minSvoris;
  192.         while (true) {
  193.             System.out.println("Iveskite gyvuno svori:");
  194.             try {
  195.                 minSvoris = Double.parseDouble(in.readLine());
  196.                 break;
  197.             } catch (IOException e) {
  198.                 System.out.println("Ivedimo klaida");
  199.             } catch (NumberFormatException e) {
  200.                 System.out.println("Ivedet ne skaiciu!");
  201.             }
  202.         }
  203.         int naujasKiekis = 0;
  204.         for (int i=n-1; i>=0; i--){
  205.             if (A[i].gautiSvori()>=minSvoris) {
  206.              naujasKiekis++;
  207.             }
  208.         }
  209.         int j=0;
  210.         Gyvunas[] B = new Gyvunas[naujasKiekis];
  211.         for (int i=n-1; i>=0; i--){
  212.             if (A[i].gautiSvori()>=minSvoris) {
  213.                 B[j]= A[i];
  214.               j++;
  215.  
  216.             }
  217.         }
  218.         return B;
  219.     }
  220.  
  221.     public static void meniu () {
  222.         //Isvalom ekrana
  223.         /*for (int i =0; i<=80; i++ )
  224.             System.out.println("\n");*/
  225.         System.out.println("Programos Lab1 veiksmu meniu");
  226.         System.out.println("----------------------------");
  227.         System.out.println("1. Skaityti duomenis.");
  228.         System.out.println("2. Spausdinti i faila.");
  229.         System.out.println("3. Iterpti.");
  230.         System.out.println("4. Istrinti.");
  231.         System.out.println("5. Surasti.");
  232.         System.out.println("6. SurastiGyvunus.");
  233.         System.out.println("7. Baigti darba.");
  234.         System.out.println("----------------------------");
  235.         System.out.println("Iveskite pasirinkto veiksmo nr.:");
  236.     }
  237.  
  238.  
  239. }
  240.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement