Aiuto esame di informatica

jonziponzionzi

Nuovo Utente
3
0

Ho questa traccia per l'esame di informatica
Si vuole realizzare un sistema informativo per gestire un’agenzia di viaggi. In particolare, il sistema deve consentire di memorizzare i clienti dell’agenzia. Per ciascun cliente occorre memorizzare il nome, il cognome e la data di nascita. Un cliente può prenotare uno o più soggiorni in hotel. Per ciascun hotel occorre memorizzare il nome, la località e il numero di stelle. Ogni hotel fornisce dei servizi. Di ogni servizio occorre memorizzare il nome ed il costo. Un cliente può acquistare uno o più biglietti ferroviari. Per ciascun biglietto occorre registrare la data di emissione, il costo ed i giorni validità. Un cliente può infine comprare un biglietto aereo. Per ciascun biglietto aereo bisogna registrare la data di emissione, il costo e la compagnia aerea.

Con riferimento allo scenario sopra descritto, si chiede di risolvere i seguenti punti:
1. Modellare in Java lo scenario sopra descritto. Dotare ciascuna delle classi individuate in fase di analisi di un costruttore. Dotare ciascuna delle classi dei metodi di accesso giudicati opportuni.
2. Scrivere una funzione che, dato un cliente C e una località L, restituisca il numero di soggiorni effettuati da C in un albergo sito nella località L.
3. Scrivere una funzione che, dato un cliente C, restituisca la spesa storica di C in biglietti ferroviari, ovvero la somma che C ha globalmente speso per comprare biglietti ferroviari.
4. Scrivere una funzione che riceve in ingresso un intero x e un cliente C e restituisce true se C ha soggiornato solo in hotel aventi un numero di stelle superiore a x.
5. Scrivere una funzione che, dato un cliente, restituisca il biglietto ferroviario più costoso da lui acquistato.
6. Scrivere una funzione che, dato un cliente, restituisca true se è maggiorenne.
7. Scrivere una funzione che, dato un biglietto ferroviario, restituisca true se è valido alla data attuale.
8. Scrivere una funzione che, dato un cliente, restituisca la compagnia aerea dell'ultimo biglietto aereo acquistato.
9. Scrivere una funzione che, dato un hotel, restituisca il servizio più costoso.
10. Scrivere una funzione che, dato un cliente, restituisca il servizio più costoso di ogni albergo in cui ha soggiornato.
11. Scrivere una funzione che, dato un cliente, restituisca true se ha sempre viaggiato con la compagnia “Alitalia”.

Si suggerisce di utilizzare i seguenti metodi della classe Calendar:
• Calendar set(int anno, int mese, int giorno)
• void getInstance()
• boolean after(Object altraData)
Questo è il pezzo di codice che ho scritto riguardo la classe cliente però non so come inserire la data usando Calendar
ackage progetto;
import java.util.*;
class Cliente {
String nome;
String cognome;
Calendar data_di_nascita;
public Cliente(){}
public Cliente(String n, String c, Calendar data) {
this.nome = n;
this.cognome = c;
this.data_di_nascita = data;
}
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public String getCognome(){
return cognome;
}
public void setCognome(String cognome){
this.cognome = cognome;}
public void inserisci(){
Scanner in=new Scanner(System.in);
System.out.println("nome=");
nome=in.next();
System.out.println("Cognome=");
cognome=in.next();
}
}
Qualsiasi consiglio è utile
 

cawletto

Utente Attivo
475
25
CPU
i5 750
HDD
1 TB
RAM
6 GB
GPU
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
PSU
Cooler Master Silent Pro M 600 W
Case
HP
OS
Windows 7-64 bit
Non sembra difficile difficile..lungo piuttosto! Comunque non ho capito sinceramente qual è la tua domanda..vuoi che ti scriviamo l'intero codice o cosa?
 

Mr Storm

Utente Attivo
77
19
CPU
Intel Core i5 750
Scheda Madre
Asus P7P55D Deluxe
HDD
500 GB
RAM
Corsair 8GB DDR3 1600 MHz
GPU
Sapphire HD5850
Monitor
Asus VK222H 22"
PSU
OCZ ModXstream Pro 700W
OS
Windows 7 Professional x64
Innanzitutto stai attento che Calendar è una classe astratta, dunque non puoi istanziarla direttamente, ma devi usare una sottoclasse concreta che la estenda; una di queste è la GregorianCalendar.

Supponiamo che tu riceva in input, oltre a nome e cognome, anche giorno mese ed anno:

Codice:
...
int giorno, mese, anno;
/* Leggi i dati dallo standard input, convertili e inseriscili nelle apposite variabili */
Calendar data = new GregorianCalendar(anno, mese, giorno);
/* Quando richiami il costruttore del cliente, passerai data come oggetto Calendar */
...

Maggiori informazioni su Calendar e GregorianCalendar (come di tutte le classi delle API Java), puoi trovarle online sul sito di Oracle; ecco i links:
Calendar (Java 2 Platform SE v1.4.2)
GregorianCalendar (Java 2 Platform SE v1.4.2)
 

cawletto

Utente Attivo
475
25
CPU
i5 750
HDD
1 TB
RAM
6 GB
GPU
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
PSU
Cooler Master Silent Pro M 600 W
Case
HP
OS
Windows 7-64 bit
devi usare una sottoclasse perchè è una classe stratta .. mi ha preceduto mr storm.. comunque la classe calendar contiene metodi molto utili che trovi nella documentazione ufficiale..

Java Platform SE 6
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!