Database c
Database c
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 ::)
- danilo84
- Scoppiettante Seguace

- Messaggi: 929
- Iscrizione: lunedì 27 novembre 2006, 9:24
- Località: Taranto
Re: Database c
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...
Non so con quale db lo vuoi fare...
- simo_magic
- Rampante Reduce

- Messaggi: 9496
- Iscrizione: lunedì 18 dicembre 2006, 21:37
- Località: Piemonte
Re: Database c
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
java,c#,vb,gambas,php sono i più indicati
Re: Database c
lo so ma è un progetto, non è che mi potete dare una dritta..... 
Re: Database c
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
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.
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
...
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.
Ultima modifica di edgy il venerdì 18 aprile 2008, 12:33, modificato 1 volta in totale.
Re: Database c
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.elegos ha scritto: potresti usare sempre SQLite... è un semplice file che puoi portarti ovunque
http://www.sqlite.org/
Re: Database c
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
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
no è un progetto universitario e quindi non posso usare SQLite devo usare il C. ???
- daemon_nio
- Entusiasta Emergente

- Messaggi: 1012
- Iscrizione: lunedì 15 gennaio 2007, 14:18
- Sesso: Maschile
- Località: London
- Contatti:
Re: Database c
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
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
Sempre costruendo qualcosa di nuovo: Matag: The Game
- ryuujin
- Entusiasta Emergente

- Messaggi: 1032
- Iscrizione: venerdì 14 aprile 2006, 2:57
- Sesso: Maschile
- Località: Pescara
- Contatti:
Re: Database c
puoi indircarci le specifiche del progetto per intero?yoghi87 ha scritto: no è un progetto universitario e quindi non posso usare SQLite devo usare il C. ???
r.
http://blog.spicydev.it
"Chi riceve un'idea da me, ricava conoscenza senza diminuire la mia; come chi accende la sua candela con la mia, riceve luce senza lasciarmi
al buio". - Thomas Jefferson
"Chi riceve un'idea da me, ricava conoscenza senza diminuire la mia; come chi accende la sua candela con la mia, riceve luce senza lasciarmi
al buio". - Thomas Jefferson
Re: Database c
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.
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.
Ultima modifica di yoghi87 il sabato 19 aprile 2008, 13:26, modificato 1 volta in totale.
Re: Database c
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
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
io direi una cosa del genere:
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.
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
}
Ultima modifica di moretto11 il martedì 22 aprile 2008, 15:04, modificato 1 volta in totale.
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti