DamSi

Untitled

May 27th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.75 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6.  
  7. /**
  8.  * ----------------------------
  9.  * Project: APS
  10.  * Package: dopolnitelni_casovi.hashmaps
  11.  * Created on: 27.5.2016, 21:40
  12.  * IDE: IntelliJ IDEA
  13.  * ----------------------------
  14.  * Author: Damjan Miloshevski
  15.  * Web: http://damjanmiloshevski.mk/
  16.  * Phone: +389 (0)78 566 409
  17.  * Skype: damjan.milosevski
  18.  * LinkedIn: https://mk.linkedin.com/in/damjanmiloshevski
  19.  * GitHub: https://github.com/damsii
  20.  * Bitbucket: https://bitbucket.org/dam_si
  21.  */
  22. public class Apteka {
  23.  
  24.     public static void main(String[] args) throws IOException {
  25.         BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  26.         Map<String, Lek> apteka = new HashMap<>();
  27.  
  28.         //vnesi broj na lekovi vo aptekata
  29.         int N = Integer.parseInt(in.readLine());
  30.         for (int i = 0; i < N; i++) {
  31.             String[] parts = in.readLine().split(" ");
  32.             String ime = parts[0];
  33.             int status = Integer.parseInt(parts[1]);
  34.             int cena = Integer.parseInt(parts[2]);
  35.             int zaliha = Integer.parseInt(parts[3]);
  36.             apteka.put(ime, new Lek(ime, status, cena, zaliha));
  37.         }
  38.         String ime = "";
  39.         while (!(ime = in.readLine()).equalsIgnoreCase("KRAJ")) {
  40.             ime = ime.toUpperCase();
  41.             int kolicina = Integer.parseInt(in.readLine());
  42.             Lek lek = apteka.get(ime);
  43.             if (lek == null) {
  44.                 System.out.println("Nema takov lek");
  45.             } else {
  46.                 if (!lek.kupiLek(kolicina)) {
  47.                     System.out.println("Nema dovolno lekovi");
  48.                 } else {
  49.                     System.out.println(lek.toString());
  50.                     System.out.println("Napravena naracka");
  51.                 }
  52.             }
  53.  
  54.         }
  55.     }
  56.  
  57. }
  58.  
  59. class Lek {
  60.     private String ime;
  61.     private int status;
  62.     private int cena;
  63.     private int zaliha;
  64.  
  65.     public Lek(String ime, int status, int cena, int zaliha) {
  66.         this.ime = ime;
  67.         this.status = status;
  68.         this.cena = cena;
  69.         this.zaliha = zaliha;
  70.     }
  71.  
  72.     public String getIme() {
  73.         return ime;
  74.     }
  75.  
  76.     public int getStatus() {
  77.         return status;
  78.     }
  79.  
  80.     public int getCena() {
  81.         return cena;
  82.     }
  83.  
  84.     public int getZaliha() {
  85.         return zaliha;
  86.     }
  87.  
  88.     boolean kupiLek(int q) {
  89.         /*
  90.         * TODO: proveriva dali ima dovolno lekovi na zaliha, ako ima ja odzema baranata kolicina od momentalnata zaliha
  91.         * return: true ako prodazbata e uspesna, false ako ne moze da se izvrsi
  92.         * */
  93.         if (q > this.zaliha) return false;
  94.         else {
  95.             this.zaliha -= q;
  96.             return true;
  97.         }
  98.     }
  99.  
  100.     @Override
  101.     public int hashCode() {
  102.         int hash;
  103.         int asciiC1 = (int) (Character.toUpperCase(ime.charAt(0)));
  104.         int asciiC2 = (int) (Character.toUpperCase(ime.charAt(1)));
  105.         int asciiC3 = (int) (Character.toUpperCase(ime.charAt(2)));
  106.         hash = (29 * (29 * (29 * 0 + asciiC1) + asciiC2) + asciiC3) % 102780;
  107.  
  108.         return hash;
  109.     }
  110.  
  111.     @Override
  112.     public String toString() {
  113.         /*
  114.         * TODO: go pecati lekot so site svoi elementi vo zadadeniot format
  115.         * */
  116.         StringBuilder output = new StringBuilder();
  117.         output.append(ime).append("\n");
  118.         String status = "";
  119.         if (this.status == 0) {
  120.             status = "NEG";
  121.         } else status = "POZ";
  122.         output.append(status).append("\n").append(cena).append("\n").append(zaliha);
  123.         return output.toString();
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment