Tesina Stage

12
GESTIONE DI DATI AZIENDALI IN LINGUAGGIO C Tesina finale dello stage effettuato presso la facoltà di Ingegneria dell’informazione dell’Università di Modena Realizzata da: Emanuele Pozzi Classe IVC Liceo Scientifico Tecnologico

Transcript of Tesina Stage

Page 1: Tesina Stage

GESTIONE DI DATI AZIENDALI IN LINGUAGGIO C

Tesina finale dello stage effettuato presso la facoltà di Ingegneria dell’informazione dell’Università di Modena

Realizzata da:Emanuele PozziClasse IVCLiceo Scientifico Tecnologico

Anno scolastico 2009/2010

Page 2: Tesina Stage

INDICE

1. Prefazione2. Borland C++ Builder3. Strutture dati4. Record5. Comandi principali6. Funzioni principali7. Visualizzazione8. Conclusioni

2

Page 3: Tesina Stage

Prefazione

L’argomento trattato all’interno di questo scritto è l’esperienza svolta presso l’Università di Modena nel corso del progetto di stage promosso dalla scuola.Il lavoro si è svolto con un’iniziale divisione dei compiti formando 5 gruppi di lavoro ciascuno occupato nella realizzazione di un diverso progetto.Quello a cui è stato interessato il gruppo di cui facevo parte riguardava la gestione delle informazioni relative al personale di un’azienda. Questa applicazione doveva essere creata con l’ausilio del linguaggio C++, e grazie all’uso di file di testo per registrare i dati inseriti durante l’utilizzo del programma.In particolare erano da memorizzare su archivi differenti l’elenco degli impiegati, le ora mensili di ciascun dipendente, il costo orario di ciascuna categoria professionale e lo stipendio dell’ultimo mese di ciascun impiegato.Inoltre l’applicazione deve essere in grado di eseguire l’inserimento, la modifica e la cancellazione delle informazioni, dell’orario mensile e della tariffa oraria di ciascun lavoratore. In aggiunta a ciò vi era il calcolo di ogni stipendio e la generazione dei report (stampa dei dati di un database) relativi alle informazioni memorizzate.Per il raggiungimento dello scopo conclusivo è stato utilizzato un compilatore (programma che converte un codice in un linguaggio comprensibile al pc) che utilizza appunto il C++, vale a dire “Borland C++ Builder”.

3

Page 4: Tesina Stage

Borland C++ Builder

Riguardo ai compilatori ci furono due case che competevano in questo campo, la Microsoft e la Borland(ora chiamata Imprise), esse hanno cercato di creare sempre delle migliorie e il tipo di compilatore utilizzato per il compimento del progetto dello stage fu un enorme passo avanti da parte della Borland riguardo la programmazione in C.Prima di poter parlare del compilatore denominato “Borland C++ Builder” bisogna dire che un programma che possa disporre delle funzioni grafiche di Windows deve avere l’IDE(Integrated Developement Enviroment = ambiente di sviluppo integrato,cioè un software che mette a disposizione diversi strumenti in uno, in particolare quelli che consentono di scrivere il sorgente del programma, di compilarlo e di eseguirlo) che preveda funzionalità RAD (Rapid Application Developement = sviluppo rapido di applicazioni).Il C++ Builder è il primo compilatore che possiede queste caratteristiche. È stato molto utilizzato perché possededeva un ambiente particolare denominato Delphi che,pur non possedendo la semplicità del linguaggio scelto da Microsoft (il Basic), permette di avere un ambiente di programmazione ad oggetti e di creare applicativi piccoli e veloci. Esso fu il primo a fregiarsi del titolo di compilatore veramente RAD per il C++.Veramente RAD perché si basa su Delphi appunto e sulla stessa infrastruttura di librerie (la VCL, Visual Component Library) del Delphi; veramente C++ perché il C++ Builder è compatibile con i codici sorgente scritti per le versioni precedenti del compilatore C++ della Borland .

4

Page 5: Tesina Stage

Strutture Dati

Per facilitare la ricerca e la rappresentazione di elementi di tipo semplice si ricorre all’utilizzo di strutture dati ovvero un’entità usata per organizzare un insieme di dati all'interno della memoria del computer, ed eventualmente per memorizzarli in una memoria di massa.L’indicazione di una struttura dati in linguaggio C++ avviene con l’utilizzo della parola chiave “struct”.La sua dichiarazione avviene tramite il seguente codice:

struct NomeStruttura { tipo1 campo1; tipo2 campo2; tipo3 campo3;

};

In una struttura si possono quindi raggruppare dati di tipi diversi che possono ad esempio essere elementi numerici oppure caratteri (rispettivamente chiamati “int” o “char”).Nel programma assegnatosi bisognava creare 3 strutture differenti ciascuna con caratteristiche diverse per memorizzare su differenti file le informazioni inserite durante l’avvio dell’applicazione.

(Nell’immagine è presente una struttura utilizzata nel programma creato durante lo stage, piùprecisamente quella relativa alla qualifica dell’impiegato con la relativa tariffa oraria.)

Ogni struttura dati prende il nome di “record”.

5

Page 6: Tesina Stage

Record

Il record è un oggetto di un database strutturato in dati che contiene un insieme di campi o elementi, ciascuno dei quali possiede nome e tipo propri.È una struttura dati eterogenea, contenente una combinazione di elementi di diverso tipo, ad esempio un intero, un numero in virgola mobile e una sequenza di caratteri alfabetici (stringa). Gli elementi di un record sono detti anche campi, e sono identificati da un nome.Si può considerare un insieme di due dati: un puntatore e il dato vero. Il puntatore è l'informazione che deve avere il dato. In modo più semplice se si ha una tabella:

Nome: Cognome:Mario Rossi

Puntatore Puntatore  

Dato Dato << 1 record

(Stampa del programma in cui si notano 3 record differenti al’interno di uno stesso file.)

6

Page 7: Tesina Stage

Comandi Principali

In ogni programma scritto in linguaggio C++ necessita di alcuni comandi base che formano le vere e proprie fondamenta dell’applicazione stessa.Quelli più utilizzati all’interno del progetto sono i seguenti:

-)puntatore=fopen(“nomefile.estensione” , “lettura o scritura”) Apre il file su cui vogliamo lavorare oppure lo crea se non è esistente. Esso può essere aperto in scrittura se si vuole aggiungere o modificare il suo contenuto oppure in lettura se si vuole solo controllare quello che vi è al suo interno.

-)fwrite(&variabile della struttura , sizeof(nome struttura) , 1 , puntatore) Scrive all’interno del file i dati che vogliamo inserire.

-)fread(&variabile della struttura , sizeof(nome struttura) , 1 , puntatore) Legge il file un record alla volta ed è necessario ad esempio per la visualizzazione.

-)fseek(puntatore , x , y) Si tratta di un puntatore all’interno del file, all’interno della sua sintassi il valore x è il numero di bytes dall'origine dove andrebbe posizionato l'indicatore di posizione, mentre y è un intero che specifica la posizione di origine rispetto alla quale spostare l'indicatore di posizione. Il suo utilizzo è avvenuto durante la scrittura della funzione modifica.

-)fclose(puntatore) Permette di chiudere il file su cui si stava lavorando per fare in modo che al suo interno non possano avvenire ulteriori cambiamenti non specificati dall’utente.

7

Page 8: Tesina Stage

Funzioni principali

Le funzioni utilizzate all’interno del programma sono l’inserimento, la modifica e la cancellazione dei dati all’interno di ogni singolo file.

Inserimento

Questa funzione serve per aggiornare il file senza andare a toccare i record precedentemente aggiunti. Nel progetto interessava tutte le strutture che sono inizialmente vuote e che vengono riempite da tastiera dall’utente.Il programma mostrava la seguente interfaccia per introdurre i dati:

Qui si può vedere appunto la visualizzazione dell’inserimento degli impiegati del’azienda. In specifico nell’aplicazione la matricola veniva aggiornata automaticamente senza l’intervento dell’utente mentre tutti gli altri campi venivano inseriti da tastiera.

8

Page 9: Tesina Stage

Nel caso in cui venisse assegnata ad un dipendente una qualifica non presente all’interno del file relativo veniva restituito il seguente errore:

Questi controlli funzionano anche per tutti gli altri inserimenti che si possono fare all’interno del programma.

9