Software

Tutti i Progetti
class Programma {
    private String denominazione;
    private String produttore;
    private String versione;
    private String sistemaOperativo;
    private int anno;

    public Programma(String denominazione, String produttore, String versione, String sistemaOperativo, int anno) {
        this.denominazione = denominazione;
        this.produttore = produttore;
        this.versione = versione;
        this.sistemaOperativo = sistemaOperativo;
        this.anno = anno;
    }

    public String getDenominazione() {
        return denominazione;
    }

    public String getProduttore() {
        return produttore;
    }

    public String getVersione() {
        return versione;
    }

    public String getSistemaOperativo() {
        return sistemaOperativo;
    }

    public int getAnno() {
        return anno;
    }

    public void setDenominazione(String denominazione) {
        this.denominazione = denominazione;
    }

    public void setProduttore(String produttore) {
        this.produttore = produttore;
    }

    public void setVersione(String versione) {
        this.versione = versione;
    }

    public void setSistemaOperativo(String sistemaOperativo) {
        this.sistemaOperativo = sistemaOperativo;
    }

    public void setAnno(int anno) {
        this.anno = anno;
    }

    @Override
    public String toString() {
        return "Programma{" +
                "denominazione='" + denominazione + '\'' +
                ", produttore='" + produttore + '\'' +
                ", versione='" + versione + '\'' +
                ", sistemaOperativo='" + sistemaOperativo + '\'' +
                ", anno=" + anno +
                '}';
    }
}

class Contenitore {
    private final Programma[] programmi;
    private final int maxSize;

    public Contenitore(int N) {
        this.maxSize = N;
        this.programmi = new Programma[N];
    }

    public Programma getProgramma(int posizione) {
        if (posizione >= 0 && posizione < maxSize) {
            return programmi[posizione];
        }
        return null;
    }

    public void setProgramma(Programma programma, int posizione) {
        if (posizione >= 0 && posizione < maxSize) {
            programmi[posizione] = programma;
        }
    }

    public void killProgramma(int posizione) {
        if (posizione >= 0 && posizione < maxSize) {
            programmi[posizione] = null;
        }
    }

    public int getN() {
        int count = 0;
        for (Programma p : programmi) {
            if (p != null) {
                count++;
            }
        }
        return count;
    }

    public int cercaProgrammaPerDenominazione(String denominazione) {
        for (int i = 0; i < maxSize; i++) {
            if (programmi[i] != null && programmi[i].getDenominazione().equals(denominazione)) {
                return i;
            }
        }
        return -1;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("Contenitore programmi:\n");
        for (int i = 0; i < maxSize; i++) {
            if (programmi[i] != null) {
                sb.append("- ").append(programmi[i].getDenominazione()).append("\n");
            }
        }
        return sb.toString();
    }

    public int confrontaContenitore(Contenitore altroContenitore) {
        int programmiInComune = 0;
        for (int i = 0; i < maxSize; i++) {
            if (programmi[i] != null) {
                String denominazione = programmi[i].getDenominazione();
                if (altroContenitore.cercaProgrammaPerDenominazione(denominazione) != -1) {
                    programmiInComune++;
                }
            }
        }
        return programmiInComune;
    }
}

public class Software {
    public static void main(String[] args) {
        Contenitore contenitore1 = new Contenitore(5);
        Programma p1 = new Programma("ZeroCool", "HackLab", "v1.0.0", "Linux", 2024);
        Programma p2 = new Programma("AcidBurn", "CyberWorks", "v3.7", "Linux", 2024);
        Programma p3 = new Programma("CrashOverride", "NullSector", "v13.37", "Linux", 2024);

        contenitore1.setProgramma(p1, 0);
        contenitore1.setProgramma(p2, 1);
        contenitore1.setProgramma(p3, 2);
        
        System.out.println("Numero programmi: " + contenitore1.getN());
        System.out.println(contenitore1.toString());
        
        int pos = contenitore1.cercaProgrammaPerDenominazione("CrashOverride");
        System.out.println("Posizione CrashOverride: " + pos);
        
        Contenitore contenitore2 = new Contenitore(3);
        contenitore2.setProgramma(p1, 0);
        contenitore2.setProgramma(p3, 1);
        
        int comuni = contenitore1.confrontaContenitore(contenitore2);
        System.out.println("Programmi in comune: " + comuni);
    }
}

Output

Numero programmi: 3 Contenitore programmi: - ZeroCool - AcidBurn - CrashOverride Posizione CrashOverride: 2 Programmi in comune: 2