INGEGNERIA INFORMATICA
TEMA D’ANNO
Fondamenti di Informatica II
anno accademico: 2007/2008
POLITECNICO DI BARI
STROPPA FABIO
LIBRETTO UNIVERSITARIO DEL POLITECNICO DI BARI
Il software simula la gestione della segreteria del politecnico, adibita alla registrazione degli studenti, dei loro dati e
all’aggiornamento del loro libretto universitario previa autenticazione di un username e di una password con
l’operazione di login.
Il software prevede due tipi di utenti: lo studente e l’amministratore. Lo studente è colui che si immatricola al
politecnico, devono dunque essere registrate informazioni relative ai dati personali dello studente e così via;
l’amministratore, o il segretario, è colui che ha il compito di aggiornare il libretto dei singoli studenti, autenticando il
superamento delle prove.
Il menù iniziale prevede che l’utente possa scegliere tra:
• Registrazione
• Login
• Visualizza informazioni sul prodotto
La selezione di “visualizza informazioni sul prodotto” lancia un banale file exe che apre una finestra programmata come
una windows form che fornisce informazioni sul software.
La fase di registrazione prevede la selezione del profilo, studente o amministratore.
Lo studente sarà chiamato a compilare una serie di dati per l’acquisizione di informazioni (nome, cognome, data di
nascita, ecc), gli verrà chiesta la data di immatricolazione (che per default è settata al giorno odierno) ed il corso di
laurea ingegneristica (selezionabile dal file “cdl.txt” presente nella directory, dove sono salvate tutte le facoltà del
politecnico). Successivamente, verranno richiesti username e password. All’utente verrà assegnata una matricola;
ovviamente tale identificatore deve essere aggiornato di un unità per ogni studente registrato: nel file “matricole.txt”
(file di testo) viene salvata l’ultima matricola registrata; ad ogni registrazione, tale numero verrà incrementato. È
importante ricordarsi di settare tale numero a 0 al momento del primo avvio del programma (se ovviamente si vuole
partire dalla matricola numero 1).
L’amministratore non ha bisogno di registrare i suoi dati personali, ma affinché non si incorra in problemi di
sicurezza (quindi per impedire che l’archivio venga danneggiato da interventi non autorizzati) verrà richiesta la
password di sistema prima della registrazione. Tale password deve essere conosciuta solo tra i membri della segreteria,
perché non deve succedere che uno studente possa registrarsi come amministratore ed aggiungersi esami da solo. La
password di sistema è “polibalib+”. Il ‘+’ finale diminuisce notevolmente i rischi che utenti esterni indovinino la
password!
L’username viene associato all’utente al momento della registrazione, ed è unico; non possono esistere in archivio
due o più username uguali. A tale username viene associata una password. Questa password, per motivi di sicurezza, è
soggetta ad un semplice sistema di crittografia, noto con il nome di cifrario a sostituzione: viene creata una chiave dal
sistema, ad esempio 3, e ogni lettera della password aumenta di 3 caratteri. La parola CIAO diventa FNDR. Anche
aprendo il file txt dove sono salvati password e username, è impossibile identificare la password a meno che non si
conosca quale algoritmo di cifratura è stato utilizzato. Ovviamente, la chiave è salvata su file dopo username e
password.
Il file dove vengono salvati gli utenti registrati come studenti è “passwordstd.txt”. Il file dove vengono salvati gli
utenti registrati come amministratori è “passwordadm.txt”.
La fase di login permette di selezionare prima il profilo con cui si intende loggarsi, e successivamente, previo
riconoscimento di username e password, utilizzare le relative opzioni disponibili a seconda del profilo selezionato.
Loggare un amministratore è semplicissimo: basta ritrovare username e password nel relativo file ed il gioco è fatto.
Loggare uno studente è molto più difficile, perché bisogna recuperare anche tutti i dati registrati. Per aggirare il
problema, al momento della registrazione si è pensato di creare un file di testo che ha il nome dell’username; tale file
contiene il numero di matricola dello studente. Salvando in memoria il numero di matricola, si può aprire il file dove si
sono salvati i dati dello studente, che ha proprio il nome della matricola stessa (cosa che agevola anche il lavoro
dell’amministratore quando dovrà selezionare uno studente: gli basterà, come è anche logico pensare, digitare la
matricola per ottenere i dati).
Uno studente potrà:
• Visualizzare i dati personali registrati
•
Visualizzare il libretto personale, con l’elenco degli esami superati, il relativo voto con l’eventuale lode ed il
numero di crediti formativi (cfu) dei singoli esami; viene visualizzato anche il numero totale dei crediti dello
studente, la media aritmetica dei voti dello studente e la media ponderata o pesata dei voti dello studente
• Scaricare il file contenente il modulo 100; viene aperto il file “mod100.pdf” con l’acrobat reader per poterlo
salvare sulla propria macchina e stamparlo in caso di necessità
• Scaricare il file contenente lo statino; viene aperto il file “statino.pdf” con l’acrobat reader per poterlo
salvare sulla propria macchina e stamparlo in caso di necessità
• Cambiare la propria password
Sul menù di scelta dello studente verrà visualizzato il proprio username e il tempo trascorso dalla data di
registrazione.
Un amministratore potrà:
• Selezionare lo studente da aggiornare inserendone la matricola
• Cambiare la propria password
Selezionando lo studente da aggiornare, l’amministratore può visualizzare i suoi dati (magari per verificare di non
aver sbagliato matricola) o aggiungere un esame.
Il software deve permettere di poter gestire l’aggiornamento dinamico del libretto, cosa che può essere effettuata solo
da un amministratore e non dallo studente stesso: si è pensato che l’aggiunta di un esame superato venga effettuata
tramite verbale, quindi l’amministratore al momento dell’aggiornamento dovrà avere dinnanzi a sé i verbali dei vari
esami con nome e matricola dello studente che è stato approvato (e relativo voto). In questa circostanza, è stato creato
un archivio (“materie.dat”) contenente tutte le materie del politecnico, salvate per ordine alfabetico, con il relativo id
che si pensa venga segnato sul verbale stesso. Il segretario, al momento dell’aggiornamento, si limiterà semplicemente a
digitare l’ID della materia desiderata per aggiungere l’esame superato dalla matricola interessata. Comunque,
all’amministratore viene fornito un elenco completo di tutte le materie presenti all’interno del file.
NB: è bene ricordare che tale operazione è molto macchinosa e non sempre affidabile, perché ovviamente si sta
lavorando con archivi e non con dei database: l’utilizzo di query avrebbe sicuramente giovato, ma dovendo
programmare in c++ bisogna necessariamente adeguarsi agli archivi. Inoltre, non c’è garanzia di integrità: dev’essere
l’amministratore ad evitare di aggiungere una materia non appartenente al corso di laurea dello studente interessato. Si
potevano fare controlli sul file “materie.dat”, ma risultava davvero troppo complesso.
Per il libretto è stato pensato un vettore dinamico contenente tutti gli esami. Tali informazioni vengono salvate in un
file denominato con il numero di matricola dello studente a cui viene aggiunto il suffisso “lib.txt” per distinguerlo dal
file ove vengono salvati i dati personali.
Eccezioni non gestite dal programma:
• come per ogni programma in console application, l’inserimento di una stringa con un numero superiore di
caratteri rispetto a quelli settati per default comporterà un problema;
• inserire una carattere ove è richiesto un numero causerà un problema irreversibile.
Sviluppato con:
Microsoft Visual Studio 2005
Versione 8.0.50727.42 (RTM.050727-4200)
©2005 Microsoft Corporation
Si faccia riferimento al manuale di questo compilatore per le istruzioni che possono causare incompatibilità con altri
compilatori.
MODELLAZIONE DELLE CLASSI (+ membro pubblico; -membro privato; # membro protetto)
date
-day: int
-month: int
-year: int
info
-username: char[30]
-password: char[30]
+date()
+put_date(): void
+put(): date(int,int,int): void
+get_day(): int
+get_month(): int
+get_year(): int
+print_date(): void
+bisestile(): bool
+operator++(int): date
+operator--(int): date
+operator=(date): date
+operator==(date): bool
+operator!=(date): bool
+operator<(date): bool
+operator>(date): bool
+operator<=(date): bool
+operator>=(date): bool
+operator-(date): void
amministratore
+amministratore()
+set_nomefile(): void
+inserisci_materia(libretto&): void
materia
-id: int
-nome: char[70]
-cfu: float
+voto: int
+lode: bool
+materia()
+put_id(): void
+put_id(int): void
+get_id(): int
+print_id(): void
+put_nome(): void
+put_nome(char*): void
+get_nome(): char*
+print_nome(): void
+put_cfu(): void
+put_cfu(float): void
+get_cfu(): float
+printf_cfu(): void
+put_voto(): void
+get_voto(): int
+print_voto(): void
+put_lode(): void
+get_lode(): bool
+print_lode(): void
+salva_su_file(char*): void
+leggi_da_file(istream&): void
+info()
+put_username(): void
+put_password(): void
+get_username(): char*
+get_password(): char*
+print_username(): void
+ptint_password(): void
utente
-up1: info
-up2: info
-key: int
#nomefile: char[16]
+utente()
+use_info1_putusername(): void
+use_info1_getusername(): char*
+use_info1_putpassword(): void
+use_info1_getpassword(): char*
+use_info1_printusername(): void
+use_info1_printpassword(): void
+use_info2_putusername(): void
+use_info2_getusername(): char*
+use_info2_putpassword(): void
+use_info2_getpassword(): char*
+use_info2_printusername(): void
+use_info2_printpassword(): void
+strcmp_pass(): int
+strcmp_pass(char*): int
+strcmp_user(char*): int
+registra_utente(): int
+logga_utente(): int
+conta_numero_utente(): int
+cambia_password(int): int
+set_nomefile(): void
libretto
-*vett: materia
-media_aritmetica. float
-media_pesata: float
-tot_cfu: float
-numero_esami: int
studente
-nome: char[30]
-cognome: char[30]
-datanascita: date
-sesso: char
-cittadinanza: char[30]
-email: char[30]
-numtelefono: char[30]
-numcellulare: char[30]
-codicefiscale: char[17]
-nazione: char[30]
-provincia: char[3]
-comune: char[30]
-corso_di_laurea: char[35]
-registrazione: date
-matricola: int
-lib: libretto
+studente()
+studente(int, char*)
+put_datipersonali(): void
+print_datipersonali(): void
+put_luogodinascita(): void
+print_luogodinascita(): void
+print_corsodilaurea(): void
+put_datadiregistrazione(): void
+get_datadiregistrazione(): date
+put_matricola(int): void
+get_matricola(): int
+salva_su_file(char*): void
+salva_su_file_user(): void
+leggi_da_file(char*): void
+leggi_da_file_user(char*): void
+use_alloca_scalare(): void
+use_rilascia_scalare(): void
+use_alloca_vettore(int): void
+use_rilascia_vettore(): void
+use_calcola_numero_esami(ifstream&): int
+get_libretto(): libretto&
+use_salvasufile(char*): void
+calcola_dimensione_libretto(char*): int
+visualizza_libretto(char*): void
+use_calcola_tot_cfu(): float
+use_calcola_media_arit(): float
+use_calcola_media_pes(): float
+set_nomefile(): void
+libretto()
+alloca_scalare(): void
+rilascia_scalare(): void
+alloca_vettore(int): void
+rilascia_vettore(): void
+get_numero_esami(): int
+calcola_numero_esami(ifstream&): int
+use_salvasufile(char*): void
+stampa_vettore(ifstream&): void
+calcola_totale_cfu(): float
+calcola_media_arit(): float
+calcola_media_pes(): float
Le funzioni friend non sono state riportate.
I membri ereditati dalle varie classi non sono stati riportati. Si veda il successivo diagramma.
DIAGRAMMA DELLE CLASSI
{abstract} utente
materia
*
1
libretto
1
1
studente
1
2
info
1 amministratore
*
< aggiorna
1
2
date
La classe date è dedicata alla gestione delle date. È formata da giorno, mese ed anno ed è settata
automaticamente alla data odierna mediante il costruttore. I metodi della classe permettono di fare alcune
operazioni sulle date, come la quantità di anni, mesi e giorni che separano due date.
La classe materia è dedicata alla gestione delle materie. È formata da un ID, unico per ogni materia, da un
nome, dai relativi crediti formativi e dal voto conseguito all’esame. Eventualmente è possibile aggiungere al
voto la lode nel caso il voto sia uguale a 30.
La classe libretto è l’insieme degli esami superati dallo studente. Contiene quindi un array dinamico di
materie e altri attributi statistici quali il numero totale di crediti dello studente, la media aritmetica dei voti e
la media ponderata dei voti. Il libretto è associato ad uno studente, e uno studente potrà avere uno ed un solo
libretto.
La classe info è una semplice classe per la gestione di informazioni quali username e password. La
password, a differenza di qualsiasi altra scritta, non deve apparire sul monitor e deve essere sostituita da
asterischi.
La classe utente è una classe astratta, non istanziabile. È la classe base per ogni utente che decide di
utilizzare il programma.
La classe studente è una classe derivata dalla classe utente. È la classe specifica per l’utente che sceglie il
profilo di studente, e quindi al momento della registrazione dovrà registrare le proprie informazioni
personali. La classe studente avrà un libretto universitario il quale non potrà essere aggiornato dallo stesso,
ma solo visionato.
La classe amministratore è una classe derivata dalla classe utente. È la classe specifica per l’utente che
sceglie il profilo di amministratore, e non ha bisogno di registrare informazioni personali. La classe
amministratore può accedere ad ogni studente registrato istanziando un oggetto studente e quindi aggiornarne
il libretto aggiungendo materie.
DIAGRAMMA DEI CASI D’USO
Registrazione
<<extend>>
Profilo "STUDENTE"
<<extend>>
<<extend>>
Profilo "AMMINISTRAOTRE"
Utente
Login
<<extend>>
Visualizza informazioni
Visualizza dati
<<include>>
Visualizza libretto
<<include>>
Scarica modulo 100
<<include>>
Login
Studente
Scarica statino
<<include>>
<<include>>
Cambia password
Log out
<<include>>
Visualizza dati
<<include>>
Seleziona studente
<<include>>
<<include>>
Aggiungi esame
Amministratore
Cambia password
<<include>>
<<include>>
Log out
Login
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
Registrazione
Questo caso d'uso permette di registrare un utente
Studente, Amministratore
L'username prescelto non deve essere già presente in archivio
Per lo studente, il sistema richiede di inserire dati personali, dati sul luogo di nascita,
corso di laurea e data di registrazione; infine, username e password.
FLUSSI PRINCIPALI
Per l’amministratore, il sistema richiede di inserire la password di sistema e, se la
password è corretta, inserire username e password personali.
FLUSSI
L’utente ha inserito un username già presente in archivio, il sistema richiede di
ALTERNATIVI
reinserire username e password.
Se la registrazione ha avuto successo, l'utente è stato inserito in archivio e, se è
POSTCONDIZIONI
uno studente, gli viene attribuita una matricola
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
Log in
Questo caso d'uso permette di ottenere l'autorizzazione ad effettuare le varie
operazioni
Studente, Amministratore
L’utente deve essere registrato e quindi presente all’interno dell’archivio
Il sistema richiede username e password dell’utente al fine di ottenere
FLUSSI PRINCIPALI l’autorizzazione. Verifica quindi la presenza dell’username e della password
nell’archivio.
FLUSSI
L’utente ha inserito un username non presente in archivio o una password errata, il
ALTERNATIVI
sistema ritorna al menù principale.
POSTCONDIZIONI
Se la log in ha avuto successo, è possibile effettuare le diverse operazioni.
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
FLUSSI PRINCIPALI
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
Visualizza informazioni
Questo caso d'uso lancia il file “finestra_informazioni.exe” che contiene le
informazioni sul prodotto
Studente, amministratore
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
Visualizza dati
Viene lanciato il file “finestra_informazioni.exe”.
Questo caso d'uso stampa a video i dati dello studente
Studente, amministratore
L’utente deve essere registrato e quindi presente all’interno dell’archivio. Lo
PRECONDIZIONI
studente deve essersi loggato; mentre l’amministratore, oltre a dover essere
loggato, deve selezionare uno studente.
FLUSSI PRINCIPALI Il sistema stampa a video tutti i dati registrati dallo studente
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
Visualizza libretto
Questo caso d'uso stampa a video il libretto dell’utente, con il totale dei crediti, la
media aritmetica dei voti e la media ponderata dei voti
Studente
Lo studente deve essersi loggato e quindi deve essere presente in archivio; il
PRECONDIZIONI
libretto non deve essere vuoto.
Il sistema legge da file i vari esami svolti dallo studente e li salva in memoria in un
FLUSSI PRINCIPALI array dinamico che viene successivamente stampato. Infine, calcola il numero totale
di cfu, la media aritmetica e la media ponderata dei voti.
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
Se il file non viene trovato, il libretto è vuoto e viene segnalato a video.
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
FLUSSI PRINCIPALI
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
Scarica modulo 100
Questo caso d'uso apre il file “mod100.pdf” con acrobat reader per ottenere il
modulo 100 del politecnico.
Studente
Lo studente deve essersi loggato e quindi deve essere presente in archivio.
Il sistema apre il file “mod100.pdf” con acrobat reader
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
FLUSSI PRINCIPALI
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
Scarica statino
Questo caso d'uso apre il file “statino.pdf” con acrobat reader per ottenere lo statino
del politecnico.
Studente
Lo studente deve essersi loggato e quindi deve essere presente in archivio
Il sistema apre il file “mod100.pdf” con acrobat reader
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
FLUSSI PRINCIPALI
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
Log out
Questo caso d’uso causa la log out dell’utente.
Studente, amministratore
Lo studente deve essersi loggato e quindi deve essere presente in archivio.
L’oggetto studente o amministratore viene distrutto.
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
PRECONDIZIONI
Cambia password
Questo caso d’uso permette all’utente di cambiare la password di accesso, dopo
aver inserito la password attualmente in uso.
Studente, amministratore
L’utente deve essersi loggato e quindi deve essere presente in archivio.
Il sistema richiede la password attualmente in uso; se corrisponde a quella
FLUSSI PRINCIPALI
registrata, richiede la nuova password ed una sua conferma.
Se l’utente inserisce una password diversa da quella originale, il sistema torna al
menù dell’utente.
FLUSSI
ALTERNATIVI
Se la password di conferma è diversa dalla password prima inserita, bisogna
reinserire la password.
POSTCONDIZIONI
La password è stata modificata.
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
Seleziona studente
Questo caso d’uso permette all’amministratore di selezionare lo studente che deve
essere aggiornato.
Amministratore
L’amministratore deve essersi loggato e quindi deve essere presente in archivio. Gli
PRECONDIZIONI
studenti selezionabili sono, ovviamente, quelli presenti in archivio.
L’amministratore seleziona lo studente scrivendo la matricola; il sistema ricerca il file
FLUSSI PRINCIPALI denominato con il numero di matricola selezionato e lo apre quando lo trova,
salvando i dati in un oggetto studente.
FLUSSI
ALTERNATIVI
POSTCONDIZIONI
CASO D'USO
BREVE
DESCRIZIONE
ATTORI
Se la matricola selezionata non è presente in archivio, lo studente non è stato
trovato e si ritorna al menù principale dell’amministratore.
È possibile accedere ai casi d’uso “visualizza dati” e “aggiungi esame”.
Aggiungi esame
Questo caso d’uso permette l’effettivo aggiornamento del libretto di uno studente
aggiungendo un esame superato.
Amministratore
L’amministratore deve essersi loggato e quindi deve essere presente in archivio. Gli
PRECONDIZIONI
studenti selezionabili sono, ovviamente, quelli presenti in archivio. Le materie
selezionabili sono salvate in un file.
L’amministratore immette l’id della materia desiderata ed il sistema la ricerca nel file
FLUSSI PRINCIPALI appropriato, salva le informazioni in memoria dinamica e poi le scrive sul file del
libretto dello studente.
FLUSSI
Il sistema non evolve fino a che non si seleziona una materia presente in archivio.
ALTERNATIVI
POSTCONDIZIONI
L’esame è stato aggiunto sul libretto dello studente selezionato.
DIAGRAMMA DELLE ATTIVITÀ
CASO D’USO: Registrazione (studente)
Generazione
di
matricola, incremento
di matricole da file
C:
Conferma,
modifica,
annulla?
Richiesta inserimento
dati, cdl, data di
registrazione
Decremento
matricole da file
Mod.
C
Ann.
Registrazione avvenuta
Conf.
OK
Richiesta inserimento
username e password
Verifica dell’inesistenza
dell’username in archivio
OK
Richiesta reinserimento
password
Verifica uguaglianza
password
CASO D’USO: Registrazione (amministratore)
Verifica uguaglianza
password di sistema
Richiesta inserimento
password di sistema
OK
Richiesta inserimento
username e password
Verifica dell’inesistenza
dell’username in archivio
OK
Registrazione avvenuta
OK
Richiesta reinserimento
password
Verifica uguaglianza
password
CASO D’USO: Log in
Verifica della presenza
dell’username
e
password in archivio
Selezionare profilo
OK
Richiesta inserimento
username e password
Log in avvenuta
CASO D’USO: Visualizza informazioni
Esecuzione di
“finestra_informazioni.exe”
CASO D’USO: Visualizza dati (studente, amministratore)
Stampa a video i dati dello
studente letti da file
CASO D’USO: Visualizza libretto
Verifica dell’esistenza del file
OK
Salva i dati in memoria heap e
stampa a video
CASO D’USO: Scarica modulo 100
Apertura con acrobat reader di
“mod100.pdf”
CASO D’USO: Scarica statino
Apertura con acrobat reader di
“statino.pdf”
CASO D’USO: Log out
Distruggi oggetto
CASO D’USO: Cambia password
Richiesta
di
inserimento password
originale
Verifica dell’esattezza
della password
OK
Richiesta
inserimento
password
di
nuova
Verifica
dell’uguaglianza
password
Richiesta
di
reinserimento nuova
password
OK
delle
Password cambiata
CASO D’USO: Seleziona studente
Richiesta
di
inserimento matricola
Verifica dell’esistenza
della
matricola
in
elenco
OK
Studente selezionato
CASO D’USO: Aggiungi esame
Richiesta
inserimento
materia
C: Conferma? s/n
di
id
NO
Verifica dell’esistenza
dell’id in archivio
OK
C
SI
Richiesta di inserimento
voto ed eventuale lode
Salvataggio dei dati su file
DIAGRAMMA DI SEQUENZA
CASO D’USO: Registrazione
Interfaccia utente
(portale)
Studente
1: richiesta registrazione
2: genera matricola
3: richiesta dati
4: indica dati
5: richiesta conferma sui dati
6: indica conferma
7: registrazione rifiutata (lo studente ha annullato l’operazione)
8: decremento matricola
Interfaccia utente
(portale)
Studente
1: richiesta registrazione
2: genera matricola
3: richiesta dati
4: indica dati
5: richiesta conferma sui dati
6: indica conferma
7: richiesta username e password
8: indica username e password
9: richiesta conferma password
10: indica password
11: registrazione effettuata
CASO D’USO: Registrazione
Interfaccia utente
(portale)
Amministratore
1: richiesta registrazione
2: richiesta password di sistema
3: indica password di sistema
4: registrazione rifiutata (password di sistema errata)
Interfaccia utente
(portale)
Amministratore
1: richiesta registrazione
2: richiesta password di sistema
3: indica password di sistema
4: richiesta username e password
5: indica username e password
6: richiesta conferma password
7: indica password
8: registrazione effettuata
CASO D’USO: Log in
Interfaccia utente
(portale)
Utente
1: richiesta log in
2: richiesto profilo
3: indica profilo
5: richiesta username e password
6: indica username e password
7: log in rifiutata (utente non presente in archivio)
Interfaccia utente
(portale)
Utente
1: richiesta log in
2: richiesto profilo
3: indica profilo
5: richiesta username e password
6: indica username e password
7: log in effettuata
CASO D’USO: Cambia password
Interfaccia utente
(portale)
Utente
1: richiesta di cambiao password
2: richiesta password originale
3: indica password originale
4: cambio password rifiutato (password originale errata)
Interfaccia utente
(portale)
Utente
1: richiesta di cambiao password
2: richiesta password originale
3: indica password originale
4: richiesta nuova password
5: indica nuova password
6: richiesta conferma password
7: indica password
8: cambio password effettuato
CASO D’USO: Seleziona studente
Interfaccia utente
(portale)
Amministratore
Studente
1: richiesta selezione studente
2: richiesta matricola
3: indica matricola
4: richiesta studente
5: studente non trovato
6: studente non trovato
Interfaccia utente
(portale)
Amministratore
Studente
1: richiesta selezione studente
2: richiesta matricola
3: indica matricola
4: richiesta studente
5: restituisci studente
6: studente ottenuto
CASO D’USO: Visualizza libretto
Studente
Interfaccia utente
Libretto
Materia
Libretto
Materia
1: Richiesta libretto
2: richiesta rifiutata (libretto
vuoto)
Studente
1: Richiesta libretto
Interfaccia utente
2: Richiesta libretto
3: richiesta materie
4: restituzione materie
5: visualizza libretto
CASO D’USO: Aggiungi esame
Interfaccia utente
(portale)
Amministratore
Studente
1: richiesta aggiunta esame
2: richiesto id materia
3: indica id
4: richiesta conferma materia
5: conferma materia
6: richiesta voto e lode
7: indica voto e lode
8: aggiorna studente
9: aggiornamento effettuato
I diagrammi di sequenza degli altri casi d’uso non sono riportati perché troppo banali.
Viene ora riportato l’elenco delle materie presenti nel file “materie.dat”. L’amministratore, selezionando l’id della
materia, aggiungerà l’esame allo studente.
ELENCO MATERIE
ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
NOME
Acquedotti e fognature
Affidabilità e certificazione di qualità
Affidabilità e controllo statistico della qualità
Affidabilità e manutenzione degli impianti
Algebra
Analisi
Analisi matematica
Analisi matematica I
Analisi matematica II
Analisi numerica
Analisi numerica per le telecomunicazioni
Antenne e comp. elettromagnetici
Architett. e progr. microelaborata
Architettura delle grandi strutture
Architettura e composizione architettonica I
Architettura e composizione architettonica II
Architettura e composizione architettonica III
Architettura tecnica
Architettura tecnica e tipologie edilizie
Architettura tecnica e tipologie edilizie
Architettura tecnica I
Architettura tecnica II
Architetture di calcolo per le telecomunicazioni
Automazione dei sistemi elettrici per l'energia II
Automazione dei sistemi elettrici per l'energia II
Automazione industriale
Automazione industriale I
Automazione industriale II
Azionamenti elettrici
Azionamenti elettrici I
Azionamenti elettrici II
Azionamento a fluido
Buisness planning e project financing
Calcolatori elettronici
Calcolo anelastico e a rottura delle strutture
Calcolo numerico
Calcolo numerico II
Campi elettromagnetici
Campi elettromagnetici I
Campi elettromagnetici II
Caratteri costruttivi e distributivi degli edifici
Cartografia numerica
Centrali termiche
Certificazione energetica degli edifici
Chimica
Chimica
Chimica ambientale
CFU
9
6
6
6
6
6
12
6
6
6
3
6
6
6
12
12
12
6
9
6
12
12
3
6
6
6
6
6
6
6
6
6
6
6
3
3
3
6
6
6
9
6
6
3
6
3
3
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Chimica degli ecosistemi
Chimica e tecn. del restauro e della cons. dei materiali
Chimica e tecnologia delle acque
Chimica I
Chimica II
Comp. elettrom. per le telecomunicazioni
Comp. mecc. dei materiali
Compatibilità elettromagnetica
Compatibilità elettromagnetica industriale I
Compatibilità elettromagnetica industriale II
Compilatori e interpreti
Complementi di calcolo numerico
Complementi di geotecnica
Complementi di legislazione delle OO.PP. e dell'edilizia
Complementi di matematica
Complementi di materiali da costruzione
Complementi di scienza delle costruzioni
Complementi di tecnica urbanistica
Complessità numerica
Componenti e sistemi ottici integrati
Composizione architettonica e urbana
Comunicazioni elettriche
Comunicazioni elettriche I
Comunicazioni elettriche II
Consolidamento degli edifici storici
Controlli automatici I
Controlli automatici II
Controllo dei processi I
Controllo dei processi II
Controllo dei robot
Controllo di azionamenti elettrici
Controllo di gestione
Controllo di gestione e finanza
Controllo di qualità del processo edilizio
Controllo distribuito di sistemi produttivi
Controllo e gestione degli appalti
Controllo non lineare
Costruzione di macchine
Costruzione di veicoli terrestri
Costruzioni di strade ferrovie ed aereoporti
Costruzioni elettromeccaniche II
Costruzioni idrauliche
Costruzioni idrauliche
Costruzioni in zona sismica
Costruzioni martittime
Diagnostica strutturale
Dinamica delle strutture
Dinamica delle strutture
Dinamica delle strutture e ing. sismica
Dinamica e controllo delle macchine
Dinamica e simulazione dei veicoli
Disegno
Disegno assistito da calcolatore
3
6
6
6
3
6
6
6
6
6
3
3
3
3
6
3
9
6
3
6
12
6
6
6
3
9
6
6
6
6
6
6
6
3
3
6
3
6
6
12
6
12
3
4,5
6
6
9
4,5
6
6
6
6
3
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
Disegno degli impianti industriali
Disegno dell'architettura I
Disegno dell'architettura II
Disegno edile
Disegno tecnico industriale
Dispositivi elettronici I
Dispositivi elettronici II
Dispositivi meccanici per il veicolo
Distr. e utilizzazione dell'energia elettrica
Distr. e utilizzazione dell'energia elettrica I
Distr. e utilizzazione dell'energia elettrica II
Durabilità dei componenti
Economia dell'energia e sistemi economici
Economia e gestione dell'inn. e strategie di inn. tec.
Economia e gestione dell'innovazione
Economia ed organizzazione aziendale
Economia ed organizzazione aziendale
Elaborazione numerica dei segnali
Elaborazione numerica dei segnali
Elaborazione statistica dei segnali
Elementi di cultura d'impresa
Elementi di diagnostica strutturale
Elementi di economia
Elementi di economia aziendale
Elementi di fisica
Elementi di sistemi esperti
Elementi di statistica
Elementi di teoria dei sistemi
Elettromagnetismo
Elettronica analogica
Elettronica applicata
Elettronica dei sistemi digitali
Elettronica delle telecomunicazioni
Elettronica di potenza I
Elettronica di potenza II
Elettronica digitale
Elettronica I
Elettronica II
Elettronica III
Elettronica industriale
Elettronica industriale di potenza
Elettronica sistemi digitali I
Elettronica sistemi digitali II
Elettrotecnica
Elettrotecnica
Elettrotecnica
Elettrotecnica I
Elettrotecnica II
Energetica applicata
Energie alternative
Ergotecnica edile
Estimo
Estimo
3
12
6
6
6
6
6
6
6
9
6
3
6
9
6
6
3
6
6
6
3
3
6
3
3
6
3
3
3
6
9
6
6
9
6
6
6
6
6
6
6
6
6
3
6
9
6
6
6
6
6
6
3
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
Finanza di progetto
Fisica dello stato solido
Fisica generale
Fisica generale
Fisica generale
Fisica I
Fisica II
Fisica sperimentale I
Fisica sperimentale II
Fisica sperimentale III
Fisica tecnica
Fisica tecnica
Fisica tecnica ambientale
Fisica tecnica ambientale
Fluidodinamica
Fluidodinamica numerica
Fondamenti della misurazione
Fondamenti di automatica
Fondamenti di automatica I
Fondamenti di automatica II
Fondamenti di elettronica
Fondamenti di informatica
Fondamenti di informatica I
Fondamenti di informatica II
Fondamenti di sistemi ad eventi discreti
Fondazioni
Gasdinamica
Geologia ambientale
Geologia applicata
Geologia applicata alla difesa ambientale
Geologia applicata alla pianificazione territoriale
Geologia tecnica
Geomatica
Geometria
Geometria e algebra
Geotecnica
Geotecnica
Geotecnica
Gestione ambientale dei sistemi di produzione
Gestione aziendale
Gestione dei bacini idrografici
Gestione dei processi operativi
Gestione dei progetti
Gestione dei progetti di innovazione
Gestione dei sistemi di trasporto
Gestione della comunicazione tecnica
Gestione della produzione industriale (a)
Gestione della produzione industriale (b)
Gestione di impresa
Gestione industriale della qualità I
Gestione industriale della qualità II
Gestione urbana
Gestione urbana
3
6
12
6
9
6
6
6
6
6
6
3
9
3
3
6
3
12
6
6
6
6
6
6
3
6
6
6
6
6
6
3
6
6
6
12
9
6
6
6
9
6
6
3
3
6
6
6
3
6
6
9
6
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
Griglie computazionali
Identificazione e controllo intelligente
Idraulica
Idraulica + costruzioni idrauliche
Idraulica ambientale
Idrogeologia
Illuminotecnica e acustica applicata
Illuminotecnica e acustica applicata
Impianti elettrici I
Impianti elettrici II
Impianti industriali
Impianti meccanici I
Impianti meccanici II
Impianti speciali idraulici
Impianti termotecnici
Impianti termotecnici ed illuminotecnica
Industrializzazione rapida
Informatica grafica
Informatica I
Informatica II
Informatica III
Informatica per l'automazione I
Informatica per l'automazione II
Infrastrutture idrauliche
Infrastrutture varie
Ingegneria del software
Ingegneria del territorio
Ingegneria del territorio II
Ingegneria sanitaria ambientale
Inglese I
Inglese II
Inglese III
Intelligenza artificiale
Interazione uomo macchina
Istituzioni di diritto pubblico
Laboratorio di reti di telecomunicazioni
Laboratorio di tesi
Laboratorio di tesi
Laboratorio di tesi
Lavorazioni per deformazione plastica
Leggi e regolamenti per il s.a.p.
Legislazione
Legislazione delle fonti di energia
Legislazione delle OO.PP. e dell'edilizia
Legislazione delle OO.PP. e dell'edilizia
Lingua inglese
Macchine
Macchine a fluido I
Macchine a fluido II
Macchine e azion. elettrici I
Macchine e azion. elettrici II
Macchine elettriche
Macchine elettriche I
3
6
3
6
12
6
9
3
9
6
6
6
6
9
6
6
6
6
6
6
9
6
6
12
6
6
6
6
9
3
3
3
6
6
6
3
15
6
9
6
3
3
3
9
3
3
6
6
6
6
6
6
9
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
Macchine elettriche II
Marketing e modelli di e-buisness
Marketing urbano
Materiali innovativi per l'ing. elettrica
Meccanica applicata
Meccanica applicata alle macchine I
Meccanica applicata alle macchine II
Meccanica dei fluidi
Meccanica dei materiali
Meccanica dei robot
Meccanica delle strutture
Meccanica delle vibrazioni
Meccanica e macchine
Meccanica orbitale
Meccanica razionale
Meccanica sperimentale I
Meccanica sperimentale II
Metodi di controllo per le telecomunicazioni
Metodi e sistemi per la sicurezza nelle reti
Metodi matematici per l'ingegneria
Metodi matematici per l'ingegneria
Metodi numerici per l'ingegneria
Microonde
Misure a microonde e ottiche
Misure e modelli idraulici
Misure e strumentazione
Misure elettriche
Misure elettroniche
Misure meccaniche e termiche I
Misure meccaniche e termiche II
Misure per la gestione della qualità
Misure per l'automazione e la produzione industriale
Misure su sistemi di telecomunicazione
Modelli di e-buisness
Modelli di reti di computer
Modelli di traffico e progettazione reti
Modelli e metodi di ottimizzazione
Modelli mecc. dei materiali
Modellistica dei sist. dinamici
Modellistica e controllo dei sistemi di produzione
Modellistica e simulazione di impianti motori
Modellistica sistemi dinamici elemntari
Motori termici per la trazione
Normative e diritto nelle telecomunicazioni
Oleodinamica
Onde elettromagnetiche ed ottica
Optoelettronica I
Optoelettronica II
Organizzazione del cantiere
Organizzazione del cantiere
Organizzazione del cantiere
Ottica
Patologie e recupero degli edifici
6
9
6
6
6
6
6
3
6
6
6
6
6
3
6
3
6
6
6
3
6
6
6
3
6
6
9
3
3
6
6
6
6
3
3
6
6
6
3
6
6
3
6
3
6
3
6
6
12
6
9
3
9
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
Pianificazione dei trasporti
Pianificazione territoriale
Pianificazione territoriale
Princ. e metodol. della progettazione meccanica
Principi di ingegneria elettrica
Principi di ingegneria elettrica
Principi fisici dei trasduttori
Probabilità e statistica
Processi chimici per l'elettronica
Produzione assistita da calcolatore
Prog. aut. circ. e sistemi elettronci
Prog. di sitemi elettronici ad alta frequenza
Prog. e dim. delle strutt. e sovrastrutt. di viabilità
Progett. sistemi elettronici integrati
Progettazione assistita di strutture meccaniche
Progettazione degli elementi costruttivi
Progettazione degli elementi costruttivi
Progettazione integrale
Progettazione integrale
Progettazione meccanica
Progettazione meccanica funzionale
Progettazione urbanistica
Progettazione urbanistica
Progetti di servizi tecnologici
Progetti di servizi tecnologici
Progetto dei sistemi di trasporto
Progetto di filtri attivi
Progetto di filtri passivi
Propagazione guidata e libera
Propulsione aerospaziale
Prova finale
Prova finale
Prova finale
Prova finale
Recupero e conservazione degli edifici
Regolazione e controllo degli impianti
Restauro architettonico
Reti di telecomunicazioni
Riabilitazione strutturale
Ricerca operativa
Rilievo dell'architettura
Risorse idriche
Scienza delle costruzioni
Scienza delle costruzioni
Scienza delle costruzioni
Scienza delle costruzioni I
Scienza delle costruzioni II
Scienza e tecnologia dei materiali
Sensori e trasduttori
Sicurezza degli impianti industriali
Sicurezza dei sistemi informatici
Sicurezza e affidabilità delle costruzioni
Sicurezza e salute del lavoro
6
6
9
6
9
6
3
3
3
6
6
6
6
6
6
9
6
9
6
6
6
9
6
9
3
6
3
3
6
6
12
9
6
3
9
6
12
9
3
6
9
6
12
9
6
6
6
6
6
6
6
3
6
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
Simulazione circuitale con Matlab e Simulink
Simulazione circuitale con Pspice e Psim
Simulazione e prototipazione virtuale
Sist. elettronici di misura
Sist. micro e nanoelettronici
Sist. per la cod. e trasm. dei segnali multimediali
Sist. per la cod. e trasm. dei segnali multimediali
Sistemi di controllo di gestione
Sistemi di telecomunicazione
Sistemi e reti di radiocomunicazioni
Sistemi elettrici per l'energia I
Sistemi elettrici per l'energia II
Sistemi energetici I
Sistemi idrici complessi
Sistemi informativi
Sistemi informativi per l'edilizia e il territorio
Sistemi informativi web
Sistemi integrati di produzione
Sistemi intelligenti per la diagnostica industriale
Sistemi operativi
Sistemi organizzativi e gestione delle ris. umane
Sistemi radianti I
Sistemi radianti II
Sperimentazione, collaudo e controllo delle strutture
Sperimentazione, collaudo e controllo delle strutture
Stabilità dei pendii
Stage associato alla tesi
Statica delle strutture murarie
Stima e controllo dei sistemi dinamici
Storia della città e del territorio
Storia dell'architettura
Storia dell'architettura contemporanea
Storia delle tecniche edilizie
Storia e tecniche del restauro
Strategia ed organizzazione aziendale
Strum. ed elab. delle informazioni di misura
Strutture prefabbricate
Strutture prefabbricate
Strutture speciali
Tecnica dei lavori idraulici
Tecnica dei lavori stradali
Tecnica della sicurezza elettrica
Tecnica delle costruzioni
Tecnica delle costruzioni metalliche
Tecnica e pianificazione urbanistica
Tecnica ed economa dei trasporti
Tecnica urbanistica I
Tecnica urbanistica II
Tecniche dei lavori stradali
Tecniche delle alte frequenze
Tecniche di valutazione di impatto ambientale
Tecniche di visione artificiale
Tecniche ottiche
3
3
6
6
6
3
6
6
6
6
6
6
6
6
6
3
6
6
3
6
6
6
6
9
6
6
3
6
3
6
9
12
6
6
6
6
9
3
6
6
9
6
12
6
6
6
12
12
3
6
3
6
6
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
Tecniche visione artificiale
Tecnologia dei materiali e chimica applicata
Tecnologia generale dei materiali
Tecnologia meccanica I
Tecnologia meccanica II
Tecnologie delle giunzioni
Tecnologie e mat. per l'elettronica
Tecnologie e sistemi di assemblaggio
Tecnologie generali dei materiali
Tecnologie per la tutela ambientale
Tecnologie speciali
Teconologie di lavorazione dei materiali polimerici
Telematica I
Telematica II
Telemisure
Teoria dei circuiti elettrici
Teoria dei linguaggi
Teoria dei sistemi
Teoria delle infrastrutture varie
Teoria delle reti elettriche
Teoria delle strutture
Teoria e applicazione dei grafi
Teoria e progetto delle costruzioni in acciaio
Teoria e progetto delle costruzioni in acciaio
Teoria e progetto delle costruzioni in c.a e c.a.p.
Teoria e progetto delle costruzioni in c.a e c.a.p.
Tirocinio
Tirocinio
Tirocinio
Tirocinio I
Tirocinio II
Tirocinio III
Topografia e tecniche cartografe
Topografia e tecniche cartografe
Turbomacchine
Valutazione economica di piani e progetti
Valutazione immobiliare
6
6
6
6
6
6
6
6
6
6
6
6
3
3
6
9
3
6
9
6
6
3
9
6
9
6
9
6
3
3
3
6
9
6
6
6
3
È necessario distinguere le materie aventi nomi uguali ma appartenenti a corsi diversi nel caso il loro peso in
crediti sia differente.
SIZEOF delle classi
//SIZEOF DI TUTTE LE CLASSI
cout<<"-- DIMENSIONE CLASSI --"<<endl<<endl;
cout<<"DATA: \t\t\t"<<sizeof(date)<<" Byte"<<endl;
cout<<"MATERIA: \t\t"<<sizeof(materia)<<" Byte"<<endl;
cout<<"LIBRETTO: \t\t"<<sizeof(libretto)<<" Byte"<<endl;
cout<<"INFO: \t\t\t"<<sizeof(info)<<" Byte"<<endl;
cout<<"UTENTE: \t\t"<<sizeof(utente)<<" Byte"<<endl;
cout<<"STUDENTE: \t\t"<<sizeof(studente)<<" Byte"<<endl;
cout<<"AMMINISTRATORE: \t"<<sizeof(amministratore)<<" Byte"<<endl;
L’allineamento viene fatto
predefinito più capiente.
in
base
alla
dimensione
in
//
//
//
//
//
//
//
12 Byte
88 Byte
20 Byte
60 Byte
144 Byte
488 Byte
144 Byte
memoria
del
tipo
date
La classe date contiene:
int day Æ 4 byte
int month Æ 4 byte
int year Æ 4 byte
4 + 4 + 4 = 12 byte
materia
La classe materia contiene:
int id Æ 4 byte
char nome[70] Æ 1 byte x 70 = 70 byte
4 + 70 + 2(vuoti) = 76 byte
float cfu Æ 4 byte
int voto Æ 4 byte
76 + 4 + 4 = 84 byte
bool lode Æ 1 byte
84 + 1 + 3(vuoti) = 88 byte
libretto
La classe libretto contiene:
materia *vett Æ 4 byte
float media_aritmetica Æ 4 byte
float media_pesata Æ 4 byte
float tot_cfu Æ 4 byte
int numero_esami Æ 4 byte
4 + 4 + 4 + 4 = 20 byte
info
La classe info contiene:
char username[30] Æ 1 byte x 30 = 30 byte
char password[30] Æ 1 byte x 30 = 30 byte
30 + 30 = 60 byte
utente
La classe utente contiene:
info up1 Æ 60 byte
info up2 Æ 60 byte
int key Æ 4 byte
char nomefile[16] Æ 1 byte x 16 = 16 byte
60 + 60 + 4 + 16 = 140 byte
virtual void set_nomefile()=0
è una funzione membro virtuale, quindi alla classe verrà associata la v-table e
per ogni istanza (in questo caso delle classi derivate essendo utente astratta)
verrà aggiunto il puntatore alla v-table Æ 4 byte
140 + 4 = 144 byte
studente
La classe studente contiene:
tutti gli attributi della classe utente più il puntatore alla v-table Æ 144
byte
char nome[30] Æ 1 byte x 30 = 30 byte
144 + 30 = 174 + 2 (vuoti) = 176 byte
char cognome[30] Æ 1 byte x 30 = 30 byte
176 + (30 – 2) = 204 byte
date datanascita Æ 12 byte
204 + 12 = 216 byte
char sesso Æ 1 byte
216 + 1 + 3 (vuoti) = 220 byte
char cittadinanza[30] Æ 1 byte x 30 = 30 byte
220 + (30 – 3) = 247 + 1 (vuoto) = 248 byte
char email[30] Æ 1 byte x 30 = 30 byte
248 + (30 – 1 ) = 277 + 3 (vuoti) = 280 byte
char numtelefono[30] Æ 1 byte x 30 = 30 byte
280 + (30 – 3) = 307 + 1 (vuoto) = 308 byte
char numcellulare[30] Æ 1 byte x 30 = 30 byte
308 + (30 – 1) = 337 + 3 (vuoti) = 340 byte
char codicefiscale[17] Æ 1 byte x 17 = 17 byte
340 + (17 – 3) = 354 + 2 (vuoti) = 356 byte
char nazione[30] Æ 1 byte x 30 = 30 byte
356 + (30 – 2) = 384 byte
char provincia[3] Æ 1 byte x 3 = 3 byte
384 + 3 + 1 (vuoto) = 388 byte
char comune[30] Æ 1 byte x 30 = 30 byte
388 + (30 – 1) = 417 + 3 (vuoti) = 420 byte
char corso_di_laurea[35] Æ 1 byte x 35 = 35 byte
420 + (35 – 3) = 452 byte
date registrazione Æ 12 byte
452 + 12 = 464 byte
int matricola Æ 4 byte
464 + 4 = 468 byte
libretto lib Æ 20 byte
468 + 20 = 488 byte
amministratore
La classe amministratore contiene:
tutti gli attributi della classe utente più il puntatore alla v-table Æ 144
byte
Scarica

LIBRETTO UNIVERSITARIO DEL POLITECNICO DI BARI