Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package subiectjuc;
- import java.util.*;
- enum Culori {
- ROSU, VERDE, ALBASTRU, GALBEN;
- }
- interface Jucarie{
- String nume();
- }
- class Minge implements Jucarie{
- Culori culoare;
- int pret;
- public String nume(){
- return getClass().getSimpleName();
- }
- Minge(Culori c, int p){
- culoare = c;
- pret = p;
- }
- }
- class Trotineta implements Jucarie{
- Culori culoare;
- int pret;
- public String nume(){
- return getClass().getSimpleName();
- }
- Trotineta(Culori c, int p){
- culoare = c;
- pret = p;
- }
- }
- interface FabricaJucarii {
- Jucarie creeaza_jucarie();
- }
- class FabricaMingi implements FabricaJucarii {
- Random rand = new Random();
- int pret = rand.nextInt(25)+40;
- public Jucarie creeaza_jucarie(){
- return new Minge(Culori.VERDE, pret);
- }
- }
- class FabricaTrotinete implements FabricaJucarii {
- Random rand = new Random();
- int pret = rand.nextInt(25)+40;
- public Jucarie creeaza_jucarie(){
- return new Trotineta(Culori.ROSU, pret);
- }
- }
- class MagazinJucarii {
- ArrayList<Jucarie> mingi = new ArrayList();
- ArrayList<Jucarie> trotinete = new ArrayList();
- Random rand = new Random();
- int nr_mingi = rand.nextInt(100);
- int nr_trotinete = 100-nr_mingi;
- public Jucarie preiaJucarie(FabricaJucarii fabrica){
- Jucarie j = fabrica.creeaza_jucarie();
- return j;
- }
- void detStoc(){
- Random rand = new Random();
- int nr_mingi = rand.nextInt(100);
- int nr_trotinete = 100-nr_mingi;
- for(int i=0; i<nr_mingi; i++) mingi.add(preiaJucarie(new FabricaMingi()));
- for(int i=0; i<nr_trotinete; i++) trotinete.add(preiaJucarie(new FabricaTrotinete()));
- }
- }
- class StocEpuizat extends Exception{
- StocEpuizat() {
- System.out.println("cius");
- }
- }
- class Cumparator {
- void cumparaJucarii(int numar, String tip_jucarie, MagazinJucarii mag) throws StocEpuizat{
- // verifica daca e in stoc
- if(tip_jucarie=="Mingi"){
- if(mag.nr_mingi<numar) throw new StocEpuizat();
- else {
- System.out.println("Stoc vechi=" + mag.nr_mingi);
- mag.nr_mingi-=numar;
- System.out.println("Stoc nou=" + mag.nr_mingi);
- for(int i=mag.nr_mingi; i>=mag.nr_mingi-numar; i--) mag.mingi.remove(i);
- }
- } else {
- if(mag.nr_trotinete<numar) throw new StocEpuizat();
- else {
- mag.nr_trotinete-=numar;
- for(int i=mag.nr_trotinete; i>numar; i--) mag.mingi.remove(i);
- }
- }
- }
- }
- public class Subiectjuc {
- public static void main(String[] args) {
- MagazinJucarii m = new MagazinJucarii();
- m.detStoc();
- System.out.println(""+m.nr_mingi);
- Cumparator c = new Cumparator();
- try{
- c.cumparaJucarii(20, "Mingi", m);
- } catch (StocEpuizat except) {
- System.out.println("Sunt praf");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement