Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    problema con una funzione !! aiutino cercasi!!

    Ciao,
    Allora signori io dovrei realizzare questa funzione --Scrivere una funzione che, data un’auto, calcoli l’optional pi`u costoso associato a quell’auto--

    Avendo questi dati con le classi tutte realizzate e funzionanti:

    Si vuole realizzare un sistema informativo per gestire un concessionario. Il concessionario vende
    diverse tipologie di vetture; in particolare le tipologie possibili sono: automobile, motocicletta e veicolo
    commerciale. Di una vettura interessa conoscere la targa e il costo. Di un auto interessa conoscere la
    marca e la cilindrata. Inoltre un’auto `e dotata di una lista di optionals. Ciascun optional `e identificato
    mediante un codice, un nome ed un prezzo. Di una moto interessa conoscere la targa e se il motore `e
    a due oppure a quattro tempi. Di un veicolo commerciale interessa la portate. Ciascuna vettura pu`o
    essere acquistata da un cliente. Un cliente `e identificato da un codice fiscale, un nome, un cognome e
    una data di nascita. Un cliente pu`o, eventualmente, comprare pi`u vetture.

    cliente c1=new cliente("Brian","Jonhson","AC00DC00",12041958,list a_vettura1,lista_auto1);
    ho assegnato al cliente un ArrayList di moto e veicoli e una di auto.


    io ho fatto cosi...ma non va!!!!

    public static int funzione6(auto a){
    int opt=0;
    for(int i=0;i<a.getLista_opt().size();i++)
    if(a.getLista_opt().get(i).getprezzo()>opt)
    opt=a.getLista_opt().get(i).getprezzo();
    return opt;}

    Come devo fare?!?!?!?

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Usualmente per trovare il massimo in una lista si fa una cosa di questo tipo (escludendo l'uso della interfaccia Comparable e delle altre mirabolanti funzioni della classe util.Array):

    codice:
    double prezzoMassimo = 0;
    int index = -1;
    
    for (int i=0; i<lista.size(); i++)
    {
      double prezzoTmp = lista.get(i).getPrezzo();
      if (prezzoTmp > prezzoMassimo)
      {
        prezzoMassimo = prezzoTmp;
        index=i;
      }
    }
    Terminato il ciclo di for conosci sia il prezzo massimo sia l'indice dell'opzione che ha quel prezzo.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: problema con una funzione !! aiutino cercasi!!

    Originariamente inviato da rekrux
    cliente c1=new cliente("Brian","Jonhson","AC00DC00",12041958,list a_vettura1,lista_auto1);
    ho assegnato al cliente un ArrayList di moto e veicoli e una di auto.
    Giusto per capire ... quelle lista_vettura1 e lista_auto1 sono le liste di vetture/auto acquistabili????

    Se è così, sei sicuro che sia un buon "design" che un cliente abbia riferimenti a tutto ciò che è acquistabile???
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    si in effetti dovrei modificare il cliente; come mi consigli di fare,dato che il cliente può comprare più di un' auto, moto o veicoli commerciali.
    Per quanto riguarda la funzione GRAZIE 1000000

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rekrux
    si in effetti dovrei modificare il cliente; come mi consigli di fare,dato che il cliente può comprare più di un' auto, moto o veicoli commerciali.
    Beh, innanzitutto il cliente dovrebbe avere una lista dei veicoli che ha acquistato ..... che non vuol dire che al cliente devi passare una lista!!! Vuol dire che internamente all'oggetto cliente, nel suo "stato", ci dovrebbe essere una lista (es. ArrayList) di veicoli.
    E la classe del cliente potrebbe avere un metodo: void acquista(Veicolo v) appunto per aggiungere un veicolo alla sua lista.

    Ora però ci sarebbe un'altra questione concettuale. Se pensiamo sul piano "fisico", se io possiedo un veicolo ... è chiaro che non lo possiedi tu ... non può essere "duplicato". Gli oggetti Java non sono cose fisiche ... quindi cosa impedirebbe di far acquistare a 2 clienti diversi lo stesso veicolo???

    A questo punto sarebbe appropriato che un veicolo abbia un riferimento al cliente che l'ha acquistato!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    No non importa se lo stesso veicolo può essere comprato da più clienti,però mi puoi dire
    assegno un riferimento ad ogni veicolo di un cliente!?!?! Comunque Grazie del consiglio.
    Vorrei inoltre creare una funzione che data un auto venga restituito il numero di optionals di cui essa è dotata.Ho fatto così:

    public int numero_opt(){
    return this.lista_opt.size();}

    Posizionata all'interno della classe auto;Se la richiamo nel main così a1.numero_opt(); mi da errore;

    Poi ho provato a realizzarne un'altra di funzione ,una funzione che, dato un cliente C, restituisca la spesa storica di C, ovvero la somma
    che C ha globalmente speso per comprare veicoli nel passato.
    Ma non ci sono riuscito;

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da rekrux
    No non importa se lo stesso veicolo può essere comprato da più clienti
    Ah beh ... allora ....

    Originariamente inviato da rekrux
    però mi puoi dire assegno un riferimento ad ogni veicolo di un cliente!?!?!
    Scusa ma che vuoi dire??? All'interno di un oggetto Cliente ci deve essere una lista che contiene riferimenti ad oggetti Veicolo ... fin qui non ci piove!!

    Originariamente inviato da rekrux
    Vorrei inoltre creare una funzione che data un auto venga restituito il numero di optionals di cui essa è dotata.Ho fatto così:

    public int numero_opt(){
    return this.lista_opt.size();}

    Posizionata all'interno della classe auto;Se la richiamo nel main così a1.numero_opt(); mi da errore;

    Poi ho provato a realizzarne un'altra di funzione ,una funzione che, dato un cliente C, restituisca la spesa storica di C, ovvero la somma
    che C ha globalmente speso per comprare veicoli nel passato.
    Ma non ci sono riuscito;
    Non fai prima a postare il codice che hai scritto?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Si per i riferimenti mi sono confuso.
    Poi per la funzione che data un auto restituisce il numero di optionals il codice della funzione e quella che ho postato prima.
    Forse intendi il codice dell'intera classe auto !

    Per l'altra funzione nn riesco proprio a sviluppare una funz. , puoi dirmi come agire??

    Grazie per la pazienza ..

  9. #9

    CODICE CLASSE AUTO

    public class auto extends vettura {

    private String marca;
    private int cilindrata;
    private ArrayList<optional>lista_opt;

    public auto(){super();}
    public auto(String m,int ci,ArrayList<optional>lista_opt,int c,String t){
    super(c,t);
    setMarca(m);
    setCilindrata(ci);}

    public void setMarca(String marca) {
    this.marca = marca;
    }
    public String getMarca() {
    return marca;
    }
    public void setCilindrata(int cilindrata) {
    this.cilindrata = cilindrata;
    }
    public int getCilindrata() {
    return cilindrata;
    }
    public void setLista_opt(ArrayList<optional> lista_opt) {
    this.lista_opt = lista_opt;
    }
    public ArrayList<optional> getLista_opt() {
    return lista_opt;
    }

    void stampa(){
    super.stampa();
    System.out.println("Marca del auto= "+marca);
    System.out.println("Cilindrata del auto= "+cilindrata);
    System.out.println("Optional del auto= "+lista_opt);}

    void inserisci(){
    Scanner in=new Scanner(System.in);
    super.inserisci();
    System.out.println("Marca= ");
    marca=in.next();
    System.out.println("Cilindrata= ");
    cilindrata=in.nextInt();}

    public void OptionalPiuCostoso(){

    double prezzoMassimo = 0;
    int index = -1;

    for (int i=0; i<lista_opt.size(); i++)
    {
    double prezzoTmp = lista_opt.get(i).getPrezzo();
    if (prezzoTmp > prezzoMassimo)
    {
    prezzoMassimo = prezzoTmp;
    index=i;}}}

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: CODICE CLASSE AUTO

    Originariamente inviato da rekrux
    public class auto extends vettura { .... }
    A parte la indentazione non appropriata e l'uso di identificatori che non seguono le convenzioni Sun, ci sono alcune cose che non "quadrano".

    - Il secondo costruttore ha un parametro ArrayList<optional>lista_opt ma poi non lo usi! (quindi che ti servirebbe?)

    - Mettere dei metodi come stampa() e inserisci() che fanno input/output purtroppo è la solita storia: non è un buon "design" .... questa tua classe dovrebbe essere solo un semplice "bean", che contiene dati e basta. Niente I/O ... questo lo farai da qualunque altra parte!!!!

    - In OptionalPiuCostoso() hai usato una variabile index che non ho idea a cosa ti serva ..... e alla fine di quel 'prezzoMassimo' non ne fai nulla .... (dovresti farlo restituire dal metodo, no?)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.