Changeset 4554


Ignore:
Timestamp:
2017-03-17 00:27:57 (9 months ago)
Author:
vesal
Message:

public static

Location:
moniste/esimerkit/src/tiedosto
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • moniste/esimerkit/src/tiedosto/LueTRek.java

    r4284 r4554  
    2929public class LueTRek { 
    3030 
    31   /****************************************************************************/ 
    32   /** 
    33    * Luokka yhden tuotteen tiedoille. 
    34    */ 
    35   static public class Tuote { 
    36     private String nimike = ""; 
    37     private double hinta = 0.0; 
    38     private int kpl = 0; 
     31    /****************************************************************************/ 
     32    /** 
     33     * Luokka yhden tuotteen tiedoille. 
     34     */ 
     35    public static class Tuote { 
     36        private String nimike = ""; 
     37        private double hinta = 0.0; 
     38        private int kpl = 0; 
    3939 
    40     public Tuote() {} 
    41     public Tuote(String rivi) { 
    42       try { 
    43         parse(rivi); 
    44       } catch (NumberFormatException ex) { 
    45           // 
    46       } 
     40        public Tuote() {} 
     41        public Tuote(String rivi) { 
     42            try { 
     43                parse(rivi); 
     44            } catch (NumberFormatException ex) { 
     45                // 
     46            } 
     47        } 
     48 
     49        public void parse(String s) throws NumberFormatException { 
     50            StringBuilder sb = new StringBuilder(s); 
     51            nimike = Mjonot.erotaEx(sb,'|',nimike); 
     52            hinta  = Mjonot.erotaEx(sb,'|',hinta); 
     53            kpl    = Mjonot.erotaEx(sb,'|',kpl); 
     54        } 
     55 
     56        public String toPrintString() { 
     57            return Mjonot.fmt(nimike,-20) + " " + Mjonot.fmt(hinta,7,0) + 
     58                    Mjonot.fmt(kpl,4); 
     59        } 
     60 
     61        public void ynnaa(Tuote tuote) { 
     62            hinta += tuote.hinta * tuote.kpl; 
     63            kpl   += tuote.kpl; 
     64        } 
     65 
     66        public String getNimike() { return nimike; } 
     67        public void setNimike(String nimike) { this.nimike = nimike; } 
     68 
    4769    } 
    4870 
    49     public void parse(String s) throws NumberFormatException { 
    50       StringBuilder sb = new StringBuilder(s); 
    51       nimike = Mjonot.erotaEx(sb,'|',nimike); 
    52       hinta  = Mjonot.erotaEx(sb,'|',hinta); 
    53       kpl    = Mjonot.erotaEx(sb,'|',kpl); 
     71    /****************************************************************************/ 
     72    /** 
     73     * Luokka joka säilyttää kunkin ero tuotteen yhteissumman ja lukumäär'n 
     74     * sekä kaikkien tuotteiden yhteissumman ja lukumäärän 
     75     */ 
     76    static public class Tuotteet { 
     77        @SuppressWarnings("unused") 
     78        private String nimi = ""; 
     79        private int lkm; 
     80        private Tuote alkiot[]; 
     81        private Tuote yhteensa = new Tuote("Yhteensä"); 
     82 
     83        public Tuotteet(String nimi) { 
     84            this.nimi = nimi; 
     85            alkiot = new Tuote[10]; 
     86        } 
     87 
     88        public int etsi(String tnimi) { 
     89            for (int i=0; i<lkm; i++) 
     90                if ( alkiot[i].getNimike().equalsIgnoreCase(tnimi) ) return i; 
     91            return -1; 
     92        } 
     93 
     94        public int lisaa(String tnimi) { 
     95            if ( alkiot.length <= lkm ) return -1; 
     96            alkiot[lkm] = new Tuote(tnimi); 
     97            return lkm++; 
     98        } 
     99 
     100        public boolean ynnaa(Tuote tuote) { 
     101            if ( tuote.getNimike().equals("") ) return false; 
     102            int i = etsi(tuote.getNimike()); 
     103            if ( i < 0 ) i = lisaa(tuote.getNimike()); 
     104            if ( i < 0 ) return false; 
     105 
     106            alkiot[i].ynnaa(tuote); 
     107            yhteensa.ynnaa(tuote); 
     108            return true; 
     109        } 
     110 
     111 
     112        public boolean lue() { 
     113            @SuppressWarnings("resource") 
     114            BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat"); 
     115            if ( fi == null ) return false; 
     116 
     117            try { 
     118                String rivi;  Tuote tuote = new Tuote(); 
     119                while ( ( rivi = fi.readLine() ) != null ) { 
     120                    try { 
     121                        tuote.parse(rivi); 
     122                        ynnaa(tuote); 
     123                    } catch (NumberFormatException ex) { 
     124                        System.err.println("Rivillä jotakin pielessä " + rivi + "  " + 
     125                                ex.getMessage()); 
     126                        continue; 
     127                    } 
     128                } 
     129            } catch (IOException ex) { 
     130                System.err.println("Vikaa tiedostoa luettaessa: " + ex.getMessage()); 
     131            } finally { 
     132                try { 
     133                    fi.close(); 
     134                } catch (IOException ex) { 
     135                    System.err.println("Ongelmia tiedoston sulkemisessa: " + ex.getMessage()); 
     136                } 
     137            } 
     138 
     139            return true; 
     140        } 
     141 
     142        public void tulosta(OutputStream os) { 
     143            @SuppressWarnings("resource") 
     144            PrintStream out = Tiedosto.getPrintStream(os); 
     145 
     146            out.println(); out.println(); out.println(); 
     147            out.println("-------------------------------------------"); 
     148 
     149            for (int i=0; i<lkm; i++) 
     150                out.println(alkiot[i].toPrintString()); 
     151 
     152            out.println("-------------------------------------------"); 
     153            out.println(yhteensa.toPrintString()); 
     154            out.println("-------------------------------------------"); 
     155            out.println(); System.out.println(); System.out.println(); 
     156        } 
     157 
    54158    } 
    55159 
    56     public String toPrintString() { 
    57       return Mjonot.fmt(nimike,-20) + " " + Mjonot.fmt(hinta,7,0) + 
    58              Mjonot.fmt(kpl,4); 
     160    /** 
     161     * @param args ei käytössä  
     162     ***************************************************************************/ 
     163    public static void main(String[] args)  { 
     164        Tuotteet varasto = new Tuotteet("tuotteet.dat"); 
     165        if ( !varasto.lue() ) { 
     166            System.err.println("Tuotteita ei saada luetuksi"); 
     167            return; 
     168        } 
     169        varasto.tulosta(System.out); 
    59170    } 
    60  
    61     public void ynnaa(Tuote tuote) { 
    62       hinta += tuote.hinta * tuote.kpl; 
    63       kpl   += tuote.kpl; 
    64     } 
    65  
    66     public String getNimike() { return nimike; } 
    67     public void setNimike(String nimike) { this.nimike = nimike; } 
    68  
    69   } 
    70  
    71   /****************************************************************************/ 
    72   /** 
    73    * Luokka joka säilyttää kunkin ero tuotteen yhteissumman ja lukumäär'n 
    74    * sekä kaikkien tuotteiden yhteissumman ja lukumäärän 
    75    */ 
    76   static public class Tuotteet { 
    77     @SuppressWarnings("unused") 
    78     private String nimi = ""; 
    79     private int lkm; 
    80     private Tuote alkiot[]; 
    81     private Tuote yhteensa = new Tuote("Yhteensä"); 
    82  
    83     public Tuotteet(String nimi) { 
    84       this.nimi = nimi; 
    85       alkiot = new Tuote[10]; 
    86     } 
    87  
    88     public int etsi(String tnimi) { 
    89       for (int i=0; i<lkm; i++) 
    90         if ( alkiot[i].getNimike().equalsIgnoreCase(tnimi) ) return i; 
    91       return -1; 
    92     } 
    93  
    94     public int lisaa(String tnimi) { 
    95       if ( alkiot.length <= lkm ) return -1; 
    96       alkiot[lkm] = new Tuote(tnimi); 
    97       return lkm++; 
    98     } 
    99  
    100     public boolean ynnaa(Tuote tuote) { 
    101       if ( tuote.getNimike().equals("") ) return false; 
    102       int i = etsi(tuote.getNimike()); 
    103       if ( i < 0 ) i = lisaa(tuote.getNimike()); 
    104       if ( i < 0 ) return false; 
    105  
    106       alkiot[i].ynnaa(tuote); 
    107       yhteensa.ynnaa(tuote); 
    108       return true; 
    109     } 
    110  
    111  
    112     public boolean lue() { 
    113       @SuppressWarnings("resource") 
    114       BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat"); 
    115       if ( fi == null ) return false; 
    116  
    117       try { 
    118         String rivi;  Tuote tuote = new Tuote(); 
    119         while ( ( rivi = fi.readLine() ) != null ) { 
    120           try { 
    121             tuote.parse(rivi); 
    122             ynnaa(tuote); 
    123           } catch (NumberFormatException ex) { 
    124             System.err.println("Rivillä jotakin pielessä " + rivi + "  " + 
    125                                 ex.getMessage()); 
    126             continue; 
    127           } 
    128         } 
    129       } catch (IOException ex) { 
    130         System.err.println("Vikaa tiedostoa luettaessa: " + ex.getMessage()); 
    131       } finally { 
    132         try { 
    133           fi.close(); 
    134         } catch (IOException ex) { 
    135           System.err.println("Ongelmia tiedoston sulkemisessa: " + ex.getMessage()); 
    136         } 
    137       } 
    138  
    139       return true; 
    140     } 
    141  
    142     public void tulosta(OutputStream os) { 
    143       @SuppressWarnings("resource") 
    144       PrintStream out = Tiedosto.getPrintStream(os); 
    145  
    146       out.println(); out.println(); out.println(); 
    147       out.println("-------------------------------------------"); 
    148  
    149       for (int i=0; i<lkm; i++) 
    150         out.println(alkiot[i].toPrintString()); 
    151  
    152       out.println("-------------------------------------------"); 
    153       out.println(yhteensa.toPrintString()); 
    154       out.println("-------------------------------------------"); 
    155       out.println(); System.out.println(); System.out.println(); 
    156     } 
    157  
    158   } 
    159  
    160   /** 
    161    * @param args ei käytössä  
    162    ***************************************************************************/ 
    163   public static void main(String[] args)  { 
    164     Tuotteet varasto = new Tuotteet("tuotteet.dat"); 
    165     if ( !varasto.lue() ) { 
    166       System.err.println("Tuotteita ei saada luetuksi"); 
    167       return; 
    168     } 
    169     varasto.tulosta(System.out); 
    170   } 
    171171} 
    172172 
  • moniste/esimerkit/src/tiedosto/LueTuote.java

    r4284 r4554  
    1212public class LueTuote { 
    1313 
    14   public static boolean tulosta_tuotteet() { 
    15     String srivi; 
    16     String nimike; double hinta; int kpl; 
     14    public static boolean tulosta_tuotteet() { 
     15        String srivi; 
     16        String nimike; double hinta; int kpl; 
    1717 
    18     @SuppressWarnings("resource") 
    19     BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat"); 
    20     if ( fi == null ) return false; 
     18        @SuppressWarnings("resource") 
     19        BufferedReader fi = Tiedosto.avaa_lukemista_varten("tuotteet.dat"); 
     20        if ( fi == null ) return false; 
    2121 
    22     System.out.println(); System.out.println(); System.out.println(); 
    23     System.out.println("-------------------------------------------"); 
     22        System.out.println(); System.out.println(); System.out.println(); 
     23        System.out.println("-------------------------------------------"); 
    2424 
    25     try { 
    26       while ( ( srivi = fi.readLine() ) != null ) { 
    27         StringBuilder rivi = new StringBuilder(srivi); 
    2825        try { 
    29           nimike = Mjonot.erotaEx(rivi,'|',""); 
    30           hinta  = Mjonot.erotaEx(rivi,'|',0.0); 
    31           kpl    = Mjonot.erotaEx(rivi,'|',0); 
    32         } catch (NumberFormatException ex) { 
    33           System.out.println("Virhe: " + ex.getMessage()); 
    34           continue; 
     26            while ( ( srivi = fi.readLine() ) != null ) { 
     27                StringBuilder rivi = new StringBuilder(srivi); 
     28                try { 
     29                    nimike = Mjonot.erotaEx(rivi,'|',""); 
     30                    hinta  = Mjonot.erotaEx(rivi,'|',0.0); 
     31                    kpl    = Mjonot.erotaEx(rivi,'|',0); 
     32                } catch (NumberFormatException ex) { 
     33                    System.out.println("Virhe: " + ex.getMessage()); 
     34                    continue; 
     35                } 
     36                System.out.println(Mjonot.fmt(nimike,-20) +" " + Mjonot.fmt(hinta,7,0) + 
     37                        Mjonot.fmt(kpl,4)); 
     38            } 
     39        } catch (IOException ex) { 
     40            System.err.println("Vikaa tiedostoa luettaessa: " + ex.getMessage()); 
     41        } finally { 
     42            try { 
     43                fi.close(); 
     44            } catch (IOException ex) { 
     45                System.err.println("Ongelmia tiedoston sulkemisessa: " + ex.getMessage()); 
     46            } 
    3547        } 
    36         System.out.println(Mjonot.fmt(nimike,-20) +" " + Mjonot.fmt(hinta,7,0) + 
    37                            Mjonot.fmt(kpl,4)); 
    38       } 
    39     } catch (IOException ex) { 
    40       System.err.println("Vikaa tiedostoa luettaessa: " + ex.getMessage()); 
    41     } finally { 
    42       try { 
    43         fi.close(); 
    44       } catch (IOException ex) { 
    45         System.err.println("Ongelmia tiedoston sulkemisessa: " + ex.getMessage()); 
    46       } 
     48 
     49        System.out.println("-------------------------------------------"); 
     50        System.out.println(); System.out.println(); System.out.println(); 
     51 
     52        return true; 
    4753    } 
    4854 
    49     System.out.println("-------------------------------------------"); 
    50     System.out.println(); System.out.println(); System.out.println(); 
    51  
    52     return true; 
    53   } 
    54  
    55   public static void main(String[] args)  { 
    56     if ( !tulosta_tuotteet() ) System.err.println("Tuotteita ei saada luetuksi"); 
    57   } 
     55    public static void main(String[] args)  { 
     56        if ( !tulosta_tuotteet() ) System.err.println("Tuotteita ei saada luetuksi"); 
     57    } 
    5858} 
Note: See TracChangeset for help on using the changeset viewer.