0% ont trouvé ce document utile (0 vote)
44 vues4 pages

Devoire Structure de Donnes

Transféré par

jlidsoufiane17
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
44 vues4 pages

Devoire Structure de Donnes

Transféré par

jlidsoufiane17
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

#include <stdio.

h>
#include <stdlib.h>
#include <string.h>

int nbr = 0;
struct student {
int id;
char firstname[50];
char lastname[50];
char birthdate[11];
};

void display(struct student sts[], int n) {


int i;
printf("Affichage de la liste des etudiants:\n");
printf("*********************************************\n");
for (i = 0; i < n; i++) {
printf("%-10d %-10s %-10s %-10s\n", sts[i].id, sts[i].firstname,
sts[i].lastname, sts[i].birthdate);
}
printf("*********************************************\n");
}

void sort_by_id(struct student sts[], int n) {


for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (sts[j].id > sts[j + 1].id) {
struct student temp = sts[j];
sts[j] = sts[j + 1];
sts[j + 1] = temp;
}
}
}
printf("Les etudiants est tries par ID.\n");
}

void sort_by_firstname(struct student sts[], int n) {


for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(sts[j].firstname, sts[j + 1].firstname) > 0) {
struct student temp = sts[j];
sts[j] = sts[j + 1];
sts[j + 1] = temp;
}
}
}
printf("Les etudiants est tries par prenom.\n");
}

void sort_by_lastname(struct student sts[], int n) {


for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(sts[j].lastname, sts[j + 1].lastname) > 0) {
struct student temp = sts[j];
sts[j] = sts[j + 1];
sts[j + 1] = temp;
}
}
}
printf("Les etudiants est tries par nom de famille.\n");
}

void add_new_student(struct student sts[], struct student newStudent) {


if (nbr >= 100) {
printf("Impossible d ajouter plus d etudiants. Capacite maximale atteinte.\
n");
return;
}
sts[nbr] = newStudent;
nbr++;
printf("l etudiant a ete ajoute avec succes.\n");
}

void find_student_by_id(struct student sts[], int id) {


for (int i = 0; i < nbr; i++) {
if (sts[i].id == id) {
printf("etudiant trouve:\n");
printf("%-10d %-10s %-10s %-10s\n", sts[i].id, sts[i].firstname,
sts[i].lastname, sts[i].birthdate);
return;
}
}
printf("etudiant avec ID %d non trouve.\n", id);
}

void remove_student_by_id(struct student sts[], int id) {


for (int i = 0; i < nbr; i++) {
if (sts[i].id == id) {
for (int j = i; j < nbr - 1; j++) {
sts[j] = sts[j + 1];
}
nbr--;
printf("L etudiant a ete supprime avec succes.\n");
return;
}
}
printf("etudiant avec ID %d non trouve.\n", id);
}

int main() {
struct student students[100] = {
{256, "steve", "jobs", "01/01/2000"},
{122, "bill", "gates", "02/02/2001"},
{7890, "paul", "allen", "05/01/2000"},
{343, "steve", "woz", "10/03/2004"},
{1342, "elon", "musk", "03/11/2002"}
};

nbr = 5;

int choice,n;
do {
printf("\nMenu de gestion des etudiants:\n");
printf("1. Ajouter un nouvel etudiant\n");
printf("2. Supprimer un etudiant par ID\n");
printf("3. Trouver un etudiant par ID\n");
printf("4. Trier les etudiants par ID\n");
printf("5. Trier les etudiants par prenom\n");
printf("6. Trier les etudiants par nom de famille\n");
printf("7. Afficher tous les etudiants\n");
printf("8. Quitter\n");
printf("Entrez votre choix: ");
scanf("%d", &choice);

switch (choice) {
case 1: {
struct student newStudent;
printf("Entrez l ID de l etudiant: ");
scanf("%d", &[Link]);
printf("Entrez le prenom de l etudiant: ");
scanf("%s", [Link]);
printf("Entrez le nom de famille de l etudiant: ");
scanf("%s", [Link]);
printf("Entrez la date de naissance de l etudiant (YYYY-MM-DD): ");
scanf("%s", [Link]);
add_new_student(students, newStudent);
display(students, nbr);
break;
}
case 2: {
int id;
printf("Entrez l ID de l etudiant a supprimer: ");
scanf("%d", &id);
remove_student_by_id(students, id);
display(students, nbr);
break;
}
case 3: {
int id;
printf("Entrez l ID de l etudiant a trouver: ");
scanf("%d", &id);
find_student_by_id(students, id);
break;
}
case 4:
sort_by_id(students, nbr);
display(students, nbr);
break;
case 5:
sort_by_firstname(students, nbr);
display(students, nbr);
break;
case 6:
sort_by_lastname(students, nbr);
display(students, nbr);
break;
case 7:
display(students, nbr);
break;
case 8:
printf("Quitter...\n");
break;
default:
printf("Choix invalide. Veuillez ressayer.\n");
}
} while (choice != 8);
return 0;
}

Vous aimerez peut-être aussi