Pagina 1 di 1
Database c
Inviato: giovedì 17 aprile 2008, 20:52
da yoghi87
Salve ragazzi dovrei fare un semplice database di un elenco di studenti che hanno sostenuto un esame e sarà associato a loro la matricola e il voto, fatto il database dovrei fare un programma in c che acquisisce da file il database e effettui un ordinamento in base al cognome.... come imposterete il lavoro? il database come lo faccio? come una libreria?Grazie ::)
Re: Database c
Inviato: giovedì 17 aprile 2008, 20:55
da danilo84
Ciao ho trovato qui questo esempio per leggere da un database mysql:
http://www.ucl.ac.uk/is/mysql/c/
Non so con quale db lo vuoi fare...
Re: Database c
Inviato: giovedì 17 aprile 2008, 21:00
da simo_magic
in c? auguri!!! i programmi che si interfacciano ad un database ponendosi all'utente con una gui(anche minimi come il tuo) sono troppo complessi per poter essere fatti produttivamente e in poco tempo con il c/c++
java,c#,vb,gambas,php sono i più indicati
Re: Database c
Inviato: giovedì 17 aprile 2008, 21:01
da yoghi87
lo so ma è un progetto, non è che mi potete dare una dritta.....

Re: Database c
Inviato: venerdì 18 aprile 2008, 12:31
da edgy
Il db puoi implementarlo in questa maniera
chiedi il nome del file da cui prendere i dati, lo apri in lettura e ogni riga è un record (che contiene tutti dati della persona), magari come separatore usi questo carattere "|" che è poco usato e così avrai una roba del genere
Codice: Seleziona tutto
Rossi | Mario | 000000001 | 27
Verdi | Giuseppe | 000000002 | 18
...
e così via.
Così sai che ogni riga è uno studente e che ogni separatore delimita campi diversi.
A questo punto ti serve solo sapere che al primo posto hai il cognome, al secondo il nome al terzo la matricola etc.
Piccola precisazione, io lo imposterei così solo se esiste un solo esame per studente, se sono di più lo farei utilizzando più file come DB.
Buon lavoro.

Re: Database c
Inviato: venerdì 18 aprile 2008, 13:29
da elegos
potresti usare sempre SQLite... è un semplice file che puoi portarti ovunque
http://www.sqlite.org/
Re: Database c
Inviato: venerdì 18 aprile 2008, 14:20
da edgy
elegos ha scritto:
potresti usare sempre SQLite... è un semplice file che puoi portarti ovunque
http://www.sqlite.org/
Ma se non ho capito male è un progetto che deve fare per la scuola e quindi mi sa che deve usare i file e gestire lui un db.
Re: Database c
Inviato: venerdì 18 aprile 2008, 16:45
da yoghi87
ma.... non è che abbia capito bene, io avevo pensato di creare una libreria con una stuttura e di fare un programmino.c che richiami la libreria ordinando i componenti.NO? ???
Re: Database c
Inviato: sabato 19 aprile 2008, 11:06
da elegos
yoghi87 fammi capire... è un qualcosa che devi fare per SCUOLA o vuoi solo 'dilettarti' o creare qualcosa per un qualcosa di più grosso? Se è la seconda cosa quel che ti interessa, SQLite è un database già implementato in C, devi solo usare le sue funzioni e puoi ordinare i dati come meglio ti pare (o meglio: i dati sono 'sequenziali' non in ordine, ma li puoi chiamare in ordine)
Re: Database c
Inviato: sabato 19 aprile 2008, 12:39
da yoghi87
no è un progetto universitario e quindi non posso usare SQLite devo usare il C. ???
Re: Database c
Inviato: sabato 19 aprile 2008, 12:44
da daemon_nio
Beh allora devi vedere:
Se l'esame è di programmazione in c, usa un file di testo come suggerito da edgy tanto lo scopo dei prof è vedere ben altro (strutture, allocazione dinamica, liste, ...)
Se l'esame è di basi di dati, fai un bel database con SQLite o a questo punto ti consiglio MySQL e poi accenna solo ad interfacciarti.
In entrambi i casi non ti servono neanche librerie grafiche.
Di codici da cui puoi prendere spunto ce ne sono una cifra, sia in questo forum sia in giro per la rete

Fai una semplice ricerca e stai calzato

Re: Database c
Inviato: sabato 19 aprile 2008, 12:47
da ryuujin
yoghi87 ha scritto:
no è un progetto universitario e quindi non posso usare SQLite devo usare il C. ???
puoi indircarci le specifiche del progetto per intero?
r.
Re: Database c
Inviato: sabato 19 aprile 2008, 12:50
da yoghi87
Sia dato un semplice database che rappresenta un elenco di studenti che hanno sostenuto un esame.
Il database µe organizzato sotto forma di ¯le di testo su 3 colonne contenenti informazioni relative
a (Cognome, Matricola, Voto) come ad esempio:
Cognome Matricola Voto
Bianchi 212 21
Rossi 128 30
Verdi 54 22
Scrivere un programma ANSI C che acquisice il database da file, ne effettua un ordinamento
in base alla chiave primaria (Cognome) o alle chiavi secondarie (Matricola, Voto) sulla base della
scelta dell'utente e produce in uscita il database ordinato. L'ordinamento sulle chiavi secondarie
deve conservare l'ordine relativo prodotto dalla chiave primaria.
Re: Database c
Inviato: sabato 19 aprile 2008, 18:06
da edgy
cosa di quello che ho scritto non ti è chiaro, così vedo di spiegarmi meglio.
Ho usato il carattere "|" perchè c'è il problema dei nomi/cognomi con lo spazio e in questo modo puoi superarlo ma non è nemmeno il tuo caso.
Comunque a parte questo particolare l'idea è quella che ti ho detto.
ciao
Re: Database c
Inviato: martedì 22 aprile 2008, 14:59
da moretto11
io direi una cosa del genere:
Codice: Seleziona tutto
typedef struct Studente_T{
char cognome[dimensione che vuoi];
char matricola[dimensione matricola+1];
int voto;
} Studente;
Studente studenti[numero di studenti];
int main(){
FILE *fpr;
int i=0;
fpr=fopen("database.txt","rt");
while(!feof(fpr)){
fscanf(fpr,"%s %s %d", studenti[i].cognome, studenti[i].matricola,&studenti[i].voto);
i++;
}
//ordinamento
}
e poi ordini la struttura studenti con un semplice bubble-sort, ad esempio usando la funzione strcmp per il cognome e per la matricola, o normalmente per il voto, e poi alla fine te la ristampi su un file con un altro file pointer in write mode.