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

Algorithmes et structures de données Discussion :

Gérer mon stock de pizzas par téléphone...


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut Gérer mon stock de pizzas par téléphone...
    Salut à tous.

    J'aimerais réaliser un programme utilisé par le standardiste pour saisir les commandes, et fournir les bons aux pizzaiolos.

    1)Les clients (noms, numéros de tel., et adresse) et les pizza (nom, prix, taille) constituent des informations que je veux conserver dans 2 fichiers.
    Je dois donc préciser les Types ainsi que ceux des fichiers.
    type :
    T_client = enrregistrement
    nom : chaîne de caractères
    numtel : chaîne de carateres
    adresse : chaîne de caracteres

    type :
    T_pizza = enrregistrement
    type : chaîne de caractères
    taille : entier

    ps : Pour la taille pour simplifier ça sera soit 2 ou 4 personnes.

    Fichiers :
    F_client = fichier de T_client
    F_pizza = fichier de T_pizza

    2)J'aimerais écrire les procédure charge_clients et charge_pizzas qui lisent les informations que l'on souhaite conserver les fichiers et les mémorisent dans des structures de données dynamiques.
    Je ne sais pas trops quelles structures je pourrais choisir...elles peuvent etre differentes.
    ça serait sympa si quelqu'un pouvait à effectuer l'analyse (notamment les interactions avec l'utilisateur)...énoncer les paramètres...

    merci d'avance.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonsoir
    Je ne vois pas trop où est le problème d'un point de vue algorithmique.

    Les structures sont bien définies, si je résume bien le problème, tu cherches à sauver puis relires des informations dans un fichier.

    Une piste : si les champs ont des tailles fixes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sauve
    pour tout client
        ecrit fichier nom
        ecrit fichier tel
    fin pour tout
     
    lit
    pour tout client
        nom <- lit fichier taille nom
        tel <- lit fichier taille tel
    fin pour tout

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    merci....
    1) mais si mes champs n'ont pas des tailles fixes??

    2) J'ai voulu écrire ensuite une procédure cherche_client qui détermine si un client est déja connu. Si c'est le cas la procédure fournit son adresse...

    procédure cherche_client (var fichier : F_client ;
    nom : chaine de caracteres ;
    adresse : chaine de caracteres ; )
    variables :
    trouvé : booléen ;
    x,ad : T_client ;

    début
    ré initialiser le fichier reset (fic)
    seek (fic , 0)
    trouvé := faux

    Tant que (fin_de_fichier (fic) faire
    lire (fic , x)
    si (x.nom = nom) alors
    trouvé := vrai ;
    affiche client (x) -->créer procédure affiche
    affiche adresse (ad)

    Si (trouvé = false) alors
    écrire ('il n'existe pas')
    fermer (fic);
    fin
    *************************************************************
    procédure affiche (var l : liste)
    variable pcel : *cellule ;
    x : T

    début
    pcel := l.tête
    Tant que (pcel <> nil) faire
    x := pcel*.val
    écrire (x)
    pcel := pcel*.suivant
    fin
    *************************************************************
    si quelqu'un voulais bien me corriger mon algo ça serait sympa.
    merci d'avance.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    rectification : pour la procédure affiche (qui affiche le nom et l'adresse de la personne)
    (--------------------------------------------------------------------------------------)
    Paramètre : donnée (x)

    procédure affiche_client

    début
    écrire (' Client : ' , x.nom, ' ' , x.adresse) ;
    fin
    (--------------------------------------------------------------------------------------)
    Cest beaucoup plus simple...

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    Tant que je suis lancé j’ai une autre procédure à écrire...
    Je voudrai écrire une procédure ajout_client qui ajoute un client dans la structure de données dynamique qui contient des clients.

    Ajoute_client (en fin de fichier) et affiche pourquoi pas sa position...
    (-----------------------------------------------------------------------------------)
    Parametres : (modification) fic , (donnée) Client
    (var fic : F_client ;
    client : T_client ) ;

    début
    ré initialiser (fic) seek (fic);
    seek (fic, Filesize (fic));
    écrire (fic , client) ;
    écrire ( ‘Après ajout , pos = ‘) ;
    écrire (FilePos (fic)) ;
    fermer (fic) ;
    fin
    (-----------------------------------------------------------------------------------)
    J’espère que quelqu’un pourra m’aider à améliorer mes algorithmes...merci d’avance.

  6. #6
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Par défaut
    Salut,


    Pour le problème de la taille fixe, tu peux probablement fixer une longueur maximale pour les champs et remplir avec du vide (des caractères espace en général). Tu perds de la place en mémoire, mais c'est plus rapide pour chercher. Si tu ne souhaites pas stocker les champs avec des longeurs fixes, il est possible de séparer les différents champs par des caractères prédéfinis (mais ça oblige à tout lire) ou de commencer par la taille du champ à venir. Si tu te retrouves avec beaucoup de client à stocker (le beaucoup est difficile à définir, mais c'est en gros quand la recherche commence à prendre trop de temps), il devient peut-être préférable d'utiliser différents fichiers (en triant par exemple suivant le nom ; on peut se baser sur des fonctions de hachage) , indexs ou une méthode un peu plus recherchée que le stockage séquentiel. Tu peux peut-être également t'inspirer du système qu'utilise les gestionnaires de bases de données si ce genre d'informations est trouvable (je n'ai pas cherché).

    Je ne sais pas trop si ce que j'ai écrit est très clair et si ça te parles, mais je pourrais toujours essayer de faire mieux si nécessaire.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    pascal_damien>>Je ne comprends pas trop ton raisonnement...tu n'aurais pas des exemples s'il te plait....une ébauche....???
    merci pour ton aide.

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Katsumi
    pascal_damien>>Je ne comprends pas trop ton raisonnement...tu n'aurais pas des exemples s'il te plait....une ébauche....???
    merci pour ton aide.
    oui mais il est vivement recommendé de prendre un SGBD pour ça ( Access , MySQL ....)!
    C'est trop compliqué de prendre des strucures du genre client ou commande ;
    Parce que comme tu l'as soulevé se pose le pb des structures à remplir dynamiquement.

    Pour gérer des Pizzas on peut prendre Php + MySQL

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Par défaut
    oui....je sais malheureusement je n'ai pas le droit d'utiliser les bases de données!!
    donc je me retrouve à travailler sur des algo.....
    Donc si quelqu'un est vraiment doué en algo et sait utiliser les structures dynamiques.....ça serait sympas d'améliorer ce que j'ai commencé à faire.
    C'est urgent.Merci beaucoup pour votre aide.

  10. #10
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par Katsumi
    malheureusement je n'ai pas le droit d'utiliser les bases de données
    Et pourquoi pas XML, c'est toujours de la lecture/ecriture fichier mais en plus ya possibilité de gérer un shema de données


Discussions similaires

  1. Réponses: 0
    Dernier message: 03/03/2010, 10h57
  2. [Conception] soucis avec mon code de recherche par un ou plusieurs critères
    Par jolipepage75 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 11/06/2006, 02h59
  3. Réponses: 1
    Dernier message: 13/01/2006, 14h18
  4. Quel SGBD peut gérer plus de 2000 champs par table?
    Par colorid dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/11/2005, 20h58
  5. Réponses: 1
    Dernier message: 04/06/2003, 11h48

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