Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c++] Assemblaggio di programmi complessi

    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

  2. #2
    Devi considerare l'uso di un database, e su questo fare le operazioni che ritiene più opportune. Saluti

  3. #3
    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

  4. #4
    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

  5. #5
    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:

    Codice PHP:
    #include "CalciatoriWindow.h"
    #include "ClassificaWindow.h"
    #include "Calciatori.h"
    #include "Squadre.h"
    .
    .
    .
    class 
    MainWindow
    {
        private:
            .
            .
            
    CalciatoriWindowcalcWin;
            
    ClassificaWindowsqWin;
            
            
    vector<CalciatorivectCalciatori;
            
    vector<SquadrevectSquadre;
            .
        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:

    Codice PHP:
    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.


  6. #6
    Ok quindi piu o meno avevo una idea chiara di chiara di come andava fatto.
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.