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 :

Transcription d'un code c en c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burundi

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 23
    Par défaut Transcription d'un code c en c++
    Salut tout le monde!!!
    Veuillez m'aider à transcrire ce programme qui est écrit en c vers C++.
    Merci d'avance.
    code:le mot de passe (mdp) est:laye et le nom (login) est:thiam
    Fonction.c
    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
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <windows.h>
     
    #include "fonction.h"
     
     
    /*============================= 2eme couche =================================== */
     
    char *demande_nom(void)
    {
        char nom[10] = {0};
        char *pos = NULL;
     
        printf("nom : ");
        fgets(nom,10,stdin);
        pos = strchr(nom,'\n');
        if( pos != NULL )
            *pos = '\0';
     
        return nom;
    }
     
     
     
    void demande_mdp(void)
    {
        char mdp[10] = {0};
        char *pos = NULL;
     
        printf("mdp : ");
        fgets(mdp,10,stdin);
        pos = strchr(mdp,'\n');
        if( pos != NULL )
            *pos = '\0';
     
        if( strcmp(mdp,"thiam") != 0 )
            exit(2);
    }
     
     
     
    long somme_a_retirer(void)
    {
        long somme = 0;
     
        printf("Quel somme voulez vous retirer ? ");
        scanf("%ld",&somme);
     
        return somme;
    }
     
     
     
    int confirmer_decouvert(long somme, long *solde)
    {
        char reponse[10] = {0};
        char *pos = NULL;
     
     
        printf("Etes-vous sur de vouloir faire un pret de %ld euros ? (oui ou non)", somme - *solde );
        scanf("%s", reponse);
        pos = strchr(reponse,'\n');
        if( pos != NULL )
            *pos = '\0';
     
        if( strcmp(reponse,"oui") == 0 )
            return 1;
        else
            return 0;
    }
     
     
     
    void changer_solde(long *solde)
    {
        FILE *fc = NULL;
     
        fc = fopen("solde.txt", "w+");
        if( fc != NULL )
        {
            fprintf(fc,"%ld", *solde);
     
            fclose(fc);
        }
    }
     
     
     
    long somme_a_deposer(void)
    {
        long somme = 0;
     
        printf("Quelle somme voulez-vous deposer ? ");
        scanf("%ld", &somme);
     
        if( somme < 0 )
            exit(2);
     
        return somme;
    }
     
     
     
    void sauver_operation( long somme, char c )
    {
        FILE *fc = NULL;
     
        fc = fopen("operations.txt","a");
        if( fc != NULL )
        {
            if( c == 'r' )
                fprintf(fc,"-%ld\n",somme);
            else if( c == 'd' )
                fprintf(fc,"+%ld\n",somme);
            else
                exit(3);
     
            fclose(fc);
        }
    }
     
     
     
     
     
     
     
     
     
     
    /*============================== 1ere couche ==================================*/
     
    void identification(void)
    {
        char *nom = demande_nom();
     
        if( strcmp(nom,"laye") == 0 )
            demande_mdp();
        else
            exit(1);
     
        printf("\nidentification reussie :)\n\n\n");
        Sleep(1000);
    }
     
     
     
    long lire_solde(void)
    {
        long solde = 0;
        FILE *fc = NULL;
     
        fc = fopen("solde.txt","r+");
        if( fc != NULL )
        {
            fscanf(fc, "%ld", &solde );
     
            fclose(fc);
        }
     
        return solde;
    }
     
     
     
    void retirer( long *solde )
    {
        long somme = somme_a_retirer();
        int decouvert = 0, temp = 0;
     
        temp = *solde;
     
        if( somme > *solde )
        {
            decouvert = confirmer_decouvert(somme,solde);
            if( decouvert == 1 ) /* si il a confirmer le découvert */
                *solde -= somme;
        }
        else
            *solde -= somme;
     
        if( *solde != temp ) /* si le solde a était modifié, on le change dans le fichier */
        {
            changer_solde(solde);
            sauver_operation(somme,'r');
        }
    }
     
     
     
    void deposer(long *solde)
    {
        long somme = somme_a_deposer();
     
        *solde += somme;
        changer_solde(solde);
        sauver_operation(somme,'d');
    }
     
     
     
    void consulter(void)
    {
        FILE *fc = NULL;
        char c = 0;
     
        fc = fopen("operations.txt","r");
        if( fc != NULL )
        {
            printf("\n\n\nOperations :\n");
            do
            {
                c = fgetc(fc);
                printf("%c", c);
            } while( c != EOF );
     
            fclose(fc);
        }
    }
    Fonction.h

    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
     
    /* 2eme couche */
    char *demande_nom(void);
    void demande_mdp(void);
    long somme_a_retirer(void);
    int confirmer_decouvert(long somme, long *solde);
    void changer_solde(long *solde);
    long somme_a_deposer(void);
    void sauver_operation( long somme, char c );
     
    /* 1ere couche */
    void identification(void);
    long lire_solde(void);
    void retirer( long *solde );
    void deposer(long *solde);
    void consulter(void);
     
    Main
     
    #include <stdio.h>
    #include <stdlib.h>
     
    #include "fonction.h"
     
     
     
    int main(void)
    {
        long choix = 0, solde = 0, quitter = 0;
     
        identification();
        /* si l'identification n'a pas echouer le code ci-dessous est executer */
     
        do
        {
            solde = lire_solde();
     
            printf("\t======== Votre compte bancaire ========\n\n\n");
            printf("Solde = %ld", solde);
            printf("\n\n1. Retirer\n2. Deposer\n3. Consulter\n\tchoix : ");
            scanf("%ld", &choix );
     
            switch(choix)
            {
                case 1 :
                    retirer(&solde);
                    break;
                case 2 :
                    deposer(&solde);
                    break;
                case 3 :
                    consulter();
                    break;
                default :
                    quitter = 1;
                    break;
            }
        } while( quitter != 1 );
        getch();
        return 0;
    }
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    1/ il faut utiliser la balise code et /code pour mettre ton code en forme dans le post d'un forum/

    2/ au vu du code ton application travaille surtout avec des affichages/saisie

    je te conseille de regarder du coté des bibliothèques suivante:
    • iostream
    • fstream

    Cette partie de la FAQ devrais t'aider.
    http://cpp.developpez.com/faq/cpp/?page=SL

    Ensuite le C++ intégrant environ 98% du C il est probable que ton programme compile avec un compilateur C++ et s'exécute correctement.

    Maintenant si tu souhaite vraiment convertir ton programme en C++ (qui ne ressemble pas à du C) et que tu as le temps.

    Il te faudra analyser le code pour déterminer un modèle objet qui soit logique au vu des procédures/fonctions exposés.
    - il te faudra déterminer les objets
    - leur méthodes
    - leur relation entre eux.

    Autre bonne pratique du C++ utiliser de préférence le passage par référence plutôt que le passage par pointeur.


    bref, faire un peu de reverse-engineering/ refactoring.
    Bon courage.

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    2/ au vu du code ton application travaille surtout avec des affichages/saisie

    je te conseille de regarder du coté des bibliothèques suivante:
    • iostream
    • fstream
    Sans compter l'utilisation de std::string pour remplacer tous ces char* et char[]
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/02/2013, 22h53
  2. transcription d'un code Simulink en simscape
    Par jul89 dans le forum Simulink
    Réponses: 5
    Dernier message: 03/12/2012, 09h16
  3. Transcription d'un code vba Excel vers vbs
    Par issoram dans le forum VBScript
    Réponses: 4
    Dernier message: 11/02/2012, 18h40
  4. transcription du code en xsl
    Par prugne dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 08/11/2011, 10h19
  5. Transcription de code C++ en STL
    Par Muetdhiver dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/11/2007, 08h31

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