Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. Programmation
  3. Développement de logiciels
  4. Java
  5. Exercices
  6. [Débutant] Numéro de sécurité social

[Débutant] Numéro de sécurité social

Scheduled Pinned Locked Moved Exercices
3 Posts 2 Posters 3.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SoulalexS
    SoulalexS
    Soulalex
    wrote on last edited by
    #1

    <p style="text-align: center;"><strong><span style="font-size:24px;">Numéro de sécurité social</span></strong></p><p style="text-align: center;"><span style="font-size:22px;"><strong>Exercice Java</strong></span></p><p style="text-align: center;"> </p><p style="text-align: center;"> </p><p>Dans cet exercice nous tenterons de restituer les informations d'une personne à partir de son numéro de sécurité social. Si vous souhaitez une correction personnalisé, veuillez me joindre votre fichier .java par mail à l'adresse suivante : [email protected]</p><p> </p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Langage :</strong> Java</span></p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Niveau :</strong> Débutant (DUT-INFO-S1)</span></p><p><span style="font-family:lucida sans unicode,lucida grande,sans-serif;"><strong>Durée :</strong> 10-15 minutes</span></p><p></p><p><span style="font-size:18px;"><strong>Contexte :</strong></span></p><hr/><p class="java"><strong>Un numéro de sécurité sociale est constitué de 13 chiffres de données :</strong></p><ul><li class="java">Le premier chiffre représente le <strong>sexe </strong>(1 = homme, 2 = femme),</li><li class="java">Les deux chiffres suivants représentent l'<strong>année de naissance</strong>,</li><li class="java">Les deux chiffres suivants représentent le <strong>mois de naissance</strong>,</li><li class="java">Les deux chiffres suivants représentent le <strong>département de naisssance</strong>,</li><li class="java">Les trois chiffres suivants représentent le<strong> numéro de commune de naissance</strong>,</li><li class="java">Les trois derniers chiffres représentent le <strong>numéro d'odre de la naissance dans le mois et la commune.</strong></li></ul><table border="
    0
    " class="java" name="class"><tbody><tr class="table-ligne"><td align="" valign="top"> </td><td align="" valign="top"> </td></tr></tbody></table><p>S'ajoute à cela une <strong>clef de contrôle</strong> sur 2 chiffres qui est égale à : <strong>97 – le reste de la division du numéro sur 13 chiffres par 97</strong></p><p> </p><p><span style="font-size:18px;"><strong>Sujet :</strong></span></p><hr/><p>Dans un premier temps, vous deverez, à partir d'un <strong>numéro de sécurité social à 13 chiffres</strong> saisi par l'utilisateur, retrouver le sexe, l'année de naissance, le mois de naissance et le département de naissance de l'utilisateur.</p><p>Dans un second temps, vous calculerez la clef de sécurité en fonction du numéro de sécurité social.</p><p> </p><p><span style="font-size:18px;"><strong>Correction :</strong></span></p><hr/><p><span style="color:#B22222;"><span style="font-size: 16px;">C'est l'heure de la correction !</span></span></p><p> </p><p>Voici donc un correction de ce qui était attendu :</p><blockquote class="ipsStyle_spoiler" data-ipsspoiler="" tabindex="0"><pre class="html ipsCode prettyprint" data-pbcklang="html" data-pbcktabsize="4">import java.util.Scanner;

    /** SecuriteSocial

    • Détermination des informations sur l'utilisateur
    • à partir du numéro de sécurité social
    • @author Soulalex
    • @version 1 du 06/11/2015
      */

    public class SecuriteSocial
    {
    public static void main(String[] args)
    {
    Scanner sc = new Scanner(System.in);

        long numSecu;
        int numSexe, anneeNaissance, moisNaissance, deptNaissance; // Variables pour la décomposition du numéro de sécurité social
        int clef;
        String sexe;
    
        // On lit le numéro de sécurité social
        System.out.print("Veuillez saisir un numéro de sécurité social à 13 chiffres : ");
        numSecu = sc.nextLong();
    
        // On décompose notre numéro de sécurité social
        numSexe             = (int)(numSecu / 1000000000000L);
        anneeNaissance  = (int)(numSecu / 10000000000L % 100L);
        moisNaissance   = (int)(numSecu / 100000000L % 100L);
        deptNaissance   = (int)(numSecu / 1000000L % 100L);
        
        // Détermination du sexe
        if (numSexe == 1)
            sexe = "Homme";
        else 
            sexe = "Femme";
        
        // Affichage des informations sur l'utilisateur
        System.out.println("Sexe : "                        + sexe);
        System.out.println("Année de naissance : "          + anneeNaissance);
        System.out.println("Mois de naissance : "           + moisNaissance);
        System.out.println("Département de naissance : "    + deptNaissance);
    
        // Calcul et affichage de la clef de sécurité
        clef = (int)(97 - (numSecu % 97));
        System.out.println("Votre clef de sécurité : " + clef);
    }
    

    }</pre><p> </p></blockquote><p> </p><p><strong>On peut néanmois apporter certaines modifications :</strong></p><ul><li>Vérification de la validité de la saisie.</li></ul>

    Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

    1 Reply Last reply
    0
    • AlexMogA
      AlexMogA
      AlexMog
      Modérateur spécialisé
      wrote on last edited by
      #2

      <p>Intéressent comme exo, mais pas mal d'erreurs (principalement de norme Oracle) dans ton code, quelques moyens de le rendre plus lisible aussi ^^.</p><blockquote class="ipsStyle_spoiler" data-ipsspoiler=""><pre class="ipsCode prettyprint">import java.util.Scanner;

      /** SecuriteSocial

      • Détermination des informations sur l'utilisateur
      • à partir du numéro de sécurité social
      • @author Soulalex
      • @version 1 du 06/11/2015
        */

      public class SecuriteSocial
      {
      public static void main(String[] args)
      {
      Scanner sc = new Scanner(System.in);

          long numSecu;
          int numSexe, anneeNaissance, moisNaissance, deptNaissance; // Variables pour la décomposition du numéro de sécurité social
          String sexe;
      
          // On lit le numéro de sécurité social
          System.out.print("Veuillez saisir un numéro de sécurité social à 13 chiffres : ");
          numSecu = sc.nextLong();
      
          // On décompose notre numéro de sécurité social
          numSexe         = (int)(numSecu / 1000000000000L);
          anneeNaissance  = (int)(numSecu / 10000000000L % 100L);
          moisNaissance   = (int)(numSecu / 100000000L % 100L);
          deptNaissance   = (int)(numSecu / 1000000L % 100L);
          
          // Détermination du sexe
          // Alors, d'une, la norme Oracle spécifie que les brackets
          // ({}) sont obligatoires dans ce genre de contexte.
          // (à titre informatif, voici la norme de java: http://www.oracle.com/technetwork/articles/javase/codeconvtoc-136057.html )
          // Ensuite, un ternaire est quand même plus appréciable, au vue du contexte
          // et de la simplicité de ton if.
          sexe = (numSexe == 1 ? "Homme" : "Femme");
      
          // Affichage des informations sur l'utilisateur
          System.out.println("Sexe : "                        + sexe);
          System.out.println("Année de naissance : "          + anneeNaissance);
          System.out.println("Mois de naissance : "           + moisNaissance);
          System.out.println("Département de naissance : "    + deptNaissance);
      
          // Calcul et affichage de la clef de sécurité
          // la variable était inutile, ça ne sert à rien de surcharger la stack
          // (même si elle est virtuelle) pour rien.
          System.out.println("Votre clef de sécurité : " + ((int)(97 - (numSecu % 97))));
      }
      

      }</pre><p>Et hop, un code un peu plus propre :).</p></blockquote><p> </p><p>Cdt,</p><p>Mog</p>

      Multiplayer GameDev @ Unexpected
      

      Mon CV

      1 Reply Last reply
      0
      • SoulalexS
        SoulalexS
        Soulalex
        wrote on last edited by
        #3

        <p>D'accord c'est toujours bon à savoir parce qu'on nous apprend pas les normes à l'IUT :/</p>

        Soulalex, Administrateur de Melinyel+ E-Mail : [email protected]+ GitHub : https://github.com/Soualex

        1 Reply Last reply
        0

        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

        With your input, this post could be even better 💗

        Register Login
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Login or register to search.
        Powered by NodeBB Contributors
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups