IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[debutant] Tableau avec indexation


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Par défaut [debutant] Tableau avec indexation
    bonjour à tous !


    Je desire créer un programme qui puisse calculer la distance entre deux villes en utilisant leurs coordonnées (latitude et longitude),
    je pensai créer un system de 3 tableaux. Le 1er tableau comprendrai le nom des villes, le second l'ensemble des latitudes des villes, et le troisieme les longitudes. A l'aide d'une indexation le program trouvera de lui meme les bonnes coordonnées de la ville selectionné, et calculera la distance via une formule mathématique.

    Mes connaissance en language C++ étant très réduite, je ne sais comment créer ce type de tableau, je me demande meme si il est possible de créer de telle tableau qui puisse à la fois stocker des chaines de caractere tout en les indexant ?!


    Pouvez vous me donner quelque conseil sur la création de ces tableaux ?

    En vous remerciant
    Greg

  2. #2
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut
    Deja commence par faire un tour sur la faq c++ et regarde les differents tuoriaux C++ presents sur le site a cette adresse : http://c.developpez.com/cours/

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Par défaut
    Voici un version avancé de mon programme...
    Le programme affiche un menu, 4 choix sont possible
    ajouter un ville, affiché toutes les villes pré-enregistré, calculé la distance entre 2 villes ou sortir...

    Néanmoins je voudrai enregistrer toutes les villes et leurs coordonnées dans un fichier, le probleme actuel étant qu'a chaque fois que je lance le comppileur, il efface le fichier deja existant... comment faire ?

    J ai aussi un pseudo "system" d'analyse de correspondance, afin de retrouver les bonnes coordonnées de la ville desiré, est il possible de faire via une simple command, la meme chose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
     
    #pragma hdrstop
    #pragma argsused
    #include <iostream.h>
    #include <math.h>
    #include <string.h>
    #include <fstream>
    using namespace std;
    ios::out;
    ios::app;
    double Distance(double, double, double, double);
    class Place{
      public:
    	 char name[20], name1[20];
    	 float Latitude;
    	 float Longitude;
    	 };
    int i1 = 0, j1 = 0, k1 = 0, i = 0, j = 0, k = 0, m = 0, n = 0, v = 0, h = 0, a = 0, b = 0, c = 0, d = 0, e = 0, f = 0;
    int main()
    {
    ofstream name("C:\Documents and Settings\05072295\My Documents\Borland Studio Projects\out.dat");
    //ifstream name1("C:\Documents and Settings\05072295\My Documents\Borland Studio Projects\in.dat");
     float C,F, Lat[2], Lon[2], TDistance;
     char option, place1[20], place2[20];
     Lat[0] = 0, Lat[1] = 0, Lon[0] = 0, Lon[1] = 0;
     cout << "------**** Welcome to the World Distance Calculator ****------"<<endl<<endl;
     cout << "This program enables you to calculate the distance between any"<<endl;
     cout << "two cities in the world. Use the prompts below to navigate." << endl<<endl;
     do{
     cout << "If you would like to add a new entry >>>>>>>>>>>>>>>>>>>>>>>>>>>>> press 1"<<endl;
     cout << "If you would like to find the distance between two places >>>>>>>> press 2"<<endl;
     cout << "If you would like to display all the places in database >>>>>>>>>> press 3"<<endl;
     cout << "If you wish to exit this program >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> press 4"<<endl<<endl;
     cout << "Please enter an option number: ";
     cin >> option;
     cout << "" << endl;
     
     switch (option)
     {
    	case '1':
     
    	Place P1[10];
    		cout << "" << endl;
    		cout << "Enter Place Name: ";
    		cin >> P1[i++].name;
    		cout << "Enter Latitude Co-ordinate (in decimal degrees): ";
    		cin >> P1[j++].Latitude;
    		cout << "Enter Longitude Co-ordinate (in decimal degrees): ";
    		cin >> P1[k++].Longitude;
    				cout << "" << endl;
    		name << P1[i1++].name << P1[j1++].Latitude << P1[k1++].Longitude << endl;
    		// copy the out file into the in file
    		//strcpy(char P1.name, char*P1.name1);
     
     
    		break;
     
    	case '2':
    		cout << "" << endl;
                    cout << "Enter the The Name of the first place: ";
    				cin >> place1;
    				while ((e != 10)&&((place1[0] != P1[a].name[0])||(place1[1] != P1[b].name[1]))){
                    a++,b++,e++;
    				}
                    if (e > 9)
                    cout << "Place Not in Data Base!" << endl;
                    else
    				Lat[0] = P1[a].Latitude, Lon[0] = P1[b].Longitude ;
    				cout << " " << endl;
                    cout << "Enter the the name of the second place: ";
                    cin >> place2;
                    while ((f != 10)&&((place2[0] != P1[c].name[0])||(place2[1] != P1[d].name[1]))){
                    c++,d++,f++;
                    }
                    if (f > 9)
                    cout << "Place Not in Data Base!" << endl;
                    else
    				Lat[1] = P1[c].Latitude, Lon[1] = P1[d].Longitude;
    				cout << " " << endl;
     
    				TDistance = Distance(Lat[0],Lat[1],Lon[0],Lon[1]);
    				if (f > 9)
                    cout << "Distance could not be calculated";
                    else if (e > 9)
                    cout << "Distance could not be calculated";
                    else
                    cout << "Distance Between Place 1 And Place 2 is: " << TDistance << "Km";
                    cout << "" << endl;
                    cout << "" << endl;
                    while(e != 0 || a != 0 || b != 0){e--,a--,b--;}
                    while(f != 0 || c != 0 || d != 0){f--,c--,d--;}
    		break;
     
    	case '3':
    				cout << "Name   Latitude Longitude";
    				cout << "" << endl;
    				if (i>0)
    					 while (m < i){
    				 cout << "" << endl;
    					 //name >> P1[n++].name >>"   " >> P1[v++].Latitude >> " " >> P1[h++].Longitude;
    					 n--;
    					 cout << P1[n++].name << endl  ;
     
     
    					 m++;}
                    else cout << "No Places Stored!";
    				while (m > 0){
    				m--,n--,v--,h--;}
    				cout << "" << endl;
                    cout << "" << endl;
    		break;
     
    	default:
                    cout << "" << endl;
    		cout << "Invalid option" << endl;
                    cout << "" << endl;
    		break;
     }
    	}while (option !='4');
    name.close();
    }
     
    double Distance(double L1, double L2, double Lon1, double Lon2)
    {
    double Lat1 = L1*(M_PI/180);
    double Lat2 = L2*(M_PI/180);
    double Long1 = Lon1*(M_PI/180);
    double Long2 = Lon2*(M_PI/180);
     
    return acos(sin(Lat1)*sin(Lat2)+cos(Lat1)*cos(Lat2)*cos(Long2-Long1))*6371;
    }

    En vous remerciant !

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    ta compilation plante !!!!!

    marque un programme qui compile au moins :S

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Par défaut
    slt

    Raste à dit:
    Néanmoins je voudrai enregistrer toutes les villes et leurs coordonnées dans un fichier, le probleme actuel étant qu'a chaque fois que je lance le comppileur, il efface le fichier deja existant... comment faire ?
    Là j'avoue je suis intrigué, c'est à la compile que ton fichier est effacé ? C'est pas plutôt lors de l'exécution de ton prog qui l'efface ?


    Le travail est un privilège que les hommes se sont données pour faire reculer le monde

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Par défaut
    oui, je me suis mal exprimé, en effet c est à l'execution du programme que le fichier s efface.
    Je cherche le bug et je post un code qui marche !

Discussions similaires

  1. [XL-2007] Tableau avec index discontinu
    Par ecarbill dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/12/2012, 20h14
  2. VB Tableau avec index de type string
    Par damd22 dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/11/2009, 18h42
  3. [Débutant] Tableau avec titres
    Par saddamtohmto dans le forum MATLAB
    Réponses: 1
    Dernier message: 24/08/2007, 10h38
  4. Tableau avec string comme index
    Par Kiboumz dans le forum VB.NET
    Réponses: 3
    Dernier message: 17/03/2007, 00h22
  5. [Debutant][Tableau] Tableau indexé sur chaine de caractères
    Par SamRay1024 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/05/2004, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo