Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
895 connectés 

  FORUM HardWare.fr
  Programmation
  C

  cherche une aide pour la présentation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cherche une aide pour la présentation

n°1439025
exhortae
Membre du Cartel des Médecins
Posté le 08-09-2006 à 13:22:27  profilanswer
 

Bonjour,
 
voilà je débute en c, et y'a quelque temps on m'a dis que j'avais pas une bonne méthode d'apprentissage, donc je m'y suis remis en essayant de respecter certaines normes
 
voilà un petit programme que j'ai fait, ça serait sympa si quelqu'un pourrait me dire si au niveau de la présentation ( les {, les espaces, les if) est-ce que c'est bon, je demande pas de me dire que le programme peut être simplifié (ça je le sais), mais je cherche juste à savoir si il est présenté dans les normes, ou si la présentation peut être améliorée.
 
Merci pour toute âme charitable qui pourrait m'aider ;)
 
 

Code :
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. typedef struct {
  5.    char nom[15], pr[15], pref[15], ville[15], rue[15];
  6.    int tel;
  7. } contact;
  8. contact c[100], res[100];
  9. int i, n, rech_tel,choix,rang;
  10. char rech_ch[15];
  11. int main()
  12. {
  13.    clrscr();
  14.    printf("\t\t\tGESTION DE CONTACT\n\n\n" );
  15.    printf("Entrez le nombre de contact : " );
  16.    scanf("%d", &n);
  17.    /*SAISIE*/
  18.    for (i = 0; i < n; i++)
  19.    {
  20.        clrscr();
  21.        printf("\t\t\tContact N°%d\n\n\n" );
  22.        printf("Nom        : " );
  23.        scanf("%s", &c[i].nom);
  24.        printf("Prénom     : " );
  25.        scanf("%s", &c[i].pr);
  26.        printf("Rue        : " );
  27.        scanf("%s", &c[i].rue);
  28.        printf("Préfecture : " );
  29.        scanf("%s", &c[i].pref);
  30.        printf("Ville      : " );
  31.        scanf("%s", &c[i].ville);
  32.        printf("Numéro Tél : " );
  33.        scanf("%d", &c[i].tel);                                     
  34.    }
  35.    /*RECHERCHE*/
  36.    clrscr();
  37.    gotoxy(35, 4);
  38.    printf("RECHERCHE" );
  39.    gotoxy(28, 7);
  40.    printf("1 --------> Nom" );
  41.    gotoxy(28, 9);
  42.    printf("2 --------> Prénom" );
  43.    gotoxy(28, 11);
  44.    printf("3 --------> Rue" );
  45.    gotoxy(28, 13);
  46.    printf("4 --------> Préfecture" );
  47.    gotoxy(28, 15);
  48.    printf("5 --------> Ville" );
  49.    gotoxy(28, 17);
  50.    printf("6 --------> Numéro tél" );
  51.    gotoxy(33, 20);
  52.    printf("Entrez votre choix : " );
  53.    scanf("%d", &choix);
  54.    switch (choix) {
  55.      case 1:
  56.  clrscr();
  57.  printf("Entrez le nom à rechercher : " );
  58.  scanf("%s", &rech_ch);
  59.  rang = -1;
  60.          i = 0;
  61.  while ((rang == -1) && (i < n)) {
  62.      if (strcmp(c[i].nom, rech_ch) == 0)
  63.   rang = i;
  64.              else
  65.          i = i + 1;
  66.  }
  67.  if (rang != -1) {
  68.      printf("\n\nNom : %s", c[rang].nom);
  69.      printf("\nPrénom : %s", c[rang].pr);
  70.      printf("\nRue : %s", c[rang].rue);
  71.      printf("\nPréfecture : %s", c[rang].pref);
  72.      printf("\nVille : %s", c[rang].ville);
  73.      printf("\nNuméro Tél : %d", c[rang].tel);
  74.  }
  75.  break;
  76.      case 2:
  77.          clrscr();
  78.  printf("Entrez le prénom à rechercher : " );
  79.  scanf("%s", &rech_ch);
  80.          rang = -1;
  81.  for (i = 0; i < n; i++)
  82.      if (strcmp(c[i].pr, rech_ch) == 0) {
  83.  rang = i;
  84.  printf("\n\nNom : %s", c[rang].nom);
  85.         printf("\nPrénom : %s", c[rang].pr);
  86.         printf("\nRue : %s", c[rang].rue);
  87.         printf("\nPréfecture : %s", c[rang].pref);
  88.         printf("\nVille : %s", c[rang].ville);
  89.  printf("\nNuméro Tél : %d", c[rang].tel);
  90.  printf("\n\n\n" );
  91.                 getch();
  92.      }
  93.      else
  94.  i = i + 1;
  95.   break;
  96.      case 3:
  97.  clrscr();
  98.  printf("Entrez la rue à rechercher : " );
  99.  scanf("%s", &rech_ch);
  100.  rang = -1;
  101.  for (i = 0; i < n ; i++)
  102.      if (strcmp(c[i].rue, rech_ch) == 0) {
  103.  rang = i;
  104.  printf("\n\nNom : %s", c[rang].nom);
  105.         printf("\nPrénom : %s", c[rang].pr);
  106.         printf("\nRue : %s", c[rang].rue);
  107.         printf("\nPréfecture : %s", c[rang].pref);
  108.         printf("\nVille : %s", c[rang].ville);
  109.  printf("\nNuméro Tél : %d", c[rang].tel);
  110.  printf("\n\n\n" );
  111.  getch();
  112.              }
  113.      else
  114.  i = i + 1;
  115.   break;
  116.       case 4:
  117.   clrscr();
  118.   printf("Entrez la préfecture à rechercher : " );
  119.   scanf("%s", &rech_ch);
  120.   rang = -1;
  121.   for (i = 0; i < n; i++)
  122.       if (strcmp(c[i].pref, rech_ch) == 0) {
  123.   rang = i;
  124.   printf("\n\nNom : %s", c[rang].nom);
  125.          printf("\nPrénom : %s", c[rang].pr);
  126.          printf("\nRue : %s", c[rang].rue);
  127.          printf("\nPréfecture : %s", c[rang].pref);
  128.          printf("\nVille : %s", c[rang].ville);
  129.   printf("\nNuméro Tél : %d", c[rang].tel);
  130.   printf("\n\n\n" );
  131.   getch();
  132.               }
  133.               else
  134.   i = i + 1;
  135.   break;
  136.       case 5:
  137.   clrscr();
  138.   printf("Entrez la ville à rechercher : " );
  139.   scanf("%s", &rech_ch);
  140.   rang = -1;
  141.   for (i = 0; i < n; i++)
  142.       if (strcmp(c[i].ville, rech_ch) == 0) {
  143.          rang =  i;
  144.          printf("\n\nNom : %s", c[rang].nom);
  145.          printf("\nPrénom : %s", c[rang].pr);
  146.          printf("\nRue : %s", c[rang].rue);
  147.          printf("\nPréfecture : %s", c[rang].pref);
  148.          printf("\nVille : %s", c[rang].ville);
  149.   printf("\nNuméro Tél : %d", c[rang].tel);
  150.   printf("\n\n\n" );
  151.   getch();
  152.               }
  153.               else
  154.   i = i + 1;
  155.   break;
  156.       case 6:
  157.   clrscr();
  158.   printf("Entrez le numéro de Tél à rechercher : " );
  159.   scanf("%d", &rech_tel);
  160.   rang = -1;
  161.   for (i = 0; i < n; i++)
  162.       if (c[i].tel == rech_tel) {
  163.   rang =  i;
  164.          printf("\n\nNom : %s", c[rang].nom);
  165.          printf("\nPrénom : %s", c[rang].pr);
  166.          printf("\nRue : %s", c[rang].rue);
  167.          printf("\nPréfecture : %s", c[rang].pref);
  168.          printf("\nVille : %s", c[rang].ville);
  169.   printf("\nNuméro Tél : %d", c[rang].tel);
  170.   printf("\n\n\n" );
  171.   getch();
  172.               }
  173.               else
  174.   i = i + 1;
  175.   break;
  176.       default:
  177.   clrscr();
  178.   printf("Choix Erroné" );
  179.     }
  180.     if (rang == -1)
  181.        printf("L'objet recherché n'existe pas" );
  182.   getch();
  183.   return 0;
  184. }

mood
Publicité
Posté le 08-09-2006 à 13:22:27  profilanswer
 

n°1439036
Emmanuel D​elahaye
C is a sharp tool
Posté le 08-09-2006 à 13:31:08  profilanswer
 

exhortae a écrit :

voilà un petit programme que j'ai fait, ça serait sympa si quelqu'un pourrait me dire si au niveau de la présentation ( les {, les espaces, les if) est-ce que c'est bon, je demande pas de me dire que le programme peut être simplifié (ça je le sais), mais je cherche juste à savoir si il est présenté dans les normes, ou si la présentation peut être améliorée.


Il n'y a pas véritablement de 'norme de présentation'. Il y a plutôt des pratiques courantes plus ou moins imposées sur certains projets ou dans certaines boites. L'important est d'être lisible et cohérent. Le code que tu as soumis est correct de ce point de vue.
 
Personnellement, j'utilise GNU Indent version 1.91 avec certains reglages qui me conviennent pour formatter mon code, et celui-ci a automatiquement une présentation correcte à mes yeux.
 
Exemples : http://mapage.noos.fr/emdel/clib.htm
Conseils : http://mapage.noos.fr/emdel/codage.htm [EDIT]

Message cité 1 fois
Message édité par Emmanuel Delahaye le 08-09-2006 à 22:23:54

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1439045
exhortae
Membre du Cartel des Médecins
Posté le 08-09-2006 à 13:34:53  profilanswer
 

Emmanuel Delahaye a écrit :

Il n'y a pas véritablement de 'norme de présentation'. Il y a plutôt des pratiques courantes plus ou moins imposées sur certains projets ou dans certaines boites. L'important est d'être lisible et cohérent. Le code que tu as soumis est correct de ce point de vue.
 
Personnellement, j'utilise GNU Indent version 1.91 avec certains reglages qui me conviennent pour formatter mon code, et celui-ci a automatiquement une présentation correcte à mes yeux.
 
Exemples : http://mapage.noos.fr/emdel/clib.htm
Conseils : http://mapage.noos.fr/emdel/notes.htm


 
oki,
 
et merci pour les liens ;)

n°1439577
nargy
Posté le 09-09-2006 à 20:33:06  profilanswer
 

oui, l'indentation laisse un peu à désirer... surtout que tu utilise les accolade ouvrantes en fin de ligne. Il n'y a pas de norme, bien que dans certains projets des notations particulières soient imposées, la plupart du temps juste un peu de bon sens et de la cohérence suffit.

n°1439614
miagiste-t​urc
Posté le 10-09-2006 à 02:23:44  profilanswer
 

nargy a écrit :

oui, l'indentation laisse un peu à désirer... surtout que tu utilise les accolade ouvrantes en fin de ligne. Il n'y a pas de norme, bien que dans certains projets des notations particulières soient imposées, la plupart du temps juste un peu de bon sens et de la cohérence suffit.


 
"Accolades en ligne laissent à désirer" je ne suis pas tout à fait d'accord. C'est la manière qu'utilisaient Kernighan et Ritchie, les inventeurs du C et c'est également la manière que nous a présenté un prof à nous. Cependant je suis tout à fait d'accord, ce n'est pas très lisible et ne permet pas de différencier facilement les blocs et personnellement je déteste cette présentation. Je préfère l'indentation  
for (...)
{
-----
 
}  
 
à
 
for (...) {
 
------
 
}

n°1439626
nargy
Posté le 10-09-2006 à 07:20:37  profilanswer
 

"Accolades en ligne laissent à désirer"
 
Non, non je n'ai pas dit ça du tout.
 
Je fait remarquer que si on utilise cette notation il est très important de respecter l'indendation pour une bonne lecture.

n°1439845
exhortae
Membre du Cartel des Médecins
Posté le 10-09-2006 à 20:55:52  profilanswer
 

J'ai décider d'abandonner l'utilisation d'accolande ouvrantes en fin de lignes (difficle de s'y retrouver), par contre nargy, je comprends pas très bien quand tu dis l'indentation laisse à désirer, dans quel cas c'est pas bon chez moi ??

n°1439852
nargy
Posté le 10-09-2006 à 21:34:13  profilanswer
 

Par exemple, lignes 190-196, tu as une série de printf qui ne sont pas alignés, ce qui rends difficile la lecture du corps de boucle. Et quand tu cherches l'accolade ouvrante ce n'est pas facile car elle est en fin de ligne.

n°1439927
miagiste-t​urc
Posté le 11-09-2006 à 03:46:35  profilanswer
 

nargy a écrit :

"Accolades en ligne laissent à désirer"
 
Non, non je n'ai pas dit ça du tout.
 
Je fait remarquer que si on utilise cette notation il est très important de respecter l'indendation pour une bonne lecture.


 
A pardon j'ai mal compris. Je pensais que tu disais que l'indentation laissait à désirer ainsi que l'ouverture des accolades en fin de ligne. Autant pour moi. Désolé.


Message édité par miagiste-turc le 11-09-2006 à 03:47:54
n°1440298
exhortae
Membre du Cartel des Médecins
Posté le 11-09-2006 à 14:13:01  profilanswer
 

nargy a écrit :

Par exemple, lignes 190-196, tu as une série de printf qui ne sont pas alignés, ce qui rends difficile la lecture du corps de boucle. Et quand tu cherches l'accolade ouvrante ce n'est pas facile car elle est en fin de ligne.


 
y'a du avoir un soucis lors du copier coller, parceque sur mon compilateur ils sont alignés ;)
 
 

mood
Publicité
Posté le 11-09-2006 à 14:13:01  profilanswer
 

n°1440374
Elmoricq
Modérateur
Posté le 11-09-2006 à 15:23:39  profilanswer
 

Y a un mélange d'espaces et de tabulations, je pense, surtout.
 
Pour pallier au problème de différence d'indentation entre différents outils, je force systématiquement les tabulations émulées (à quatre espaces parce que huit c'est trop et que je le vaux bien).
Comme ça, quel que soit l'éditeur que tu utilises, tu conserves la même indentation.

n°1440399
Emmanuel D​elahaye
C is a sharp tool
Posté le 11-09-2006 à 15:44:41  profilanswer
 

Elmoricq a écrit :

Pour pallier au problème de différence d'indentation entre différents outils, je force systématiquement les tabulations émulées (à quatre espaces parce que huit c'est trop et que je le vaux bien).
Comme ça, quel que soit l'éditeur que tu utilises, tu conserves la même indentation.


Pareil avec 3 espaces.


Message édité par Emmanuel Delahaye le 11-09-2006 à 15:44:54

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1440552
exhortae
Membre du Cartel des Médecins
Posté le 11-09-2006 à 20:42:48  profilanswer
 

Elmoricq a écrit :

Y a un mélange d'espaces et de tabulations, je pense, surtout.
 
Pour pallier au problème de différence d'indentation entre différents outils, je force systématiquement les tabulations émulées (à quatre espaces parce que huit c'est trop et que je le vaux bien).
Comme ça, quel que soit l'éditeur que tu utilises, tu conserves la même indentation.


 
 
oui effectivement y'avait un cocktail de tabulations et d'espaces :D
 
je viens de voir que dans borland on peut changer la taille des tabulations ce que je ne savais pas, je viens de mettre 4 au lieu de 8.
 
merci :)

n°1440579
Emmanuel D​elahaye
C is a sharp tool
Posté le 11-09-2006 à 22:11:28  profilanswer
 

exhortae a écrit :

je viens de voir que dans borland on peut changer la taille des tabulations ce que je ne savais pas, je viens de mettre 4 au lieu de 8.


Attention, la 'taille des tabulations' n'est pas portable. Ce qui l'est, c'est de remplacer les tabulations par un nombre fixe d'espaces (2,3,4...). C'est aussi un reglage de la plupart des éditeus de textes orienté programmation.


Message édité par Emmanuel Delahaye le 11-09-2006 à 22:11:55

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1441415
nargy
Posté le 12-09-2006 à 21:49:35  profilanswer
 

Citation :


(à quatre espaces parce que huit c'est trop et que je le vaux bien).


Deux espaces pour ma part, j'ai tendance à ne pas faire assez de fonctions, vous me direz, et vous auriez raison.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  cherche une aide pour la présentation

 

Sujets relatifs
[aide] Générateur de questionnaire?cherche tutoriel pour jcreator
SVP VENEZ LIRE : Petite Aide Jvs en priiiieaide pour noob svp
Problème de présentation en vb[PHP] Aide pour une modification du index.php de mon Site
Besoin d'aide pour modification courte d'un fichier phpForum PHP, que me conseillez vous, à l'aide !
Cherche librairie de gestion de logTrouver la balise d'un texte que l'on cherche.
Plus de sujets relatifs à : cherche une aide pour la présentation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR