Advertisement
Demetra4

prob34Amenzi

Dec 1st, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.51 KB | None | 0 0
  1. public abstract class Amenzi implements Strategie {
  2.     protected String CNP;
  3.     protected int valoareAmenda;
  4.     Amenzi(String CNP, int valoareAmenda){
  5.         this.CNP = CNP;
  6.         this.valoareAmenda = valoareAmenda;
  7.     }
  8.     public int getValoareAmenda(){
  9.         return this.valoareAmenda;
  10.     }
  11.     public abstract String toString();
  12.     public String getCNP(){
  13.         return this.CNP;   
  14.     }
  15.    
  16.     public boolean conditie(Amenzi amenda){
  17.         return this.CNP.equals(amenda.getCNP());
  18.     }
  19. }
  20. public class ParcareIlegala extends Amenzi {
  21.     ParcareIlegala(String CNP){
  22.         super(CNP,500);
  23.     }
  24.  
  25.  
  26.     @Override
  27.     public String toString() {
  28.         return "" + this.CNP + " Parecare Ilegala " + valoareAmenda ;
  29.     }
  30.     public boolean conditie(Amenzi amenda){
  31.         if(amenda instanceof ParcareIlegala)
  32.         return true;
  33.         else return false;
  34.     }
  35. }
  36. public class AruncatulGunoiului extends Amenzi {
  37.     AruncatulGunoiului(String CNP, int factor_zonal){
  38.         super(CNP,200 * factor_zonal);
  39.     }
  40.  
  41.     @Override
  42.     public String toString() {
  43.         return "" + this.CNP + " Aruncarea Gunoiului " + valoareAmenda ;
  44.     }
  45.    
  46. }
  47. public class DistrugereBunuri extends Amenzi {
  48.  
  49.     DistrugereBunuri(String CNP, int valoareBun){
  50.     super(CNP, 300 * valoareBun);
  51. }
  52.  
  53.  
  54.     @Override
  55.     public String toString() {
  56.     return "" + this.CNP + " Distrugerea Bunurilor " + valoareAmenda ;
  57.     }
  58.  
  59. }
  60. public class GestiuneAmenzi {
  61.     private Amenzi[] amenzi = new Amenzi[64];
  62.     private int nr_amenzi;
  63.    
  64.     public void introduceAmenda(Amenzi new_amenda){
  65.         if (nr_amenzi == amenzi.length){
  66.             Amenzi[] noi_amenzi = new Amenzi[2 * nr_amenzi];
  67.             for (int i = 0; i < nr_amenzi; i++){
  68.                 noi_amenzi[i] = amenzi[i];
  69.             }
  70.             amenzi = noi_amenzi;
  71.         }
  72.         amenzi[nr_amenzi] = new_amenda;
  73.         nr_amenzi++;
  74.     }
  75.     public int valoare(Strategie strategie){
  76.         int suma = 0;
  77.         for(int i = 0; i < nr_amenzi; i++){
  78.             if(strategie.conditie(amenzi[i])){
  79.                 suma += amenzi[i].getValoareAmenda();
  80.             }
  81.         }
  82.         return suma;
  83.     }
  84. }
  85. public interface Strategie {
  86.      boolean conditie(Amenzi amenda);
  87.  
  88. }
  89. public class Main {
  90.    
  91.     public static void main (String[] args){
  92.         ParcareIlegala p = new ParcareIlegala("1031274456709");
  93.         ParcareIlegala p2 = new ParcareIlegala("1031274456709");
  94.         AruncatulGunoiului a = new AruncatulGunoiului("1031274456709", 2);
  95.         DistrugereBunuri  d = new DistrugereBunuri("1031274456709", 10);
  96.        
  97.         GestiuneAmenzi g = new GestiuneAmenzi();
  98.         g.introduceAmenda(p);
  99.         g.introduceAmenda(p2);
  100.         g.introduceAmenda(a);
  101.         g.introduceAmenda(d);
  102.        
  103.         System.out.println(g.valoare(p));
  104.         System.out.println(g.valoare(d));
  105.  
  106.     }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement