kawtar93
-
5 mai 2013 à 14:59
cs_louis14
Messages postés793Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention10 février 2021
-
6 mai 2013 à 09:00
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <windows.h>
void Color(int couleurDuTexte,int couleurDeFond);
void Color2(WORD Attributes);
/*définition de la struction d'une matériel*/
typedef struct matrielle{
int reference;
char nom[15];
int quantite;
int etat ;
int reparation ;
}materiel;
materiel d;
/*/definition de la struture du stock*/
typedef struct stock
{
materiel b;
struct stock *m_suivant;
}stock;
/*/definition de la struture du classe*/
typedef struct classe
{
int nomber ;
char nom_prof;
int type;
struct classe *m_suivant;
}classe;
/*définition de la structure d'une ligne de reservation */
typedef struct matrielle_reservation
{
stock *st;
int quantite_reserver ;
char date ;
classe b ;
}matrielle_reservation;
/*/définition de la structure d'une reservation*/
typedef struct reservation
{
int id_reservation;
float total_reservation;
matrielle_reservation tab_materiel[50];
int nb_matrielle_reservation ;
char proprietaire[15];
struct reservation *c_suivant;
int executer;
}reservation;
stock *p = NULL;
reservation *c = NULL;
/*Fonction pour la création d'un matrielle*/
void creation_matrielle()
{
system("cls");
stock *tampon = (stock *)malloc(sizeof(stock));
printf("\n");
printf("|--------------------------------\n");
printf("|\n");
printf("|\n");
printf("|");
printf("|Entrer la reference du matrielle: ");
scanf("%d",&tampon->b.reference);
printf("|--------------------------------\n");
printf("|\n");
printf("|\n");
printf("|Entrer le nom du matrielle: ");
scanf("%s",tampon->b.nom);
printf("|--------------------------------\n");
printf("|\n");
printf("enter l'etat actuall \n");
scanf("%d",&d.etat);
printf("|-------------------------------\n");
if ( p == NULL)
{
tampon->m_suivant = NULL;
p = tampon;
}
else
{
tampon->m_suivant = p;
p = tampon;
}
}
/*Fonction pour la suppression ou la reparation d'un matrielle*/
void suppresion_matielle()
{
system("cls");
int choix, ref_tampon;
char nom_tampon[15];
stock *tampon = p;
stock *tampon2;
printf("\n");
printf("-------MENU suppression ou reparation ARTICLE ----\n");
printf("|------------------------------------\n");
printf("|-------------Suppression---------- 1\n");
printf("|------------------------------------\n");
printf("|----------reparation ------------- 2\n");
printf("|------------------------------------\n");
printf("|Entrer votre choix: ");
scanf("%d",&choix);
switch (choix)
{
case 1:
{
printf("Entrer la reference du matrielle a supprimer: ");
scanf("%d",&ref_tampon);
while ((tampon != NULL)&&(tampon->b.reference != ref_tampon))
{
tampon2 = tampon;
tampon = tampon->m_suivant;
}
if (tampon == NULL)
printf("Le matrielle ne se trouve pas dans le stock\n");
else
{
if ( tampon == p)
{
p=tampon->m_suivant;
free(tampon);
}
else
{
tampon2->m_suivant = tampon->m_suivant;
printf("Le matrielle a ete supprimer\n");
}
}
}
break;
case 2:
{
printf("enter son etat actual\n");
printf("enter 0 pour etat ok ");
printf("enter 1 pour etat nok ");
printf("enter 2 pour etat a supprimer ");
scanf("%d",&d.etat);
if (d.etat==0)
{
printf("ok");}
else if(d.etat==1){
printf(" etat nok donc on va le reparer il est impossible de le fair reserver dans cette somaine ");
}
else {
while ((tampon != NULL)&&(tampon->b.reference != ref_tampon))
{
tampon2->m_suivant = tampon->m_suivant;
printf("Le matrielle a ete supprimer\n");
}
}
}
break;
default: printf("Erreur de choix ");
break;
}
}
/*Fonction pour la modification d'un matrielle*/
void modification_matrielle()
{
int choix, ref_tampon;
char nom_tampon[15];
stock *tampon = p;
printf("\n");
printf("------ MENU MODIFICATION ARTICLE ------\n");
printf("|------------------------------------\n");
printf("|Modification par reference ------- 1\n");
printf("|------------------------------------\n");
printf("|Modification par nom ------------- 2\n");
printf("|------------------------------------\n");
printf("|Entrer votre choix: ");
scanf("%d",&choix);
switch (choix)
{
case 1:
{
printf("Entrer la reference du produit a modifier: ");
scanf("%d",&ref_tampon);
while ((tampon != NULL)&&(tampon->b.reference != ref_tampon))
{
tampon = tampon->m_suivant;
}
if (tampon == NULL)
printf("Le matielle ne se trouve pas dans le stock\n");
else
{ printf("|------------------------------------\n");
printf("|matrielle reference : %d\n",tampon->b.reference);
printf("|------------------------------------\n");
printf("|Le nom du matrielle: %s\n",tampon->b.nom);
printf("|------------------------------------\n");
printf("|La quantité du matrielle: %d\n",tampon->b.quantite);
printf("|------------------------------------\n");
printf("Entrer le nom du matrielle: ");
scanf("%s",tampon->b.nom);
printf("Entrer la quantité du matrielle: ");
scanf("%d",&tampon->b.quantite);
printf("Le matrielle a ete modifier\n");
}
}
break;
case 2:
{
printf("Entrer le nom du produit a modifier: ");
scanf("%s",nom_tampon);
while ((tampon != NULL)&&(strcmp(tampon->b.nom,nom_tampon)!=0))
tampon = tampon->m_suivant;
if (tampon == NULL)
printf("Le matrielle ne se trouve pas dans le stock\n");
else
{ printf("|-------------------------------\n");
printf("|matrielle reference : %d\n",tampon->b.reference);
printf("|-------------------------------\n");
printf("|Le nom du matrielle: %s\n",tampon->b.nom);
printf("|-------------------------------\n");
printf("La quantité du matrielle: %d\n",tampon->b.quantite);
printf("|-------------------------------\n");
printf("|Entrer le nom du matrielle: ");
printf("|-------------------------------\n");
scanf("%s",tampon->b.nom);
printf("|Entrer la quantité du matrielle: ");
printf("|-------------------------------\n");
scanf("%d",&tampon->b.quantite);
}
}
break;
default: printf("Erreur de choix ");
break;
}
}
/*Fonction pour la recherche d'un matrielle*/
void recherche_matrielle()
{
int choix, ref_tampon;
char nom_tampon[15];
stock *tampon = p;
printf("\n");
printf("------ MENU RECHERCHE ------\n");
printf("|-------------------------------\n");
printf("|Recherche par reference ------- 1\n");
printf("|-------------------------------\n");
printf("|Recherche par nom ------------- 2\n");
printf("|-------------------------------\n");
printf("|Entrer votre choix: ");
scanf("%d",&choix);
switch (choix)
{
case 1:
{
printf("Entrer la reference du matrielle a rechercher: ");
scanf("%d",&ref_tampon);
while ((tampon != NULL)&&(tampon->b.reference != ref_tampon))
tampon = tampon->m_suivant;
if (tampon == NULL)
printf("Le matrielle ne se trouve pas dans le stock\n");
else
{ printf("|-------------------------------\n");
printf("|matrielle reference : %d\n",tampon->b.reference);
printf("|-------------------------------\n");
printf("|Le nom du matrielle: %s\n",tampon->b.nom);
printf("|-------------------------------\n");
printf("|La quantite du matrielle: %d\n",tampon->b.quantite);
printf("|-------------------------------\n");
}
}
break;
case 2:
{
printf("Entrer le nom du matrielle a rechercher: ");
scanf("%s",nom_tampon);
while ((tampon != NULL)&&(strcmp(tampon->b.nom,nom_tampon)!=0))
tampon = tampon->m_suivant;
if (tampon == NULL)
printf("Le matrielle ne se trouve pas dans le stock\n");
else
{
printf("matrielle reference : %d\n",tampon->b.reference);
printf("Le nom du matrielle: %s\n",tampon->b.nom);
printf("La quantité du matrielle: %d\n",tampon->b.quantite);
}
}
break;
default: printf("Erreur de choix - veuillez entrer un bon choix");
break;
}
}
/*Fonction pour afficher tout le stock des matrielles */
void affichage_stock()
{
stock *tampon = p;
printf("\n");
while (tampon != NULL)
{ printf("|---------------------------------------------------|\n ");
printf("|matrielle reference : %d \n",tampon->b.reference);
printf("|---------------------------------------------------|\n ");
printf("|Le nom du matrielle : %s \n",tampon->b.nom);
printf("|---------------------------------------------------|\n ");
printf("|La quantité du matrielle : %d \n",tampon->b.quantite);
printf("|---------------------------------------------------|\n ");
tampon = tampon->m_suivant;
}
}
/*Fonction pour la gestion des matrielle*/
void gestion_matrielle()
{
int choix;
printf("\n");
system("cls");
printf("------ Menu Gestion des articles ------\n");
printf("|---------------------------------------------------|\n ");
printf("|Creation d'un matrielle ------ ------ 1 |\n");
printf("|---------------------------------------------------|\n ");
printf("|Suppression d'un matrielle ---------- 2 |\n");
printf("|---------------------------------------------------|\n ");
printf("|Modification d'un matrielle --------- 3 |\n");
printf("|---------------------------------------------------|\n ");
printf("|Recherche d'un matrielle ------------ 4 |\n");
printf("|---------------------------------------------------|\n ");
printf("|Affichage du contenu de stock ----- 5 |\n");
printf("|---------------------------------------------------|\n ");
printf("|\n");
printf("vous pouvez entrer votre choix : ");
scanf("%d",&choix);
switch (choix)
{
case 1: creation_matrielle();
break;
case 2: suppresion_matielle();
break;
case 3: modification_matrielle();
break;
case 4: recherche_matrielle();
break;
case 5: affichage_stock();
break;
default: printf("Erreur de choix \n");
break;
}
}
/*Fonction pour afficher un seul matrielle pour un professeur */
void affiche_matrielle()
{
stock *tampon = p;
printf("\n");
while (tampon != NULL)
{
printf("matrielle reference : %d\n",tampon->b.reference);
printf("Le nom du matrielle: %s\n",tampon->b.nom);
tampon = tampon->m_suivant;
}
}
/*Fonction pour effectuer une reservation*/
void effectuer_reservation()
{
int ref_tampon,quantite_tampon,i=0 ,j=0;
stock *tampon = p;
reservation *tampon2 = (reservation *)malloc(sizeof(reservation));
reservation *tampon3 = c;
char proprietaire_tampon[15];
char rep;
affiche_matrielle();
do
{
printf("\n");
printf("Entrer la reference du matrielle que vous voulez reserver: ");
scanf("%d",&ref_tampon);
while ((tampon != NULL)&&(tampon->b.reference != ref_tampon))
tampon = tampon->m_suivant;
if ( tampon == NULL)
printf("La reference saisie ne correspond pas a une reference dans le stock");
else
{
printf("Entrer la quantite desirer");
scanf("%d",&quantite_tampon);
if ( i == 0)
{
printf("Entrer le nom du proprietaire: ");
scanf("%s",&proprietaire_tampon);
strcpy(tampon2->proprietaire,proprietaire_tampon);
tampon2->total_reservation = 0;
if ( c == NULL )
{
tampon2->id_reservation = 1;
tampon2->c_suivant = NULL;
c = tampon2;
}
else
{
while (tampon3->c_suivant !=NULL)
{
j++;
tampon3 = tampon3->c_suivant;
}
tampon3->c_suivant = tampon2;
tampon2->id_reservation = j+1;
}
}
tampon2->executer = 0;
tampon2->nb_matrielle_reservation = i+1;
tampon2->total_reservation = quantite_tampon*tampon;
tampon2->tab_materiel[i].st = tampon;
tampon2->tab_materiel[i].quantite_reserver = quantite_tampon;
}
i++;
printf("Voulez-vous ajouter un autre matrielle a votre reservation (O/N): ");
scanf("%s",&rep);
}while ((rep 'o')||(rep 'O'));
}
/*Fonction pour afficher les détail d'une reservation */
reservation * affiche_detail_reservation ()
{
reservation *tampon = c;
int id_reservation_tampon, i;
printf("\n");
printf("Entrer le numero de la reservation souhaitee: ");
scanf("%d",&id_reservation_tampon);
while ((tampon != NULL)&&(tampon->id_reservation != id_reservation_tampon))
tampon = tampon->c_suivant;
if ( tampon == NULL)
printf("L'identifiant saisie ne correspond a aucune reservation");
else
{
printf("Identifiant de la reservation: %d\n",tampon->id_reservation);
printf("Nom du proprietaire: %s\n",tampon->proprietaire);
for ( i = 0; i < tampon->nb_matrielle_reservation; i++)
{
printf("\tMatrielle N°-%d",i+1);
printf("\tNom du Matrielle: %s\n",tampon->tab_materiel[i].st->b.nom);
printf("\tQuantite reserver: %d\n",tampon->tab_materiel[i].quantite_reserver);
}
}
return tampon;
}
/*Fonction du menu principal*/
void menu_principal()
{
int choix;
int r;
do
{
printf("\n");
system("cls");
Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
Color(3,15);
printf(" Mini-Logiciel de Facturation et Gestion de Stock \n");
Color(2,15);
printf(" \n");
printf(" ****** Programme Realise par ****** \n");
printf(" \n");
printf(" khawla jalala \n");
printf(" kawtar hajji \n");
printf(" lamia rafii \n");
printf(" sofia griss \n");
printf(" majd karam dine \n");
printf(" **** Encadre par Mr.khalid. RissaouI **** \n");
printf(" \n\n\n");
Color(4,2);
printf("------ MENU PRINCIPAL -----------\n");
printf("|--------------------------------\n");
printf("|Gestion des matrielle ---------1\n");
printf("|--------------------------------\n");
printf("|Gestion des reservation--------2\n");
printf("|--------------------------------\n");
printf("|SUPPRESTION d'un matrielle -----\n");
printf("|--------------------------------\n");
printf("|Sortie du programme -----------3\n");
printf("|--------------------------------\n");
printf("|Entrer votre choix: ");
scanf("%d",&choix);
switch (choix)
{
case 1: gestion_matrielle();
break;
case 2:effectuer_reservation();
break;
case 3: exit(0);
break;
default: printf("Erreur de choix - veuillez entrer un bon choix");
break;
}
printf("\nVoulez vous revenir au menu principal (1/N): ");
scanf("%d",&r);
}while ((r 1)||(r 1));
}
int main()
{
menu_principal();
getch();
return 0;
}
il ya une erreur ||In function 'void effectuer_reservation()':|
|421|error: invalid operands of types 'int' and 'stock*' to binary 'operator*'|
MERCI DE M'AIDER