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

2019 Correction Serie 3 SMI S3-1

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

// Déclaration des bibliothèques nécessaires à ce programme

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

// Définition de la structure Article

struct Article

int id;

char nom[20];

float prix;

int quantite;

};

// definition d'un nouveau type Articlle

typedef struct Article Article;

// déclaration globale d'un tableau qui se nomme articles de type Article


qu'on vient de définir comme étant une nouveau type structure

Article articles[100];
// déclarations de nbrArticleExist comme variable globale pour mémoriser le
nombre d'article saisi avec une initialisation à 0

int nbrArticleExist=0;

// Prototype des fonctions utilisées lors de ce programme

void AfficheArticles(); // fonction qui affiche tous les articles

void AfficherMenu(); // fonction qui affiche le menu

void AjouterArticle(); // fonction qui ajoute un article

void SupprimerArticle(); // fonction qui supprime un article a base de son Id et qui


vérifié son existence avant la suppression

int ChercherArticle(int rec); //fonction qui vérifie l'existence d'un article et qui
retourne sa position

void ModifierArticle(); // fonction qui modifie un article en se basant sur son id et


qui vérifie son existence avant la modification
// affichage du menu qui contient toutes les fonctions demandées (ajouter,
modifier, supprimer , afficher) avec vérification du choix et traitement du
choix au sein de la fonction

void AfficherMenu()

int choix;

clrscr();

printf("------------------ Menu Article -----------------------\n");

printf("1- Ajouter article\n");

printf("2- Modifier article\n");

printf("3- Supprimer article\n");

printf("4- Afficher articles\n");

do{

printf("\n\n\t\t\t choix: ");

scanf("%d",&choix);

} while(choix<1 || choix>4);

switch(choix)

case 1: AjouterArticle();

break;

case 2: ModifierArticle();

break;

case 3: SupprimerArticle();

break;

case 4: AfficheArticles();

break;

}
// Affichage de tous les articles saisis avec un retour au menu

void AfficheArticles()

int i;

if(nbrArticleExist==0)

printf("Table vide .\n");

Else

clrscr();

printf("\n________________ Liste des articles ___________________\n");

for(i=0;i<nbrArticleExist;i++)

printf("ID Article = %d\n",articles[i].id);

printf("NOM Article = %s\n",articles[i].nom);

printf("PRIX Article = %.2f\n",articles[i].prix);

printf("QUANTITE Article = %d\n",articles[i].quantite);

printf("*******************\n");

getch();

clrscr();

AfficherMenu();

}
//ajout d'un article avec un Id automatique en prenant en considération la
nouvelle taille de notre tableau de structure et un retour au menu à la fin de
l'ajout

void AjouterArticle()

int id;

clrscr();

printf("\n________________ Ajouter un nouveau article ___________________\n");

articles[nbrArticleExist].id = 2000 + nbrArticleExist;

printf("\n Id Article = %d\n",articles[nbrArticleExist].id);

printf("NOM Article = "); scanf(" %s",articles[nbrArticleExist].nom);

printf("PRIX Article = "); scanf("%f",&articles[nbrArticleExist].prix);

printf("QUANTITE Article = "); scanf("%d",&articles[nbrArticleExist].quantite);

nbrArticleExist++;

clrscr();

AfficherMenu();

}
//la recherche d'un article pour verifier son existance avec un valeur
retournée qui represente la position

int ChercherArticle(int rec)

int pos=-1,i;

for(i=0;i<nbrArticleExist;i++)

if(articles[i].id==rec)

pos=i;

return pos;

}
//suppression d'un article à partir de son id en prenant en considération la
nouvelle taille du tableau structure et aussi son existence avant la
suppression
void SupprimerArticle()

int ids,r,i;

clrscr();

printf("\n________________ Supprimer un article ___________________\n");

printf("Donnez ID d element a supprimer: "); scanf("%d",&ids);

r=ChercherArticle(ids);

if(r==-1)

printf("Element n existe pas");

Else

for(i=0;i<nbrArticleExist-1;i++)

articles[i].id=articles[i+1].id;

articles[i].prix=articles[i+1].prix;

articles[i].quantite=articles[i+1].quantite;

strcpy(articles[i].nom,articles[i+1].nom);

nbrArticleExist--;

clrscr();

AfficherMenu();

}
//modification d'un article à partir de son id en prenant en considération son
existence avant de procéder a la modification

void ModifierArticle()

int idm,r;

clrscr();

printf("\n________________ Modifier un article ___________________\n");

printf("Donnez ID d element a modifier: "); scanf("%d",&idm);

r=ChercherArticle(idm);

if(r==-1)

printf("Element n existe pas");

Else

printf("\n________________ ancien Article ___________________\n");

printf("ID Article = %d\n",articles[r].id);

printf("NOM Article = %s\n",articles[r].nom);

printf("PRIX Article = %.2f\n",articles[r].prix);

printf("QUANTITE Article = %d\n",articles[r].quantite);

printf("*******************\n");

printf("\n________________ Nouvelle modification ___________________\n");

printf("NOM Article = "); scanf("%s",articles[r].nom);

printf("PRIX Article = "); scanf("%f",&articles[r].prix);

printf("QUANTITE Article = "); scanf("%d",&articles[r].quantite);

clrscr();

AfficherMenu();

}
//la fonction principale du programme

main()

AfficherMenu();

getch();

Vous aimerez peut-être aussi