Database c

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
yoghi87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 403
Iscrizione: giovedì 25 ottobre 2007, 9:58

Database c

Messaggio 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  ::)
Avatar utente
danilo84
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 929
Iscrizione: lunedì 27 novembre 2006, 9:24
Località: Taranto

Re: Database c

Messaggio 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...
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: Database c

Messaggio 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
Avatar utente
yoghi87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 403
Iscrizione: giovedì 25 ottobre 2007, 9:58

Re: Database c

Messaggio da yoghi87 »

lo so ma è un progetto, non è che mi potete dare una dritta..... :(
edgy
Prode Principiante
Messaggi: 134
Iscrizione: sabato 28 ottobre 2006, 14:32

Re: Database c

Messaggio 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.  ;)
Ultima modifica di edgy il venerdì 18 aprile 2008, 12:33, modificato 1 volta in totale.
Avatar utente
elegos
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1308
Iscrizione: sabato 14 ottobre 2006, 18:34
Contatti:

Re: Database c

Messaggio da elegos »

potresti usare sempre SQLite... è un semplice file che puoi portarti ovunque :)
http://www.sqlite.org/
edgy
Prode Principiante
Messaggi: 134
Iscrizione: sabato 28 ottobre 2006, 14:32

Re: Database c

Messaggio 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.
Avatar utente
yoghi87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 403
Iscrizione: giovedì 25 ottobre 2007, 9:58

Re: Database c

Messaggio 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? ???
Avatar utente
elegos
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1308
Iscrizione: sabato 14 ottobre 2006, 18:34
Contatti:

Re: Database c

Messaggio 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)
Avatar utente
yoghi87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 403
Iscrizione: giovedì 25 ottobre 2007, 9:58

Re: Database c

Messaggio da yoghi87 »

no è un progetto universitario e quindi non posso usare SQLite devo usare il C. ???
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: Database c

Messaggio 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 :D
Sempre costruendo qualcosa di nuovo: Matag: The Game
Avatar utente
ryuujin
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1032
Iscrizione: venerdì 14 aprile 2006, 2:57
Sesso: Maschile
Località: Pescara
Contatti:

Re: Database c

Messaggio 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.
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
Avatar utente
yoghi87
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 403
Iscrizione: giovedì 25 ottobre 2007, 9:58

Re: Database c

Messaggio 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.
Ultima modifica di yoghi87 il sabato 19 aprile 2008, 13:26, modificato 1 volta in totale.
edgy
Prode Principiante
Messaggi: 134
Iscrizione: sabato 28 ottobre 2006, 14:32

Re: Database c

Messaggio 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
Avatar utente
moretto11
Prode Principiante
Messaggi: 217
Iscrizione: venerdì 20 aprile 2007, 16:33
Contatti:

Re: Database c

Messaggio 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.
Ultima modifica di moretto11 il martedì 22 aprile 2008, 15:04, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti