elaboration d'un code pour la gestion des rendez-vous

Rechercher

elaboration d'un code pour la gestion des rendez-vous

Par axelgabin  -  10 reponses  -  Le 28/03/2016 11:23  -  Editer  - 

Bonjour tout le monde j'ai un soucis. en fait suis un debutant en programmation et plus precisement en langage PHP. mon probleme est le suivant:
-> j'ai besoin d'elaborer un code php pour la gestion des rendez-vous que je pourrais tester en invite de commande. j'ai quelques astuces mais rien de precis.. merci d'avance et bonne journee à vous.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 28/03/2016 21:33  -  Haut de page  - 

Bonsoir AxelGabin,
il y a là plusieurs problèmes à gérer.

Le premier, c'est la manière de stocker les informations sur les rendez-vous, soit sur fichiers textes soir avec une base de données;
Ensuite, la mention des tests en invite de commande ne pose pas vraiment de problème en soi, mais l'application est-elle destinée à être uniquement utilisée de cette manière ou bien affichée dans une page web normale ?

Ensuite, si on y réfléchit un peu, il y a les niveaux d'accès : qui accède à quoi ? Est-ce totalement public (j'en doute un peu mais on ne sait jamais), ou bien uniquement certaines personnes ? Comment sont gérés ces accès ? Est-ce qu'il doit y avoir plusieurs niveaux ? Par exemple un ou plusieurs administrateurs, puis des membres ou des utilisateurs accrédités, et finalement qui a le droit de faire quoi ?

Ensuite l'affichage : il peut y avoir toutes sortes de possibilités, il convient de déterminer quoi le plus précisément possible.

Et enfin, un aspect souvent négligé dans pas mal de développements, les perspectives à prendre en compte ou non dans une vision à plus long terme et les évolutions envisageables de l'application.

Si j'évoque tout ceci, c'est tout simplement parce que c'est la base même de n'importe quel développement : définir toutes les caractéristiques fonctionnelles de l'application. Ensuite, on peut en déduire les spécifications techniques, et ensuite seulement on s'occupe du développement en tant que tel.

Ce qui est important ici

Comme je suis le seul à répondre encore sur ce micro-forum, il va falloir prendre en compte un certain nombre d'éléments : en particulier, je ne ferai pas le développement moi-même, j'apporterai en revanche les pistes vers les réponses et solution, mais je ne peux pas apporter grand chose sur la base d'éléments trop vagues. Formulé autrement, ce forum est dédié à l'apprentissage, donc je tente d'aiguiller ceux qui veulent apprendre en les mettant sur une voie qu'ils sont toutefois invités à découvrir. Une solution toute faite n'est pas une solution et je n'ai de toutes façons pas vraiment le temps de faire les développements des autres ;-)

Voilà, donc il va falloir me présenter des éléments plus tangibles afin que je sache d'où on part, vers où on doit aller et quels éléments sont déjà là ... ou pas.

 
Par axelgabin  -  Le 01/04/2016 23:27  -  Haut de page  - 

bonsoir merci deja pour votre reponse; voici le code que j'ai pu elaborer.. mais suis bloqué au niveau de l'ajout des elements pour mes rendez-vous. le programme que je veut creer aura un acces public mais je veut d'abord bien le tester en invite de commande..
voici le script:

    $rdv=array();  
    do{  
        echo "MENU DU PROGRAMME \n";  
    echo "1-Ajouter \n";  
    echo "2-Lister \n";  
    echo"3-Sortir \n";  
    echo"\n\n votre choix:";  
    $choix = fgets(STDIN);  
    switch($choix){  
        case 1:{  
            echo"Entrer votre rdv \n";  
            echo"jour:";  
            $j=fgets(STDIN);  
            echo"\n motif:";  
            $m=fgets(STDIN);  
            $rdv[]=array($j,$m);  
        break;  
        }  
        case 2:{  
            foreach($rdv as $valeur){  
                echo $valeur[0]; $valeur[1];  
                echo "\n";  
            }  
        break;  
        }  
        default:{exec("cls");  
            echo"\n\n veillez lire le menu \n\n";  
            var_dump($rdv);  
        break;}  
    }
 
Par Cyrano  -  Le 02/04/2016 09:27  -  Haut de page  - 

Salut,
je viens de tester ce code.

Le premier point que j'ai observé, c'est qu'il en manque la fin : ça commence par un « do{ » qui devrait se terminer par un « } while(condition); »

En ajoutant cet élément, ce code fonctionne fort bien. Donc les ajouts s'effectuent correctement et si je les liste, j'obtiens bien le résultat attendu tel que défini dans ce code.

Pour son bon fonctionnement, je l'ai cependant légèrement modifié comme suit :

    <?php  
    $rdv = array();  
    $fin = false;  
    do  
    {  
        echo "MENU DU PROGRAMME \n";  
        echo "1-Ajouter \n";  
        echo "2-Lister \n";  
        echo "3-Sortir \n";  
        echo "\n\n votre choix:";  
        $choix = fgets(STDIN);  
        switch($choix)  
        {  
            case 1 :  
                {  
                    echo "Entrer votre rdv \n";  
                    echo "jour:";  
                    $j      = fgets(STDIN);  
                    echo "\n motif:";  
                    $m      = fgets(STDIN);  
                    $rdv[]  = array($j, $m);  
                    break;  
                }  
            case 2 :  
                {  
                    foreach($rdv as $valeur)  
                    {  
                        echo $valeur[0] .' : '. $valeur[1] ."\n";  
                    }  
                    break;  
                }  
            case 3:  
                $fin = true;  
                break;  
            default :  
                {  
                    exec("cls");  
                    echo "\n\n veillez lire le menu \n\n";  
                    var_dump($rdv);  
                    break;  
                }  
        }  
    } while(true != $fin);  
    var_dump($rdv);  

Qu'est-ce qui ne fonctionne pas ?

 
Par axelgabin  -  Le 03/04/2016 23:27  -  Haut de page  - 

MERCI beaucoup votre correctif fonctionne tres bien. ce pendant j'ai un soucis. j'aimerai que vous m'eclairiez. pour cela, j'ai besoin que vous mettez un commentaire sur chaque ligne du code pour que je comprenne mieux. parceque je suis un debutant en php et j'aimerai comprendre ce code le plus simplement possible parceque ce que j'ai fait avant de vous soumettre c'etait pas vraiment claire dans mes idees..

Merci pour tout

 
Par Cyrano  -  Le 03/04/2016 23:53  -  Haut de page  - 

Salut,
ok, alors voici le même code commenté.

    <?php  
    /**  
     * Variable qui permettra de stocker les ajouts  
     */  
    $rdv = array();  
    /**  
     * variable de vérification du statut de l'exécution  
     */  
    $fin = false;  
    /**  
     * Ouverture d'une boucle, la condition va être vérifiée à la fin avec while  
     */  
    do  
    {  
        /**  
         * On affiche le menu proposant les choix disponibles  
         */  
        echo "MENU DU PROGRAMME \n";  
        echo "1-Ajouter \n";  
        echo "2-Lister \n";  
        echo "3-Sortir \n";  
        echo "\n\n votre choix:";  
        /**  
         * Récupération de ce qui a été saisi par l'utilisateur  
         */  
        $choix = fgets(STDIN);  
        /**  
         * On va comparer ce qui a été saisi par l'utilisateur avec les cas possibles  
         */  
        switch($choix)  
        {  
            case 1 :  
                /**  
                 * Le choix de l'utilisateur est « 1 », donc un ajout : on affiche alors   
                 * successivement deux questions dont on va récupérer les réponses de  
                 * l'utilisateur pour les stocker;  
                 */  
                echo "Entrer votre rdv \n";  
                echo "jour:";  
                $j     = fgets(STDIN);  
                echo "\n motif:";  
                $m     = fgets(STDIN);  
                $rdv[] = array($j, $m);  
                /**  
                 * Après le stockage, on va quitter le switch pour effectuer une nouvelle boucle.  
                 */  
                break;  
            case 2 :  
                /**  
                 * Le choix « 2 » demande la liste : on va donc boucler sur le tableau de stockage $rdv  
                 * et afficher chaque ligne qui s'y trouve;  
                 */  
                foreach($rdv as $valeur)  
                {  
                    echo $valeur[0] . ' : ' . $valeur[1] . "\n";  
                }  
                /**  
                 * Tout a été affiché, on va quitter le switch pour effectuer une nouvelle boucle.  
                 */  
                break;  
            case 3 :  
                /**  
                 * Choix « 3 », la sortie est demandée : on modifie donc le statut $fin en le passant à TRUE.  
                 */  
                $fin = true;  
                /**  
                 * Le statut est modifié, on va quitter le switch pour effectuer une nouvelle boucle.  
                 */  
                break;  
            default :  
                /**  
                 * Le choix de l'utilisateur ne correspond à aucun des choix disponibles 1, 2 ou 3, donc on va  
                 * effectuer une action par défaut, ici, afficher le contenu du tableau.  
                 */  
                // exec("cls"); // <=== là, j'ai laissé cette ligne qui était là à l'origine, mais j'ignore à quoi elle correspond  
                echo "\n\n veillez lire le menu \n\n";  
                var_dump($rdv);  
                /**  
                 * Avec « default » on a en réalité pas besoin de mettre de breack ici puisque de toutes  
                 * façon on est à la fin du switch, on on va automatiquement en sortir.  
                 */  
                break;  
        }  
        /**  
         * Le while va vérifier le statut de l'exécution en testant la variablle $fin : si elle   
         * vaut false, on boucle à nouveau, sinon, on quitte la boucle et le programme est terminé  
         */  
    } while(true != $fin);  

    /**  
     * On est sorti de la boucle do/while, on affiche le tableau construit.  
     */  
    var_dump($rdv);  

S'il reste des points obscurs, il suffira de préciser dans la question.

 
Par axelgabin  -  Le 04/04/2016 15:23  -  Haut de page  - 

Merci pour les commentaires à dire que vous eclairez beaucoup de points noirs que j'avais. je relis le code et au cas ou je vous recontacte.

Merci

 
Par axelgabin  -  Le 12/04/2016 15:29  -  Haut de page  - 

bonjour j'ai un soucis. je voudrais elaborer un code php pour le calcul de la moyenne d'un Etudiant. suis un peu bloqué; voici ce que j'ai deja pu faire et si possible j'aimerai avoir vos orientations:

  • Nom: Axel.
  • Maths:12; coefficient:4.
  • info:14; coefficient:6.

voici mon code php:

    <?php  
        $moy[]= array();  
        $coef[]=array();  
         echo"MOYENNE DE L'ETUDIANT \n";  
         echo"1-Nom de l'Etudiant \n";  
         echo"2-Matieres et Coefficients \n";  
         echo"3-Calcul de la Moyenne \n";  
         echo "\n\n votre choix:";  
         $choix = fgets(STDIN);  
          switch($choix)  
          {  
              case 1 :  
              {  
                        echo "Donnee de l'Etudiant \n";    
                        echo "Nom:";    
                        $N      = fgets(STDIN);    
                        $moy[]  = array($N);  
                        echo "\n\n votre choix:";  
                        $choix = fgets(STDIN);                      
                        break;   
              }  
              case 2 :  
              {  
                    echo "\n Matiere 1:";    
                        $m      = fgets(STDIN);  
                    echo "\n Note 1:";  
                        $n = fgets(STDIN);  
                    echo "\n Coefficient 1:";  
                        $c = fgets(STDIN);  
                    echo "\n\n votre choix:";  
                        $choix = fgets(STDIN);  
                        $moy[]  = array($m,$n,$c);   
                    echo " \n Matiere 2:";  
                        $M = fgets(STDIN);  
                    echo "\n Note 2:";  
                        $No = fgets(STDIN);  
                    echo "\n Coefficient 2:";  
                        $co = fgets(STDIN);  
                    echo "\n\n votre choix:";  
                        $choix = fgets(STDIN);  
                        $coef[] =array($M,$No,$co);                  
                        break;   

              }  


          }  

    ?>
 
Par Cyrano  -  Le 12/04/2016 16:19  -  Haut de page  - 

Salut,
ce n'est effectivement pas très évident comme ça. Pour débloquer ça, il faut partir de la fin : pour calculer une moyenne, de quoi a-t-on besoin ? D'une série de notes et d'un coefficient. On sait par ailleurs qu'au départ on peut avoir différentes matières.

Il va donc falloir s'attarder sur la manière de stocker tout ça. L'idée que j'explorerais serait donc la suivante.

D'abord, on doit stocker les notes. On pourra avoir plusieurs notes pour une manière donnée, mais pour cette matière, ce sera toujours le même coefficient. Donc la structure de base pourrait ressembler à quelque chose comme ceci :

'notes' => array(
    array(
        'matiere'     => null,
        'coefficient' => null,
        'note'        => array()
    )
)

Ici, 'notes' est un index à l'intérieur d'un tableau. Ce tableau va permettre de stocker les autres informations dont on va avoir besoin et ressemblera alors à ceci :

array(
    'Nom'   => null,
    'notes' => array(
        array(
            'matiere'     => null,
            'coefficient' => null,
            'note'        => array()
        )
    )
)

J'aurai donc maintenant la structure pour les informations concernant les notes, matières et coefficient pour un élève donné.
Si on part de l'idée qu'il faudrait pouvoir enregistrer le même genre d'information pour plusieurs élèves différents, cette structure sera dans un autre tableau et finalement nous aurons la structure complète suivante :

$aInfosEtudiants = array(
    array(
        'Nom'   => null,
        'notes' => array(
            array(
               'matiere'     => null,
               'coefficient' => null,
               'note'        => array()
           )
        )
    )
);

Si on met des données là-dedans pour avoir une idée de ce que ça pourrait donner en fin de traitement juste avant le calcul des moyennes, ça pourrait ressembler à ceci :

$aInfosEtudiants = array(
    array(
        'Nom'   => 'Alex',
        'notes' => array(
            array(
                'matiere'     => 'Math',
                'coefficient' => 12,
                'note'        => array(6, 14, 12,8, 17)
            ),
            array(
                'matiere'     => 'Physique',
                'coefficient' => 14,
                'note'        => array(4,12,11)
            )
        )
    ),
    array(
        'Nom'   => 'Julie',
        'notes' => array(
            array(
                'matiere'     => 'Math',
                'coefficient' => 12,
                'note'        => array(8, 11, 10,18, 7)
            ),
            array(
                'matiere'     => 'Physique',
                'coefficient' => 14,
                'note'        => array(10,9,15)
            )
        )
    )
);

Donc en fin de comptes, on dispose maintenant d'une structure qu'on va pouvoir parcourir élève par élève, matière par matière et calculer les moyennes en tenant compte des coefficients.

Voilà, c'est une idée de départ, ça devrait à mon avis débloquer pas mal le développement. Ceci dit, il y aurait matière à amélioration pour le code existant dans le switch : au lieu d'y laisser le code, il serait peut-être utile de considérer l'appel à des fonctions spécifiques. Mais en attendant d'optimiser cette partie, il vaut sans doute mieux tâcher de résoudre déjà ce problème de stockage.

 
Par axelgabin  -  Le 13/04/2016 10:16  -  Haut de page  - 

Bonjour
merci pour votre disponibilité. j'ai pris note de vos orientation je vais m'inspirer de celles la et je vous ferai part de l'evolution de mon travail..
Merci encore et bonne journee à vous.

 
Par axelgabin  -  Le 26/04/2016 15:26  -  Haut de page  - 

Bonjour desolé se vous derranger si tel est le cas. en fait j'ai un soucis; j'aimerai mieux comprendre comment creer une pile(empiler et depiler) et une file en langage php?
merci

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |