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 :

Réalisation d'un agenda


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut Réalisation d'un agenda
    bonjour a tous, donc voila je suis debutant en c et j'ai un projet a faire,c'est de realiser un agenda annuel ( pas afficher) avec la possibilité d'enregistrer des evenements( nom, lieu, contact, objet...)ou modifier, supprimer et voir les rendez vous, donc j'ai fais un petit travail mais j'arrive pas a creer un tableau de structure sachant qu'il me faut 52 semaines et dans chaque jour j dois remplir le tableau avec la structure qui contient mais champs 52 fois ( nom, prenom, objet...) genre tab[i].nom , tab[i].objet j sais pas comment le faire. vous pouvez me donner des idées pour commencer SVP , je suis vraiment debutant. Merci d 'avance

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Sais-tu définir un tableau de int ? Sais-tu créer une structure avec un typedef ?

    Si la réponse est non, commence par ça.

    Si la réponse est oui, réfléchis et trouvera vite la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut
    oui je sais, par exemple dans mon petit programme j'ai commencé par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct info
    {
        char nom;
        char prenom;
        char objet;
        char lieu;
        char contact;
    };
    //car mon projet consiste a realiser un agender constitué de 52 semaines donc je dois repeter cette structure 52 fois dans destableau du meme type.
    et pour declarer le tableu:
    struct info tab[7] //genre 7 jours

    mais pour remplir le tableau avec les champs j'ai fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const nbsemaine=52;
        struct info tab[7];
     
        for (i=1;i<=52;i++)
        {
            for (j=1;j<=7;j++)
            {
                tab[i].nom;
                tab[i].prenom;
                tab[i].objet;
                tab[i].lieu;
                tab[i].contact;
            }
        }
    // c'est totalement faux nn!

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Pense à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int tab[10];
    TOTO tab[10];
    struct info tab[10]
    Si on dit que TOTO est le type, TOTO peut-être int ou struct info. La dernière ligne crée un tableau de structures, elle crée donc plusieurs structures, chacune avec ces champs. Il n'y pas besoin "d'ajouter les champs" à chaque structure ! Une structure est par essence même l’agrégat de ses propres champs.

    Ton code n'a donc pas de raison d'être. En tout cas pas pour faire cela : il peut en revanche te servir pour "donner une valeur" à chaque champ de chaque structure, mais il faut pour cela ajouter une affectation (champ = valeur). Cela revient un peu à "remplir les champs eux-mêmes" mais sûrement pas à "remplir le tableau avec des champs".

    Petites remarques aux passages : il manque des déclarations de variables (le compilateur le dit) et un tableau de 7 éléments parcouru avec une boucle de 365 contenant elle-même une boucle de 7, ça me semble 365 fois trop long !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut
    j'arrive pas a comprendre, pourkoi on a utiliser toto comme structure (est ce que c'est un exemple), bn je m'explique, dans mn projet je dois traiter un agenda donc j'ai penser a faire:
    1) demander a l'utilisateur la date c'est a dire le mois et le jour.
    2)dés que l'utilisateur a entré la date les champs de ma structure info vont apparaitre sur ecran, et l'utilisateur dois remplir.
    3) ici c'est un autre probleme car ça consiste a avoir la possibilité de modifier les rendez vous, ou supprimer un, ou bien juste les afficher( afficher tous les evenement qui existent avec leurs dates).

    donc pour la premiere etapes j'ai fais tt simplement ça:

    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
    int main()
    {
        int i,j,mois,jour,operation;
     
        printf("1) creer un evenement: ");
        printf("\n2) afficher un evenemet: ");
        printf("\nVeuiller choisir une operation: ");//choisir 1 ou 2.
        scanf("%d",&operation);
        if (operation==1)
        {
            do
            {
               printf("Veuiller choisir le mois: ");
               scanf("%d",&mois);
            }
            while (mois<1 || mois>12);
     
            do
            {
                printf("Veuiller choisir le jour: ");
                scanf("%d",&jour);
            }
            while (jour<1 || jour>31);
    Pour la deuxieme etapes j'arrive pas a comprendre car il faut que mon programme soit general pour toute l'annee ( bien sur l'anne 2014), car qunand j vais demander a l'utilisateur d'entrer la date, il peut entrer n'importe quel date (dans 2014) c'est pour ça que je dois traiter 52 semaine, donc j'ai pensé a creer une constante nbsemain=52 et un tableau de type inf (ma structure) et faire de boucle for afin de replir chaque case du de mon tableau par les champs de ma structure ( c'est bizarre 365 fois), j'ai fais ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const nbsemaine=52;
        struct info tab[7];
     
        for (i=1;i<=52;i++)
        {
            for (j=1;j<=7;j++)
            {
                tab[i].nom;
                tab[i].prenom;
                tab[i].objet;
                tab[i].lieu;
                tab[i].contact;
            }
        }
    j'arrive pas a comprendre votre dernier message, genre si en fait:

    struct info tab[7] // c'est commeon a rempli le tableau sans faire tab[i].nom...etc!.
    Merci d'avance.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut Vérification d'un programme - agenda annuel
    Donc voila je programme un agenda annuel avec la possibilité de creer des evenement (anniversaire..etc), de changer ces evenement et supprimer un evenement si on veut, donc je suis arriver a un affichage (je veut afficher les champs de ma structure sur ecran) je m'explique: j'ai demander a l'utilisateur d'entree le mois, le jour et puis je veux afficher la case correspondante dans mon tableau de type de ma structure, j sais pas comment le faire, voila mon programme.
    au niveau de la ligne 149!!
    Merci d'avance!

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    struct info
    {
       char nom;
       char prenom;
       char objet;
       char lieu;
       char contact;
    };
    int main()
    {
     
        int i,j,k,l,m,n,o,p,q,r,s,t;
        int operation,mois,jour;
        struct info tab1[31];
        struct info tab2[28];
        struct info tab3[31];
        struct info tab4[30];
        struct info tab5[31];
        struct info tab6[30];
        struct info tab7[31];
        struct info tab8[31];
        struct info tab9[30];
        struct info tab10[31];
        struct info tab11[30];
        struct info tab12[31];
     
        for(i=1;i<=31;i++)
        {
            tab1[i].nom;
            tab1[i].prenom;
            tab1[i].objet;
            tab1[i].lieu;
            tab1[i].contact;
        }
        for(j=1;j<=28;j++)
        {
            tab2[j].nom;
            tab2[j].prenom;
            tab2[j].objet;
            tab2[j].lieu;
            tab2[j].contact;
        }
        for(k=1;k<=31;k++)
        {
            tab3[k].nom;
            tab3[k].prenom;
            tab3[k].objet;
            tab3[k].lieu;
            tab3[k].contact;
        }
        for(l=1;l<=30;l++)
        {
            tab4[l].nom;
            tab4[l].prenom;
            tab4[l].objet;
            tab4[l].lieu;
            tab4[l].contact;
        }
        for(m=1;m<=31;m++)
        {
            tab5[m].nom;
            tab5[m].prenom;
            tab5[m].objet;
            tab5[m].lieu;
            tab5[m].contact;
        }
        for(n=1;n<=30;n++)
        {
            tab6[n].nom;
            tab6[n].prenom;
            tab6[n].objet;
            tab6[n].lieu;
            tab6[n].contact;
        }
        for(o=1;o<=31;o++)
        {
            tab7[o].nom;
            tab7[o].prenom;
            tab7[o].objet;
            tab7[o].lieu;
            tab7[o].contact;
        }
        for(j=1;j<=31;j++)
        {
            tab8[p].nom;
            tab8[p].prenom;
            tab8[p].objet;
            tab8[p].lieu;
            tab8[p].contact;
        }
        for(q=1;q<=30;q++)
        {
            tab9[q].nom;
            tab9[q].prenom;
            tab9[q].objet;
            tab9[q].lieu;
            tab9[q].contact;
        }
        for(r=1;r<=31;r++)
        {
            tab10[r].nom;
            tab10[r].prenom;
            tab10[r].objet;
            tab10[r].lieu;
            tab10[r].contact;
        }
        for(s=1;s<=30;s++)
        {
            tab11[s].nom;
            tab11[s].prenom;
            tab11[s].objet;
            tab11[s].lieu;
            tab11[s].contact;
        }
        for(t=1;t<=31;t++)
        {
            tab12[t].nom;
            tab12[t].prenom;
            tab12[t].objet;
            tab12[t].lieu;
            tab12[t].contact;
        }
        printf("1) creer un evenemet!");
        printf("\n2) afficher un evenement!");
        printf("\nVeuiller choisir une operation: ");
        scanf("%d",&operation);
        if (operation==1)
        {
            do
            {
                printf("Veuiller choisir un mois: ");
                scanf("%d",&mois);
            }while (mois<1 || mois>12);
            if (mois==1)
            {
                printf("Vous avez choisi le mois janvier");
                do
                {
                    printf("\nVeuiller choisir un jour: ");
                    scanf("%d",&jour);
                }while(jour<1 || jour>31);
            }
        }
        printf("La date que vous avez choisi est le %d janvier",jour);
        printf("%s",tab1[i].nom);
    }

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 496
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    J'ai fusionné les 2 discussions pour plus de clarté.

    Les tableaux ont des indices allant de 0 à max - 1, je pense que cela va poser problème dans le code.

    PS : heureusement qu'il n'y aura jamais de 13e dans l'agenda...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Bktero Voir le message
    PS : heureusement qu'il n'y aura jamais de 13e dans l'agenda...
    Citation Envoyé par Deathwar Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        for(i=1;i<=31;i++)
        for(j=1;j<=28;j++)
        for(k=1;k<=31;k++)
     
        ...
     
        for(t=1;t<=31;t++)
    Ou plus de 26 mois

    Cette structure n'est pas bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct info
    {
       char nom;
       char prenom;
       char objet;
       char lieu;
       char contact;
    };
    Le type char désigne un seul caractère et non pas une chaine de caractères.

    Toutes les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            tab.[.].nom;
            tab.[.].prenom;
            tab.[.].objet;
            tab.[.].lieu;
            tab.[.].contact;
    Ne font absolument rien.

    Afin d'éviter toutes ces répétitions, je te conseille de te faire deux tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int nbJours[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    struct info *tab[12] = {tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8, tab9, tab10, tab11, tab12};

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 14
    Par défaut
    la structure va etre une structure de tableau c'est ça ? mais comment j vais faire pour remplir chaque case avec les champs ( nom, prenom, objet..)?
    Merci pour ta reponse!
    Est ce que tu peux m'expliquer votre derniere reponse j trouve un peu de difficulté pour comprendre ça: genre on va faire comment par exemple pour afficher les champs de ma structure prenons en considération la reponse de l'utilisateur sur la date ( car on va lui demander de faire entrer le mois et le jour et donc il faut lui afficher par la suite les champs pour qu'il puisse les remplir ).Merci.

  10. #10
    Invité
    Invité(e)
    Par défaut
    struct info *tab[12] est un tableau de pointeurs qui va aller pointer sur chacun de tes tableaux tab1, tab2... tab12.

    L'accès aux éléments de ces tableaux se fera par tab[mois][jour].champ, mois allant de 0 à 11, et jour allant de 0 à nbJour[mois]; enfin champ étant nom, prénom, objet, lieu ou contact.

    Un parcours aura donc la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(size_t mois=0 ; mois<12 ; ++mois) {
        for(size_t jour=0 ; jour<nbJours[mois] ; ++jour) {
            // tab[mois][jour].champ
        }
    }
    Je te conseille la lecture de ce tutoriel pour la saisie.

Discussions similaires

  1. Réalisation d'un petit agenda
    Par OlaffGrossBaff dans le forum Mise en forme
    Réponses: 2
    Dernier message: 30/09/2013, 11h02
  2. [Débutant] Réalisation d'un calendrier/agenda
    Par mahdu972 dans le forum Silverlight
    Réponses: 0
    Dernier message: 18/06/2013, 16h57
  3. réalisation d'une application Agenda
    Par krosofttt dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 21/10/2010, 23h35
  4. Réaliser un agenda avec le champs monthcalendar
    Par devvanjier dans le forum Windows Forms
    Réponses: 0
    Dernier message: 05/10/2010, 19h48
  5. Silverlight 2 réalisation d'un agenda
    Par jijaxxx dans le forum Silverlight
    Réponses: 3
    Dernier message: 11/08/2009, 13h58

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