La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES

Présentations similaires


Présentation au sujet: "TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES"— Transcription de la présentation:

1 TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES

2 Traitement des tableaux des structures
Faire un programme C de création et traitement d'un tableau d'éléments de type structuré (avec un nombre maximal 30). Afficher tous les étudiants d’un faculté donné. Chaque structure est composée des champs suivants: a) nom - chaîne de caractères; b) faculté - chaîne de caractères; c) note moyenne - nombre réel. Utiliser les fonctions suvantes: Entrer les éléments dans le tableau Afficher le tableau Afficher les étudiants d’un faculté donné au bien un message (s’il n’y a aucun étudiant)

3 Traitement des tableaux des structures
nom faculté note Les structures etudiant *tab[MAX]

4 Traitement des tableaux des structures
La définition de la structure typedef struct { char nom[30]; char faculte[10]; float note; } etudiant; int entrer(etudiant *s[ ]); void sortir(etudiant *s[ ],int n); void sortir_el(etudiant *s); void chercher(etudiant *s[ ],int n,char fac_d[]); Les prototypes des fonctions

5 Traitement des tableaux des structures
#include <stdio.h> /5 #include <conio.h> #include <string.h> #include <stdlib.h> #define MAX 30 #define RET "" typedef struct { char nom[30]; char faculte[10]; float note; } etudiant; int entrer(etudiant *s[]); void sortir(etudiant *s[],int n); void sortir_el(etudiant *s); void chercher(etudiant *s[],int n,char fac_d[]); Les directives La définition de la structure Les prototypes des fonctions

6 Traitement des tableaux des structures
void main() /5 { int n; char fac_d[10]; etudiant *tab[MAX]; printf("Entrer les donnees des " "etudiants.\n"); n=entrer(tab); printf("\n La liste donnee\n"); sortir(tab,n); printf("Entrer faculte donne:"); gets(fac_d); chercher(tab,n,fac_d); } Appel de la fonction d’entré du tableau Appel de la fonction d’affichage du tableau Appel de la fonction d’affichage d’ éléments de la faculté donné

7 Traitement des tableaux des structures
La définition de la fonction d’entré int entrer(etudiant *s[]) /5 { char *buf=(char*)malloc(31); int n=0; while(1) { printf("Entrer Nom ou bien RET:"); if(strcmp(gets(buf),RET)==0 || n==MAX) break; else { s[n]=(etudiant*)malloc(sizeof(etudiant)); strcpy(s[n]->nom,buf); printf("Entrer faculte:"); gets(s[n]->faculte); printf("Entrer note:"); s[n]->note=atof(gets(buf)); } n++; free(buf); free(s); return n; Entrer les donnees des etudiants. Entrer Nom ou bien RET: Ana Entrer faculte: FOE Entrer note: 4.50 Entrer Nom ou bien RET: Ivan Entrer faculte: FETT Entrer note: 5.50 Entrer Nom ou bien RET: Lili Entrer note: 3.50

8 Traitement des tableaux des structures
void sortir(etudiant *s[],int n) /5 { int i; for(i=0;i<n;i++) { sortir_el(s[i]); } void sortir_el(etudiant *s) { printf("Nom: %s\n",s -> nom); printf("faculte: %s\n",s -> faculte); printf("note: %.2f\n",s -> note); La définition de la fonction d’affichage du tableau La liste donnee Nom: Ana faculte: FOE note: 4.50 Nom: Ivan faculte: FETT note: 5.50 Nom: Lili note: 3.50 La définition de la fonction d’affichage d’un élément

9 Traitement des tableaux des structures
La définition de la fonction d’affichage d’ éléments de la faculté donné void chercher(etudiant *s[],int n,char fac_d[]) /5 { int trouve=0; int i; for (i=0; i<n;i++) if (strcmp(s[i]->faculte,fac_d)==0) { sortir_el(s[i]); trouve=1; } if(!trouve) printf("On n'a pas trouve etudiant de faculte %s \n",fac_d); Entrer faculte donne:FETT Nom: Ivan faculte: FETT note: 5.50

10 Traitement des tableaux des structures dynamiques
nom groupe note Les structures student *array

11 Traitement des tableaux des structures dynamiques
Faire un programme C de création et affichage d'un tableau dynamique d'éléments de type structuré. Chaque structure est composée des champs suivants: a) nom - chaîne de caractères; b) groupe; c) note. Utiliser les fonctions suivantes: Création du tableau dynamique Remplissage d’une structure Affichage du tableau

12 Traitement des tableaux des structures dynamiques
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <memory.h> #define NBR 2 struct etud { char nom[20]; int groupe; float note; }; typedef struct etud STUDENT; STUDENT inputStudent(); STUDENT * addStudentFromKey(short *); void printArray(STUDENT *,short );

13 Traitement des tableaux des structures dynamiques
int main() { STUDENT *array; short i; array=addStudentFromKey(&i); printArray(array,i ); return 0; } STUDENT inputStudent() { STUDENT a; printf("\nEntrer le nom:"); gets(a.nom); printf("\nEntrer le groupe:"); scanf("%d",&a.groupe); printf("\nEntrer la note:"); scanf("%f",&a.note); return a;

14 Traitement des tableaux des structures dynamiques
STUDENT *addStudentFromKey(short *i) { STUDENT a, *array; char word[4]; int n=NBR; *i=0; array=(STUDENT*)malloc(NBR*sizeof(STUDENT)); if(array==NULL) { free (array); exit(1);} while(printf("Structure suivante? –" " (yes/no)"),strcmp(gets(word),"yes")==0) { if(*i == n) { n=n*NBR; array=(STUDENT*)realloc(array,n*sizeof(STUDENT)); }

15 Traitement des tableaux des structures dynamiques
printf("\nEtudiant %d: ",*i+1); a=inputStudent(); memcpy(&array[*i],&a,sizeof(STUDENT)); (*i)++; fflush(stdin); } return array; void printArray(STUDENT *array,short n) { int i; printf("\t\t\tTableau dynamique des structures\ \nNUMERO\t NOM \t\t\t GROUPE NOTE\n"); for(i=0;i<n;i++) printf("%-5d %-28s %-2d\t %10.2f\n", i+1,array[i].nom,array[i].groupe,array[i].note);

16 Traitement des tableaux des structures dynamiques


Télécharger ppt "TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES"

Présentations similaires


Annonces Google