Advertisement
pseudocreator

oop1 DomZdravlja-Izuzeci(kolokvijum)

Dec 18th, 2014
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.19 KB | None | 0 0
  1. package osn;
  2. import java.io.*;
  3.  
  4. class GreskaPriOdabiru extends Exception{
  5.     GreskaPriOdabiru(String str){
  6.         super("******GRESKA PRI ODABIRU: " + str + ";\n");
  7.     }
  8. }
  9. class VecOdabrao extends GreskaPriOdabiru{
  10.     String jmbg;
  11.    
  12.     VecOdabrao(String jmbg){
  13.         super(jmbg);   
  14.     }
  15. }
  16. class Prepunjen extends GreskaPriOdabiru{
  17.     String jmbg;
  18.    
  19.     Prepunjen(String jmbg){
  20.         super(jmbg);
  21.     }
  22. }
  23.  
  24.  
  25. class GreskaPriPonistavanju extends Exception{
  26.     GreskaPriPonistavanju(){
  27.         super("******GRESKAPRIPONISTAVANJU\n");
  28.     }
  29. }
  30. //---------------------------------------
  31. final class Pacijent{
  32.    
  33.     private String jmbg;
  34.  
  35.     Pacijent(String jmbg){
  36.         this.jmbg = jmbg;
  37.     }
  38.  
  39.     public String getJmbg() {
  40.         return jmbg;
  41.     }
  42.    
  43. }
  44. //---------------------------------------
  45. class Lekar{
  46.  
  47.     private int maxBrPacijenata;
  48.     private int brPac;
  49.     private Pacijent[] nizPac;
  50.    
  51.     Lekar(int maxBrPacijenata){
  52.         this.setMaxBrPacijenata(maxBrPacijenata);
  53.         setBrPac(0);
  54.  
  55.     }
  56.    
  57.    
  58.     public void odabir(String jmbg) throws GreskaPriOdabiru{
  59.                   // nema mesta
  60.                   // ili je vec kod njega
  61.         System.out.println("-----------");
  62.         System.out.println(brPac + "  " + maxBrPacijenata);
  63.         System.out.println("-----------");
  64.        
  65.             if(brPac == maxBrPacijenata){
  66.                 throw new Prepunjen(jmbg);
  67.                
  68.             }else if(postojeci(jmbg)){
  69.                 throw new VecOdabrao(jmbg);
  70.                
  71.             }else //ubacujemo
  72.             {
  73.                 System.out.println("//////");
  74.                 System.out.println(jmbg);
  75.                 System.out.println("//////");
  76.                
  77.                 if(brPac == 0){
  78.                     nizPac = new Pacijent[1];
  79.                     nizPac[0] = new Pacijent(jmbg);
  80.                     brPac++;
  81.                 } else {
  82.                    
  83.                     Pacijent[] tmp = new Pacijent[brPac+1];
  84.                     int i;
  85.                     for(i = 0; i < tmp.length; i++){
  86.                         tmp[i] = new Pacijent(nizPac[i].getJmbg());
  87.                     }
  88.                     tmp[i+1] = new Pacijent(jmbg);
  89.                    
  90.                     nizPac = new Pacijent[tmp.length];
  91.                     for(i = 0; i < tmp.length; i++){
  92.                         nizPac[i] = new Pacijent(tmp[i].getJmbg());
  93.                     }
  94.                     brPac++;
  95.                 }
  96.             }
  97.     }
  98.    
  99.     public void ponisti(String jmbg) throws GreskaPriPonistavanju{
  100.         if(postojeci(jmbg)){
  101.             int t = mesto(jmbg);
  102.            
  103.             if(t == -1){
  104.                 System.out.println("GRESKA!!!!!!------");
  105.             }
  106.            
  107.             if(t == 0){ //provereno#
  108.                
  109.                 Pacijent[] temp = new Pacijent[brPac-1];
  110.                 for(int i = 1; i < brPac; i++){
  111.                     temp[i-1] = new Pacijent(nizPac[i].getJmbg());
  112.                 }
  113.                 nizPac = new Pacijent[temp.length];
  114.                 for(int i = 0; i < nizPac.length; i++){
  115.                     nizPac[i] = new Pacijent(temp[i].getJmbg());
  116.                 }
  117.                
  118.                 brPac--;
  119.             }else if(t == brPac){ //provereno#
  120.                
  121.                 Pacijent[] temp = new Pacijent[brPac-1];
  122.                 for(int i = 0; i < brPac-1; i++){
  123.                     temp[i] = new Pacijent(nizPac[i].getJmbg());
  124.                 }
  125.                 nizPac = new Pacijent[temp.length];
  126.                 for(int i = 0; i < nizPac.length; i++){
  127.                     nizPac[i] = new Pacijent(temp[i].getJmbg());
  128.                 }
  129.                
  130.                 brPac--;
  131.             } else {
  132.                
  133.                 int i = 0;
  134.                 int j = 0;
  135.                 Pacijent[] tmp = new Pacijent[nizPac.length-1];
  136.                 while(i < nizPac.length){
  137.                    
  138.                     tmp[j] = new Pacijent(nizPac[i].getJmbg());
  139.                    
  140.                     if(i == t){
  141.                         j--;
  142.                     }
  143.  
  144.                     i++;
  145.                     j++;
  146.                 }
  147.                 nizPac = new Pacijent[tmp.length];
  148.                 for(int o = 0; o < nizPac.length; o++){
  149.                     nizPac[o] = new Pacijent(tmp[o].getJmbg());
  150.                 }
  151.                 brPac--;
  152.             }//kraj namestanja niza
  153.  
  154.         } else {
  155.             throw new GreskaPriPonistavanju();
  156.         }
  157.     }
  158.    
  159.    
  160.     public int mesto(String jmbg){
  161.         for(int i = 0; i < brPac; i++){
  162.             if(jmbg.equals(nizPac[i].getJmbg())){
  163.                 return i;
  164.             }
  165.         }
  166.         return -1;
  167.     }
  168.    
  169.  
  170.     public boolean postojeci(String jmbg){
  171.        
  172.         for(int i = 0; i < brPac; i++){
  173.             if(jmbg.equals(nizPac[i].getJmbg())){
  174.                 return true;
  175.             }
  176.         }
  177.         return false;
  178.     }
  179.    
  180.     //geteri, seteri
  181.     public int getMaxBrPacijenata() {
  182.         return maxBrPacijenata;
  183.     }
  184.     public void setMaxBrPacijenata(int maxBrPacijenata) {
  185.         this.maxBrPacijenata = maxBrPacijenata;
  186.     }
  187.     public int getBrPac() {
  188.         return brPac;
  189.     }
  190.     public void setBrPac(int brPac) {
  191.         this.brPac = brPac;
  192.     }
  193.     public Pacijent[] getNizPac() {
  194.         return nizPac;
  195.     }
  196.     public void setNizPac(Pacijent[] nizPac) {
  197.         this.nizPac = nizPac;
  198.     }
  199.    
  200. }
  201.  
  202. public class Osnovna {
  203.  
  204.    
  205.     public static void main(String[] args){
  206.        
  207.         BufferedReader unosF = null;
  208.         BufferedReader unosT = null;
  209.  
  210.         try{
  211.    
  212.  
  213.             unosT = new BufferedReader(new InputStreamReader(System.in));
  214.             System.out.println("Unesite ime fajla: ");
  215.             String imeF = unosT.readLine();
  216.             unosF = new BufferedReader(new FileReader(imeF));
  217.             System.out.println("Unos maxBroja pacijenata(za datog Lekara): ");
  218.             int maxBrPac = Integer.parseInt(unosT.readLine());
  219.            
  220.             Lekar l = new Lekar(maxBrPac);
  221.            
  222.             String ceoRed = unosF.readLine();
  223.             if(ceoRed != null){
  224.                 do{
  225.                     String[] nizS = ceoRed.split(",");
  226.                     String akcija = nizS[0];
  227.                     String jmbg = nizS[1];
  228.                     System.out.print(akcija);
  229.                     System.out.println("|||" + jmbg);
  230.                    
  231.                     try{
  232.                         if(akcija.equalsIgnoreCase("odabir")){
  233.                             l.odabir(jmbg);
  234.                         }else if(akcija.equalsIgnoreCase("ponistenje")){
  235.                             l.ponisti(jmbg);
  236.                         } else {
  237.                             System.out.println("Lose formatiran red u fajlu");
  238.                         }
  239.  
  240.                     }catch(GreskaPriOdabiru go){
  241.                         System.out.println(go.getMessage());
  242.                     }catch(GreskaPriPonistavanju gp){
  243.                         System.out.println(gp.getMessage());
  244.                     }finally{
  245.                         System.out.println("Pacijent prosao \n");
  246.                     }
  247.                    
  248.                     //izlaz iz ucitavanja
  249.                     ceoRed = unosF.readLine();
  250.                     if(ceoRed == null){
  251.                         break;
  252.                     }
  253.                 }while(true);
  254.             } else {
  255.                 System.out.println("Prazan Fajl..");
  256.             }
  257.  
  258.            
  259.         }catch(FileNotFoundException fnf){
  260.             System.out.println(fnf.getMessage());
  261.         }catch(IOException ie){
  262.             System.out.println(ie.getMessage());
  263.         }catch(NumberFormatException nmb){
  264.             System.out.println(nmb.getMessage());
  265.         }catch(IndexOutOfBoundsException io){
  266.             System.out.println(io.getMessage());
  267.         }finally{
  268.             System.out.println("----Prvi deo programa je uspesno izvrsen.");
  269.         }
  270.                
  271.         try{
  272.             unosT.close();
  273.             unosF.close();
  274.         }catch(IOException ie){
  275.             System.out.println("Fajl nije dobro unesen.");
  276.         }catch(NullPointerException ne){
  277.             System.out.println(ne.getMessage());
  278.         }finally{
  279.             System.out.println("----Program je uspesno izvrsen.");
  280.         }
  281.        
  282.     }
  283. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement