PDA

View Full Version : [C] Alcuni dubbi realizzazione programma


Baio84
08-06-2012, 09:01
Voglio crearmi un programmino che gestisca un campionato calcistico. Non ho ancora incominciato a compilare codice. Ho già idea di come farlo (molto semplice, non voglio grandi cose), però ho alcuni dubbi al riguardo.

Sono alle prime armi e nei pochi programmini che mi sono creato, le istruzioni venivano stampate a video a cascata, lasciandomele visualizzate tutte.
Io volevo: schermata di scelta, scelgo, passo a una nuova visualizzazione senza che mi rimangano stampate a video le scelte che posso fare (ad esempio tipo i primi programmi di contabilità che giravano su DOS).

Domanda 1: Come posso ottenere questo "effetto"? Io ho pensato che una volta fatta la scelta inserisco un system ("cls") e svuoto lo schermo, però volevo sapere se la cosa si potesse svolgere in un modo un po' più tecnico.


Volevo suddividere il programma in più file di codice. Un primo file dove effettuo la scelta (Crea squadra, crea campionato, guarda classifica, ecc.), e un file per ogni scelta che andrò a fare dove svilupperò il codice specifico, però non so bene come richiamare i file "secondari" in quello "primario", dove faccio la scelta.

Domanda 2: Come faccio a richiamare in un programma del codice di un altro file?

FedNat
08-06-2012, 17:53
Sono alle prime armi e nei pochi programmini che mi sono creato, le istruzioni venivano stampate a video a cascata, lasciandomele visualizzate tutte.
Io volevo: schermata di scelta, scelgo, passo a una nuova visualizzazione senza che mi rimangano stampate a video le scelte che posso fare (ad esempio tipo i primi programmi di contabilità che giravano su DOS).

Domanda 1: Come posso ottenere questo "effetto"? Io ho pensato che una volta fatta la scelta inserisco un system ("cls") e svuoto lo schermo, però volevo sapere se la cosa si potesse svolgere in un modo un po' più tecnico.


Per ottenere quello che vuoi credo proprio tu debba utilizzare una libreria esterna che ti fornisca l'infrasturttura necessaria per gestire lo schermo.
Su Liinux esiste la libreria ncurses che credo sia disponibile anche per windows (vedi Wikipedia (http://en.wikipedia.org/wiki/Ncurses))


Volevo suddividere il programma in più file di codice. Un primo file dove effettuo la scelta (Crea squadra, crea campionato, guarda classifica, ecc.), e un file per ogni scelta che andrò a fare dove svilupperò il codice specifico, però non so bene come richiamare i file "secondari" in quello "primario", dove faccio la scelta.

Domanda 2: Come faccio a richiamare in un programma del codice di un altro file?


Ogni file .c è un modulo e viene compilato in un file oggetto dal compilatore (solitamente sono file .o). Una volta che tutti i moduli sono stati compilati il linker li mette tutti insieme in un file eseguibile.
Per poter utilizzare in un modulo (ad esempio aaa.c) variabili o funzioni dichiarate in un altro modulo (ad esempio bbb.c) è necessario dichiararle nuovamente all'interno del modulo (aaa.c) anteponendogli la parola chiave extern. In questo modo il compilatore conosce il tipo di variabile o funzione che deve trattare e lascia dei "buchi" nel file oggetto che vengono riempiti dal linker

Esempio:
in bbb.c


/* variabile globale */
char *nomeSquadra;

/* prototipo funzione */
void creaSquadra(char *nome, int numeroGiocatori);

/* corpo funzione */
void creaSquadra(char *nome, int numeroGiocatori)
{
...
corpo della funzione
...
}



in aaa.c

extern char *nomeSquadra;
extern void creaSquadra(char *nome, int numeroGiocatori);


int main (void)
{
...
creaSquadra(nomeSquadra, 25);
...
}

Filly95
10-06-2012, 16:52
Io ho pensato che una volta fatta la scelta inserisco un system ("cls") e svuoto lo schermo, però volevo sapere se la cosa si potesse svolgere in un modo un po' più tecnico.

Va più che bene il system("cls"), eh.