begin process at 2012 02 11 04:30:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

prob pour associe des donnée se trouvant dans 2 fichiers different


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

prob pour associe des donnée se trouvant dans 2 fichiers different

mardi 24 août 2004 à 17:14:26 | prob pour associe des donnée se trouvant dans 2 fichiers different

gemini010

bonjour,

g creer 5 fonctions permetant : - de lancer le menu du prog
d'ajouter des client
ajouter des factures
lister les clients
lister les factures
tout ceci est enregistrer dans 2 fichiers

ds le fichier client je dois ecrire un nom et un montant de tva
j'aimerai savoir comment faire pour que quand j'entre une facture

et que je rentre le nom du client, il verifie si celui ci existe deja et que si ce n'est pas le cas il y ai un mess disant que le client existe pas et demander s'il fo le creer

lorsque l'on rentre un nom de client qui existe pouvoir lui attribuer le taux de tva qui y fait reference ds le fichier client pour pouvoir calculer le montant de tva de ses facture

et que lorsque l'on liste les clients , il y ai le montant total de toute leur factures

voici le code de mon programme pour l'instant

merci

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define TAILLE 100

/* definition des structure ------------------------------------*/

struct cli
{
int id_cli;
char nom[25];
float som_due;
int reduc;
int tva;
};

struct fact
{
int id_fact;
char nom_cli[25];
float mont_tot;
};

/* déclaration des fonctions --------------------------------*/

int execmenu();
void encodecli(struct cli *t/*, struct fact *t_fact*/);
void encodefact(struct fact *t_fact /*, struct cli *t*/);
void affiche (struct cli t);
void affiche_fact(struct fact t_fact);


/* Fonction principale -----------------------------------------*/
void main()
{

/*Déclarations ----------------------------------------------*/
struct cli tab[TAILLE];
struct fact tab_fact[TAILLE];
int choi;
tab_fact->mont_tot = 0;

/* Traitement -----------------------------------------------*/


do
{
choi=execmenu();

switch (choi)
{
case 1: encodecli(tab/*, tab_fact*/);
break;
case 2: encodefact(tab_fact/*, tab*/);
break;
case 3: affiche (*tab);
break;
case 4: affiche_fact(*tab_fact);
break;
case 5: printf("choix 5");
break;
case 99: printf("Aurevoir");
break;
}

}
while (choi!=99);
}
/* fonction execmenu ----------------------------------------*/

int execmenu()

{
int choix;
clrscr();

printf("\n\n\n\n\n\n\n\n");
printf(" ******************************************\n");
printf(" * <1> Ajouter un client *\n");
printf(" * <2> Ajouter une facture *\n");
printf(" * <3> Consulter la liste des clients *\n");
printf(" * <4> Consulter la liste des factures *\n");
printf(" * <5> Lister les mauvais payeur *\n");
printf(" * <99> quitter *\n");
printf(" * Votre choix : *\n");
printf(" ******************************************\n");

do
{
scanf("%d",&choix);
}
while (choix!=1 && choix!=2 && choix!=3 && choix!=4 && choix!=5 && choix!=99);

return choix;
}

/*fonction d'encodage des client ----------------------------*/
void encodecli(struct cli *t/*, struct fact *t_fact*/)
{
FILE *ptr;
int ok,nbrenreg=1;
char choix;
ptr=fopen("acces.dat","a+b");

fseek(ptr, 0, SEEK_END);
nbrenreg = ftell(ptr)/sizeof(struct cli);
t->id_cli = nbrenreg;

if(ptr!=NULL)
{
choix='o';
while(choix == 'o')
{
clrscr();
printf("Client n°%d",t->id_cli+1);
printf("\nentrer le nom :");
scanf("%s",t->nom);
printf("entrer le taux de la tva, 25 ou 12:");
scanf("%d",&t->tva);
t->id_cli++;
fflush(stdin);
fseek(ptr,0,SEEK_END);
fwrite(t,sizeof(*(t)),1,ptr);
do
{
ok=0;
printf("Nouvelle fiche (o/n) ?");
choix = getchar();
choix=tolower(choix);
if(choix!='o' && choix!='n')
{
printf("\nRépondez \"o\" ou \"n\" \n");
ok=1;
}
}
while(ok == 1);
}// fin while ok
}// fin if ptr NULL

fclose(ptr);
}
/*fonction d'encodage des Facture ----------------------------*/

void encodefact(struct fact *t_fact /*,struct cli *t*/)
{

FILE *ptfact;
//FILE *ptr2;


int rep_fact,nbrfact=1;
int art=0;
float prix=0;
int quant=0;
float total=0;
float temp=0;
float somme=0;

ptfact = fopen("fact.dat","a+b");
fseek(ptfact,0,SEEK_END);
nbrfact = ftell(ptfact)/sizeof(struct fact);
t_fact->id_fact = nbrfact;
//ptr2=fopen("acces.dat","a+b");
//t_fact->id_fact = 1;
do
{
clrscr();
printf("Facture n°%d",t_fact->id_fact);
printf("\nentrer le numero de l'article:");
scanf("%d", &art);
printf("entrer le prix de l'article:");
scanf("%f", &prix);
printf("entrer le nombre d'aricle:");
scanf("%d", &quant);

somme = prix*quant;
total += somme;
t_fact->mont_tot+=temp;


fflush(stdin);
//fseek(ptfact,0,SEEK_END);
//fwrite(t_fact,sizeof(*(t_fact)),1,ptfact);
printf("voulez vous continuer? 1 pour oui, 2 pour non\n");
scanf("%d",&rep_fact);

}
while(rep_fact==1);



if (total > 1200)
temp = total-(total/100*3);

else
if(total > 500)
temp = total - total/100;
else
if(total < 500)
temp = total;

t_fact->mont_tot=temp;
//t->som_due+=t_fact->mont_tot; atention montant tota pas pris en compte
//t_fact->id_fact++;
//fflush(stdin);
//fwrite(t,sizeof(*(t)),1,ptr2);

fseek(ptfact,0,SEEK_END);
fwrite(t_fact,sizeof(*(t_fact)),1,ptfact);

printf("le montant de la facture total est de %2.f\n",t_fact->mont_tot);
//printf("le montant total a payer est de %2.f\n",t->som_due); idem ici
t_fact->id_fact++;
getch();
fclose(ptfact);
//fclose(ptr2);
}


//Affichage du contenu du fichier principal
void affiche(struct cli t)
{

FILE *ptr;
ptr=fopen("acces.dat","r");
fseek(ptr,0,SEEK_SET);
fread(&t,sizeof(t),0,ptr);
clrscr();
while(fread(&t,sizeof(struct cli),1,ptr) != 0)//(!feof(ptr))
{
printf("\n Numéro Client : %d, Nom : %s, tva : %d",t.id_cli,t.nom,t.tva);
//cli-1 car incrémentation par avance à l'encode
printf("\n le montant a payer est de %f",t.som_due);

}
printf("\n\n Appuyer sur une touche pour revenir au menu");
getch();
fclose(ptr);
}

//Affichage du contenu des facture
void affiche_fact(struct fact t_fact)
{

FILE *ptfact;
ptfact=fopen("fact.dat","rb");
fseek(ptfact,0,SEEK_SET);
fread(&t_fact,sizeof(t_fact),0,ptfact);
clrscr();
while(fread(&t_fact,sizeof(struct fact),1,ptfact) != 0)//(!feof(ptfact))
//while(!feof(ptfact))
{
printf("\nNum Facture: %d Nom du client: %s Montant total: %2.f",t_fact.id_fact,t_fact.nom_cli,t_fact.mont_tot);
//fread(&t_fact,sizeof(t_fact),0,ptfact);
}
printf("\n\n Appuyer sur une touche pour revenir au menu");
getch();
fclose(ptfact);
}

Gemini
mardi 24 août 2004 à 17:43:09 | Re : prob pour associe des donnée se trouvant dans 2 fichiers different

pinderlot

ca me rappelle quelque chose ce code...

Je ne vois pas trop ou est le problème.
Pour vérifier si ton client existe déjà cela revient à rechercher une chaine de caractère dans un fichier ou ce qui revient au même dans une autre chaine de caractère. Puis ensuite s'il n'existe pas, tu mets un message à l'écran et puis tu appelles ta fonction de création du client. Ca c pour le premier point.

pour les 2 autres c pas compliqué du tout non plus.
-----------------------------------------------
Tout ce qui ne tue pas rend plus fort !
mardi 24 août 2004 à 18:20:44 | Re : prob pour associe des donnée se trouvant dans 2 fichiers different

magic_Nono

Membre Club
la base de la BD : la recherche & l'association à une clef...


Magic Nono: l'informagicien!
vendredi 10 septembre 2004 à 20:01:29 | Re : prob pour associe des donnée se trouvant dans 2 fichiers different

magic_Nono

Membre Club
je pense que mon srce sur les tables de hashage peut t'aider

Magic Nono: l'informagicien!
vendredi 10 septembre 2004 à 20:01:31 | Re : prob pour associe des donnée se trouvant dans 2 fichiers different

magic_Nono

Membre Club
je pense que mon srce sur les tables de hashage peut t'aider

Magic Nono: l'informagicien!


Cette discussion est classée dans : printf, choix, struct, cli, fact


Répondre à ce message

Sujets en rapport avec ce message

preobleme de fonction [ par gemini010 ] bonjour ,g commencer a faire un programme me permetant d'enregistrer des client dans un fichier a l'inde d'une fonction et de les consulte en utilisan Problème de débutant ... [ par thedivxboy ] Bonjour, je suis en train d'apprendre le C en bacalauréat mais comme les élèves et les profs ne vont pas assez vite pour moi, je m'entraîne à faire de COMMENT FAIRE UN PETIT MENU EN C [ par geogram22 ] Salut à tous,Commencant à programmer en C g un véritable petit problème pour créer qqch de tous simple pour certains [: p] et que g véritablement bes Pb d'affichage avec des listes doublement chianées [ par Orezza ] Bonjour a tous,voila je dois faire un petit analyseur syntaxique, en ce moment j'en suis au prémice de mon code et j'ai dejà un Big problem d'affichag Liste chainéés [ par anek971 ] Bonjour a tousEnfaite il y a déà eu un poste sur le site sur ce sujet mais ayant le mm tp a faire je me suis rendu compte ke sa fonction quitter ne ma petite question pr une meilleur visibilité [ par anek971 ] Bonjour a tousEnfaite je voudrais savoir en mode console comment on fait pr que par exemple le prog :#include int main(void){ int choix; do { printf Probleme de reception dans un serveur visual C++ pour windows [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi.voici les source du client et du serveurLe Serveur CASE [ par CHKDSK2K ] Bonjour, j'ai une variable de type char "choix";  je voudrais utiliser cette variable dans un switch mais il ne veut passwitch(choix){    case 'maison 0 + 1 = 6 ??? [ par Also know as ] Bonjour, J'ai à nouveau le même genre de poblème. Voici mon nouveau source : /* Exemple simple d'utilisation de l'instruction do-while */ #include tout premier porgramme en C. HELP !! [ par juancho2786 ] Bonjour a TOUS!Je viens de créer mon tout premier "programme" en C. Mais je ne suis pas sur que le code soit correcte. Est ce que vous pouvez me dire


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales