Advertisement
JovanPapi

[OS - lab1] Задача 4

Mar 21st, 2019
936
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. Некој систем за е-учење генерира извештаи за оценки на студенти по предмети во CSV (Comma Separated Values) формат. Да се напише Java програма, која на екран ќе го отпечати просекот на секој студент од датотеката rezultati.csv (види слика), како и просечната оценка што ја имаат студентите по секој од предметите наведени во првата редица. Програмата треба да работи за произволен број на редици.
  2.  
  3. Студент,КРС,НРС,АОК
  4. 11234,8,9,8
  5. 13456,6,7,9
  6. 11111,7,8,8
  7. 10123,10,10,10
  8.  
  9. Бонус: За подобра читливост на извештајот, прочитаната rezultati.csv датотека трансформирајте ја во TSV (Tab Separated Values) формат и снимете ја како rezultati.tsv.
  10.  
  11.  
  12. import java.io.BufferedReader;
  13. import java.io.File;
  14. import java.io.FileNotFoundException;
  15. import java.io.FileReader;
  16. import java.io.IOException;
  17. import java.io.InputStream;
  18. import java.io.PrintWriter;
  19. import java.util.Scanner;
  20.  
  21. public class Zadaca4 {
  22.  
  23.     public static void main(String[] args) throws IOException {
  24.         // TODO Auto-generated method stub
  25.        
  26.         //createFile(new File("D:\\ECLIPSE\\OPERATIVNI SISTEMI\\Lab1 OS\\src\\rezultati.csv"),System.in);
  27.        
  28.         try {
  29.            
  30.             BufferedReader in = new BufferedReader(new FileReader(".\\src\\rezultati.tsv"));
  31.             File file = new File(".\\src\\rezultati.tsv");
  32.            
  33.             String data1 = in.readLine();
  34.            
  35.             String [] predmeti = data1.split(";");     
  36.             int [] sumArray = new int[data1.length()-1];
  37.        
  38.             for(int i = 0; i<sumArray.length; i++) {
  39.                 sumArray[i] = 0;
  40.             }
  41.             int howManyLines = 0;
  42.             int i = 0;
  43.             String line = null;
  44.            
  45.             while((line = in.readLine()) != null) {
  46.                
  47.                 howManyLines++;
  48.                 int numberOfGrades = 0;
  49.                 int sumOfGrades = 0;
  50.            
  51.                 //String data = in.readLine();
  52.                
  53.                
  54.                 String [] niza = new String[line.length()];
  55.                 niza = line.split(";");
  56.                
  57.                 //numberOfGrades = Integer.parseInt(niza[niza.length-1]);
  58.                
  59.                 for( i = 0; i<niza.length-1; i++) {
  60.                     if(i == niza.length) {
  61.                         break;
  62.                     }
  63.                     sumArray[i] += Integer.parseInt(niza[i+1]);
  64.                 }
  65.                
  66.                 for( i = 1; i<niza.length; i++) {
  67.                     sumOfGrades += Integer.parseInt(niza[i]);
  68.                     numberOfGrades++;
  69.                 }
  70.                 //System.out.println(numberOfGrades);
  71.            
  72.                 System.out.println(niza[0] + ": " + (float)sumOfGrades/(float)numberOfGrades);
  73.             }
  74.             for(i = 0; i<predmeti.length; i++) {
  75.                 if(i == predmeti.length-1) {
  76.                     break;
  77.                 }
  78.                 System.out.println(predmeti[i+1] + ": " + (double)sumArray[i]/(double)howManyLines);
  79.             }
  80.             in.close();
  81.             file.renameTo(new File(".\\src\\rezultati.tsv"));
  82.         }
  83.         catch(FileNotFoundException e) {
  84.             e.printStackTrace();
  85.         }
  86.        
  87.        
  88.     }
  89.     public static void createFile(File file, InputStream in) {
  90.        
  91.         try {
  92.             file.createNewFile();
  93.            
  94.         } catch(IOException e) {
  95.             e.printStackTrace();
  96.         }
  97.        
  98.         if(!file.exists()) {
  99.             return;
  100.         }
  101.        
  102.         Scanner stdin = new Scanner(in);
  103.         PrintWriter pw = null;
  104.        
  105.         try {
  106.             pw = new PrintWriter(file);
  107.            
  108.         } catch(FileNotFoundException e) {
  109.             e.printStackTrace();
  110.         }
  111.        
  112.         String line = null;
  113.        
  114.         while(!(line = stdin.nextLine()).equals("Kraj")) {
  115.             pw.println(line);
  116.         }
  117.        
  118.         stdin.close();
  119.         pw.close();
  120.     }
  121.  
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement