#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;
}