Esami a.a. 2012/2013 - Fondamenti di Informatica B

Transcript

Esami a.a. 2012/2013 - Fondamenti di Informatica B
Università di Brescia
Corso di Laurea in Ingegneria Informatica
MODULO DI FONDAMENTI DI PROGRAMMAZIONE
Prof. Pietro Baroni
Indicazioni per il superamento della prova orale e pratica a.a. 2012/13
Per il superamento del modulo di Fondamenti di Programmazione è richiesto lo svolgimento di una
prova orale e pratica al calcolatore. Le date di svolgimento delle prove sono pubblicate sul sito di
Ateneo con l'indicazione "Prova di programmazione Java - Prof. Baroni".
Lo studente deve presentarsi con un CD, pen drive USB, o altro supporto di memorizzazione
utilizzabile su PC in ambiente Windows contenente lo svolgimento in linguaggio Java dei problemi
di programmazione riportati nel seguito.
È anche ammesso presentarsi all'esame con un proprio PC portatile, se preferito.
I primi 8 problemi specificati nell'elenco (fino a Titoli Azionari) sono obbligatori, mentre deve
essere sviluppato uno solo tra gli ultimi due (Gestione palestra oppure Gestione consorzio
mobilifici, la scelta tra i due è libera).
Ciascun programma Java corrispondente ad un esercizio dovrà essere memorizzato in una cartella
separata (con un nome significativo).
1. Polveri sottili
Si richiede lo sviluppo di un programma che permette all'utente l'inserimento dei valori giornalieri
di polveri sottili nell'aria rilevati nell'arco di una settimana e produce due tipi di allarmi: uno
riguardante il valore massimo uno riguardante il valore medio.
Una settimana è caratterizzata dall'anno solare al quale appartiene (p.e. 2008), dal numero della
settimana all'interno dell'anno (da 1 a 53) e dai 7 valori di polveri sottili misurati giornalmente.
Il programma dopo aver richiesto all'utente di inserire i dati riguardanti una settimana, effettua due
verifiche:
- se il valore massimo misurato durante la settimana supera una certa soglia prefissata (p.e. 75
mg/m3) viene dato un messaggio opportuno
- se il valore medio delle misure durante la settimana supera un'altra soglia prefissata (p.e. 50
mg/m3) viene dato un altro messaggio
Il funzionamento del programma dovrebbe essere ciclico: una volta inseriti e verificati i dati di una
settimana, si richiede all'utente se vuole uscire dal programma o inserire i dati di una nuova
settimana.
2. Quadrato magico
Si richiede lo sviluppo di un programma che permette all'utente l'inserimento di una matrice
quadrata di numeri interi positivi e verifica se si tratta di un quadrato magico. Una matrice quadrata
di numeri interi è un quadrato magico se sommando i numeri posti lungo qualsiasi colonna,
qualsiasi riga o una qualunque delle due diagonali si ottiene comunque lo stesso numero (detto
costante "magica" del quadrato) Un quadrato magico è interessante solo se composto da numeri tutti
diversi tra loro e ancor più se contiene numeri consecutivi a partire da 1. Il programma dovrebbe
essere in grado anche di verificare:
1) se i numeri contenuti nella matrice sono tutti diversi o ci sono numeri ripetuti
2) se i numeri contenuti nella matrice sono consecutivi a partire da 1
3. Archivio CD
Una persona possiede un certo numero di CD musicali e desidera organizzare il proprio archivio
tramite uno strumento software. Il programma deve permettere l'inserimento di nuovi CD nella
collezione, la visualizzazione e la rimozione degli stessi, la selezione di un brano a caso estratto
dall'intera collezione. Ciascun CD è contraddistinto da autore, titolo e dall'elenco dei brani contenuti
con le rispettive durate. In fase di creazione il programma deve richiedere l'input da tastiera dei dati
necessari. Si suppone che ogni CD abbia un titolo univoco: il programma deve impedire
l'inserimento se il titolo coincide con uno già presente.
4. Carta più alta
Scrivere un programma che gioca a "carta più alta" tra computer ed utente.
Il programma chiede di scegliere tra carte italiane o francesi e quindi inizia il gioco che si svolge
secondo le seguenti modalità. Il computer fa il banco e si assume infinitamente ricco, mentre
l'utente deve dichiarare il valore della sua disponibilità di denaro. Quindi ciclicamente il banco
estrae una carta a caso e la propone all'utente, che decide quanto puntare sulla carta (a partire da un
minimo di 1 euro e fino al massimo della sua disponibilità). Quindi viene estratta casualmente la
carta del banco e, a seconda che sia maggiore o minore dell'altra, la scommessa viene o vinta o
persa dall'utente, che in questo modo vede incrementare o diminuire la sua disponibilità. In caso di
carte pari, si procede a una nuova estrazione.
Il gioco continua fino a quando l'utente decide di ritirarsi o quando la sua disponibilità si esaurisce.
5. Medagliere olimpico
Si richiede lo sviluppo di un programma per la gestione del medagliere olimpico Il programma deve
prevedere le seguenti funzionalità principali:
1) introduzione elenco nazioni e gare
Per ciascuna nazione e gara si richiede l'inserimento della denominazione. Il programma verifica
che il nome di ciascuna nazione/gara non sia vuoto e che il nuovo nome inserito non sia già presente
nell'elenco.
2) introduzione del risultato di una o più gare
Il programma richiede all'utente il nome della disciplina di cui inserire il risultato e assicura che sia
presente nell'elenco delle discipline (facoltativamente si controlla anche che il risultato di tale
disciplina non sia già stato inserito in precedenza).
Il programma richiede quindi i nomi delle nazioni vincitrici delle tre medaglie Il programma
assicura che il nome di ciascuna nazione sia presente nel relativo elenco e aggiorna il conteggio
delle medaglie.
3) visualizzazione del medagliere
Il programma mostra l'elenco delle nazioni con il numero di medaglie vinte per ciascuna tipologia
Facoltativamente prevedere la possibilità di visualizzare l'elenco nell'ordine tipicamente utilizzato
in base alle medaglie vinte (prevale il numero di ori, a parità di ori prevale il numero di argenti, a
ulteriore parità prevale il numero di bronzi)
6. Simulazione Tamagotchi
Si richiede lo sviluppo di un programma che permette all'utente di interagire con una comunità di
Tamagotchi di specie diverse
Un Tamagotchi è un'entità software in grado di recepire stimoli dall'esterno che determinano la sua
sopravvivenza e il suo grado di benessere: specie diverse di Tamagotchi reagiscono in modo diverso
a diversi stimoli
Per semplicità si suppone che:
- gli stimoli ricevuti possano essere carezze o biscotti
- il grado di benessere sia rappresentabile tramite due soli valori numerici (grado di soddisfazione
affettiva, grado di sazietà)
Si suppone che gli stimoli esterni siano forniti come numeri interi (numero di carezze o numero di
biscotti).
I due valori interni di ciascun Tamagotchi variano in base agli stimoli secondo la sua specie.
Il loro valore iniziale è stabilito in modo casuale al momento della creazione. Anche le condizioni
di sopravvivenza e infelicità variano secondo la specie.
Il programma, dopo aver presentato un saluto iniziale, chiede quanti Tamagotchi si vogliono creare.
Per ogni Tamagotchi da creare il programma chiede all'utente un nome e seleziona in modo casuale
la specie tra quelle previste (TamaBase, TamaTriste e TamaGordo specificate successivamente)
Segue un ciclo nel quale l'utente deve scegliere fra tre alternative:
- dare carezze (la stessa quantità a tutti i Tamagotchi)
- dare biscotti (la stessa quantità a tutti i Tamagotchi)
- uscire dal programma
In base alla scelta dell'utente viene estratto un numero casuale di biscotti o carezze da
somministrare a tutti i Tamagotchi, variando il loro stato di conseguenza
Per ogni Tamagotchi presente, l'utente viene informato del suo stato a seguito della
somministrazione
Se un Tamagotchi muore, ovviamente non viene incluso nelle interazioni successive
Se muoiono tutti i Tamagotchi viene dato un opportuno messaggio all'utente e il programma
termina.
L'evoluzione delle tre specie di Tamagotchi è descritta di seguito.
Tamabase:
I due valori interni del Tamagotchi variano in base agli stimoli come segue:
- Se riceve carezze, aumenta il grado di soddisfazione affettiva in base al numero di carezze
ricevute ma diminuisce il grado di sazietà (della metà delle carezze ricevute)
- Se riceve biscotti, aumenta il grado di sazietà secondo la regola che ogni biscotto mangiato
aumenta del 10% il grado di sazietà precedente. Diminuisce però il grado di soddisfazione affettiva
(di un quarto dei biscotti ricevuti)
I due valori interni variano tra 0 e un valore massimo (p.e. 100) oltre il quale ulteriori stimoli non
hanno effetti
Il Tamagotchi muore quando:
- uno dei due valori interni raggiunge 0
- il grado di sazietà raggiunge il massimo (troppo cibo)
Il Tamagotchi è infelice quando:
- il grado di soddisfazione è sotto una certa soglia (<30)
- il grado di sazietà è troppo basso o troppo alto (<30 o >90)
Tamatriste:
Questo Tamagotchi è sempre infelice indipendentemente da quante carezze o biscotti riceve (però
non muore mai di infelicità)
Il suo grado di sazietà invece varia come nel caso del Tamabase e muore solo se non mangia
abbastanza o se mangia troppo (come il Tamabase)
Tamagordo:
Questo Tamagotchi pensa solo a mangiare ed è insensibile alle carezze
Il suo grado di soddisfazione affettiva è ininfluente e sempre massimo: l'infelicità è determinata
solo dal grado di sazietà troppo basso (non dal grado di sazietà troppo alto). Analogamente muore
solo se mangia poco, mai se mangia troppo
Inoltre se riceve carezze e non biscotti il suo grado di sazietà cala il doppio rispetto agli altri.
7. Simulazione traffico
Si richiede di simulare il movimento del traffico in un'ipotetico tratto di strada che viene percorso
da delle automobili e che dei pedoni devono attraversare. La situazione iniziale della strada viene
definita in modo casuale, quindi il programma dà il via alla simulazione. Ogni passo di simulazione
prevede il calcolo della nuova situazione della strada e la sua visualizzazione. La simulazione
termina su decisione dell'utente.
La strada è rappresentabile come una matrice bidimensionale che le automobili percorrono in una
direzione mentre i pedoni la percorrono in modo ortogonale. Per semplicità si può assumere che la
strada sia percorsa a senso unico dalle auto e che i pedoni la attraversino sempre seguendo un'unica
direzione.
Ciascun passo di simulazione si svolge nel seguente modo:
- ogni elemento (auto o pedone) si sposta secondo la sua direzione e velocità senza mai fermarsi;
- se un elemento raggiunge il limite della strada, esce e non compare nel seguito della simulazione;
- se un pedone entra in collisione con un auto, viene data segnalazione all'utente e (poichè siamo in
un mondo ideale) il pedone prosegue regolarmente il suo cammino mentre l'auto viene eliminata e
non compare nel seguito della simulazione.
8. Titoli azionari
Un titolo azionario è caratterizzato da un nome e da un valore che varia ogni giorno.
Un portafoglio azionario è composto da un insieme di lotti: ogni lotto è semplicemente un certo
numero di azioni di un certo titolo.
Si richiede un programma che gestisca:
- un elenco di titoli, per ognuno dei quali l'utente deve specificare il nome e il valore iniziale
- la composizione di un portafoglio, che consiste nello stabilire, per ciascun titolo in elenco, un
numero di azioni acquistate
- la simulazione dell'oscillazione del valore del portafoglio: per ogni giornata il programma calcola
il valore iniziale complessivo del portafoglio, determina in modo random una variazione positiva o
negativa del valore di ogni titolo, quindi calcola di conseguenza il nuovo valore complessivo del
portafoglio e comunica all'utente la situazione attuale del suo patrimonio
- si richiede inoltre di salvare su file tutte le informazioni introdotte e di poter riavviare
successivamente il programma facendo ripartire la simulazione dal punto nel quale era stata
interrotta.
9. Gestione Palestra
Una palestra necessita di uno strumento software per la gestione della sua attività.
Le funzionalità richieste si dividono in quattro aree principali:
A) gestione delle attrezzature e degli esercizi
B) gestione iscritti e loro piani di attività
C) visualizzazioni sintetiche
D) pianificazione settimana (FACOLTATIVO)
E) salvataggio e caricamento
A) GESTIONE DELLE ATTREZZATURE E DEGLI ESERCIZI
La palestra contiene un insieme di attrezzature. Le attrezzature si dividono in diversi tipi (ad
esempio "spalliera", "bilancere", "tapis roulant", "cyclette") e nella palestra possono essere presenti
più attrezzi di uno stesso tipo.
Per ogni tipo di attrezzatura deve essere definito almeno un esercizio che può essere svolto con
quell'attrezzatura. Ogni esercizio è caratterizzato da un nome univoco (ad esempio "sollevamento
10 kg" o "corsa") e può essere continuo o a ripetizioni multiple.
Sono richieste le seguenti funzionalità:
•
inserimento di nuovi attrezzi
Dovrà essere richiesto all'utente il nome del tipo di attrezzatura da inserire. Se il tipo di
attrezzatura è già presente si chiederà all'utente quanti nuovi attrezzi di quel tipo devono
essere aggiunti a quelli già esistenti. Se il tipo di attrezzatura non è presente si chiederà
all'utente quanti nuovi attrezzi vengono acquistati e si richiederà di definire almeno un
esercizio che può essere svolto con quell'attrezzatura. Per ciascun esercizio inserito in
associazione all'attrezzatura si chiederà all'utente di specificare il nome e se si tratta di un
esercizio continuo o a ripetizioni multiple. Il programma verificherà che il nome
dell'esercizio sia diverso da quello di tutti gli esercizi inseriti in precedenza e in caso
contrario segnalerà il problema all'utente chiedendo di cambiare nome o di annullare
l'inserimento.
•
eliminazione di attrezzi
Dovrà essere richiesto all'utente il nome del tipo di attrezzatura da eliminare.
Il programma verificherà che tale tipo di attrezzatura sia presente nella palestra e chiederà
quanti attrezzi di quel tipo devono essere eliminati. Il numero di attrezzi eliminati dovrà
essere minore o uguale a quello degli attrezzi di tale tipo già presenti.
•
aggiunta di esercizi
Si richiede all'utente di selezionare uno dei tipi di attrezzatura presenti nella palestra e, per
tale tipo di attrezzatura, si richiede di definire uno o più esercizi aggiuntivi che possono
essere svolti con quell'attrezzatura. Per ciascun esercizio inserito in associazione
all'attrezzatura si chiederà all'utente di specificare il nome e se si tratta di esercizio continuo
o a ripetizioni multiple. Il programma verificherà che il nome dell'esercizio sia diverso da
quello di tutti gli esercizi inseriti in precedenza e in caso contrario segnalerà il problema
all'utente chiedendo di cambiare nome o di annullare l'inserimento.
•
FACOLTATIVO eliminazione di esercizi
Si richiede all'utente di selezionare uno dei tipi di attrezzatura presenti nella palestra e, per
tale tipo di attrezzatura, si richiede di indicare uno o più degli esercizi ad essa associati da
eliminare. Il programma deve garantire che a ciascun tipo di attrezzatura rimanga associato
almeno un esercizio.
B) GESTIONE ISCRITTI E LORO PIANI DI ATTIVITA'
La palestra ha un insieme di iscritti, per ciascuno dei quali viene definito un insieme di esercizi
consigliati, chiamato piano di attività.
Sono richieste le seguenti funzionalità:
•
Inserimento nuovo iscritto
Per l'inserimento di un nuovo iscritto sono richieste le seguenti informazioni:
• nome e cognome
• codice fiscale (il programma deve verificare che sia univoco rispetto agli altri iscritti e
impedire l'inserimento in caso contrario)
• età
• peso
• definizione del piano di attività come da punto seguente
Al nuovo iscritto viene attribuito automaticamente un numero di tessera univoco.
•
Inserimento piano di attività
Un piano di attività per uno specifico cliente iscritto alla palestra consiste in un insieme di
esercizi per ciascuno dei quali viene specificata la durata prevista per quell'iscritto. Inoltre viene
specificato un tempo di pausa (espresso in minuti) che deve passare tra due esercizi consecutivi.
Per ogni esercizio da inserire nel piano di attività di un iscritto devono essere specificato il nome
e la durata. Il programma verifica che il nome corrisponda a uno di quelli inseriti in
associazione alle attrezzature e che esso non sia già presente nel piano di attività. Quindi chiede
all'utente di specificare la durata dell'esercizio secondo le seguenti modalità:
- se si tratta di un esercizio continuo, viene richiesta la durata in minuti (ad esempio: "corsa", "5
minuti")
- se si tratta di un esercizio a ripetizioni multiple, viene richiesto il numero di ripetizioni e la
durata in secondi di ciascuna ripetizione (ad esempio: "sollevamento 10 kg", 10 ripetizioni da
15 secondi ciascuna)
•
Cancellazione di un iscritto
L'iscritto viene identificato tramite il numero di tessera (facoltativamente sono possibili altre
modalità di ricerca) e, dopo aver chiesto conferma, viene cancellato dall'elenco.
FACOLTATIVO:
• Modifica piano di attività
Viene selezionato un iscritto tramite il numero di tessera (facoltativamente sono possibili altre
modalità di ricerca) e viene data la possibilità di inserire nuovi esercizi nel piano di attività o di
cancellare esercizi in esso presenti. Il programma assicura che il piano di attività contenga in
ogni caso almeno un esercizio.
C) VISUALIZZAZIONI SINTETICHE
Sono richieste le seguenti visualizzazioni sintetiche
•
visualizzazione elenco attrezzature
Vengono visualizzati tutti i tipi di attrezzatura presenti nella palestra, indicando per ciascuno
gli esercizi ad essa associati e il numero di attrezzi
•
visualizzazione elenco esercizi
Vengono visualizzati tutti gli esercizi previsti nella palestra, indicando per ciascuno se è
continuo o a ripetizioni multiple e il tipo di attrezzatura richiesta per lo svolgimento
•
visualizzazione elenco iscritti
Viene visualizzato l'elenco completo di tutti i clienti con i dati essenziali, senza presentare il
piano di attività
•
visualizzazione dettagliata iscritto
Viene selezionato un iscritto tramite il numero di tessera (facoltativamente sono possibili
altre modalità di ricerca) e vengono presentati i dati essenziali e il dettaglio degli esercizi
contenuti nel piano di attività. Inoltre viene calcolata la durata complessiva in minuti del
piano di attività in base alle durate degli esercizi e al tempo di pausa previsto tra due esercizi
consecutivi.
•
visualizzazione occupazione attrezzature
Per ciascun tipo di attrezzatura viene calcolato:
- il valore totale di minuti di occupazione previsti nei piani di attività Tale valore viene
ottenuto sommando per ciascun piano di attività tutte le durate degli esercizi associati a tale
tipo di attività.
- il valore medio di occupazione per attrezzo, ottenuto dividendo il valore totale per il
numero di attrezzi di quel tipo presenti.
D) PIANIFICAZIONE SETTIMANA (FACOLTATIVO)
Si supponga che la palestra sia aperta tutti i giorni della settimana con lo stesso orario (ad esempio
ingressi degli iscritti dalle 8.00 alle 21.00, ultima uscita alle ore 22.00).
Si vuole permettere ad ogni iscritto di effettuare una pianificazione della sua frequenza alla palestra
e dell'utilizzo delle attrezzature come di seguito specificato.
La pianificazione inizia selezionando uno degli iscritti alla palestra. Se l'iscritto ha già effettuato la
pianificazione in precedenza si richiede se desidera effettuarne una nuova, eliminando la
precedente, o uscire, mantenendo la precedente.
Per ogni giorno della settimana viene richiesto all'utente se intende utilizzare la palestra in quel
giorno ed a che ora intende effettuare l'ingresso (possono essere previste facilitazioni per specificare
lo stesso orario di ingresso per più giorni).
Per ciascun giorno in cui l'utente frequenta la palestra, viene fatto scorrere il piano di attività
dell'utente e per ciascun esercizio da svolgere viene prenotata l'attrezzatura necessaria come di
seguito specificato.
Il programma considera il primo esercizio da svolgere e ricerca un attrezzo opportuno che sia libero
nel giorno considerato, all'orario di ingresso specificato dall'utente e per tutto il tempo necessario
allo svolgimento dell'esercizio, verificando che l'esercizio si concluda prima dell'orario di ultima
uscita. Se trova l'attrezzo, lo occupa per il tempo necessario allo svolgimento dell'esercizio,
altrimenti cerca un attrezzo opportuno che sia libero per tutto il tempo necessario allo svolgimento
dell'esercizio a partire da un istante successivo all'orario di ingresso, sempre verificando il rispetto
dell'orario di ultima uscita.
Se non lo trova segnala l'impossibilità di effettuare la pianificazione, altrimenti occupa l'attrezzo per
tutto il tempo necessario allo svolgimento dell'esercizio.
La procedura viene quindi ripetuta con la stessa modalità per tutti gli esercizi contenuti nel piano di
attività dell'iscritto, utilizzando come istante di inizio di ogni esercizio l'istante di conclusione
dell'esercizio precedente sommato al tempo di pausa previsto nel piano di attività..
Se la pianificazione di tutti gli esercizi va a buon fine viene mostrata all'utente la sequenza degli
attrezzi prenotati con i relativi orari, evidenziando gli eventuali tempi morti tra un esercizio e l'altro
dovuti all'attesa che un attrezzo si liberi..
E' lasciata all'allievo la libertà di aggiungere funzionalità di visualizzazione sintetica relative alla
pianificazione complessiva della settimana (ad esempio il piano di utilizzo settimanale di ciascun
attrezzo).
E) SALVATAGGIO E CARICAMENTO
Il programma permette all'utente di salvare su file tutti i dati rilevanti inseriti e di caricarli al
successivo avvio automaticamente o mediante apposita voce di menu.
NOTA: Il programma dovrà essere presentato con almeno 3 tipi di attrezzatura e 5 clienti già
inseriti.
10. Gestione consorzio di mobilifici
Si richiede la scrittura di un software per la gestione di un consorzio di mobilifici.
Le funzionalità richieste si dividono nelle seguenti aree principali:
A) Gestione catalogo modelli
B) Gestione mobilifici consorziati
C) Realizzazione preventivo
D) Gestione promozioni e scontistica
E) Gestione catalogo materie prime (FACOLTATIVO)
F) Salvataggio e caricamento
A) GESTIONE CATALOGO MODELLI
Il consorzio possiede un catalogo di tutti i modelli di mobile prodotti da almeno uno dei mobilifici
consorziati.
I modelli di mobile si suddividono in quattro tipologie di base: "armadi", "letti", "tavoli", "sedie".
Ogni modello è in generale identificato da un nome e da un colore.
Un "armadio" è caratterizzato, in aggiunta, da un'altezza e da un numero di ante.
Un "letto" è caratterizzato, in aggiunta, da una lunghezza e da una larghezza.
Un "tavolo" è caratterizzato, in aggiunta, da una lunghezza minima, una lunghezza massima
(eventualmente uguale a quella minima) e da una larghezza.
Una "sedia" è caratterizzata da un'altezza.
Ad ogni modello sono associati un numero di tavole di legno, un numero di viti ed un numero di
chiodi necessari per la costruzione di un esemplare.
Sono richieste le seguenti funzionalità:
•
Inserimento nuovo modello
Il programma richiede all'utente il nome del modello (verificando che non sia già presente
nel catalogo), il colore e la tipologia. Sulla base della tipologia, il programma richiede
all'utente le relative informazioni caratterizzanti.
•
Eliminazione modello
Il programma richiede all'utente il nome del modello da eliminare, richiede conferma e
procede all'eliminazione del modello indicato dal catalogo. Se il nome del modello non è
presente nel catalogo, il programma segnala l'errore all'utente e richiede un nuovo nome.
•
Visualizzazione catalogo
Il programma mostra all'utente la lista dei modelli presenti nel catalogo, visualizzando per
ognuno nome, colore, tipologia, ed una descrizione specifica per tipologia (ad esempio, per
un "letto" potrebbe indicare 200x160, per un armadio "6 ante altezza 270" e così via). Il
programma permette di scegliere uno dei modelli (utilizzando il nome) e ne presenta una
descrizione di dettaglio, che riporta tutte le informazioni associate a quel modello.
•
FACOLTATIVO Modifica modello
Il programma richiede all'utente il nome del modello da modificare e permette all'utente di
variare tutte le informazioni relative a quel modello. Se il nome del modello non è presente
nel catalogo, il software segnala l'errore all'utente e richiede un nuovo nome.
B) GESTIONE MOBILIFICI CONSORZIATI
Un mobilificio consorziato è identificato da una ragione sociale e da un indirizzo.
Ogni mobilificio consorziato possiede un catalogo dei modelli che è in grado di produrre: tale
catalogo è un sottoinsieme del catalogo del consorzio ed assegna ad ogni modello un prezzo di
vendita praticato da quello specifico mobilificio.
Ogni mobilificio possiede un magazzino di materie prime: in particolare, tale magazzino è
rappresentato dal numero di tavole di legno, dal numero di viti e dal numero di chiodi su cui quel
mobilificio può contare per la costruzione di mobili.
Ogni mobilificio può definire una serie di iniziative promozionali (vedi successivo punto D).
Sono richieste le seguenti funzionalità:
•
Inserimento nuovo mobilificio
Il programma richiede all'utente la ragione sociale (verificandone l'unicità) e l'indirizzo del
mobilificio, nonché il numero di tavole di legno, viti e chiodi inizialmente presenti in
magazzino.
•
Eliminazione mobilificio
Il programma richiede all'utente la ragione sociale del mobilificio da eliminare, richiede
conferma e procede all'eliminazione. Se la ragione sociale non corrisponde ad alcuno dei
mobilifici consorziati, il software segnala l'errore all'utente e richiede una nuova ragione
sociale.
•
Aggiornamento scorte magazzino
Il programma richiede all'utente la ragione sociale del mobilificio sul quale operare ed i
nuovi valori da assegnare alle relative scorte di magazzino. Se la ragione sociale non
corrisponde ad alcuno dei mobilifici consorziati, il programma segnala l'errore all'utente e
richiede una nuova ragione sociale.
•
Gestione iniziative promozionali VEDI SUCCESSIVO PUNTO D
•
Visualizzazione mobilifici
Il programma presenta all'utente l'elenco dei mobilifici presenti con i relativi dati.
Facoltativamente è possibile prevedere una visualizzazione sintetica relativa solo alla
ragione sociale ed una dettagliata comprensiva di tutti i dati (catalogo, magazzino,
promozioni)
C) REALIZZAZIONE PREVENTIVO
Sulla base del catalogo dei prodotti offerti dal consorzio, il programma permette all'utente di
inserire le informazioni necessarie per la proposta di un preventivo: il nome del cliente, la data di
redazione del preventivo, l'elenco dei mobili che fanno parte del preventivo (per ognuno verrà
scelto il modello ed indicato il numero di pezzi richiesto).
Il programma seleziona tra i mobilifici consorziati quelli che possiedono le seguenti caratteristiche:
• possiedono a catalogo tutti i modelli di mobile richiesti dall'utente
• hanno in magazzino scorte di materie prime sufficienti a far fronte alla produzione di tutti
gli esemplari presenti nel preventivo
Se non esiste nessun mobilificio con queste caratteristiche viene dato un opportuno messaggio
all'utente, altrimenti per ogni mobilificio selezionato, il programma calcola il valore economico del
preventivo e presenta all'utente la lista dei mobilifici selezionati e dei relativi importi calcolati
(ordinata per importo crescente).
Il valore economico iniziale del preventivo viene affinato sulla base delle promozioni attive (a
livello di singolo mobilificio o a livello generale di consorzio) - VEDI SUCCESSIVO PUNTO D.
Se viene applicata una promozione essa deve essere opportunamente evidenziata.
L'utente decide se procedere all'acquisto, eventualmente selezionando tra quelli proposti il
mobilificio dal quale intende acquistare (per default il software propone quello che ha prodotto il
preventivo più economico). Il programma registra la transazione ed aggiorna le scorte disponibili
per il mobilificio che effettua la vendita sulla base del fabbisogno richiesto per il contratto appena
concluso.
Il programma permette di visualizzare l'elenco di tutti i contratti conclusi con le relative
informazioni.
D) GESTIONE PROMOZIONI E SCONTISTICA
Il calcolo del valore economico di un preventivo tiene in considerazione, oltre al numero di
esemplari acquistati ed al prezzo praticato per ogni modello da ogni singolo mobilificio, anche
meccanismi promozionali basati sulla definizione di criteri di scontistica. Tali criteri di scontistica
possono essere definiti tanto a livello di consorzio (nel qual caso risultano validi per ogni
mobilificio consorziato) quanto a livello di singolo mobilificio. In caso di presenza di più
promozioni applicabili deve essere scelta quella che da' luogo al maggiore sconto.
Un criterio promozionale è rappresentato da un nome (ad esempio "Ogni diecimila euro te ne
regaliamo mille") e può ricadere in due diverse tipologie
• promozione basata sul valore complessivo del preventivo: definisce una soglia minima di
valore sopra la quale sarà praticato un dato sconto (es: sconto del 10% sugli importi che
superano i 10000 euro, ad esempio su un preventivo di 11000 euro viene applicato uno
sconto di 1100 euro);
• promozione basata sul numero di esemplari acquistati per un certo tipo di mobile: definisce
un numero minimo di esemplari sopra il quale sarà praticato un dato sconto (es: sconto del
25% per acquisto di più di 3 esemplari uguali. Ad esempio se vengono acquistate 4 sedie
dello stesso tipo al prezzo di 100 euro l'una, viene applicato uno sconto di 100 euro);
Sono richieste le seguenti funzionalità:
•
Inserimento nuova promozione
Il programma richiede all'utente di indicare il nome ed il tipo di promozione da inserire ed i
relativi dati. L'utente ha la possibilità di associare tale promozione all'intero consorzio o ad
un singolo mobilificio consorziato, nel qual caso il programma richiede la scelta del
mobilificio in questione
•
Visualizzazione elenco promozioni attive
Il programma presenta l'elenco delle promozioni attive con le relative caratteristiche.
•
Eliminazione promozione
Il programma richiede all'utente di indicare il nome di una promozione, richiede conferma e
procede all'eliminazione. Se il nome non è associato ad alcuna promozione segnala l'errore
all'utente e richiede un nuovo nome
E) GESTIONE CATALOGO MATERIE PRIME (FACOLTATIVO)
Il meccanismo di gestione delle materie prime precedentemente descritto, basato sulle tre risorse
"numero di tavole di legno", "numero di viti", "numero di chiodi", può essere generalizzato,
prevedendo la gestione (aggiunta, eliminazione, lista, modifica) di un catalogo di materie prime
("chiodi", "viti a stella", "viti a taglio", "viti a brugola", "vernice rossa", "vernice nera", "legno di
faggio", "legno di rovere", ...) ed indicando per ogni modello il fabbisogno di materie prime scelte
dal catalogo (es: "cinquanta chiodi", "trenta viti a stella", "venti tavole di rovere").
F) SALVATAGGIO E CARICAMENTO
Il programma permette all'utente di salvare su file tutti i dati rilevanti inseriti e di caricarli al
successivo avvio automaticamente o mediante apposita voce di menu.
NOTA: Il programma dovrà essere presentato con almeno 5 modelli di mobile e 3 mobilifici e 2
criteri promozionali già inseriti.