MilaDimitrovaa

Homework-Student_Method

Nov 22nd, 2021
932
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.01 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.FileNotFoundException;
  5. import java.util.Scanner;
  6.  
  7. public class Students_Methods { // Старт на Student_Methods
  8.  
  9.     // Създаваме си метод ,който чете и разделя (read and split) (също в него си дефинираме String DATA)
  10.     public static Students[] ReadAndSplitFromFile(String DATA) throws FileNotFoundException { //Старт на read and split
  11.  
  12.         int counter = 0; // Дефинираме си брояч,който брои редовете във файла
  13.  
  14.         //Създаваме скенър ,който чете файла
  15.         Scanner myReader = new Scanner(new File(DATA), "UTF-8");
  16.  
  17.         //Създаваме си while цикъл,който ни преброява записите(файловете,който) са във файла
  18.         while (myReader.hasNextLine()) {
  19.             counter++;
  20.         }
  21.  
  22.         //Създаваме си масив от обекти - клас,който за тях е в Students.java
  23.         Students[] StudentGroup = new Students[counter];
  24.         counter = 0;
  25.  
  26.  
  27.         // Създаваме си FOR цикъл ,който ще ни попълва масива от ученици
  28.         while (myReader.hasNextLine()) {
  29.             System.out.println("NOW READING FROM FILE FOR EVERY STUDENT [" + counter + "] : "); //Изпечатваме
  30.  
  31.             // Дефинираме променлива,която чете един по един редовете
  32.             String dataString = myReader.nextLine();
  33.  
  34.             // сплитваме по "," (запетая) и ги слагаме в масив
  35.             String[] splitedData  = dataString.split(",");
  36.  
  37.             StudentGroup[counter].setNumber(Integer.parseInt(splitedData[0])); //взима номера на студента от текстовия файл
  38.             StudentGroup[counter].setName(splitedData[1]);      //взима името на студента от текстовия файл
  39.             StudentGroup[counter].setFamily(splitedData[2]);    //взима фамилията на студента от текстовия файл
  40.             StudentGroup[counter].setAvgscore(Double.parseDouble(splitedData[3]));  //взима ср.успех на студента от текстовия файл
  41.  
  42.             counter++; //увеличаваме индекса на студентите
  43.         }
  44.  
  45.         System.out.println("FINISHING READ FROM FILE !!!"); //Изпечатваме
  46.  
  47.         return StudentGroup;
  48.     }// end of read and split
  49.  
  50.     // METHOD : MAKE STATISTIC
  51.  
  52.     public static void MakeStatistic(Students[] StudentGroup) { //Създаваме си метод MakeStatistic --Start--
  53.  
  54.         double GroupAvgScore = 0; //дефинираме си променлива за средния успех на групата
  55.  
  56.         // Правим си for-each цикъл,който изпечатва информация за всеки ученик по отделно
  57.         for (Students thisStudent : StudentGroup) // Правим си for-each цикъл
  58.         {
  59.             System.out.print("Номер : " + thisStudent.getNumber()); //Изпечатваме номера
  60.             System.out.print(" Име : " + thisStudent.getName()); //Изпечатваме името
  61.             System.out.print(" Фамилия : " + thisStudent.getFamily()); //Изпечатваме фамилията
  62.             System.out.println(" Ср.Успех : " + thisStudent.getAvgscore()); //Изпечатваме ср.успех
  63.  
  64.         }
  65.  
  66.  
  67.         // Правим си for-each цикъл,който изпечатва средния успех на групата
  68.         for (Students thisStudent : StudentGroup)
  69.         {
  70.             GroupAvgScore = GroupAvgScore + thisStudent.getAvgscore(); //пресмятаме средния успех на групата
  71.             GroupAvgScore = GroupAvgScore / StudentGroup.length; //разделяме общият успех на броя студенти
  72.             System.out.println("AVG SCORE : " + GroupAvgScore); //изпечатваме средния успех за групата
  73.  
  74.         }
  75.  
  76.  
  77.         // Най-висок успех на ученик
  78.         int index =0; //дефинираме си един индекс
  79.         double MaxScore = 0; //дефинираме си най-големия успех
  80.  
  81.         for (Students thisStudent : StudentGroup) // Създаваме си for-each цикъл
  82.         {
  83.             if (MaxScore < thisStudent.getAvgscore()) { //проверяваме ако MaxScore е по-малък от ср.успех на ученика
  84.                 MaxScore = thisStudent.getAvgscore();    //то MaxScore става равно на ср.успех и увеличаваме индекса
  85.                 index++;
  86.             }
  87.         }
  88.         System.out.println("MAX SCORE : " + MaxScore); //Изпечатваме максималния успех
  89.         System.out.print("Номер : " + StudentGroup[index].getNumber()); //Изпечатваме номера
  90.         System.out.print(" Име : " + StudentGroup[index].getName()); //Изпечатваме името
  91.         System.out.print(" Фамилия : " + StudentGroup[index].getFamily()); //Изпечатваме фамилията
  92.         System.out.println(" Ср.Успех : " + StudentGroup[index].getAvgscore()); //Изпечатваме ср.успех
  93.  
  94.         //Изпечатва информация на ученика с най-висок успех
  95.  
  96.  
  97.         // Най-нисък успех на ученик
  98.         index = 0;
  99.         double MinScore = 0; //дефинираме си най-малък успех
  100.  
  101.         for (Students thisStudent : StudentGroup) // Създаваме си for-each цикъл
  102.         {
  103.             if ( MinScore < thisStudent.getAvgscore() ) { //проверяваме ако MinScore е по-малък от ср.успех на ученика
  104.                 MinScore = thisStudent.getAvgscore();   //то MaxScore става равно на ср.успех и увеличаваме индекса
  105.                 index++;
  106.             }
  107.             System.out.println("MIN SCORE : " + MinScore); //Изпезатваме минималния успех
  108.             System.out.print("Номер : " + StudentGroup[index].getNumber()); //Изпечатваме номера
  109.             System.out.print(" Име : " + StudentGroup[index].getName()); //Изпечатваме името
  110.             System.out.print(" Фамилия : " + StudentGroup[index].getFamily()); //Изпечатваме фамилията
  111.             System.out.println(" Ср.Успех : " + StudentGroup[index].getAvgscore()); //Изпечатваме ср.успех
  112.  
  113.         } //Изпечатва информация на ученика с най-нисък успех
  114.  
  115.  
  116.     } // END of Make Statistic
  117.  
  118.  
  119. }// Край на Student_Methods
  120.  
Advertisement
Add Comment
Please, Sign In to add comment