Facturation avec utilisation des tableaux de structures en c

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 700 fois - Téléchargée 35 fois

Contenu du snippet

Ce code permet de stocker des donnees dans un tableau de strucutures et de les reutilisees, ici on calcule une facture a partir des articles saisis et de la quantité que l on desire commander

Source / Exemple :


/*Bts info 1 Chartreux Mai 2002*/
/*Facturation*/
#include <stdio.h>
#include <string.h>

#define MAX 100

typedef struct 
{
	int code;
	char libelle[MAX];
	float prixunitaire;
}ARTICLE;

void inittab(ARTICLE tart[MAX],int *ptnart);
void saisiefacture(ARTICLE tart[MAX], int tcom[MAX], int *ptncom, int nart, int tquantite[MAX]);
void afficherfacture(ARTICLE tart[MAX],int tcom[MAX],int tqtite[MAX], int ncom);
int rechercher(ARTICLE tart[MAX],int nart,int codesaisi);

void main(void)
{
	ARTICLE tart[MAX];
	int tqtite[MAX];
	int tcom[MAX];
	int nart, ncom;
	inittab(tart,&nart);
	saisiefacture(tart,tcom,&ncom,nart,tqtite);
	afficherfacture(tart,tcom, tqtite, ncom);
}

void inittab(ARTICLE tart[MAX],int *ptnart)
{
	char rep;

  • ptnart=0;
do {
  • ptnart +=1;
printf("SAISIR LE CODE DE L ARTICLE\n"); scanf("%d",&tart[*ptnart].code); while (tart[*ptnart].code <1) { printf("Code invalide\n"); scanf("%d",&tart[*ptnart].code); } printf("Saisir le libelle\n"); fflush(stdin); scanf("%s",tart[*ptnart].libelle); while (tart[*ptnart].libelle=="") { printf("libelle vide\n"); fflush(stdin); scanf("%s",tart[*ptnart].libelle); } printf("Saisie le prix\n"); scanf("%f",&tart[*ptnart].prixunitaire); while (tart[*ptnart].prixunitaire<=0) { printf("Prix Invalide\n"); scanf("%d",&tart[*ptnart].prixunitaire); } if (*ptnart>=MAX) { printf("Tabelau Plein"); rep='n'; } else { printf("Autre Article?\n"); fflush(stdin); scanf("%c",&rep); } } while(rep=='o'); } void saisiefacture(ARTICLE tart[MAX], int tcom[MAX], int *ptncom, int nart, int tquantite[MAX]) { int ind,codartcom,qtite; char rep;
  • ptncom=0;
do {
  • ptncom+=1;
printf("Saisir le code de l article a commander\n"); scanf("%d",&codartcom); ind=rechercher(tart,nart,codartcom); while (ind == 0) { printf("Saisir le code, code invalide\n"); scanf("%d",&codartcom); ind=rechercher(tart,nart,codartcom); } printf("Quelle quantite de ", tart[ind].libelle, "a commander?\n"); scanf("%d",&qtite); while (qtite==0) { printf("quantite invalide resaisir\n"); scanf("%d",&qtite); } tcom[*ptncom]=ind; tquantite[*ptncom]=qtite; if (*ptncom<MAX) { printf("Autres article a commander?\n"); fflush(stdin); scanf("%c",&rep); } else { printf("tableau plein, commande non prise\n"); rep='n'; } } while (rep=='o'); } void afficherfacture(ARTICLE tart[MAX],int tcom[MAX],int tqtite[MAX], int ncom) { int i,ind; float montant,total; total=0; printf(" FACTURE\n"); printf("article quantite prix unitaire montant\n"); for (i=1;i<=ncom;i++) { ind=tcom[i]; printf("%s ",tart[ind].libelle); printf("%d ",tqtite[i]); printf("%f ",tart[ind].prixunitaire); montant=tart[ind].prixunitaire*tqtite[i]; total += montant; printf(" %f\n",total); } printf("Copyright Freeman-Corp\n"); } int rechercher(ARTICLE tart[MAX],int nart,int codesaisi) { int i; i=1; while (i<=nart && tart[i].code != codesaisi) { i+=1; } if (i<=nart) { return i; } else { return 0; } }

Conclusion :


J espere que ca pourra aider certaines personnes bien que le site ait beaucoup plus de sources en C++ qu en C
Si vous avez un probleme avec la source, ou si vous voulez une explication, ecrivez moi

A voir également

Ajouter un commentaire

Commentaires

natpoitiers
Messages postés
11
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2002
1 -
C'est pas application - si tu veut ecrire meme chose comme application il faut utiliser les files ou tu peut stocker l'info sur les articles et user peut choisir article. J pense, que il faut savoire la difference entre applic et example comment utiliser les sructures. Comme example - c'est bien f. Hi.
SAMI021
Messages postés
1
Date d'inscription
jeudi 11 avril 2013
Statut
Membre
Dernière intervention
11 avril 2013
-
merci

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.