Advertisement
Guest User

Jucarii

a guest
Jun 19th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.15 KB | None | 0 0
  1. package subiectjuc;
  2. import java.util.*;
  3. enum Culori {
  4.     ROSU, VERDE, ALBASTRU, GALBEN;
  5. }
  6.  
  7. interface Jucarie{
  8.     String nume();
  9. }
  10.  
  11. class Minge implements Jucarie{
  12.     Culori culoare;
  13.     int pret;
  14.    
  15.     public String nume(){
  16.         return getClass().getSimpleName();
  17.     }
  18.    
  19.     Minge(Culori c, int p){
  20.         culoare = c;
  21.         pret = p;
  22.     }
  23.    
  24. }
  25.  
  26. class Trotineta implements Jucarie{
  27.     Culori culoare;
  28.     int pret;
  29.    
  30.     public String nume(){
  31.         return getClass().getSimpleName();
  32.     }
  33.    
  34.     Trotineta(Culori c, int p){
  35.         culoare = c;
  36.         pret = p;
  37.     }
  38. }
  39.  
  40. interface FabricaJucarii {
  41.     Jucarie creeaza_jucarie();
  42. }
  43.  
  44. class FabricaMingi implements FabricaJucarii {
  45.     Random rand = new Random();
  46.     int pret = rand.nextInt(25)+40;
  47.     public Jucarie creeaza_jucarie(){
  48.         return new Minge(Culori.VERDE, pret);
  49.     }
  50. }
  51.  
  52. class FabricaTrotinete implements FabricaJucarii {
  53.     Random rand = new Random();
  54.     int pret = rand.nextInt(25)+40;
  55.     public Jucarie creeaza_jucarie(){
  56.         return new Trotineta(Culori.ROSU, pret);
  57.     }
  58. }
  59.  
  60. class MagazinJucarii {
  61.     ArrayList<Jucarie> mingi = new ArrayList();
  62.     ArrayList<Jucarie> trotinete = new ArrayList();
  63.    
  64.     Random rand = new Random();
  65.     int nr_mingi = rand.nextInt(100);
  66.     int nr_trotinete = 100-nr_mingi;
  67.    
  68.     public Jucarie preiaJucarie(FabricaJucarii fabrica){
  69.         Jucarie j = fabrica.creeaza_jucarie();
  70.         return j;
  71.     }
  72.    
  73.     void detStoc(){
  74.         Random rand = new Random();
  75.         int nr_mingi = rand.nextInt(100);
  76.         int nr_trotinete = 100-nr_mingi;
  77.        
  78.         for(int i=0; i<nr_mingi; i++) mingi.add(preiaJucarie(new FabricaMingi()));
  79.         for(int i=0; i<nr_trotinete; i++) trotinete.add(preiaJucarie(new FabricaTrotinete()));
  80.     }
  81. }
  82.  
  83. class StocEpuizat extends Exception{
  84.     StocEpuizat() {
  85.         System.out.println("cius");
  86.     }
  87. }
  88.  
  89. class Cumparator {
  90.     void cumparaJucarii(int numar, String tip_jucarie, MagazinJucarii mag) throws StocEpuizat{
  91.         // verifica daca e in stoc
  92.         if(tip_jucarie=="Mingi"){
  93.             if(mag.nr_mingi<numar) throw new StocEpuizat();
  94.             else {
  95.                 System.out.println("Stoc vechi=" + mag.nr_mingi);
  96.                 mag.nr_mingi-=numar;
  97.                 System.out.println("Stoc nou=" + mag.nr_mingi);
  98.                 for(int i=mag.nr_mingi; i>=mag.nr_mingi-numar; i--) mag.mingi.remove(i);
  99.             }            
  100.         } else {
  101.             if(mag.nr_trotinete<numar) throw new StocEpuizat();
  102.             else {
  103.                 mag.nr_trotinete-=numar;
  104.                 for(int i=mag.nr_trotinete; i>numar; i--) mag.mingi.remove(i);
  105.             }  
  106.         }
  107.     }
  108. }
  109.  
  110. public class Subiectjuc {
  111.     public static void main(String[] args) {
  112.         MagazinJucarii m = new MagazinJucarii();
  113.        
  114.         m.detStoc();
  115.         System.out.println(""+m.nr_mingi);
  116.         Cumparator c = new Cumparator();
  117.        
  118.         try{
  119.         c.cumparaJucarii(20, "Mingi", m);
  120.         } catch (StocEpuizat except) {
  121.             System.out.println("Sunt praf");
  122.         }
  123.     }
  124.    
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement