Progetto c++ Itinerario

di il
76 risposte

Progetto c++ Itinerario

Salve a tutti e ringrazio anticipatamente chi metterà la sua attenzione in questo post.

Ho un quesito da porre agli utenti di questo forum, premettendo che non sono un programmatore e mi trovo a dover affrontare un esame dove mi è stato richiesto quello che sto postando qui di seguito:

Realizzare un sistema software in C++ per la gestione di itinerari stradali.
In questo sistema le coordinate geografiche di un punto sono rappresentate da una coppia di valori reali che indicano la longitudine e la latitudine.
Ogni ITINERARIO è caratterizzato da una serie di attributi comuni (es. nome, tipo, ecc.) ed un elenco di coordinate geografiche che indicano la sequenza di punti attraversati.
Il sistema utilizza una classe CONTENITORE_ITINERARI per raccogliere tutti gli itinerari.
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.
Si progettino tutte le classi necessarie e successivamente si scriva una classe di test che crei vari oggetti di tipo ITINERARIO e un CONTENITORE_ITINERARI e visualizzi gli itinerari che non hanno punti in comune.

Ho creato per ora un programma che date le coordinate di A e quelle di B mi trova la distanza geodedica che intercorre fra queste due ed ho suddiviso i vari punti "luoghi" assegnando ad ognuno le proprio coordinate. Adesso dovrei inserire nel programma gli itinerari e dare in output i punti attraversati da ogni intinerario, ma qui mi sono bloccato...

76 Risposte

  • Re: Progetto c++ Itinerario

    Ciao cipiupiu,
    La prima cosa da fare quando fai un programma ad oggetti è quella di creare la classi che vi partecipano. Quindi dovresti aver creato una classe 'Itinerario' con i suoi attributi e che contiene una lista di 'Luoghi' (è un' altra classe, composta da due coordinate), poi hai creato un' altra classe chiamata 'ContenitoreItinerari' che contiene un elenco di 'Itinerari' e ha il metodo 'ConfrontaItinerari' (per ora vuoto) ecc.
    Se questo lo hai già fatto puoi cominciare a mostrare il codice cha hai scritto, poi andiamo avanti.
  • Re: Progetto c++ Itinerario

    Ti posto di seguito le 2 classi:

    Questo è quello che è contenuto in ITINERARIO.h
    class ITINERARIO
    {
    public:
        char nome[20];
        char tipo[20];
    
    
    
        class LUOGHI
        {
        public:
            char casa[41.687135, 13.336469]
            char scuola[41.387125, 13.552969]
            char lavoro[41.725266, 13.344400]
            
        };
    
    
    
    
    };
    Questo è quello che è contenuto in CONTENITORE_ITINERARI.h
    class CONTENITORE_ITINERARI
    {
    public:
        char casa_scuola[20]
        char scuola_casa[20]
        char casa_lavoro[20]
        char lavoro_casa[20]
        char lavoro_scuola[20]
        char scuola_lavoro[20]
    }
    
    void confrontaitinerari (void)
    {
    
    };


    poi ti posto anche lo script che vorrei usare per calcolare la distanza geodedica:
    	double disgeod (double latA, double lonA,
        double latB, double lonB)
    	{
        	      /* Definisce le costanti e le variabili */
        	      
            const double R = 6371; //Raggio terrestre approssimato
        	      
            const double pigreco = 3.1415927;
        	    
            double lat_alfa, lat_beta;
        	
            double lon_alfa, lon_beta;
        	
            double fi;
        	
            double p, d;
        	
            /* Converte i gradi in radianti */
        	      lat_alfa = pigreco * latA / 180;
        	      lat_beta = pigreco * latB / 180;
        	      lon_alfa = pigreco * lonA / 180;
        	      lon_beta = pigreco * lonB / 180;
        	      /* Calcola l'angolo compreso fi */
        	      fi = fabs(lon_alfa - lon_beta);
        	      /* Calcola il terzo lato del triangolo sferico */
        	      p = acos(sin(lat_beta) * sin(lat_alfa) +
                  cos(lat_beta) * cos(lat_alfa) * cos(fi));
        	      /* Calcola la distanza sulla superficie
                   27	      terrestre R = ~6371 km */
        	      d = p * R;
        	      return(d);
        	}
    
  • Re: Progetto c++ Itinerario

    Ciao cipiupiu,
    Umh ... senza offesa ma qui c' è tanto lavoro da fare.
    Ti mancano le basi e a questo si può rimediare, ma dipende da quanto tempo hai a disposizione. Di che esame si tratta? Quando lo devi dare?
  • Re: Progetto c++ Itinerario

    Il lavoro deve essere pronto perl'11...te ne sarei grato se tu mi riuscissi a dare una mano, però dovrei anche capire quello che vado a presentare
  • Re: Progetto c++ Itinerario

    L' 11 è un po vicino, comunque una mano te la do volentieri, sul fatto che devi capire non ci piove, tenuto anche presente che il programma te lo devi scrivere tu. Il regolamento del forum vieta esplicitamente di svolgere compiti scolastici, per cui mi limiterò a darti delle spiegazioni e chiarimenti. Che scuola fai?
  • Re: Progetto c++ Itinerario

    Elettronica
  • Re: Progetto c++ Itinerario

    Universita?
  • Re: Progetto c++ Itinerario

    Si
  • Re: Progetto c++ Itinerario

    Che compilatore usi? Prendilo e inizia a scivere questo codice:
    
    class Luogo
    {
    public:
    	double latitudine;
    	double longitudine;
    
    	Luogo(double lat, double lon)
    	{
    		latitudine = lat;
    		longitudine = lon;
    	}
    };
    
    È la dichiarazione di una classe, contenente due campi e definisce un costruttore per inizializzarli. Questo ti è chiaro?
  • Re: Progetto c++ Itinerario

    Utilizzo xcode...si la dichiarazione della classe ci stiamo
  • Re: Progetto c++ Itinerario

    Ottimo io uso Visual Studio, ma all' occorrenza ho anche Xcode.
    La classe descrive 'come' è fatto un oggetto, poi l' oggetto può essere istanziato e puoi crearne molti. Nel main scrivi ad esempio:
    
    	Luogo l1(12, 26);
    	Luogo l2(35, 56);
    	Luogo l3(15, 86);
    
    Hai creato tre oggetti di tipo 'Luogo', ognuno con le sue coordinate.
  • Re: Progetto c++ Itinerario

    Allora nella classe Luoghi ho inserito:
    class Luogo
    {
    public:
       double latitudine;
       double longitudine;
    
       Luogo(double lat, double lon)
       {
          latitudine = lat;
          longitudine = lon;
       }
    };
    Adesso i luoghi nel main come devo inserirli?

    con la sintassi luogo.l1 (lat,lon);
  • Re: Progetto c++ Itinerario

    Si, esatto. Tieni presenti che questi sono solo esempi, non stiamo scrivendo il programma, sto prendendo la cosa alla larga e alcune cose sono imprecise.
  • Re: Progetto c++ Itinerario

    Ora dato che siamo in C++ per le stringhe non usiamo i char* ma la classe 'string' e come array usiamo la classe 'vector', Queste le conosci? Ad esempio:
    
    	string nome = "Mario";
    
    	Luogo l1(12, 26);
    	Luogo l2(35, 56);
    	Luogo l3(15, 86);
    
    	vector<Luogo> luoghi;
    	luoghi.push_back(l1);
    	luoghi.push_back(l2);
    	luoghi.push_back(l3);
    
    	// oppure anche
    	luoghi.push_back(Luogo(100,200));
    
    prima devi aver scritto:
    
    #include <string>
    #include <vector>
    using namespace std;
    
    Prova e fa in modo che si compili tutto.
Devi accedere o registrarti per scrivere nel forum
76 risposte