Salut à tous.
J'aimerais réaliser un programme utilisé par le standardiste pour
saisir les commandes, et fournir les bons aux pizzaiolos......mais en
utilisant ni Access, ni MySQL......mais des algo ou Pascal...c'est le
principal inconvénient.
1) Les clients (noms, numéros et
adresse) et les pizzas (noms, prix, taille) constituent des informations que
lon souhaitenconserver dans deux fichiers.
Préciser les types T_client,
T_pizza , ainsi que ceux des fichiers.
types :
T_client
= enregistrement
nom : chaîne de caractères
numtel : chaîne de carateres
adresse : chaîne de caracteres
T_pizza =
enregistrement
type : chaîne de caractères
taille : entier
Fichiers :
F_client =
fichier de T_client
F_pizza =
fichier de T_pizza
ps : Pour la taille pour simplifier ça sera soit 2 ou 4 personnes.
2) Les procédures charges_clients et charge_pizzas
lisent les informations concernant les pizzas et les clients dans les fichiers
et les mémorisent dans des structures et les mémorisent dans des structures de
données dynamiques.
Quelles structures je dois choisir
(elles peuvent être différentes) ?
=>Listes chaînées ou tableaux
dynamique ???
(---------------------------------------------------------------------------------------------------------------)
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
(--------------------------------------------------------------------------------------------------------------)
Pour le problème de la taille fixe, je
peux probablement fixer une longueur maximale pour les champs et remplir avec
du vide (des caractères espace en général). Je perds de la place en mémoire,
mais c'est plus rapide pour chercher. Si je ne souhaites pas stocker les champs
avec des longueurs 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 je me retrouves avec beaucoup de clients à 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), indexes ou une méthode un peu plus recherchée
que le stockage séquentiel. ???
3) je dois écrire la procédure cherche_client qui détermine si un client est déjà connu. Si cest
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_client
affiche adresse (ad)
Si (trouvé = false) alors
écrire ('il n'existe pas')
fermer (fic);
fin
Paramètre : donnée (x)
procédure affiche_client
début
écrire (' Client : ' , x.nom, ' ' , x.adresse) ;
fin
(---------------------------------------------------------------------------------------------------------------)
4) La procédure ajout_client qui ajoute un client dans la structure 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
(---------------------------------------------------------------------------------------------------------------)
5) je dois spécifier la structure de données
qui mémorise une commande.
Tableau à une seule dimension (données
fixes)?????
6) je dois spécifier la structure de données
qui mémorise les commandes.
Listes chaînées (données dynamiques)?????
7) La saisie dune commande seffectue
à laide dune procédure nommée saisie_commande.
Elle permet de saisir toutes les
informations qui seront écrites sur le bon, et elle détermine le temps
dattente.
Ce temps est calculé de la manière
suivante : 15 mn + nb*5 mn, nb étant le nombre de commandes en attente et
qui ne sont pas encore entre les mains dun pizzaïolo.
La je coince....
8) La procédure prochaine_commande
affiche sur lécran du standardiste la prochaine commande quil doit
fournir au 1er pizzaïolo qui sera libre.
Procédure prochaine_commande
((d) v : vecteur, (d) i :
entier) : entier
spécification {l<i<libre}=>suivant :
indice du debut de la 1ere commande soit lindice i dans v...
début
tant que v[i] <> *
faire i := i+1 ;
commnde suivante := i+1 ;
pas terrible...
9) je dois écrire la procédure sauve_client qui mémorise lensemble des
clients dans un fichier.
Je ne vois pas comment faire...
Voila ça serait sympa si quelqu'un pouvait m'aider en me donnant des pistes ou/et en améliorant ca que j'ai fait.
Merci.J'attends vos réponses avec imppatience.