• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto [JAVA] Vettore di oggetti TEST

LoScroccone

Utente Assiduo
Autore del topic
26 Dicembre 2010
536
0
Miglior risposta
0
Ciao ragazzi, vi spiego un po la situazione, sono uno studente e tra un due giorni avrò il test di informatica che tratterà di vettori di oggetti in java. Uso eclipse come IDE.

Fino ad ora ho programmato programmi con i seguenti testi:
Scrivi un programma (classe con solo main) per gestire i libri disponibili in una libreria (massimo 50). Ad ogni libro e' assciato un codice (intero progressivo), un titolo, un numero di copie, un prezzo (in euro), un editore e un autore.
Si deve permettere:
1- la modifica del numero di copie di un libro presente in libreria (dato il suo codice).
2- la visualizzazione del prezzo di un libro dato il suo codice.
3- la visualiz. del numero di copie presenti dato il codice del libro.
4- la visualiz. del totale dei libri della libreria.
5- la visualiz. dei libri più costosi.
6- la visualizzazione dei libri il cui titolo e' lungo 4 caratteri.
7- la visualiz. dei libri di un certo autore.

poi :
Dopo aver costruito la classe automobile con marca, modello, descrizione, prezzo minimo, prezzo massimo e num esemplari scrivi un programma (classe con solo main) per gestire, utilizzando un vettore di oggetti le automobili di una concessionaria.*
Il programma deve permettere
1- inserimento di una nuova automobile in coda al vettore assegnandole un codice numerico progressivo a partire da 1000.
2- il controllo della presenza di un'automobile nel vettore di automobili del concessionario (dopo aver acquisito da tastiera il codice).
3- la modifica del numero di esemplari di una quantita' (positiva o negativa), dato il modello e la marca dell'automobile.
4- l'elenco dei modelli delle automobili di una certa marca.
5- tutte le informazioni di una automobile, dato il suo codice.
6- il valore complessivo di tutte le automobili della concessionaria (in base al prezzo medio di ciascuna)
7- l'elenco delle automobili in ordine di prezzo minimo e di modello.
8- il numero dei diversi modelli presenti.

poi ho fatto anche :
classe persone, dati n persone e visualizzare persone*che si chiamano pippo e le persone piu' anziane e le persone*che hanno il nome che termina con O.

[size=medium]Ragazzi non vi chiedo di farmi un esercizio da capo ma di scrivermi una consegna in base agli esercizi precedenti così da poterlo fare insieme.[/size]
didatticamente so fare il tostring con il return per esempio nel caso delle automobili, il return con marca modello ecc ecc..
anche il booleano equals che confronta due vettori di oggetti
ovviamente set e get
costruttori con il passaggio di parametri (marca modello prezzomin prezzomax ecc), costruttore senza paramentri *( che incrementa automoticamente per esempio il codice).

Ecco un esercizio da me fatto*




Codice:
Perfavore, Entra oppure Registrati per vedere i codici!



Ci sono molti errori nell'esercizio, perchè quello completo ce l'ho nell'altro pc, questo e' un più o meno di quello che so fare e che c'è nel test (il numero 7 però non sono completamente riuscito a farlo).
Help me :emoji_slight_smile:*

*
 
Ciao ragazzi, vi spiego un po la situazione, sono uno studente e tra un due giorni avrò il test di informatica che tratterà di vettori di oggetti in java. Uso eclipse come IDE.

Fino ad ora ho programmato programmi con i seguenti testi:
Scrivi un programma (classe con solo main) per gestire i libri disponibili in una libreria (massimo 50). Ad ogni libro e' assciato un codice (intero progressivo), un titolo, un numero di copie, un prezzo (in euro), un editore e un autore.
Si deve permettere:
1- la modifica del numero di copie di un libro presente in libreria (dato il suo codice).
2- la visualizzazione del prezzo di un libro dato il suo codice.
3- la visualiz. del numero di copie presenti dato il codice del libro.
4- la visualiz. del totale dei libri della libreria.
5- la visualiz. dei libri più costosi.
6- la visualizzazione dei libri il cui titolo e' lungo 4 caratteri.
7- la visualiz. dei libri di un certo autore.

poi :
Dopo aver costruito la classe automobile con marca, modello, descrizione, prezzo minimo, prezzo massimo e num esemplari scrivi un programma (classe con solo main) per gestire, utilizzando un vettore di oggetti le automobili di una concessionaria.*
Il programma deve permettere
1- inserimento di una nuova automobile in coda al vettore assegnandole un codice numerico progressivo a partire da 1000.
2- il controllo della presenza di un'automobile nel vettore di automobili del concessionario (dopo aver acquisito da tastiera il codice).
3- la modifica del numero di esemplari di una quantita' (positiva o negativa), dato il modello e la marca dell'automobile.
4- l'elenco dei modelli delle automobili di una certa marca.
5- tutte le informazioni di una automobile, dato il suo codice.
6- il valore complessivo di tutte le automobili della concessionaria (in base al prezzo medio di ciascuna)
7- l'elenco delle automobili in ordine di prezzo minimo e di modello.
8- il numero dei diversi modelli presenti.

poi ho fatto anche :
classe persone, dati n persone e visualizzare persone*che si chiamano pippo e le persone piu' anziane e le persone*che hanno il nome che termina con O.

[size=medium]Ragazzi non vi chiedo di farmi un esercizio da capo ma di scrivermi una consegna in base agli esercizi precedenti così da poterlo fare insieme.[/size]
didatticamente so fare il tostring con il return per esempio nel caso delle automobili, il return con marca modello ecc ecc..
anche il booleano equals che confronta due vettori di oggetti
ovviamente set e get
costruttori con il passaggio di parametri (marca modello prezzomin prezzomax ecc), costruttore senza paramentri *( che incrementa automoticamente per esempio il codice).

Ecco un esercizio da me fatto*




Codice:
Perfavore, Entra oppure Registrati per vedere i codici!



Ci sono molti errori nell'esercizio, perchè quello completo ce l'ho nell'altro pc, questo e' un più o meno di quello che so fare e che c'è nel test (il numero 7 però non sono completamente riuscito a farlo).
Help me :emoji_slight_smile:*

*

il codice presenta un po di errori
1: manca la parentesi di chiusura del costruttore
2. Il metodo ToString è ereditato dalla classe Object , che tutte le classi ereditano e la firma del metodo è
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
è buona norma in java , come previsto dallo standard , che quando si ridefinisce un metodo bisogna usare i tag in questo caso @Ovveride.

3.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

qui è tutto sbagliato , non servono i ;

4.
Conversioni ridondanti.
ValueOf serve per "trasformare " un valore primitivo in stringa o nel wrapper corrispondente
Questa è la soluzione migliore

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

5.Menu
per logica inutile forzare il controllo di un ciclo , usa un do while
6.Gestione eccezioni
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
catturare un eccezione , senza gestirla sarebbe da bocciatura istantanea se proprio ti secca gestire l'eccezione usa throws nel main e la lanci alla jvm , l'eccezione che genera comunque è una IOException
7. (Opzionale)
Potresti usare uno switch


Sposto in assistenza tecnica
 
2. Il metodo ToString è ereditato dalla classe Object , che tutte le classi ereditano e la firma del metodo è
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
è buona norma in java , come previsto dallo standard , che quando si ridefinisce un metodo bisogna usare i tag in questo caso @Ovveride.

3.
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

qui è tutto sbagliato , non servono i ;

4.
Conversioni ridondanti.
ValueOf serve per "trasformare " un valore primitivo in stringa o nel wrapper corrispondente
Questa è la soluzione migliore

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

5.Menu
per logica inutile forzare il controllo di un ciclo , usa un do while
6.Gestione eccezioni
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
catturare un eccezione , senza gestirla sarebbe da bocciatura istantanea se proprio ti secca gestire l'eccezione usa throws nel main e la lanci alla jvm , l'eccezione che genera comunque è una IOException
7. (Opzionale)
Potresti usare uno switch


Sposto in assistenza tecnica

2- lo so che e' ereditato ma lo vuole ugualmente scritto, si scrive sempre lo string dopo il public?
3- non so perchè mi ha messo gli ; o.ò
4- fa fare così quindi se non lo faccio mi becco subito un 2.. non ci posso fare niente ;S
5- do while oppure switch. ok.
6- hai ragione.

grazie per le risposte ma alla domanda principale non hai risposto
 
2- lo so che e' ereditato ma lo vuole ugualmente scritto, si scrive sempre lo string dopo il public?
3- non so perchè mi ha messo gli ; o.ò
4- fa fare così quindi se non lo faccio mi becco subito un 2.. non ci posso fare niente ;S
5- do while oppure switch. ok.
6- hai ragione.

grazie per le risposte ma alla domanda principale non hai risposto

si ci vuole perché devi specificare il tipo che ritorna , tra l'altro noto lo stesso errore con tutti i metodi della classe automobile .
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

riguardo al numero 7 si tratta di una algoritmo di ordinamento , puoi usare il Bubble Sort o qualsiasi altro algoritmo di ordinamento . Poi noto altri errori

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

se usi un tipo void , non puoi restituire nulla al chiamate, il return non serve.
quando controlli il valore 0 nel menu , usa System.exit(0) è orribile vedere quel return

Riguardo al 3° problema bisogna usare il metodo .EndsWith e un algoritmo di ordinamento ^^
 
quando controlli il valore 0 nel menu , usa System.exit(0) è orribile vedere quel return
funziona lo stesso con il return?

Riguardo al 3° problema bisogna usare il metodo .EndsWith e un algoritmo di ordinamento ^^
aspe quale problema dici?

non rispondi alla principale richiesta :cry:
 
funziona lo stesso con il return?


aspe quale problema dici?

non rispondi alla principale richiesta :cry:

te l'ho appena detto come fare

7- l'elenco delle automobili in ordine di prezzo minimo e di modello.

In ordine di prezzo minimo basta eseguire un algoritmo di ordinamento sul vettore idem per il modello. ^^

classe persone, dati n persone e visualizzare persone*che si chiamano pippo e le persone piu' anziane e le persone*che hanno il nome che termina con O.

mi riferivo a questo problema qua
 
non ho capito

quindi devo farti un esempio di algoritmo di ordinamento , ti mostro uno semplice.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ora nel tuo caso devi mettere in ordine il vettore secondo il prezzo minimo e di modello , che sono membri della classe quindi devi usare l'opportuno metodo che ti ritorna il prezzo minimo. ^^

N.b funziona lo stesso con il return , ma secondo lo standard usare return in un metodo void è errato
 
Ultima modifica:
In sostanza vuoi scritto lo pseudocodice ?

già

quindi devo farti un esempio di algoritmo di ordinamento , ti mostro uno semplice.

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ora nel tuo caso devi mettere in ordine il vettore secondo il prezzo minimo e di modello , che sono membri della classe quindi devi usare l'opportuno metodo che ti ritorna il prezzo minimo. ^^

N.b funziona lo stesso con il return , ma secondo lo standard usare return in un metodo void è errato

Non intendevo quello, certo che l'algoritmo di ordinamento lo so fare ..
 
allora perché non hai fatto il punto 7?



se sai fare un l'algoritmo di ordinamento non capisco dove sia la difficoltà :emoji_confused:

infatti non c'è nessuna difficoltà, chiedevo un problema da svolgere insieme a voi, visto che la mia fantasia e' limitata :facepalm:

- - - Aggiornato - - -

Ragazzi, ne ho trovato due online:

Una catena di autonoleggio deve gestire con un sistema informatico i propi veicoli; per ogni veicolo devono essere memorizzate le seguenti informazioni: codice, targa, marca, modello, numero di posti. Si intende progettare una possibile soluzione per la gestione infromatica di quasi 1000 veicoli avente le seguenti funzionalità:
- aggiunta di un veicolo (il codice deve essere progressivo)
- eliminaz. di un veicolo dato il codice o targa
- ricerca delle informazioni di un veicolo dato il codice o targa.
- ricerca di tutti i veicoli aventi un dato numero di posti (Eeeeehh?? cioè? tipo ricerco i veicoli con 2 o 3 posti?.. secondo voi?)
- effettuare l'inventario di quante macchine per ogni marca dispone l'autonoleggio, nella forma marca, numero veicoli.
- ordinare la lista per marca e modello.

l'altro lo scrivo domani perora penso a questo.

Domani lo compilo e vi faccio sapere
saluti:grazie:
 
Ultima modifica:
infatti non c'è nessuna difficoltà, chiedevo un problema da svolgere insieme a voi, visto che la mia fantasia e' limitata :facepalm:

il thread principale quello chiedeva ... va ba a questo punto lo considero risolto quello , tra l'altro riguardo alla fantasia ...:look: anche io ne ho poca. Prendi qualche libro di informatica e fatti tutti i problemi relativi alle classi e alla sua gestione ^^

N.b il regolamento prevede un problema per volta.
 
Eccomi ragazzi mi sono messo a farlo

ecco qui la classe autonoleggio

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

invece qui la classe usaAutonoleggio

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Metto i commenti nelle parentesi per non confondermi.
1- il problema e' perchè mi da problemi quando nel punto 2 digito codice oppure targa e mi dice valore non valido??.
2- secondo problema nei //bho perchè come faccio a eliminare un oggetto? come faccio ad accedere come puntatore a quella cella che punta all'oggetto? ho fatto i puntatori in c++ e qui so che non si usano o per lo meno sono nascosti.
3- Datemi uno spunto come fare il punto 6 pls

help me :emoji_slight_frown: :emoji_slight_frown:
@TBH
 
Ultima modifica:
@LoScroccone

ho detto un problema per volta , al prossimo apri un altro thread :|
comunque perché creare 1000 elementi di tipo autonoleggio , fatti dare semplicemente il numero in input, e leva quei benedetti return dal main.
1- Semplice perché stai chiedendo di controllare se fanno riferimento allo stesso oggetto. devi usare .equals (s2 è ridondante e fastidiosa)
2-Assegna il suo riferimento a null , non puoi gestire il riferimento a proprio piacimento . Usa il costrutto condizionale if-else if else
3-sai usare l'interfaccia comparator e conosci i Generic? se si usala specificandola nel metodo arrays.sort(Object t[],Comparator<? Super T>c)
 
Ultima modifica:
@LoScroccone

ho detto un problema per volta , al prossimo apri un altro thread :|
comunque perché creare 1000 elementi di tipo autonoleggio , fatti dare semplicemente il numero in input, e leva quei benedetti return dal main.
1- Semplice perché stai chiedendo di controllare se fanno riferimento allo stesso oggetto. devi usare .equals (s2 è ridondante e fastidiosa)
2-Assegna il suo riferimento a null , non puoi gestire il riferimento a proprio piacimento . Usa il costrutto condizionale if-else if else
3-sai usare l'interfaccia comparator e conosci i Generic? se si usala specificandola nel metodo arrays.sort(Object t[],Comparator<? Super T>c)

1- ho rieditato la classe

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

va bene?
però mi dice dopo che inserisco il codice: inserimento non valido..

2- ok. quando assegno a null poi non devo riordinare?
3- no, non l'abbiamo fatto

il problema è questo l'altro l'avevo già risolto
 
Ultima modifica:
@LoScroccone lo immaginavo :emoji_relieved: , comunque giusto una cosa per ordinamento modello e marca significa che devi prima ordinare per modelloe poi ordinare per marca quel determinato modello.
I passi da seguire , se ho interpretato la richiesta sarebbero questi :

1-Ordinare secondo il modello (metodo per le stringhe usare CompareTo() )
2-Creare n vettori per ogni modello
3-Ordinare le marche di quel modello
4- Re -inserire il tutto nel vettore o semplicemente stampare i dati

comunque ti spiego che restituisce CompareTo(String f);

>0 se la stringa chiamante è maggiore del parametro f
0 se la stringa chiamante è uguale al parametro f
<0 se la stringa chiamante è minore del parametro f
 
@LoScroccone lo immaginavo :emoji_relieved: , comunque giusto una cosa per ordinamento modello e marca significa che devi prima ordinare per modelloe poi ordinare per marca quel determinato modello.
I passi da seguire , se ho interpretato la richiesta sarebbero questi :

1-Ordinare secondo il modello (metodo per le stringhe usare CompareTo() )
2-Creare n vettori per ogni modello
3-Ordinare le marche di quel modello
4- Re -inserire il tutto nel vettore o semplicemente stampare i dati

comunque ti spiego che restituisce CompareTo(String f);

>0 se la stringa chiamante è maggiore del parametro f
0 se la stringa chiamante è uguale al parametro f
<0 se la stringa chiamante è minore del parametro f

ma usando gli equals non confronto stringhe? con CompareTo si confrontano le lunghezze?

ho fatto questo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
ma usando gli equals non confronto stringhe? con CompareTo si confrontano le lunghezze?

ho fatto questo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

compareTo serve per comparare delle stringhe e metterle in ordine alfabetico , dato che la marca nella classe automobile è una stringa. ^^
per la precisione ,string implementa comparable<T>. Non devi usare equals si limita solo a controllare se è uguale al modello successivo e non serve

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Marca è un'altra classe ,che avrà un unico costruttore che accetta una stringa.
n.b il codice l'ho scritto velocemente quindi mancano delle parentesi
 
  • Like
Reactions: 1 person
compareTo serve per comparare delle stringhe e metterle in ordine alfabetico , dato che la marca nella classe automobile è una stringa. ^^
per la precisione ,string implementa comparable<T>. Non devi usare equals si limita solo a controllare se è uguale al modello successivo e non serve

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
Marca è un'altra classe ,che avrà un unico costruttore che accetta una stringa.
n.b il codice l'ho scritto velocemente quindi mancano delle parentesi

quindi se devo confrontare due stringhe per esempio auto.getModello con s1 (che contiene pippo) devo fare compareTo e non equals?
Quand'è che devo fare equals? tipo quando devo fare auto.getModello().equals(auto[i+1].getModello()); ?

nell'ordinamento non ti seguo.. devo creare un nuovo vettore che contiene modelli?