Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.io.InputStreamReader;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10. import java.util.HashMap;
  11. import java.util.List;
  12. import java.util.Map;
  13.  
  14. public class HW01_4 {
  15.  
  16. public static void main(String[] args) throws IOException {
  17. File input = new File("rezultati.csv");
  18. File output = new File("rezultati.tsv");
  19.  
  20. if(!input.exists())
  21. return;
  22.  
  23.  
  24. List<String> outputText = new ArrayList<>();
  25. List<Class> classes = new ArrayList<>();
  26. List<Student> students = new ArrayList<>();
  27.  
  28. try(BufferedReader bf = new BufferedReader(new FileReader(input));
  29. BufferedWriter bw = new BufferedWriter(new FileWriter(output));)
  30. {
  31. String line = bf.readLine();
  32. String outputLine = line.replaceAll(",","\t");
  33. outputText.add(outputLine);
  34.  
  35. String[] parts = line.split(",");
  36. Arrays.stream(parts)
  37. .skip(1)
  38. .forEach(o->classes.add(new Class(o)));
  39.  
  40. while((line = bf.readLine())!=null) {
  41. outputLine = line.replaceAll(",","\t");
  42. outputText.add(outputLine);
  43.  
  44. parts = line.split(",");
  45. Student s = new Student(Integer.parseInt(parts[0]));
  46. for(int i=1;i<parts.length;i++) {
  47. classes.get(i-1).addGrade(parts[i]);
  48. s.addGrade(parts[i]);
  49. }
  50.  
  51. students.add(s);
  52. }
  53.  
  54. students.forEach(System.out::println);
  55. System.out.println();
  56. classes.forEach(System.out::println);
  57.  
  58. for(String outStr : outputText) {
  59. bw.write(outStr);
  60. bw.newLine();
  61. }
  62. }
  63. }
  64.  
  65. }
  66.  
  67. class Student{
  68. private int index;
  69. private List<Integer> grades;
  70.  
  71. public Student(int index) {
  72. super();
  73. this.index = index;
  74. grades = new ArrayList<>();
  75. }
  76.  
  77. public int getIndex() {
  78. return index;
  79. }
  80.  
  81. public List<Integer> getGrades() {
  82. return grades;
  83. }
  84.  
  85. public void addGrade(String grade) {
  86. grades.add(Integer.parseInt(grade));
  87. }
  88.  
  89. public void addGrade(Integer grade) {
  90. grades.add(grade);
  91. }
  92.  
  93. public double avgGrade() {
  94. return grades
  95. .stream()
  96. .mapToDouble(Double::valueOf)
  97. .average()
  98. .getAsDouble();
  99. }
  100.  
  101. @Override
  102. public String toString() {
  103. return String.format("Student: %d Prosek: %.2f",index,avgGrade());
  104. }
  105.  
  106. }
  107.  
  108. class Class{
  109. private String name;
  110. private List<Integer> grades;
  111.  
  112. public Class(String name) {
  113. this.name = name;
  114. grades = new ArrayList<>();
  115. }
  116.  
  117. public String getName() {
  118. return name;
  119. }
  120.  
  121. public void addGrade(String grade) {
  122. grades.add(Integer.parseInt(grade));
  123. }
  124.  
  125. public void addGrade(Integer grade) {
  126. grades.add(grade);
  127. }
  128.  
  129. public double avgGrade() {
  130. return grades
  131. .stream()
  132. .mapToDouble(Double::valueOf)
  133. .average()
  134. .getAsDouble();
  135. }
  136.  
  137. @Override
  138. public String toString() {
  139. return String.format("Predmet: %s Prosek: %.2f",name,avgGrade());
  140. }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement