Advertisement
Domy131097

LV4: Zadatak 2

Nov 9th, 2017
180
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.37 KB | None
  1. /**
  2.  * @author Dominik Tkalčec
  3.  * Student
  4.  */
  5.  
  6. package vjezba4;
  7.  
  8. import java.io.Serializable;
  9.  
  10. public class Student implements Serializable {
  11.     private int maticnibroj;
  12.     private String ime;
  13.     private String prezime;
  14.     private String fakultet;
  15.     private String smjer;
  16.     private int godina;
  17.     private double prosjekocjena;
  18.  
  19.     public Student() {
  20.         this(0, "", "", "", "", 0, 0.0);
  21.     }
  22.  
  23.     public Student(int mb, String ime, String prezime, String fax, String smjer, int god, double po) {
  24.         this.maticnibroj = mb;
  25.         this.ime = ime;
  26.         this.prezime = prezime;
  27.         this.fakultet = fax;
  28.         this.smjer = smjer;
  29.         this.godina = god;
  30.         this.prosjekocjena = po;
  31.     }
  32.  
  33.     public int ucitajMaticniBroj() {
  34.         return maticnibroj;
  35.     }
  36.     public String ucitajIme() {
  37.         return ime;
  38.     }
  39.     public String ucitajPrezime() {
  40.         return prezime;
  41.     }
  42.     public String ucitajFaks() {
  43.         return fakultet;
  44.     }
  45.     public String ucitajSmjer() {
  46.         return smjer;
  47.     }
  48.     public int ucitajGodinu() {
  49.         return godina;
  50.     }
  51.     public double ucitajProsjek() {
  52.         return prosjekocjena;
  53.     }
  54. }
  55.  
  56. /**
  57.  * @author Dominik Tkalčec
  58.  * SpremanjeUDatoteku
  59.  */
  60.  
  61. package vjezba4;
  62.  
  63. import java.io.IOException;
  64. import java.nio.file.Files;
  65. import java.nio.file.Paths;
  66. import java.util.NoSuchElementException;
  67. import java.util.Scanner;
  68. import java.io.ObjectOutputStream;
  69.  
  70. public class SpremanjeUDatoteku {
  71.     private static ObjectOutputStream izlaz;
  72.     public static void main(String[] args) {
  73.         otvoriDatoteku();
  74.         snimiStudente();
  75.         zatvoriDatoteku();
  76.     }
  77.  
  78.     public static void otvoriDatoteku() {
  79.         try {
  80.             izlaz = new ObjectOutputStream(
  81.             Files.newOutputStream(Paths.get("studenti.ser")));
  82.         }
  83.         catch (IOException IOgreska) {
  84.             System.err.println("Pogreska otvaranja datoteke.");
  85.             System.exit(1);
  86.         }
  87.     }
  88.  
  89.     public static void snimiStudente() {
  90.         Scanner input = new Scanner(System.in);
  91.         int count = 0;
  92.         while (count < 2) {
  93.             try {
  94.                 System.out.println("Unesite maticni broj, ime, prezime, fakultet, smjer, godinu i prosjek ocjena " + (count + 1) + ". studenta:");
  95.                 Student snimanje = new Student(input.nextInt(),
  96.                 input.next(), input.next(), input.next(), input.next(), input.nextInt(), input.nextDouble());
  97.                 izlaz.writeObject(snimanje);
  98.                 count++;
  99.             }
  100.             catch (NoSuchElementException elementgreska) {
  101.                 System.err.println("Pogresan unos, pokusajte ponovo.");
  102.                 input.nextLine();
  103.             }
  104.             catch (IOException IOgreska) {
  105.                 System.err.println("Pogreska pisanja u datoteku.");
  106.                 break;
  107.             }
  108.         }
  109.     }
  110.  
  111.     public static void zatvoriDatoteku() {
  112.         try {
  113.             if (izlaz != null)
  114.             izlaz.close();
  115.         }
  116.         catch (IOException IOgreska) {
  117.             System.err.println("Pogreska zatvaranja datoteke.");
  118.         }
  119.     }
  120. }
  121.  
  122. /**
  123.  * @author Dominik Tkalčec
  124.  * UcitavanjeIzDatoteke
  125.  */
  126.  
  127. package vjezba4;
  128.  
  129. import java.io.EOFException;
  130. import java.io.IOException;
  131. import java.io.ObjectInputStream;
  132. import java.nio.file.Files;
  133. import java.nio.file.Paths;
  134.  
  135. public class UcitavanjeIzDatoteke {
  136.     private static ObjectInputStream ulaz;
  137.     public static void main(String[] args) {
  138.         otvoriDatoteku();
  139.         ucitajStudente();
  140.         zatvoriDatoteku();
  141.        
  142.     }
  143.  
  144.     public static void otvoriDatoteku() {
  145.         try {
  146.             ulaz = new ObjectInputStream(Files.newInputStream(Paths.get("studenti.ser")));
  147.         }
  148.         catch (IOException ioException) {
  149.             System.err.println("Pogreska otvaranja datoteke.");
  150.             System.exit(1);
  151.         }
  152.     }
  153.  
  154.     public static void ucitajStudente() {
  155.         double prosjek = 0;
  156.         int count = 0;
  157.         System.out.printf("%-18s%-12s%-12s%-12s%-12s%-12s%12s%n", "Maticni broj",
  158.         "Ime", "Prezime", "Fakultet", "Smjer", "Godina", "Prosjek ocjena");
  159.  
  160.         try {
  161.             while (true) {
  162.                 Student snimi = (Student) ulaz.readObject();
  163.                 System.out.printf("%-18d%-12s%-12s%-12s%-12s%-6d%10.2f%n",
  164.                 snimi.ucitajMaticniBroj(), snimi.ucitajIme(), snimi.ucitajPrezime(), snimi.ucitajFaks(), snimi.ucitajSmjer(), snimi.ucitajGodinu(), snimi.ucitajProsjek());
  165.                 prosjek += snimi.ucitajProsjek(); count++;
  166.             }
  167.         }
  168.         catch (EOFException krajdatoteke) {
  169.             System.out.println("\nProsjek ocjena svih studenata iznosi: " + (prosjek/count));
  170.             System.out.println("Nema vise studenata.");
  171.         }
  172.         catch (ClassNotFoundException klasanijepronadena) {
  173.             System.err.println("Pogresan tip objekta.");
  174.         }
  175.         catch (IOException IOgreska) {
  176.             System.err.println("Pogreska citanja iz datoteke.");
  177.         }
  178.     }
  179.  
  180.     public static void zatvoriDatoteku() {
  181.         try {
  182.             if (ulaz != null)
  183.                 ulaz.close();
  184.         }
  185.         catch (IOException IOgreska) {
  186.             System.err.println("Pogreska zatvaranja datoteke.");
  187.             System.exit(1);
  188.         }
  189.     }
  190. }
Advertisement
RAW Paste Data Copied
Advertisement