الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Tp Gestion De Stock & Facturation (code Source Bien Expliqué)

بدأه aymen_ka في 12 أبريل 2009 · 2 رد · 3,564 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

الملفات هنا

main.c

                            /*    بسم الله الرحمن الرحيم      */


#include <stdio.h>
#include <stdlib.h>
#include "Admin.h"
#include "Client.h"

int main()
{
    char reponse;
    int accept=0, pass=0;
    system("cls");
    Color(9,15);
    printf("         Mini-Logiciel de Facturation et Gestion de Stock      \n");
    Color(3,15);
    printf("                                                               \n");
    printf("           ****** Programme Realise par Aymen_ka ******        \n");
    printf("                                                               \n");
    printf("                 **** Encadre par Mr. H. E. ****               \n");
    printf("                                                               \n\n\n");
    Color(7,0);

    do
    {

        do
        {
            printf ("\n   Voulez vous entrer en Mode Adminstrateur ou client (A/C): ");
            scanf ("%s", &reponse);
            printf("\n\n\n");
        } while (reponse!='c' && reponse!='C' && reponse!='a' && reponse!='A');

        if (reponse=='a' || reponse=='A')
        {
            printf("                      Mot de passe: ");
            Color(12, 0);
            printf("1234\n\n");
            Color(7, 0);
            printf("       veuillez entrer le mot de passe administrateur: ");
            Color(12, 0);
            scanf("%i", &pass);
            Color(7, 0);

            if (pass==1234)
            {
                accept=1;
                Menu_Admin ();
            }

            else
            {
                printf("\n\n                    ");
                Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
                printf("Mot de passe incorrecte\n\n");
                Color(7, 0);

            }
        }


    else if (reponse=='c' || reponse=='c')
    {
        accept=1;
        Menu_Client ();
    }

    } while(accept!=1);

    return 0;
}

Admin.h

                            /*    بسم الله الرحمن الرحيم      */



#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

typedef struct Article Article;
void Menu_Admin ();
void Modif(int pos_debut);
void Ajout(int id);
void liste_Articles();
int chercher_article(int article_recherche, int *pos_debut, int *pos_fin);
void Color(int couleurDuTexte,int couleurDeFond);
void Color2(WORD Attributes);

Admin.c

                            /*    بسم الله الرحمن الرحيم      */#include "Admin.h"struct Article {                    int code;                    char libelle[10];                    float prix;                    int stock;                };void Menu_Admin (){        int continuer=0, choix=0, taille_chaine=0, fin=0, id;        int pos, pos_debut=0, pos_fin=0, article_recherche=-1;        char rep;        char chaine_partie1[30];        char chaine_partie2[30];        system("cls");        while (continuer != 6)        {            Color(1,8);            printf("\n\n         *** veuillez faire un choix ***         \n");            Color(0,7);            printf("                                                 \n");            printf("1: voir les articles                             \n");            printf("2: ajouter/modifier un article                   \n");            printf("3: supprimer un article                          \n");            printf("4: voir l'historique des commandes               \n");            printf("5: Retour au menu principal                      \n");            printf("6: Quitter                                       \n");            Color(7,0);            printf("\nVotre choix: ");            scanf("%i", &choix);            printf("\n");            switch (choix)            {                case 1:                Color(11,0);                printf("  -> votre choix est: voir les articles\n\n");                Color(7,0);                liste_Articles();                break;                case 2:                Color(11,0);                printf("  -> votre choix est: ajouter/modifier un article\n\n");                Color(7,0);                id=-1;                while (id<=0 || id>999) //            {                printf("Donner le code du produit a ajouter/modifier: ");                Color(14,0);                scanf("%i", &id);                Color(7,0);            }            if ((chercher_article(id, &pos_debut, &pos_fin))==1)            {                while(getchar() != '\n'); // on vide le buffer                Color(15,0);                printf("\nArticle existant,");                Color(7,0);                printf(" voulez vous le modifier? ");                Color(15,0);                printf("(O/N)");                Color(7,0);                printf(": ");                rep=getchar();                if (rep=='o' || rep=='O' || rep=='0')                Modif(pos_debut);            }            else Ajout(id);         break;        case 3:            Color(11,0);         printf("  -> votre choix est: effacer un article\n\n");         Color(7,0);         printf("donner l'ID de l'article a supprimer: ");         Color(14,0);         scanf("%i", &article_recherche);         Color(7,0);                if ((chercher_article(article_recherche, &pos_debut, &pos_fin))==1)                {                    FILE* fichier_articles = NULL;                    fichier_articles = fopen("fichier_articles.txt", "r+");                    FILE* fichier_tmp = NULL;                     // *                    fichier_tmp = fopen("fichier_tmp.txt", "w+"); // * on crée un fichier temporaire                    rewind(fichier_articles);  //on fait retourner le curseur au début du fichier                    pos=0;   //initialisation de pos à 0 pour entrer dans la boucle                    while ((fgets(chaine_partie1, 30, fichier_articles) != NULL) && (pos<pos_debut)) // lecture et ecriture (dans le fichier temporaire) des lignes qui se trouvent avant la ligne à supprimer                    {                        pos=ftell(fichier_articles);                        fputs(chaine_partie1, fichier_tmp);                    }                    fseek(fichier_articles, (pos_fin+2), SEEK_SET); //on positionne le curseur au début de la ligne qui se trouve apres la ligne à supprimer                    while (fgets(chaine_partie2, 30, fichier_articles) != NULL)  // // lecture et ecriture (dans le fichier temporaire) des lignes qui se trouvent apres la ligne à supprimer                    {                        fputs(chaine_partie2, fichier_tmp);                    }                    fclose(fichier_articles);                    fichier_articles = fopen("fichier_articles.txt", "w+"); //reouverture du fichier "fichier_articles.txt" en le vidant                    rewind(fichier_tmp); // se positionner au début du fichier temporaire                    while (fgets(chaine_partie1, 30, fichier_tmp) != NULL) // lecture et ecriture du contenu du fichier temporaire dans "fichier_articles.txt"                    {                        fputs(chaine_partie1, fichier_articles);                    }                    fclose(fichier_articles);                    fclose(fichier_tmp);                    remove("fichier_tmp.txt"); //on supprime le fichier temporaire                }                else                {                    Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);                    printf("Article introuvable\n\n");                    Color(7,0);                }         break;        case 4:            Color(11,0);         printf("  -> votre choix est: voir l'historique des commandes\n\n");         Color(7,0);         system("notepad fichier_historique.txt");         break;        case 5:            main();         break;        case 6:            Color(11,0);            printf(" Quitter");            Color(7,0);         continuer = 6;         system ("exit");         break;     default:         Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);         printf("!!!vous devez faire un choix valide!!!\n\n\n");         Color(7, 0);         break;        } }}void Ajout(int id){   Article article_actuel; FILE* fichier_articles = NULL; fichier_articles = fopen("fichier_articles.txt", "a");     if (fichier_articles != NULL)    {        fprintf(fichier_articles, "%3i|", id);        printf("Donner le libelle du produit: ");        Color(14,0);        scanf("%s", &article_actuel.libelle);        Color(7,0);        do        {            printf("Donner la quantite          : ");            Color(14,0);            scanf("%i", &article_actuel.stock);            Color(7,0);        }while((article_actuel.stock<=0) && (article_actuel.stock>999));        fprintf(fichier_articles, "%3i|", article_actuel.stock);        do        {            printf("Donner le prix du produit   : ");            Color(14,0);            scanf("%f", &article_actuel.prix);            Color(7,0);        }while((article_actuel.prix<=0) && (article_actuel.prix>999999));        fprintf(fichier_articles, "%6.3f|", article_actuel.prix);        fprintf(fichier_articles, "%10s\n", article_actuel.libelle);//le libelle doit etre en derniere place pourque la lecture string fontionne correctement        fclose(fichier_articles);    }    else    {        printf("Impossible d'ouvrir le fichier fichier_articles.txt");    }}void Modif(int pos_debut){    Article article_actuel;    FILE* fichier_articles = NULL;    fichier_articles = fopen("fichier_articles.txt", "r+");    if (fichier_articles != NULL)    {            fseek(fichier_articles, pos_debut, SEEK_SET); //on retourne le curseur au début du fichier            fscanf(fichier_articles, "%i|%i|%f|%s", &article_actuel.code, &article_actuel.stock, &article_actuel.prix, &article_actuel.libelle);            Color(15,0);            printf("donnees Actuels :");            Color(7,0);            printf(" code: %3i;  libelle: %10s; stock: %3i;  prix: %.3f \n\n", article_actuel.code, article_actuel.libelle, article_actuel.stock, article_actuel.prix);            printf("Code            :");            Color(14,0);            printf("%3i\n", article_actuel.code);            Color(7, 0);            printf("Nouveau Libelle :  ");            Color(14,0);            scanf("%s", &article_actuel.libelle);            Color(7,0);            do            {                printf("Nouveau Stock   :  ");                Color(14,0);                scanf("%i", &article_actuel.stock);                Color(7,0);            }while((article_actuel.stock<0) && (article_actuel.stock>999));            do            {                printf("Nouveau Prix    :  ");                Color(14,0);                scanf("%f", &article_actuel.prix);                Color(7,0);            }while((article_actuel.prix<0) && (article_actuel.prix>999));            fseek(fichier_articles, pos_debut, SEEK_SET);            fprintf(fichier_articles, "%3i|", article_actuel.code);            fprintf(fichier_articles, "%3i|", article_actuel.stock);            fprintf(fichier_articles, "%6.3f|", article_actuel.prix);            fprintf(fichier_articles, "%10s\n", article_actuel.libelle);            fseek(fichier_articles, pos_debut, SEEK_SET);            fscanf(fichier_articles, "%i|%i|%f|%s", &article_actuel.code, &article_actuel.stock, &article_actuel.prix, &article_actuel.libelle);            Color(15,0);            printf("\nArticle Modifie :");            Color(7,0);            printf(" code: %i |  libelle: %s |  stock: %i |  prix: %.3f \n", article_actuel.code, article_actuel.libelle, article_actuel.stock, article_actuel.prix);            fclose(fichier_articles);    }    else    {        printf("Impossible d'ouvrir le fichier fichier_articles.txt");    }}void liste_Articles(){    Article article_actuel;    int pos=0, fin=0, i=0; FILE* fichier_articles = NULL; fichier_articles = fopen("fichier_articles.txt", "r");     if (fichier_articles != NULL)    {            fseek(fichier_articles, 0, SEEK_END); //  *            fin = ftell(fichier_articles);        //  * pour determiner la fin du fichier (le nombre de carateres totale)            fseek(fichier_articles, 0, SEEK_SET); //on retourne le curseur au début du fichier            printf("             ");            Color(0,8);            printf(" Code      Libelle     Stock       Prix  \n");            Color(7, 0);            while (pos<(fin-2)) //fin - \n (qui representent 2 caracteres)            {                i++;                fscanf(fichier_articles, "%i|%i|%f|%s", &article_actuel.code, &article_actuel.stock, &article_actuel.prix, &article_actuel.libelle); //le libelle doit etre au dernier emplacement pourque le programme fonctionne correctement                Color(0,8);                printf("Article %3i  ", i);                Color(7, 0);                printf(" %3i   %10s      %3i         %.3f\n", article_actuel.code, article_actuel.libelle, article_actuel.stock, article_actuel.prix);                Color(0,8);                printf("             \n", i);                Color(7, 0);                pos=ftell(fichier_articles); //position de la fin de chaque ligne lue                fseek(fichier_articles, (pos+2), SEEK_SET); //pos + \n (qui representent 2 caracteres)            }            fclose(fichier_articles);    }    else    {        printf("Impossible d'ouvrir le fichier fichier_articles.txt");    }}int chercher_article(int article_recherche, int *pos_debut, int *pos_fin){    Article article_actuel;    int pos1=0, pos2=0, fin=0, trouve=0;    FILE* fichier_articles = NULL;    fichier_articles = fopen("fichier_articles.txt", "r");     if (fichier_articles != NULL)    {            fseek(fichier_articles, 0, SEEK_END);            fin = ftell(fichier_articles);            fseek(fichier_articles, 0, SEEK_SET);            while (pos2<(fin-2))            {            pos1=ftell(fichier_articles); //pour avoir la position de debut l'ID cherché            fscanf(fichier_articles, "%i|%i|%f|%s", &article_actuel.code, &article_actuel.stock, &article_actuel.prix, &article_actuel.libelle);            pos2=ftell(fichier_articles);  // la position de la fin de la ligne                if ((article_actuel.code)==article_recherche)                {                    trouve=1;                    *pos_debut=pos1;   //on retourne la position de debut du code de l'article recherché                    *pos_fin=pos2;     //on retourne la position de fin du code de l'article recherché                    return(trouve);    //on retourne 1 si l'article est trouvé                    return;                }            fseek(fichier_articles, (pos2+2), SEEK_SET);            }        fclose(fichier_articles);    }    else    {        printf("Impossible d'ouvrir le fichier fichier_articles.txt");    }}void Color(int couleurDuTexte,int couleurDeFond) // affichage des couleurs{        HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);        SetConsoleTextAttribute(H,couleurDeFond*16+couleurDuTexte);}void Color2(WORD Attributes) // fonction d'affichage de couleurs{        HANDLE H=GetStdHandle(STD_OUTPUT_HANDLE);        SetConsoleTextAttribute(H,Attributes);}

Client.h

                            /*    بسم الله الرحمن الرحيم      */


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

typedef struct ArticleC ArticleC;
void Menu_Client ();
void copie_fichier(char nomFichierOriginal[], char nomFichierDestination[]);

Client.c

                            /*    بسم الله الرحمن الرحيم      */



#include "Client.h"
#include "Admin.h"

struct ArticleC {
                    int code;
                    char libelle[10];
                    float prix;
                    int stock;
                };


void Menu_Client ()
{

        int continuer=0, choix=0, quantite, i, j, k, id, pos2, fin2;
        int cod, quant;
        float pri, total, global;
        char libel[10];
        int pos_debut=0, pos_fin=0;
        char rep, rep2, rep3, rep4;
        ArticleC article_actuel;
        time_t temp_recupere;
        struct tm * temps_info;
        char chaine_temp [20];

        system("cls");
        while (continuer != 4)
        {
        Color(1,8);
     printf("\n\n         *** veuillez faire un choix ***         \n");
        Color(0,7);
        printf("                                                 \n");
     printf("1: voir la liste des articles                    \n");
     printf("2: Faire un commande                             \n");
     printf("3: Retour au menu principal                      \n");
        printf("4: Quitter                                       \n");
        Color(7,0);
        printf("\nVotre choix: ");
        scanf("%i", &choix);
     printf("\n");

    switch (choix)
     {
     case 1:
     Color(11,0);
         printf("  -> votre choix est: voir la liste des articles\n\n");
         Color(7,0);
            liste_Articles();

         break;

     case 2:
     Color(11,0);
         printf("  -> votre choix est: Faire une commande\n\n");
         Color(7,0);

                FILE* fichier_articles = NULL;
                fichier_articles = fopen("fichier_articles.txt", "r+");
                j=0; // compteur j pour verifier s'il y a eu au moins un article acheté dans cette commande
                k=0;
                if (fichier_articles != NULL)
                {
                            FILE* fichier_commande = NULL;
                            fichier_commande = fopen("fichier_commande.txt", "w+"); // on vide "fichier_commande.txt" avec w+ pour preparer son remplissage par une eventuelle nouvelle commande
                            fclose(fichier_commande);

                            copie_fichier("fichier_articles.txt", "copie_fichier_articles.txt"); //création d'une copie temporaire

                     do
                    {

                        do //on demande le code de l'article à commander
                        {
                            printf("\nDonner le code de l'article a commander: ");
                            Color(14,0);
                            scanf("%i", &id);
                            Color(7,0);
                        } while (id<=0 || id>999);

                        quantite=0; // inialisation de la quantité au début de la boucle
                        if ((chercher_article(id, &pos_debut, &pos_fin))==1) // on fait une recherche à l'aide de la fonction chercher_article et si disponible on entre dans la boucle sinon on affiche "Article introuvable"
                        {

                            FILE* fichier_copie = NULL;
                            fichier_copie = fopen("copie_fichier_articles.txt", "r+");

                            fseek(fichier_copie, pos_debut, SEEK_SET); //on positionne le curseur au début de la ligne de l'acrticle à commander
                            fscanf(fichier_copie, "%i|%i|%f|%s", &article_actuel.code, &article_actuel.stock, &article_actuel.prix, &article_actuel.libelle); //scan de l'article à commander
                            Color(15,0);
                            printf ("Article choisi: ");
                            Color(7,0);
                            printf("code: %3i | Libelle: %10s | Stock: %3i | prix: %.3f\n", article_actuel.code, article_actuel.libelle, article_actuel.stock, article_actuel.prix); // affiche de l'article à commander


                            do //on demande la quantité et on verifie si elle est <= au stock
                            {
                                Color(15,0);
                                printf ("quantite: ");Color(7,0);
                                scanf("%i", &quantite);
                                if (quantite>article_actuel.stock)
                                {
                                    while(getchar() != '\n');
                                    Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
                                    printf("quantite demandee indisponible, ressayer/annuler (R/A): ");
                                    rep=getchar();
                                    Color(7,0);
                                }
                            } while ((quantite>article_actuel.stock) && (rep=='r' || rep=='R'));


                            if ((quantite>0) && (quantite<=article_actuel.stock))
                            {

                                FILE* fichier_commande = NULL;
                                fichier_commande = fopen("fichier_commande.txt", "r");
                                system("cls");
                                Color(0,7);
                                printf("Votre commande    code     article     quantite   prix unitaire     total \n");
                                printf("                ");
                                Color(7,0);
                                printf("                                                          \n");
                                if (j>0) // s'il y a au moins un article comfirmé dans cette commande
                                {

                                    fseek(fichier_commande, 0, SEEK_END);
                                    fin2 = ftell(fichier_commande);
                                    fseek(fichier_commande, 0, SEEK_SET);

                                    do  // on affiche toutes les articles comamnder avant de commander un nouvel article
                                    {
                                        fscanf(fichier_commande, "%i|%i|%i|%f|%f|%s", &k, &cod, &quant, &pri, &total, &libel);
                                        Color(0,7);
                                        printf("Article %2i      ", k);
                                        Color(7,0);
                                        printf("  %3i  %10s        %3i         %6.3f        %6.3f\n", cod, libel, quant, pri, total);
                                        pos2=ftell(fichier_commande);
                                        fseek(fichier_commande, (pos2+2), SEEK_SET);

                                    }while (pos2<(fin2-2));
                                }
                                else k=0;
                                k++;
                                Color(0,7);
                                printf("Article %2i      ", k);
                                Color(7,0);
                                printf("  %3i  %10s        %3i         %6.3f        %6.3f\n", article_actuel.code, article_actuel.libelle, quantite, article_actuel.prix, ((article_actuel.prix)*quantite));
                                fclose(fichier_commande);

                                while(getchar() != '\n');
                                printf("\n\n\nConfirmer l'ajout de ");
                                Color(0,7);
                                printf("l'Article %i", k);
                                Color(7,0);
                                printf(" ? ");
                                Color(15,0);
                                printf("(O/N): ");
                                Color(7,0);
                                rep2=getchar();

                                if (rep2=='O' || rep2=='o' || rep2=='0')
                                {
                                    j++; // compteur pour commandes finales
                                    article_actuel.stock -= quantite; //on va diminuer la quantité commandé du stock
                                    fseek(fichier_copie, pos_debut, SEEK_SET);
                                    fprintf(fichier_copie, "%3i|%3i|%6.3f|%10s\n", article_actuel.code, article_actuel.stock, article_actuel.prix, article_actuel.libelle);
                                    FILE* fichier_commande = NULL;
                                    fichier_commande = fopen("fichier_commande.txt", "a"); // on ouvre "fichier_commande.txt" en mode ajout pour le remplir avec les articles de cette commande
                                    fprintf(fichier_commande, "%3i|%3i|%3i|%6.3f|%6.3f|%10s\n", j, article_actuel.code, quantite, article_actuel.prix,((article_actuel.prix)*quantite) , article_actuel.libelle);
                                    fclose(fichier_commande);

                                }

                            }

                            fclose(fichier_copie);
                        }

                        else
                        {
                        Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
                        printf("Article introuvable");
                        Color(7,0);
                        }


                        while(getchar() != '\n'); //on vide le buffer
                        printf ("\nVoulez vous commander un autre article? ");
                        Color(15,0);
                        printf("(O/N): ");
                        Color(7,0);
                        rep3=getchar();

                        } while(rep3=='o' || rep3=='O'); //si le client veut commander un autre article on repete la boucle



                        if (j>0) //s'il y a eu au moins un article acheté dans cette commande
                        {

                            while(getchar() != '\n'); //on vide le buffer
                            Color2(FOREGROUND_BLUE | BACKGROUND_INTENSITY);
                            printf ("\n\nConfirmer votre commande? (O/N): ");
                            rep4=getchar();
                            Color(7,0);
                            if (rep4=='O' || rep4=='o' || rep4=='0')
                            {
                                // modification du stock dans le fichier "fichier_articles.txt" original
                                copie_fichier("copie_fichier_articles.txt", "fichier_articles.txt");


                                // compteur de commandes
                                FILE* fichier_compteur = NULL;
                                fichier_compteur = fopen("fichier_compteur.txt", "r+");
                                fscanf(fichier_compteur, "%i", &i);
                                rewind(fichier_compteur);
                                i++;
                                fprintf(fichier_compteur, "%i", i);
                                fclose(fichier_compteur);



                                // historique & affichage de la facture
                                system("cls"); //vider l'ecran
                                FILE* fichier_historique = NULL;
                                fichier_historique = fopen("fichier_historique.txt", "a");
                                time ( &temp_recupere );
                                temps_info = localtime ( &temp_recupere );
                                strftime (chaine_temp,20,"%a %x  %H:%M",temps_info);
                                fprintf(fichier_historique, "COMMANDE %3i                                    Date: %s\n\n\n\n", i, chaine_temp);
                                FILE* fichier_commande = NULL;
                                fichier_commande = fopen("fichier_commande.txt", "r");
                                Color(15,0);
                                printf ("Facture N%i                                       Date: %s\n\n\n", i, chaine_temp);
                                Color(0,7);
                                printf("Votre commande    code     article     quantite   prix unitaire     total \n");
                                printf("                ");
                                Color(7,0);
                                printf("                                                          \n");
                                fprintf(fichier_historique, "La    commande    code     article     quantite   prix unitaire     total\n\n");

                                    fseek(fichier_commande, 0, SEEK_END);
                                    fin2 = ftell(fichier_commande);
                                    fseek(fichier_commande, 0, SEEK_SET);

                                    do
                                    {
                                        fscanf(fichier_commande, "%i|%i|%i|%f|%f|%s", &k, &cod, &quant, &pri, &total, &libel);
                                        global +=total;

                                        Color(0,7);
                                        printf("Article %2i      ", k);
                                        Color(7,0);
                                        printf("  %3i  %10s        %3i         %6.3f        %6.3f\n", cod, libel, quant, pri, total);
                                        fprintf(fichier_historique, "Article %2i        %3i %10s        %3i         %6.3f         %6.3f\n", k, cod, libel, quant, pri, total);
                                        pos2=ftell(fichier_commande);
                                        fseek(fichier_commande, (pos2+2), SEEK_SET);

                                    }while (pos2<(fin2-2));
                                printf("\n\n                                                      ");
                                Color(0, 8);
                                printf(" Prix Total:");
                                Color(15,0);
                                printf(" %.3f\n\n", global);
                                Color(7, 0);
                                fprintf(fichier_historique, "\n\n                                                       Prix Total: %.3f", global);
                                fprintf(fichier_historique, "\n\n-------------------------------------------------------------------------");
                                fprintf(fichier_historique, "\n\n\n");
                                fclose(fichier_commande);
                                fclose(fichier_historique);
                            }

                        }

                    fclose(fichier_articles);
                }



                else
                {
                    Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
                    printf("Impossible d'ouvrir le fichier fichier_articles.txt");
                    Color(7, 0);
                }


         break;



        case 3:
            main();

         break;


        case 4:
        Color(11,0);
            printf(" Quitter");
            Color(7,0);
         continuer = 4;
         system ("exit");
         break;

     default:
         Color2(FOREGROUND_RED | BACKGROUND_INTENSITY);
         printf("!!!vous devez faire un choix valide!!!\n\n\n");
         Color(7, 0);
         break;
        }
 }






}





    void copie_fichier(char nomFichierOriginal[], char nomFichierDestination[])
    {

    char libel[10];
    int pos3, fin3, cod, stoc;
    float pri;
    FILE* fichier_copie = NULL;                         // *
    fichier_copie = fopen(nomFichierDestination, "w+"); // * Création (ou effacement si existant) d'un fichier copie

    FILE* fichier_original = NULL;
    fichier_original = fopen (nomFichierOriginal, "r");

         if (fichier_original != NULL)
    {

            fseek(fichier_original, 0, SEEK_END);
            fin3 = ftell(fichier_original);
            fseek(fichier_original, 0, SEEK_SET);

            do
            {
            fscanf(fichier_original, "%i|%i|%f|%s", &cod, &stoc, &pri, &libel);
            fprintf(fichier_copie, "%3i|%3i|%6.3f|%10s\n", cod, stoc, pri, libel);
            pos3=ftell(fichier_original);
            fseek(fichier_original, (pos3+2), SEEK_SET);

            }while (pos3<(fin3-2));

            fclose(fichier_original);
            fclose(fichier_copie);

    }

    else
    {
        printf("Impossible d'ouvrir le fichier %s", nomFichierOriginal);
    }

    }

Projet_facture_C.zip

تم تعديل هذه المشاركة بواسطة aymen_ka في 12 أبريل 2009 في 04:51

#2

وعليكــم السـلام ورحمة الله وبركاتـه..

اطلعت على المشروع ,, المشروع رائع حتى هذه اللحظة , لكن لماذا لم تقدم شرح وافي عن المشروع باللغة العربية !!

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#3

السلام عليكم

لقد قمت بإنجاز هذا البرنامج الصغير في إيطار الأشغال التطبيقية في دراستي، لذالك هو باللغة الفرنسية (بما أن دراستنا العليا في تونس باللغة الفرنسية)، و لكن لدي مشروع

جديد باستخدام ++C و QT سأقوم بمشيئة الله بإنجازه بلغتنا العربية بالإضافة إلى الفرنسية و الانجليزية و سأقوم بوضعه في هذا المنتدى الرائع حال إكتماله

مواضيع مشابهة