Advertisement
TsetsoP

TEMA_08_HOMEWORK

Nov 23rd, 2021
623
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.39 KB | None | 0 0
  1. STUDENTS====================================================
  2. -------------------
  3. package Student_GROUP;
  4.  
  5. class Students {
  6.  
  7.     //полета за номер, име, фамилия и средена оценка
  8.     private int number;
  9.     private String name;
  10.     private String family;
  11.     private double avgscore;
  12.  
  13.  
  14.     //Дифоулт конструктор
  15.     public Students() {
  16.  
  17.     }
  18.  
  19.     // Конструктор с параметри
  20.     public Students(int number, String name, String family, double avgscore) {
  21.         this.number = number;
  22.         this.name = name;
  23.         this.family = family;
  24.         this.avgscore = avgscore;
  25.     }
  26.  
  27.  
  28.     // GET-SET методи
  29.  
  30.     public int getNumber() {
  31.         return number;
  32.     }
  33.  
  34.     public void setNumber(int number) {
  35.         this.number = number;
  36.     }
  37.  
  38.     public String getName() {
  39.         return name;
  40.     }
  41.  
  42.     public void setName(String name) {
  43.         this.name = name;
  44.     }
  45.  
  46.     public String getFamily() {
  47.         return family;
  48.     }
  49.  
  50.     public void setFamily(String family) {
  51.         this.family = family;
  52.     }
  53.  
  54.     public double getAvgscore() {
  55.         return avgscore;
  56.     }
  57.  
  58.     public void setAvgscore(double avgscore) {
  59.         this.avgscore = avgscore;
  60.     }
  61.  
  62. }
  63. =========================================================================
  64. Students_Methods
  65. ---------------------------------
  66. package Student_GROUP;
  67.  
  68. import java.io.File;
  69. import java.io.FileNotFoundException;
  70. import java.util.Scanner;
  71.  
  72. public class Students_Methods {
  73.  
  74.  
  75.     // метод ReadAndSplitFromFile връща масив от обекти (Students[])
  76.     public static Students[] ReadAndSplitFromFile(String DATA) throws FileNotFoundException {
  77.  
  78.         //броя на редовете във файла
  79.         int counter = 0;
  80.  
  81.  
  82.         //скенер с име myReader. charset = utf-8. Чете от DATA_TXT.txt
  83.         Scanner myReader = new Scanner(new File(DATA), "UTF-8");
  84.  
  85.         //преброява редовете във файла
  86.         while (myReader.hasNextLine()) {
  87.             counter++;
  88.         }
  89.  
  90.         //създаваме масив от обекти с дължина броят на редовете във файла
  91.         Students[] StudentGroup = new Students[counter];
  92.  
  93.         //нулиране на брояча
  94.         counter = 0;
  95.  
  96.  
  97.         //for- цикъл за попълване на масива с учениците
  98.         while (myReader.hasNextLine()) {
  99.  
  100.             System.out.println("NOW READING FROM FILE FOR EVERY STUDENT [" + counter + "] : ");
  101.  
  102.             //съхранява реда от файла, на който сме
  103.             String dataString = myReader.nextLine();
  104.  
  105.             // сплитваме по "," (запетая) и ги слагаме в масив
  106.             String[] splitedData = dataString.split(",");
  107.  
  108.             StudentGroup[counter].setNumber(Integer.parseInt(splitedData[0]));    //номера на ученика
  109.             StudentGroup[counter].setName(splitedData[1]);      //първото име на ученика
  110.             StudentGroup[counter].setFamily(splitedData[2]);    //фамилията на ученика
  111.             StudentGroup[counter].setAvgscore(Double.parseDouble(splitedData[3]));  //средната оценка на ученика
  112.  
  113.             //преминаваме на следващ ред и се увеличава counter-а
  114.             counter++;
  115.         }
  116.  
  117.         System.out.println("FINISHING READ FROM FILE !!!");
  118.  
  119.         //връща StudentGroup
  120.         return StudentGroup;
  121.  
  122.     }//край на ReadAndSplitFromFile
  123.  
  124.     //метод MakeStatistic
  125.     public static void MakeStatistic(Students[] StudentGroup) {
  126.  
  127.         //променлива за средната оценка на всички ученици
  128.         double GroupAvgScore = 0;
  129.  
  130.         // минаваме през всички ученици чрез този for-each и принтираме информацията за тях
  131.         for (Students thisStudent : StudentGroup) {
  132.             System.out.print("Номер : " + thisStudent.getNumber());
  133.             System.out.print(" Име : " + thisStudent.getName());
  134.             System.out.print(" Фамилия : " + thisStudent.getFamily());
  135.             System.out.println(" Ср.Успех : " + thisStudent.getAvgscore());
  136.         }
  137.  
  138.         //минаваме през всички ученици чрез този for-each и принтираме средно аритметично на средната оценка на всички
  139.         for (Students thisStudent : StudentGroup) {
  140.             GroupAvgScore = GroupAvgScore + thisStudent.getAvgscore();
  141.             GroupAvgScore = GroupAvgScore / StudentGroup.length;
  142.             System.out.println("AVG SCORE : " + GroupAvgScore);
  143.         }
  144.  
  145.         //за ученика с най-висока оценка
  146.         int index = 0;
  147.         double MaxScore = 0;
  148.  
  149.         //чрез for-each-а и if-a намираме кой е ученика с най-висока оценка
  150.         for (Students thisStudent : StudentGroup) // FOR-EACH
  151.         {
  152.             if (MaxScore < thisStudent.getAvgscore()) {
  153.                 MaxScore = thisStudent.getAvgscore();
  154.                 index++;
  155.             }
  156.         }
  157.  
  158.         //Принтираме цялата информация за него
  159.         System.out.println("MAX SCORE : " + MaxScore);
  160.         System.out.print("Номер : " + StudentGroup[index].getNumber());
  161.         System.out.print(" Име : " + StudentGroup[index].getName());
  162.         System.out.print(" Фамилия : " + StudentGroup[index].getFamily());
  163.         System.out.println(" Ср.Успех : " + StudentGroup[index].getAvgscore());
  164.  
  165.  
  166.         //за най-ниска оценка
  167.         index = 0;
  168.         double MinScore = 0;
  169.  
  170.         //чрез for-each-а и if-a намираме кой е ученика с най-ниска оценка
  171.         for (Students thisStudent : StudentGroup){
  172.             if (MinScore < thisStudent.getAvgscore()) {
  173.                 MinScore = thisStudent.getAvgscore();
  174.                 index++;
  175.             }
  176.  
  177.             //Принтираме цялата информация за него
  178.             System.out.println("MIN SCORE : " + MinScore);
  179.             System.out.print("Номер : " + StudentGroup[index].getNumber());
  180.             System.out.print(" Име : " + StudentGroup[index].getName());
  181.             System.out.print(" Фамилия : " + StudentGroup[index].getFamily());
  182.             System.out.println(" Ср.Успех : " + StudentGroup[index].getAvgscore());
  183.  
  184.         }
  185.  
  186.     }//край на MakeStatistic
  187.  
  188. }//край
  189. ============================================================================
  190. Students_Main
  191. ----------------------------
  192. package Student_GROUP;
  193.  
  194. import java.io.FileNotFoundException;
  195.  
  196. import static Student_GROUP.Students_Methods.*;
  197.  
  198.  
  199. public class Students_Main {
  200.  
  201.  
  202.     //main
  203.     public static void main(String[] args) throws FileNotFoundException {
  204.  
  205.         //създаваме статистика на учениците, след като сме прочели и съхранили  информацията DATA_TXT.txt
  206.         MakeStatistic(ReadAndSplitFromFile("C:\\Users\\cveto\\Desktop\\DATA_TXT.txt"));
  207.  
  208.     }//край на мейна
  209.  
  210.  
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement