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

C Discussion :

VIP (very important probleme) en C


Sujet :

C

Vue hybride

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut VIP (very important probleme) en C
    Bonjour !

    Alors voila je vous explique...Pour mon entreprise je souhaiterais developper un programme de gestion de clients. J'ai fait une maquette (cf ci dessous) mais je bloque vraiment sur la programmation en général :/

    Application Gestion d’un carnet d’adresses clients
    Présentation générale
    Fonctions de l’application
    L’application compte six fonctions.
    Schéma d’enchaînement des fenêtres
    Projet en cours de rédaction
    Présentation des fenêtres

    Ecran CL1 - Menu principal
    ********************************************************************
    Gestion de l’annuaire Clients
    ********************************************************************
    A : Ajouter
    R : Rechercher
    M : Modifier
    S : Supprimer
    L : Lister
    Q : Quitter
    Choix <A, R, M, S, L, Q> :
    L’utilisateur est invité à saisir l’un des caractères proposé au menu.
    Projet en cours de rédaction

    Ecran CL2 - Ajouter
    ********************************************************************
    Ajouter un client
    ********************************************************************
    1. Identifiant :12345678
    2. Entreprise : COLA
    3. Adresse : RUE VICTOR
    4. Nom contact : VINCI
    5. Prénom : PASCAL
    6. Mail : VINCI.PASCAL@WANAHERE.MARS
    7. Téléphone : 01.02.03.04.05
    ********************************************************************
    Description des champs de l’écran ajouter un client
    Champs Type Long Commentaires
    1. Identifiant Code client N 8 Saisi
    2. Entreprise A 24 Saisi
    3. Adresse A1 24 Saisi
    4. Nom Contact client C 24 Saisi
    5. Prénom Contact client C 24 Saisi
    6. Mail Contact client A 24 Saisi
    7. Téléphone Contact T 14 Saisi
    A : Format alphanumérique
    N : Format numérique
    C : (chaîne de caractères) - texte
    T : Format XX.XX.XX.XX.XX
    1 ou à définir
    Projet en cours de rédaction
    Ecran CL3 - Rechercher un client
    ********************************************************************
    Rechercher un client
    ********************************************************************
    I. Identifiant :
    E. Entreprise :
    N. Nom Contact :
    Choix <I, E, N> :
    ********************************************************************
    L’utilisateur est invité à saisir l’un des caractères proposé au menu.
    Ecran CL4- Saisir l’identifiant du client
    ********************************************************************
    Saisir l’identifiant (code) du client
    ********************************************************************
    1. Identifiant :………………………………………………….
    ********************************************************************
    Ecran CL5- Saisir le Nom (code) de l’entreprise
    ********************************************************************
    Saisir le Nom (code) de l’entreprise
    ********************************************************************
    2. Entreprise : ………………………………………………….
    ********************************************************************
    Ecran CL6- Saisir le nom du contact dans l’entreprise cliente
    ********************************************************************
    Saisir le nom du contact dans l’entreprise cliente
    ********************************************************************
    4. Nom : ………………………………………………….
    ********************************************************************
    Description des champs associés aux écrans saisir un client
    Champs Type Long Commentaires
    1. Identifiant Code client N 8 Saisi
    2. Entreprise A 24 Saisi
    4. Nom Contact client C 24 Saisi
    A : Format alphanumérique ; N : Format numérique ; C : (chaîne de caractères) - texte
    T : Format XX.XX.XX.XX.XX
    Projet en cours de rédaction
    Ecran CL7- Afficher l’information relative au client
    ********************************************************************
    Information relative au client
    ********************************************************************
    1. Identifiant :………………………………………………….
    2. Entreprise : ………………………………………………….
    3.Adresse : ………………………………………………….
    4.Nom Contact : ………………………………………………….
    5. Prénom : ………………………………………………….
    6. Mail : ………………………………………………….
    7.Telephone : ………………………………………………….
    8. C_Date : ………………………………………………….
    ********************************************************************
    Description des champs de l’écran ajouter un client
    Champs Type Long Commentaires
    1. Identifiant Code client N 8 Lu2
    2. Entreprise A 24 Lu
    3. Adresse A3 24 Lu
    4. Nom Contact client C 24 Lu
    5. Prénom Contact client C 24 Lu
    6. Mail Contact client A 24 Lu
    7. Téléphone Contact T 14 Lu
    8. C_Date (date de création de la donnée) D 10 Lu
    A : Format alphanumérique
    N : Format numérique
    C : (chaîne de caractères) - texte
    T : Format XX.XX.XX.XX.XX
    D : Format date : JJ/MM/AAAA
    Ecran CL8- Modifier les informations sur le client
    ********************************************************************
    Modifier les informations relatives au client
    ********************************************************************
    I. Identifiant :
    E. Entreprise :
    N. Nom :
    Choix <I, E, N> :
    ********************************************************************
    2 Lu dans le fichier client
    3 ou à définir
    Projet en cours de rédaction
    L’utilisateur est invité à saisir l’un des caractères proposé au menu.
    Remarques :
    Les écrans concernant la saisie sont :
    - CL4- Saisir l’identifiant du client
    - Ecran CL5- Saisir le Nom (code) de l’entreprise
    - Ecran CL6- Saisir le nom du contact dans l’entreprise cliente
    Ecran CL9- Supprimer un client
    ********************************************************************
    Supprimer un client
    ********************************************************************
    I. Identifiant :
    E. Entreprise :
    N. Nom :
    Choix <I, E, N> :
    ********************************************************************
    Remarques :
    Les écrans concernant la saisie sont :
    - CL4- Saisir l’identifiant du client
    - Ecran CL5- Saisir le Nom (code) de l’entreprise
    - Ecran CL6- Saisir le nom du contact dans l’entreprise cliente
    Ecran CL10- Lister l’annuaire client
    ********************************************************************
    Information relative au client
    ********************************************************************
    1. Identifiant :………………………………………………….
    2. Entreprise : ………………………………………………….
    3.Adresse : ………………………………………………….
    4.Nom Contact : ………………………………………………….
    5. Prénom : ………………………………………………….
    6. Mail : ………………………………………………….
    7. Telephone : ………………………………………………….
    8. C_Date : ………………………………………………….
    9. Num / 10.Total
    ********************************************************************
    Projet en cours de rédaction
    Description des champs de l’écran ajouter un client
    Champs Type Long Commentaires
    1. Identifiant Code client N 8 Lu4
    2. Entreprise A 24 Lu
    3. Adresse A5 24 Lu
    4. Nom Contact client C 24 Lu
    5. Prénom Contact client C 24 Lu
    6. Mail Contact client A 24 Lu
    7. Téléphone Contact T 14 Lu
    8. C_Date (date de création de la donnée) D 10 Lu
    9. Numéro d’ordre du client dans la liste N 10 Calculé
    10. Total : Nombre de clients dans la liste N 10 Calculé
    A : Format alphanumérique, N : Format numérique, C : (chaîne de caractères) - texte
    T : Format XX.XX.XX.XX.XX , D : format date : JJ/MM/AAAA
    La liste des clients est affichée au fur et à mesure de la validation de l’utilisateur écran par
    écran.
    Ecran CL9- Quitter l’application gestion des clients
    ********************************************************************
    Confirmer : Quitter l’application gestion des clients
    ********************************************************************
    O. Oui :
    N. Non :
    Choix <O, N> :
    ********************************************************************
    Modèle organisationnel des traitements
    Traitement 0
    4 Lu dans le fichier client
    5 ou à définir
    Projet en cours de rédaction
    Projet en cours de rédaction
    Avant tout traitement, l’application consulte le fichier « clients.txt » et charge en mémoire la
    liste des clients.
    Les clients affichés par l’application sont gérés à partir d’un fichier « clients.txt »
    La structure du fichier de sauvegarde
    Il est important de définir la structure du fichier dans lequel vont être stockées les données.
    Tous les clients sont listés dans un fichier nommé « clients.txt »
    Une des deux méthodes suivantes peut être envisagées quant à la sauvegarde des données.
    a) Les données modifiées lors de l’ajout, la modification ou la suppression d’un client
    sont sauvegardées systématiquement dans le fichier « clients.txt ».
    b) Les données sont traitées en mémoire et stockées avant de quitter l’application.
    Expliquer brièvement l’intérêt de l’une ou l’autre des solutions envisagées ?
    Dans le fichier « clients.txt » de type texte, chaque ligne correspond à un client qui est défini
    par :
    Identifiant Code client, Entreprise, Adresse, Nom Contact client, Prénom Contact client,
    Mail Contact client, Téléphone Contact, C_Date (date de création de la donnée).
    Exemple :
    L’entreprise dénommée Virtuelle, ayant pour identifiant 23, domiciliée au 38 rue de la
    République 75008 Paris, a pour contact M. Durant, Pascal celui-ci est joignable par l’e-mail
    durant.pascal@free.fr, ou par le numéro téléphonique 01.30.21.45.68.
    La structure du fichier contient les informations suivantes dans l’ordre indiqué ci-dessous.
    23*Virtuelle*38 rue de la République 75008 Paris*Durant*Pascal*durant.pascal@free.fr,
    *01.30.21.45.68* 12/12/07*
    129*Cisco*12 rue V. Hugo 75008 Paris*Pierre*Dubois*pierre.duboisl@yahoo.fr
    *05.30.21.45.18* 12/01/06*
    Chaque type de donnée est séparé par le caractère *. Ce séparateur est à utiliser lors des accès
    au fichier en lecture et écriture.

    Traitement 0 : Charger les informations de la base clients
    Traitement 0 : Ajouter un client
    Traitement 2 : Rechercher un client par son Identifiant ou Entreprise ou Nom
    Traitement 3 : Supprimer un client
    Traitement 4 : Afficher la liste des clients (client / client )

    Merci d'avance

    Cordialement,
    Frosties

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Bonjour et bienvenue sur nos forums

    Peux-tu préciser les points ou le code qui te posent problème, parce que sinon je ne vois pas comment on pourra t'aider ?

  3. #3
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Déjà, est-ce que le C est le meilleur langage pour faire cela ?
    A mon humble avis Java ou Python sont peut être plus adaptés...

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par Bayard
    Déjà, est-ce que le C est le meilleur langage pour faire cela ?
    A mon humble avis Java ou Python sont peut être plus adaptés...
    Le meilleur langage, pas forcément, mais en tout cas il s'avère ici plus adapté que Java (quoi que je trouve également que le C++ est une bonne alternative). Les E/S en Java ne se font pas aussi aisément qu'en C mais bon, on est pas ici pour débattre.

    Frosties : Il faut utiliser une approche descendante (s'enfoncer petit à petit dans le coeur du problème) et modulaire (découper le problèmes en plusieurs "sous-problèmes") afin d'en faciliter l'écriture et la maintenance. On commence évidemment par le programme principal. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int main()
    {
        int commande;
     
        do
        {
            PrincipalAfficherMenu(); /* Affiche le menu principal */
            commande = PrincipalSaisirCommande(); /* Retourne la commande entree par l'utilisateur */
            Executer(commande); /* Execute la commande */
        }
        while (commande != QUITTER);
     
        return 0;
    }
    On pense maintenant comment on va écrire ces fonctions.

    - PrincipalAfficherMenu : Facile. Affiche le menu principal.
    - PrincipalSaisirCommande : Lit un caractère sur l'entrée standard. Si le caractère est valide, retourne la commande correspondante (par exemple QUITTER pour 'Q'), sinon recommence la saisie.
    - Executer : exécute une commande. Executer(QUITTER) ne fait rien.

    Le menu principal propose 6 choix : Ajouter, Rechercher, Modifier, Supprimer, Lister et Quitter. On doit donc déjà définir 6 commandes, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #define AJOUTER     0
    #define RECHERCHER  1
    #define MODIFIER    2
    #define SUPPRIMER   3
    #define LISTER      4
    #define QUITTER     5
    On peut alors maintenant faire une première spécification détaillée de la fonction Executer. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    void Executer(int commande)
    {
        switch(commande)
        {
        case AJOUTER:
            EcranAjouter();
            break;
     
        case RECHERCHER:
            EcranRechercher();
            break;
     
        case MODIFIER:
            EcranModifier();
            break;
     
        case SUPPRIMER:
            EcranSupprimer();
            break;
     
        case LISTER:
            EcranLister();
            break;
     
        case QUITTER:
            break;
     
        default:
            EcranErreurInattendue();
            break;
        }
    }
    Pour le reste, il s'agit tout simplement de lire et écrire dans un fichier. Fais de ton mieux et tiens-nous au courant de ton avancement.

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Moi je verrais plutôt Access pour ce genre de chose.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut
    merci pour les réponses bon alors voila ou j'en suis j'ai fait comme l'a dit melem avec plusieurs procédures mais je ne sait pas comment faire pour obliger l'utilisateur a entrer les caractéristiques du client et a limiter le nombre de caractères qu 'il peut ecrire (pour le nom par exemple), j'ai déja essayser avec sizeof mais je n'y suis pas arrivé.

    De plus je n'ai pas la moindre idéé pour le fichier de sauvegarde (.txt) je ne sais pas comment le créer ni l'utiliser est ce que je pourrai avoir des explications pour son utilisation dans ce programme
    merci
    Cordialement
    frosties

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Frosties Voir le message
    Pour mon entreprise je souhaiterais developper un programme de gestion de clients.
    Alors je te conseille d'utiliser une base de données (langage SQL pour être portable) et une interface de type GTK+, par exemple.

    Le langage C tout seul n'est pas du tout adapté à ce genre d'application, mais si techniquement tout est faisable...
    je n'ai pas la moindre idéé pour le fichier de sauvegarde (.txt) je ne sais pas comment le créer ni l'utiliser
    ... à condition d'être correctement formé, bien sûr. la programmation, ça ne s'improvise pas...

    Ton projet demande de sérieuses connaissance en programmation, interfaces homme machine et bases de données (connexion, langage SQL). Ca ne se fera pas en bricolant sans connaitre les bases du langage C...

    Si tu n'es pas programmeur, pourquoi tu veux écrire toi même un programme aussi stratégique pour ta boite ? Tu ne crois pas que c'est jouer avec le feu ?
    Chacun son métier, non ?

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    E. Delahaye, je ne pense pas que ça soit réellement un projet d'entreprise. A mon avis ce n'est qu'un énnoncé d'exercice mais bref.

    Citation Envoyé par Frosties
    je ne sait pas comment faire pour obliger l'utilisateur a entrer les caractéristiques du client et a limiter le nombre de caractères qu 'il peut ecrire (pour le nom par exemple), j'ai déja essayser avec sizeof mais je n'y suis pas arrivé.
    Ben tout simplement avec printf, fgets, etc. size dans fgets ne limite pas le nombre de caractères que pourra taper l'utilisateur mais le nombre de caractères que peut accepter ton buffer. Montre un peu ce que tu as pu écrire jusqu'ici.
    De plus je n'ai pas la moindre idéé pour le fichier de sauvegarde (.txt) je ne sais pas comment le créer ni l'utiliser est ce que je pourrai avoir des explications pour son utilisation dans ce programme
    Pour la manipulation des fichiers en C, il y a un tutoriel ici.

Discussions similaires

  1. Import probleme de format
    Par suistrop dans le forum SAS Base
    Réponses: 2
    Dernier message: 06/11/2008, 21h41
  2. Réponses: 2
    Dernier message: 04/08/2007, 19h26
  3. [dll] probleme a l importation
    Par BainE dans le forum MFC
    Réponses: 4
    Dernier message: 06/07/2005, 15h44
  4. [Language][debutant] package et import : probleme
    Par debdev dans le forum Langage
    Réponses: 11
    Dernier message: 15/03/2005, 12h29
  5. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57

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