بســم الله الـرحمــن الرحيــم
السلام عليكــم ورحمـة الله وبركاتــه
كيف حالك إن شاء الله دائمــاً بخير ؟
عندي برناج يحتاج الى تصحيح
موضوع البرنامج هو دالة رئيسية تنادي على عدة دوال
الاولى تقوم بانشاء شجرة بيانات تحتوي على ادوية و هي بدورها تقوم بمانادات دالة البحت عن البيانات ادا كانت موجودة من قبل و نتادي على دالة انشاء ورقة جديدة في الشجرة
الدالة التانية تقوم بادخال بيانات جديدة و التالثة تقوم بانقاص بيانات معينة و الرابعة تقوم بحدف الادوية التي انتهىت مدة صلاحيتها و الاخيرة لاظهار معلومات الادوية التي تقل كميتها عن كمية معينة
البرنامج باللغة الفرنسية
#include<stdio.h>
#include<alloc.h>
#include<conio.h>
#include <dos.h>
typedef struct med
{int nuf;
char desg;
date d;
float pr;
int qt;
med *sag, *sad;
}med;
void insertion (med *racine,int nf)
{
if(nf==racine->nuf)
printf("cet medicament existe deja \n");
else
if(nf<racine->nuf)
if(racine->sag==NULL)
{ racine->sag =(med *)malloc(sizeof(med));
racine->sag->nuf=nf;
printf("entrez les informations du medicament\n");
printf("designation\n");
scanf("%s",racine->sag->desg);
printf("date de peremption\n");
printf("entrez l annee \n");
scanf("%d",&racine->sag ->d.da_year );
printf("entrez la joure\n");
scanf("%d",&racine->sag ->d.da_day);
printf("entrez le moin\n");
scanf("%d",&racine->sag->d.da_mon);
printf("le prix de vente\n");scanf("%f",&racine->sag->pr);
printf("la quantite en stock\n");scanf("%d",&racine->sag ->qt);
racine->sag->sag=NULL;
racine->sag ->sad=NULL;}
else
insertion(racine->sag,nf);
else
if(racine->sad==NULL)
{ racine->sad=(med *)malloc(sizeof(med));
racine->sad->nuf=nf;
printf("entrez les informations du medicament\n");
printf("designation\n");scanf("%s",racine->sad->desg);
printf("date de peremption\n");
printf("entrez la annee \n");
scanf("%d",&racine->sad ->d.da_year );
printf("entrez la joure\n");
scanf("%d",&racine->sad ->d.da_day);
printf("entrez le moin\n");
scanf("%d",&racine->sad->d.da_mon);
printf("le prix de vente\n");
scanf("%f",&racine->sad->pr);
printf("la quantite en stock\n");
scanf("%d",&racine->sad ->qt);
racine->sad->sag=NULL;
racine->sad->sad=NULL;}
else
insertion(racine->sad,nf);
}
void creation (med *racine)
{char rep='o';
int nf;
printf("il y a un medicamnet a inserer entrez o/n \n");
scanf("%c",&rep);
if(rep=='o')
{printf("entrez la reference du medicament\n");
scanf("%d",&nf);
racine=(med *)malloc(sizeof(med));
racine->nuf=nf;
printf("entrez les informations du medicament\n");
printf("designation\n");scanf("%s",racine->desg);
printf("date de peremption\n");
printf("entrez la annee \n");
scanf("%d",&racine->d.da_year );
printf("entrez la joure\n");
scanf("%d",&racine->d.da_day);
printf("entrez le moin\n");
scanf("%d",&racine->d.da_mon);
printf("le prix de vente\n");scanf("%f",&racine->pr);
printf("la quantite en stock\n");scanf("%d",&racine->qt);
racine->sag=NULL;
racine->sad=NULL;
printf("il y a un autre medicament a inserer o/n \n");
scanf("%c",&rep);
while (rep == 'o')
{ printf ("entrez le numero de reference de medicament \n ");
scanf ("%d",&nf);
insertion (racine,nf);
printf ("il y a un autre medicament o/n? \n");
scanf ("%c",&rep);
}
}
}
void recherche(med *racine,med *pos,int nf)
{ med *p;
p=racine;
while(( p->nuf!=nf) && (p!=NULL))
if(nf<p->nuf)
p=p->sag;
else
p=p->sad;
if(p->nuf==nf)
pos=p;
else
pos=NULL;
}
void vente(med *racine)
{if(racine==NULL)
printf ("l'arbre est vide\n");
else
{printf("entrez le nombre de numero de reference de medicament qui existe dans l'ordonnance svp \n");
int nf,q;
float pv=0,pvt=0;
char r; int n;
med *pos;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{printf("entrez le numero de reference de medicament a vendu \n");
scanf("%d",&nf);
recherche(racine,pos,nf);
if(pos==NULL)
printf("le medicament n'existe pas \n ");
else
{ printf("entrez la quantite demande \n");
scanf("%d",&q);
if(q > pos->qt)
{ printf("quantite demande non disponible il existe sulement %d",pos->qt);
printf("vous vouler prendre cette quantite o/n");
scanf("%c",&r);
if(r=='o')
{pos->qt=0;
pv = pos->pr*q;
printf("le prix est %f: \n",pv);
}
}
else
{ pos->qt= pos->qt - q;
pv =pos->pr*q;
printf("le prix est %f: \n",pv);
}
}
pvt=pvt+pv;
}
printf("le prix totale de l'ordonnance est %f:\n",pvt);
}
}
void achat (med *racine)
{int nb,nf;
int q;
med *pos;
printf("entrez le nombre de numero de reference de medicament qui vous voulez achete \n");
scanf("%d",&nb);
for(int i=1;i<=nb;i++)
{printf("entrez le numero de reference svp \n");
scanf("%d",&nf);
recherche(racine,pos,nf);
if(pos==NULL)
insertion(racine,nf);
else
{printf("cet medicament exist deja entrez la nouvelle quantite svp \n");
scanf("%d",&q);
pos->qt=pos->qt+q;
}
}
}
void remplace (med *rac,*ps)
{if(rac->sad!=NULL)
remplace(rac->sad,ps);
else
{ps->nuf=rac->nuf;
ps->desg=rac->desg;
ps->d=rac-> d;
ps->pr=rac->pr;
ps->qt=rac->qt;
ps=rac;
rac=rac->sag;
}
}
void supprime(med *racine)
{med *ps;
if(racine!=NULL)
{ps=racine;
if((racine->sad==NULL)&&(racine->sag==NULL))
racine=NULL;
else
if((racine->sad==NULL)&&(racine->sag!=NULL))
racine=racine->sag;
else
if((racine->sad!=NULL)&&(racine->sag==NULL))
racine=racine->sad;
else
remplace(ps->sag,ps);
free(ps);
}
}
void preordre-p(med *racine,date *dh)
{if(racine!=NULL)
if(dh.da_year==racine->d.da_year)
if(dh.da_mon==racine->d.da_mon)
if(dh.da_day==racine->d.da_day)
supprime(racine);
else
if(dh.da_day>racine->d.da_day)
supprime(racine);
else
printf("medicament en cours valide\n");
else
if(dh.da_mon>racine->d.da_mon)
supprime(racine);
else
printf("medicament en cours valide\n");
else
if(dh.da_year>racine->d.da_year)
supprime(racine);
else
printf("medicament en cours valide\n");
else
printf("l'arbre est vide\n");
preordre_p(racine->sag);
preordre_p(racine->sad);
}
void peremption(med *racine)
{date dh;
getdate(&dh);
preordre_p(racine,&dh);
}
float preordre(med *racine)
{float tm=0;float pv=0;
if(racine!=NULL)
{pv=racine->pr*qt;
tm=tm+pv;
return(tm);
}
else
printf("l'arbre est vide\n");
preordre(racine->sag);
preordre(racine->sad);
}
void total-monitaire(med *racine)
{float f;
f=preordre(racine);
printf("le prix totale est %f:",f);
}
void preordre-s(med*racine,int s)
{ if(racine != NULL)
{ printf("les medicament qui sont moin qeu quantite minimale\n");
if(racine->qt<s)
printf("%d\n",racine->nuf);
}
else
printf("l'arbre est vide");
preordre-s(racine->sag);
preordre-s(racine->sad);
}
void reapprovisonnement(med *racine,int s)
{ printf("entrez la quantite minimale svp\n");
scanf("%d",&s);
preordre_s (racine,s)
}
void main ()
{ clrscr();
char rep;
med *racine;
int ch;
printf("*****************WELCOME*******************\n");
printf("vous voulez fair une operayion o/n \n");
scanf("%c",&rep);
printf("entrez 1 pour fair la creation \n");
printf("entrez 2 pour fair la vente \n");
printf("entrez 3 pour fair l'achat \n");
printf("entrez 4 pour fair la peremption \n");
printf("entrez 5 pour fair la reapprovisionnement \n");
printf("entrez 6 pour fair total monetaire \n");
scanf("%d",&ch);
while(rep=='o')
{
switch (ch)
{ case 1:creation(racine);
getch();break;
case 2:vente(racine);
getch();break;
case 3:achat(racine);
getch();break;
case 4:peremption(racine);
getch();break;
}
printf("vous voulez fair une autre operayion o/n \n");
scanf("%c",&rep);
}
}
،،
ادا فيه مشاكل اقدر اترجمه انجليزي ادا تبو
البرنامج بالمرفقات
و السلام عليكــم ورحمـة الله وبركاتــه ،،