Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLothaire Bayle Modifié depuis plus de 9 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.