Progetto c++ Itinerario

di il
76 risposte

76 Risposte - Pagina 4

  • Re: Progetto c++ Itinerario

    Due parole sulla notazione, ci sono alcune convezioni per attribuire i nomi alle variabili. Ad esempio la 'Pascal convention' prevede di scrivere i nomi iniziando con una maiuscola e nei nomi composti ripetere la maiuscola, ad esempio 'ContaPezziBuoni'. Esiste poi la 'Camel convention' che prevede di iniziare con una minuscola e poi usare le maiuscole se il nome è composto, ad esempio 'contaPezziBuoni'. Una consuetudine molto seguita prevede di usare la PascalConvention per i nomi delle classi e per i nomi dei metodi, mentre per i nomi delle variabili si usa la 'camel convention' se ci fai caso finora ci siamo attenuti a queste regole (magari questo verrà notato all' esame e devi saperlo spiegare )
  • Re: Progetto c++ Itinerario

    E che caratteristiche deve avere questa classe?
  • Re: Progetto c++ Itinerario

    Si può fare in vari modi, dato che di solito non fai un singolo test ma fai una batteria di test, ad esempio prima provi con dei percorsi che non si intersecano, poi con altri che si intersecano in un solo punto, poi in piu punti ecc. ecc. A questo punto potresti fare una classe di test che ha alcuni metodi chiamati Test1(), Test2(), Test3() ecc. ognuno che esegue un particolare test (per ora falli vuoti) e un metodo che li richiama tutti in sequenza chiamato ad esempio 'Esegui()'.
  • Re: Progetto c++ Itinerario

    class TestItinerario
    {
    public:
        int TestItinerario1();
        int TestItinerario2();
        int TestItinerario3();
        int TestItinerario4();
        
        void Esegui ()
        {
            cout<<TestItinerario1<<endl;
            cout<<TestItinerario2<<endl;
            cout<<TestItinerario3<<endl;
            cout<<TestItinerario4<<endl;
            
        };
        
    };
  • Re: Progetto c++ Itinerario

    Penso sia meglio che ogni Test ci pensi lui a scrivere su cout e 'Esegui' si limiti a eseguirli in sequenza, eventualnete scrivendo all' inizio e alla fine:
    
      void Esegui ()
       {
            cout << "Inizio Test" << endl;
    
            TestItinerario1();
            TestItinerario2();
            TestItinerario3();
    
            cout << "Fine test" << endl;
        };
    
    Se vuoi un consigli abbonda con gli spazi, rendono il codice più leggibile. Prendi un qualsiasi libro di programmazione, non troverai mai scritto 'cout<<a+b*2<<endl" ma "cout << a + b * 2 << endl".
  • Re: Progetto c++ Itinerario

    Si hai ragionissima, dovrei usare anche qualche commento. Per il resto la classe è scritta bene?
  • Re: Progetto c++ Itinerario

    Ok, adesse inizia a scrivere il primo test, istanzi un paio di itinerari, li riempi e li metti in un ContenitoreItinerari, un po come avevi fatto nel main.
  • Re: Progetto c++ Itinerario

    Itinerario itinerario1("Primo percorso");
        itinerario1.Add(100, 200);
        itinerario1.Add(230, 500);
        itinerario1.Add(20, 300);;
        
        Itinerario itinerario2("Secondo percorso");
        itinerario2.Add(100, 200);
        itinerario2.Add(230, 500);
        itinerario2.Add(20, 300);
     
        Itinerario itinerario3("Terzo percorso");
        itinerario3.Add(100, 200);
        itinerario3.Add(230, 500);
        itinerario3.Add(20, 300);
        
        Itinerario itinerario4("Quarto percorso");
        itinerario4.Add(100, 200);
        itinerario4.Add(230, 500);
        itinerario4.Add(20, 300);
        
       
        
        ContenitoreItinerari contenitore;
        contenitore.itinerari.push_back(itinerario1);
        contenitore.itinerari.push_back(itinerario2);
        contenitore.itinerari.push_back(itinerario3);
        contenitore.itinerari.push_back(itinerario4);
    
  • Re: Progetto c++ Itinerario

    Però quello che scrivi si deve compilare, devi scriverlo in Xcode, se poi non funziona meglio così ti spiego qualcosa.
  • Re: Progetto c++ Itinerario

    Quello che ti sto scrivendo logicamente lo edito prima in xcode per vedere eventuali warning o errori

    ho solo questo warning ma non è importante:
    #warning This file includes at least one deprecated or antiquated header. \
  • Re: Progetto c++ Itinerario

    Ottimo, a questo punto puoi cominciare ad occuparti della funzione che confronta i percorsi, la devi aggiungere a Contenitore Percorsi e avrà una firma del genere:
    
    bool Confronta(Itinerario itinerario1, Itinerario itinerario2);
    
  • Re: Progetto c++ Itinerario

    Uso la funzione OR così confronto i due itinerari e mi rilascia true se almeno uno dei due itinerari coincide con l'altro e se nessuno dei due conincide mi rilascia false
  • Re: Progetto c++ Itinerario

    Per vedere se i percorsi si intersecano come devi fare? Devi vedere se hanno un luogo in comune?
    (li sai usare gli iteratori su un vector?)
  • Re: Progetto c++ Itinerario

    No , però essendo i percorsi prestabiliti non basterebbe confrontarli direttamente esempio:

    bool coincidono= percorso1||percorso2
  • Re: Progetto c++ Itinerario

    cipiupiu ha scritto:


    La classe CONTENITORE_ITINERARI oltre ai metodi specifici contiene un metodo che ricevendo in ingresso due itinerari restituisce vero o falso se i due itinerari hanno un punto in comune o meno.
    Io qui capisco che per vedere se i due percorsi si intersecano devi vedere se hanno almeno un luogo in comune. È così? (quello che stai dicendo di usare l' OR non lo capisco e non mi sembra che abbia senso).
Devi accedere o registrarti per scrivere nel forum
76 risposte