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 :

Programme de souhait d'anniversaire -> Intéraction et reconnaissance de dates


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut Programme de souhait d'anniversaire -> Intéraction et reconnaissance de dates
    Bonjour tout le monde (je suis nouveau, je viens juste de m'inscrire et j'ai pas trouvé, l'endroit pour ce présenter ) ,

    Je suis en train de faire un mini logiciel et j'ai un petit problème c'est que j'arrive pas à faire ceci :


    Logiciel : Quelle jour on est ?
    la personne : On est le 31/12/2011
    logiciel : Quelle jour est votre anniversaire ?
    la personne : 31/12/2011
    logiciel : Bonne Anniversaire

    Et si c'est pas son anniversaire :

    logiciel : Quelle jour on est ?
    la personne : On est le 31/12/2011
    logiciel : Quelle jour est votre anniversaire ?
    la personne : 01/12/2011
    logiciel : Ah désolé, ce n'est pas encore votre anniversaire .

    Voilà j'arrive pas à faire ça ... Je pense qu'il faut faire des conditions.
    Donc j’espère qu'une personne pourra m'aider à résoudre ce problème .

    Merci !! Et Bonne Année 2012 !!!
    Cordialement,

    Ps : Voici le code.
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    { int bien ;
    printf("********************** ****************************** **************\n");
    printf("*************** Bienvenue dans Happy Birthday 1.0 !!!! ***************\n");
    printf("********************** ****************************** **************\n\n\n");
    printf("Bon nous allons commencer !!\n\n");
    printf("Comment allez vous ? \n\n");
    printf("1. Je vais bien .\n\n");
    printf("2. Je ne vais pas bien .\n\n");
    printf("tapez un des 2 chiffres :\t");
    scanf("%d", &bien);
     
    switch (bien)
    { case 1 :
    printf("Moi aussi je vais bien ! \n\n");
    break;
    case 2 :
    printf("Moi je vais bien.(\n\n");
    printf("La Beta 1 de 'HB' n'a pas encore la possibilite de vous demander pourquoi ?\n\n");
    break;
    default :
    printf("Vous n'avez pas tape le bon chiffre =) recommencer svp =)\n\n\n");
    break;
    }
     
    int aujourdhui;
    printf("1.Quelle jour on est ? (JJ/MM/AAAA) \n\n"); // C'est à partir de ici que j'ai le problème ... jusqu’à la fin du programme ..
    scanf("%d",&aujourdhui);
    printf("D'accord\n\n", aujourdhui);
     
    int age;
    printf("2.Quelle est votre date de naissance ? (JJ/MM/AAAA) \n\n");
    scanf("%d",&age);
    printf("Ok !!!");
     
     
    system("pause");
     
    return 0;
    }

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Quel jour sommes nous?
    21/14/2011
    -> scanf("%d", &machin) -> machin = 21
    Date de naissance?
    01/01/2001
    ->scanf("%d", &machin2) -> consommation de '/' et machin2 = 14

    scanf va lire le flot d'entrée jusqu'à obtenir ce qu'il veut, il va "consommer" les caractères.
    Ton flot d'entrée est donc 21/14/2011\n
    Après le premier scanf ce sera /14/2011\n
    Puis /14/2011\n01/01/2001\n
    Le second scanf consommera donc le '/' et lira 14.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Euh pas très compréhensible, j'ai pas compris ...

  4. #4
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Autrement dit, la fonction scanf() est peut adaptée à ce que tu recherches.
    Déjà, elle ne gère pas les espaces. Ensuite, dans ton code, tu cherches à entrer une chaîne de caractère de type x/y/z, où x, y et z sont des entrés signés. Sauf que là, tu stockes la saisie dans une seule variable, un entier en l'occurrence.

    Deux solutions s'offrent à toi :

    • soit tu demandes la saisie du jour, du mois et de l'année séparément (une variable pour chacun) ;
    • soit tu récupères les dates dans une chaîne de caractère, dont tu extrais les différentes parties (jour, mois, année) à partir du caractère qui les sépare (en l'occurrence le slash '/').


    Bonne journée.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Ok Kirilenko(merci ) j'ai fait ta première solution =) .

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {     int bien ;
         printf("******************************************************************\n");
         printf("*************** Bienvenue dans Happy Birthday 1.0 !!!! ***************\n");
         printf("******************************************************************\n\n\n");
         printf("Bon nous allons commencer !!\n\n");
         printf("Comment allez vous ? \n\n");
         printf("1. Je vais bien .\n\n");
         printf("2. Je ne vais pas bien .\n\n");
         printf("tapez un des 2 chiffres :\t");
         scanf("%d", &bien);
     
         switch (bien)
        { case 1 :
          printf("Moi aussi je vais bien ! :D\n\n");
          break;
          case 2 :
          printf("Moi je vais bien.(\n\n");
          printf("La Beta 1 de 'HB' n'a pas encore la possibilite de vous demander pourquoi ?\n\n");
          break;
          default :
          printf("Vous n'avez pas tape le bon chiffre =) recommencer svp =)\n\n\n");
          break;
          }
     
    int jour, mois, ans;
      printf ("1.Quel jour on est ?\n");
      scanf ("%d", &jour);
      printf ("1.Quel mois on est ?\n");
      scanf ("%d", &mois);
      printf ("1.Quelle année on est ?\n");
      scanf ("%d", &ans);
      printf ("D'accord, nous sommes donc le : %d/%d/%d \n\n", jour, mois, ans);
     
      printf (".Quel jour etes vous nee ?\n");
      scanf ("%d", &jour);
      printf ("2.Quel mois etes vous nee ?\n");
      scanf ("%d", &mois);
      printf ("3.Quelle annee somme nous ?\n");
      scanf ("%d", &ans);
      printf ("D'accord, donc votre anniversaire est le : %d/%d/%d", jour, mois, ans);
     
    /* Et à partir de la, je voudrai savoir le code pour la conclusion soit bonne c'est à dire que ci le jour d'aujourd'hui et identique au jour de son anniversaire alors c'est "Joyeux Anniversaire" et si ce n'est pas identique alors "Désolé ce n'est pas aujourd'hui votre anniversaire " c'est là que j'arrive pas ... Merci .*/
     
      system("pause");
     
        return 0;
    Sinon moi je voudrai le code pour conclure que la date d'aujourd'hui et identique à son anniversaire et si c'est identique ça dira "Joyeux Anniversaire" et si ce n'est pas identique ça dira "Désolé ce n'est pas aujourd'hui votre anniversaire " .

    La personne tape le jour et il tape le jour de son anniversaire qui est dans l'année et si le jour qu'il a tapé et le jour de son anniversaire qu'il a tapé son identique alors le logiciel lui souhaite "Bon Anniversaire" et si, ce n'est pas identique alors il lui dit "désolé ce n'est pas aujourd'hui votre anniversaire" .

    Merci d'avance . =)

  6. #6
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Attention, si tu veux pouvoir tester si c'est réellement son anniversaire, il faudrait que tu utilises des variables différentes pour la saisie de la date actuelle et de la date d'anniversaire. Par ailleurs, il existe des fonctions C qui te permettent de déterminer la date actuelle. Si tu es chaud, tu pourrais t'en servir (attention, ce sera peut-être un peu plus compliqué que ce que tu sais déjà).
    Sinon, à quoi te sers la saisie de l'année ? Déterminer l'âge de l'utilisateur ?

    La personne tape le jour et il tape le jour de son anniversaire qui est dans l'année et si le jour qu'il a tapé et le jour de son anniversaire qu'il a tapé son identique alors le logiciel lui souhaite "Bon Anniversaire" et si, ce n'est pas identique alors il lui dit "désolé ce n'est pas aujourd'hui votre anniversaire" .
    Là, tu viens de donner le pseudo-code de ce que tu recherches.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (jourAnniversaire == jourActuel && moisAnniversaire == moisActuel) 
    {
      /* OMG, c'est son anniversaire ! :D */
    }
    else 
    {
      /* Dommage, il va falloir attendre encore un peu :'( */
    }
    Bien entendu, il faut remplacer les variables que j'ai utilisé par les identificateurs que tu souhaites.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4
    Par défaut
    Merci Kirilenko, tu m'as aidé !!!! Merci mille fois, t'es le seul à m'avoir donné la solution que je cherchais merci !! =) Maintenant mon mini logiciel fonctionne à la perfection =) bien sur ce n'est que la Beta 1 =) . Bon Année 2012 !!! =)
    J'ai l'honneur de vous présentez HB 1.0 :

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {     int bien ;
         printf("******************************************************************\n");
         printf("*************** Bienvenue dans Happy Birthday 1.0 !!!! ***************\n");
         printf("******************************************************************\n\n\n");
         printf("Bon nous allons commencer !!\n\n");
         printf("Comment allez vous ? \n\n");
         printf("1. Je vais bien .\n\n");
         printf("2. Je ne vais pas bien .\n\n");
         printf("tapez un des 2 chiffres :\t");
         scanf("%d", &bien);
     
         switch (bien)
        { case 1 :
          printf("Moi aussi je vais bien ! :D\n\n");
          break;
          case 2 :
          printf("Moi je vais bien.(\n\n");
          printf("La Beta 1 de 'HB' n'a pas encore la possibilite de vous demander pourquoi ?\n\n");
          break;
          default :
          printf("Vous n'avez pas tape le bon chiffre =) recommencer svp =)\n\n\n");
          break;
          }
     
     int jour, mois, ans;
      printf ("1.Quel jour on est ?\n");
      scanf ("%d", &jour);
      printf ("1.Quel mois on est ?\n");
      scanf ("%d", &mois);
      printf ("1.Quelle annee on est ?\n");
      scanf ("%d", &ans);
      printf ("D'accord, nous sommes donc le : %d/%d/%d\n\n", jour, mois, ans);
     
    int jouranniversaire, moisanniversaire, anneeaniversaire ;
      printf ("1.Quel jour etes vous nee ?\n");
      scanf ("%d", &jouranniversaire);
      printf ("1.Quel mois etes vous nee  ?\n");
      scanf ("%d", &moisanniversaire);
      printf ("1.Quelle annee on est ?\n");
      scanf ("%d", &anneeaniversaire);
      printf ("D'accord, votre anniversaire est donc le : %d/%d/%d\n\n", jouranniversaire, moisanniversaire, anneeaniversaire );
     
      if (jouranniversaire == jour && moisanniversaire == mois && anneeaniversaire == ans)
    {
      printf("\n\n\n");
     
         printf("**   **|*****        ~~     ~~            \n");
         printf("**   **|*    *     __||_____||__                      \n");
         printf("**   **|*     *    OOOOOOOOOOOOO                     \n");
         printf("*******|******     ~~~~~~~~~~~~~                        \n");
         printf("*******|******     \\          //                         \n");
         printf("**   **|*     *     ~~~~~~~~~~~                        \n");
         printf("**   **|*    *      \\________//                       \n");
         printf("**   **|*****                              \n\n\n");
     
     
    printf(" JOYEUX ANNIVERSAIRE !!!!!!!!!!!!\n");
    }
    else
    {
      printf("Dommage ce n'est pas votre anniversaire aujourd'hui, revene une autre fois, merci !!! =) \n\n");
    }
     
     
      system("pause");
     
        return 0;
    }
    Vous pouvez maintenant l'essayer dans(sur, (je sais pas le quelle prendre x) )) votre IDE (Code Blocks ou autre) et me dire comment vous le trouvez =) . Bien sur, ce n'est que la bêta 1 =) . Merci .

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/03/2011, 13h36
  2. [Blog] Souhaiter l'anniversaire
    Par anpl69 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 04/12/2007, 17h24
  3. Réponses: 7
    Dernier message: 20/03/2007, 17h01
  4. Réponses: 18
    Dernier message: 13/12/2005, 13h27

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