PDA

Visualizza la versione completa : [c++] Assemblaggio di programmi complessi


theboss280489
09-03-2010, 11:09
Salve ragazzi, dovrei sviluppare un programma per la gestione di un campionato di calcio in C++.
Ovviamente avr diverse classi, metodi, diverse funzioni ecc.
Prevedendo un menu di questo tipo:
Squadre
Classifiche
Calciatori
Calendario
.
.
.
Per ognuna delle voci precedenti ci sono delle diverse funzioni classi ecc ecc.
Sono sempre stato abituato a programmare in un unico file quindi le classi le funzioni ecc ecc erano tutte in quel file .cpp.
Dovendo ora sviluppare una cosa pi complessa come devo procedere?
salvo le classi in file separati (x esempio classi_squadre.h, classi_classifiche.h ecc ecc).
Successivamente nel file squadre.cpp per esempio inserisco tutte le funzioni e i metodi che mi servono includendo la classe.
E se volessi passare da un file ad un altro?
tipo se dall'amministrazione di squadre volessi passare a quella dei calciatori come faccio?
Qualcuno mi chiarisce come dovrei lavorare in queste occasioni?
Grazie

king64
09-03-2010, 12:35
Devi considerare l'uso di un database, e su questo fare le operazioni che ritiene pi opportune. Saluti :ciauz:

theboss280489
09-03-2010, 12:56
E che risposta ? Penso di essermi spiegato bene che c'entra l'uso di database?
Ho semplicemente chiesto come passare da una parte all'altra se non scrivo un unico file :dh:

theboss280489
09-03-2010, 13:43
Esempio pratico:
il mio main apre una windows form.
Da questa windows form tramite un semplice collegamento linkato devo aprire una specie di sotto programma "squadre" che faccia tutte le operazioni sulle squadre.
Di li poi ritornare al menu ecc ecc.
Il file squadre.cpp deve avere un main proprio? oppure deve contenere solo funzioni e classi?
Aiuto :(

antotan
10-03-2010, 13:31
Ovviamente dipende da cosa dovrai usare per la gui ma, in generale, dovresti poter creare oggetti di una determinata classe che rappresentano le finestre.
Ad esempio, la finestra principale puoi definirla in un header MainWindow.h del tipo:



#include "CalciatoriWindow.h"
#include "ClassificaWindow.h"
#include "Calciatori.h"
#include "Squadre.h"
.
.
.
class MainWindow
{
private:
.
.
CalciatoriWindow* calcWin;
ClassificaWindow* sqWin;

vector<Calciatori> vectCalciatori;
vector<Squadre> vectSquadre;
.
public
.
.
};


come noti, all'interno hai degli oggetti che rappresentano i dati (calciatori, squadre...), e degli oggetti che rappresentano le finestre da mostrare.
Quando clicchi, ad esempio, sul tasto che deve mostrarti la finestra dei calciatori, avrai qualcosa di simile:



void MainWindow::showCalciatoriWindow(MouseEvent e)
{
this->calcWin->setData(this->vectCalciatori);
this->calcWin->show();
}


questo metodo, contenuto in MainWindow.cpp, collega il click del mouse al tasto. Vengono settati i dati da mostrare e viene richamato show, per mostrare la finestra.
Ovviamente la parte che ti interessa principalmente la show. Il setData solo di esempio.

Come detto, avrai due file CalciatoriWindow.h e CalciatoriWindow.cpp, e all'interno della classe CalciatoriWindow avrai i metodi show (che mostra la finestra) e close (definiti da te oppure ereditati da un qualche Widget che implementa una finestra nella libreria che utilizzi).
Stesso per tutte le altre finestre.

Il tutto si riduce ad una finestra principale che richiama show sulle varie finestre che, a loro volta, verranno chiuse dal loro metodo close.
Il main sempre unico e definisce il punto d'accesso al programma, quindi non ha senso crearne pi di uno.

:ciauz:

theboss280489
10-03-2010, 14:45
Ok quindi piu o meno avevo una idea chiara di chiara di come andava fatto.
Grazie

Loading