Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[JAVA] Vettore di oggetti TEST
#1
Ciao ragazzi, sono nuovo del forum e mi rendo conto che sto scrivendo in un forum preparato Smile . 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.

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.
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:
class automobile {
private String marca;
private int modello;
private String descrizione;
private int prezzomin;
private int prezzomax;
private int nesemplari;
private static int cont=0;
private int codice;
private int media;

public automobile(marca,modello,descrizione,prezzomin,prezzomax,nesemplari){
this.marca=marca;
this.modello=modello;
this.descrizione=descrizione;
this.prezzomin=prezzomin;
this.prezzomax=prezzomax;
this.nesemplari=nesemplari;
codice=cont+1;
cont++;

public void getMarca(){return marca;}
public void getModello(){return modello;}
public void getDescr(){return descrizione;}
public void getPrmin(){return prezzomin;}
public void getPrmax(){return prezzomax;}
public void getEsemplari(){return nesemplari;}
public void getCodice (){return codice;}
public void setEsemplari(nesemplari){this.nesemplari=nesemplari;}

public toString(){
return ("Marca "+marca+" modello "+modello+" descrizione "+descrizione+" prezzo minimo "+prezzomin+ " prezzo massimo "+prezzomax+" numero di esemplari "+nesemplari+" codice "+codice);

public getMediaCosto (){
media=(prezzomin+prezzomax)/nesemplari;
return media;
public boolean equals(automobile car){
return (marca.equals(car.marca)) &&;(modello.equals(car.modello)) &&;(descrizione.equals(car.descrizione))&& (prezzomin.equals(car.prezzomin))&& (prezzomax.equals(car.prezzomax)) && (nesemplari.equals(car.nesemplari))}

}
}

Import java.io.*;

public static void main (String arg){
InputStreamReader tastiera=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader (tastiera);

String inputt;
String marca;
String smodello;
int modello=0;
String descrizione;
String sprezzmin;
int prezzomin=0;
String sprezzmax;
int prezzomax=0;
String snesemplari;
int nesemplari;
String scodice;
int codice=0;
int modellodiv=0;
String smod;
int mod=0;

try{
System.out.println("Iniziare con aggiungere le informazioni di un auto? (Y/N)");
if(inputt.equals('Y')){


System.out.println("Inserire marca");
marca= input.readLine();

System.out.println("Inserire modello (cifre)");
smodello=input.readLine();
modello=Integer.valueOf(smodello).intValue();

System.out.println("Inserire descrizione");
descrizione=input.readLine();

System.out.println("Inserire prezzo minimo");
sprezzmin=input.readLine();
prezzomin=Integer.valueOf(sprezzmin).intValue();

System.out.println("Inserire il prezzo massimo");
sprezzmax=input.readLine();
prezzomax=Integer.valueOf(sprezzmax).intValue();

System.out.println("Inserire il numero di esemplari");
snesemplari=input.readLine();
nesemplari=Integer.valueOf(snesemplari).intValue();
}
if(inputt.equals('N')){

System.out.println("!!!! Attenzione !!!! Prima di cominciare e' consigliato aggiungere almeno un'auto. ");
}
}
catch(){}

automobile car=new automobile[200];

car[0]=new automobile (marca,modello,descrizione,prezzomin,prezzomax,nesemplari);

int scelta=99;
int n=0;
String sn;



while (scelta!=0){
System.out.println("********Menu'********");
System.out.println("0- Esci");
System.out.println("1- Inserire n automobili.");
System.out.println("2- Controllo della presenza di un automobile (tramite codice).");
System.out.println("3- Modifica il numero di esemplari (tramire marca e modello dell'auto).");
System.out.println("4- Visualizzare i diversi modelli delle automobili (tramite marca.");
System.out.println("5- Visualizzare tutte le informazioni dell'automobile (tramite codice).");
System.out.println("6- Il valore medio di tutte le automobili presenti.");
System.out.println("7- Visualizzare le automobili in ordine di prezzo minimo e modello.");
System.out.println("8- Il numero dei diversi modelli presenti.");

if(scelta==0) return;
if (scelta==1){
System.out.println("Inserire quante automobili aggiungere: ");
sn=input.readLine();
n=Integer.valueOf(sn).intValue();

for(int i=1;i<n;i++){
try{
System.out.println("Inserire marca");
marca= input.readLine();

System.out.println("Inserire modello (cifre)");
smodello=input.readLine();
modello=Integer.valueOf(smodello).intValue();

System.out.println("Inserire descrizione");
descrizione=input.readLine();

System.out.println("Inserire prezzo minimo");
sprezzmin=input.readLine();
prezzomin=Integer.valueOf(sprezzmin).intValue();

System.out.println("Inserire il prezzo massimo");
sprezzmax=input.readLine();
prezzomax=Integer.valueOf(sprezzmax).intValue();

System.out.println("Inserire il numero di esemplari");
snesemplari=input.readLine();
nesemplari=Integer.valueOf(snesemplari).intValue();
}
catch (Exception e){
System.out.println("Valore non valido!! :( ");
}
car[i]=new automobile (marca,modello,descrizione,prezzomin,prezzomax,nesemplari);
}
}
if(scelta==2){


System.out.println("Inserire il codice dell'automobile da ricercare");
String scerca=input.readLine();
int cerca=Integer.valueOf(scerca).intValue();

for (i=0;i<200;i++){
if(car[i]).getCodice().equals(codice)){
System.out.println("Trovato!");
}
}
}
if(scelta==3){
System.out.println("Inserire marca");
marca=input.readLine();
System.out.println("Inserire modello");
smodello=input.readLine();
modello=Integer.valueOf(smodello).intValue();

for(int i=0;i<200;i++){
if(car[i].getMarca().equals(marca)&& car[i].getModello.equals(modello)){
System.out.println("Inserire il nuovo numero di esemplari:");
smod=input.readLine();
mod=Integer.valueOf(smod).intValue();
car[i].setEsemplari(mod);
}
}

}
if (scelta==4){
System.out.println("Inserisci la marca ");
marca=input.readLine();
for(int i=0;i<200;i++){
if(car[i].getMarca.equals(marca)) car[i].toString;
}

}
}
if (scelta==5){
System.out.println("Inserisci il codice:");
scodice=input.readLine();
codice=Integer.valueOf(scodice).intValue();
for(int i=0;i<200;i++)
if (car[i].getCodice.equals(codice)) car[i].toString();
}

}
if (scelta==6){
for (int i=0;i<200;i++){
int mediatot+=car[i].getMediaCosto();
}
System.out.println("Il costo complessivo delle medie e' "+mediatot);

}
if (scelta==7){












}

if(scelta==8){
for(int i=0;i<200;i++){
if(car[i].getModello.equals(car[i+1].getModello))
else modellodiv++;
}
}
System.out.println("Ci sono "+modellodiv+" modelli diversi.");
}


}



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 Smile 
Cita messaggio
Grazie da:
#2
visto che il test è tra 2 giorni sarebbe stato meglio domandare una settimana fa

La tua domanda non è per nulla chiara...
non vuoi l'esercizio (e questo è poco ma sicuro altrimenti non imparerai mai) ma vuoi una consegna.. e che roba è?
se intendi un giudizio te  lo dò subito:
I nomi di classe in Java per convenzione si scrivono per lettera maiuscola quindi
class Automobile {...}

l'attributo modello è un int? sicuro? Gofl GTI ti sembra un int? semmai è String
hai definito tutti i metodi get come void... tutto sbagliato, il tipo di ritorno deve essere identico al tipo dell'attributo a cui si riferiscono, per esempio deve essere
public String getMarca(...)
e così via per tutti gli altri

Giusto al volo, anche se non è così importante, la media di 2 interi non è detto che sia un intero...

Nel corpo del main non c'è bisogno di definire una variabile per ogni attributo di classe;
bastava creare un oggetto Automobile (per comodità definisci un costruttore vuoto)
Automobile a = new Automobile();
e poi, siccome hai solo attributi il cui tipo è String oppure int, basta 1 sola variabile a cui assegnare di volta in volta il valore da leggere, per esempio
String s = "" // solo inizialmente, man mano che leggi
int k = 0; // prezzi vari ecc

siccome da tastiera leggi solo stringhe, al più fai una conversione e la assegni a k
una volta letto un valore lo si assegna all'oggetto con un metodo set, per esempio
a.setMarca(s);
a.setPrezzo(k);

Hai messo una catch vuota, è impossibile, una catch deve catturare un'eccezione
la definizione del vettore di automobili è sbagliata, mancano le parentesi quadre

Va beh insomma, c'è troppo poco tempo per dirti come sarebbe meglio (secondo me però: il tuo professore potrebbe non essere d'accordo).
Il mio blog: ZEROZEROCENT.BLOGSPOT.COM
LEGGE DI MURPHY: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
VERSIONE QUANTISTICA DELLA LEGGE DI MURPHY: TUTTO VA MALE CONTEMPORANEAMENTE
Cita messaggio
Grazie da:
#3
Non so se questi piccoli esercizi ti potranno servire, se non altro per fare esercizio, appunto. sono tre files separati, in fondo gli esercizi, ma mi sembra che tu sia più avanti di questi livelli, vedi tu. Ciao

.pdf   java.pdf (Dimensione: 133,53 KB / Download: 4)

.pdf   java2.pdf (Dimensione: 110,44 KB / Download: 4)

.pdf   java3.pdf (Dimensione: 84,5 KB / Download: 4)
Cita messaggio
Grazie da:
#4
Grazie, sicuramente mi aiuta a chiarirmi di più le idee. ma non parla di nessun esercizio.. chiedevo un esercizio con testo e problema correlati.. Smile
Cita messaggio
Grazie da:
#5
Trovare esercizi bell'e pronti non è facile qui c'è un corso completo che ti può aiutare nei passaggi fondamentali

qui

questo continua, ho tralasciato la prima parte che era proprio per i concetti base tipo Hello World
Cita messaggio
Grazie da:
#6
Penso che Pabform ti abbia dato valide guide, facci sapere.
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)