Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TP N2 Structure-Correction

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

TP C 1ère Année Préparatoire

TP Structure
1

Exercice 1 : Déclaration et Initialisation


Déclarez une structure Personne qui représente une personne avec un nom et un âge. Ensuite,
déclarez et initialisez deux variables de type Personne. Affichez les informations de ces deux
personnes.

Exercice 2 : Structures imbriquées


Déclarer une variable P ayant les informations suivantes :

− Nom (chaîne de caractères)


− Prénom (chaîne de caractères)
− Date de naissance : Jour (entier), Mois (entier) et Année (entier)
− Matricule (chaîne de caractères)

Remplir et afficher P avec les informations suivantes : Nom : "Nom" Prénom : "Prénom" Date de
naissance : "00/00/0000" Matricule : "NP00"

Exercice 3
Déclarez une structure Date qui contient des membres pour le jour, le mois et l'année. Ensuite, créez
une structure Etudiant qui contient un nom, un numéro d'étudiant et une date de naissance. Déclarez
et initialisez une variable de type Etudiant et affichez ses informations.

Exercice 4 : Tableau de structures


Déclarez une structure Livre représentant un livre avec un titre et un auteur. Créez un tableau de 3
livres, initialisez-les et affichez leurs informations.

Exercice 5
Un bus est caractérisé par un numéro, un lieu de départ, un lieu d’arrivée, un horaire de départ et un
horaire d’arrivée. L’horaire est exprimé en (heure / minutes / secondes).

− Déclarer la structure HORAIRE.


− Déclarer la structure BUS.
− Ecrire une fonction SaisirBus un tableau de N éléments de type Bus.
− Ecrire une fonction AffichBus qui permet d’afficher les numéros des bus qui partent d’une
ville Vil1 à la direction d’une ville Vil2, entre deux horaires donnés
− Ecrire une fonction AfficheHeureArriv qui permet d’afficher l’heure d’arrivée d’un bus
sachant son numéro, son lieu et heure de départ et son lieu d’arrivée.
− Ecrire un programme principal main() qui permet de :
o Lire les informations de 10 bus.
o Afficher les bus qui partent de Tanger vers Sale entre 12h 15mn 00s et 15h20mn 00s.
o Afficher l’heure d’arrivée du bus numéro 5150 partant de Casablanca vers Rabat à 15h
30mn 00s.

PR. Y.TACE
#include <string.h>

// Déclaration de la structure HORAIRE


struct Horaire { 2
int heure;
int min;
int sec;
};

// Déclaration de la structure BUS


struct Bus {
int numero;
char LieuDep[20];
char LieuArr[20];
struct Horaire HDep;
struct Horaire HArr;
};

// Fonction pour saisir les informations des bus dans un tableau


void SaisirBus(struct Bus Tbus[], int N) {
int i;
for (i = 0; i < N; i++) {
printf("\n Donner le numéro de bus: ");
scanf("%d", &Tbus[i].numero);
printf("\n Donner le lieu de départ de bus: ");
scanf("%s", Tbus[i].LieuDep);
printf("\n Donner le lieu d’arrivée de bus: ");
scanf("%s", Tbus[i].LieuArr);
printf("\n Donner l’horaire de départ (heure/min/sec): ");
scanf("%d", &Tbus[i].HDep.heure);
scanf("%d", &Tbus[i].HDep.min);
scanf("%d", &Tbus[i].HDep.sec);
// Supposez que l'heure d'arrivée soit également saisie de la même manière
}
}

// Fonction pour afficher les bus entre deux horaires donnés et partant d'une ville à
une autre
void AffichBus(struct Bus Tbus[], char V1[], char V2[], struct Horaire H1, struct
Horaire H2, int N) {
int i;
for (i = 0; i < N; i++) {
if (strcmp(Tbus[i].LieuDep, V1) == 0 && strcmp(Tbus[i].LieuArr, V2) == 0) {
if ((Tbus[i].HDep.heure > H1.heure || (Tbus[i].HDep.heure == H1.heure &&
Tbus[i].HDep.min >= H1.min))
&& (Tbus[i].HDep.heure < H2.heure || (Tbus[i].HDep.heure == H2.heure &&
Tbus[i].HDep.min <= H2.min))) {
printf("\n Numéro de bus trouvé: %d", Tbus[i].numero);
}
}
}
}

// Fonction pour afficher l'heure d'arrivée d'un bus


void AfficheHeureArriv(struct Bus Tbus[], int num, char V1[], char V2[], struct Horaire
H1, int N) {
int i;
for (i = 0; i < N; i++) {
if (Tbus[i].numero == num && strcmp(Tbus[i].LieuDep, V1) == 0 &&
strcmp(Tbus[i].LieuArr, V2) == 0) {
if (Tbus[i].HDep.heure == H1.heure && Tbus[i].HDep.min == H1.min &&
Tbus[i].HDep.sec == H1.sec) {
printf("\n L’horaire d’arrivée du bus trouvé: %d %d %d",
Tbus[i].HArr.heure, Tbus[i].HArr.min, Tbus[i].HArr.sec);
}
PR. Y. TACE
}
}
}
3
int main() {
struct Bus Tbus[10];
int i;
struct Horaire H1 = {12, 15, 0};
struct Horaire H2 = {15, 20, 0};
struct Horaire H3 = {15, 30, 0};

// Saisir les informations des 10 bus


SaisirBus(Tbus, 2);

// Afficher les bus qui partent de Tanger vers Sale entre 12h15 et 15h20
AffichBus(Tbus, "Tanger", "Sale", H1, H2, 10);

// Afficher l’heure d’arrivée du bus numéro 5150 partant de Casablanca vers Rabat à
15h30
AfficheHeureArriv(Tbus, 5150, "Casablanca", "Rabat", H3, 10);

return 0;
}

PR. Y. TACE

Vous aimerez peut-être aussi