begin process at 2010 02 09 22:42:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb en c


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

pb en c

dimanche 4 décembre 2005 à 19:58:19 | pb en c

marabou

est ce que qqn a un prog en c pr une gestion de bibliotheque ou qqc ds le genre merci bien
marabou
dimanche 4 décembre 2005 à 20:09:51 | Re : pb en c

marabou

en fait voila mon prog ms il couille


#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>

#define MAX 30
#define XMIN 0
#define XMAX 100
#define JMIN 0
#define JMAX 100
#define YMAX 100

/////////////////////////////////////////////////////////////////////////////////
////////////////Gestion de la base de données d'une bibliothèque/////////////////
/////////////////////////////////////////////////////////////////////////////////

typedef char tab_char2 [YMAX][JMAX];
typedef char tab_char [YMAX][XMAX];
tab_char2 tab2;
tab_char tab1;

void echange(tab_char &tab1, int i,int j);
void tri(tab_char &tab1,int i,int j);
void ajouter(tab_char &tab1, int nblivre);
void stock(tab_char &tab1, int nblivre);
void depart(tab_char &tab1, tab_char2 &tab2, int nblivre, int livre);
void retour(tab_char &tab1, tab_char2 &tab2, int nblivre, int livre);
void quitter();

int i,x,y,ddep,dret,dretmax,ox,oy,nom,prenom,nomlivre,curs;
int nblivre,livre, j;
int boucle=1;
int ymin,ymax;
main()

{

 while(boucle==1)
 {
 clrscr();
 curs=0;

///////////////////////////cadre ext haut bas////////////////////////////

  for (x=2;x<80;x++)
  {
     gotoxy(x,1);
     printf("%c",205);
     gotoxy(x,25);
     printf("%c",205);
  }

////////////////////////cadre ext droite gauche//////////////////////////

  for (y=2;y<25;y++)
  {
    gotoxy(1,y);
    printf("%c",186);
    gotoxy(80,y);
    printf("%c",186);
  }

//////////////////////////////coins/////////////////////////////////////

  gotoxy(1,1);
  printf("%c",201);
  gotoxy(80,1);
  printf("%c",187);
  gotoxy(1,25);
  printf("%c",200);
  gotoxy(80,25);
  printf("%c",188);

/////////////////////////Affichage titre+deplacement///////////////////

  for (x=3;x<16;x++)
  {
     gotoxy(x,5);
    printf("Gestion de la Base de Donnees d'une Bibliotheque");
     ox=x-1;
     gotoxy(ox,5);
    printf(" ");
    for(i=0;i<3000000;i++)
       {
    printf("");
    }
  }

//::::::::::::::::::::cadre titre::::::::::::::::::::::::::::::::::://

///////////////////////////cadre gauche////////////////////////////

  gotoxy(14,4);
  printf("%c",201);
  gotoxy(14,5);
  printf("%c",186);
  gotoxy(14,6);
  printf("%c",200);

//////////////////////////////cadre haut+bas////////////////////////

  for (x=15;x<63;x++)
  {
     gotoxy(x,4);
     printf("%c",205);
     gotoxy(x,6);
     printf("%c",205);
     for(i=0;i<2000000;i++)
   {
     printf("");
   }
  }

///////////////////////////cadre droite/////////////////////////////////

  gotoxy(63,4);
  printf("%c",187);
  gotoxy(63,5);
  printf("%c",186);
  gotoxy(63,6);
  printf("%c",188);

////////////affichage+deplacement editeurs/////////////////////////////

  for(x=3;x<57;x++)
  {
   gotoxy (x,22);
    printf("Edited by. B@rB0uCH XD\n");
    gotoxy (x,23);
    printf("And by. Marabou xp");

    ox=x-1;
    gotoxy(ox,22);
    printf(" ");
    gotoxy(ox,23);
    printf(" ");
     for(i=0;i<1000000;i++)
      {
         printf("");
      }
  }

  gotoxy(54,25);
  printf("%c", 202);

//////////////////////////cadre editeurs/////////////////////////////

  for(y=24;y>20;y--)
  {
     gotoxy(54,y);
     printf("%c",186);
     gotoxy(54,20);
     printf("%c",201);
  }

  for(x=55;x<80;x++)
  {
     gotoxy(x,20);
     printf("%c",205);
     gotoxy(80,20);
   printf("%c",185);
  }

////////////////////////////affichage menu///////////////////////////

  gotoxy(19,8);
  printf("%c",254);

  while(curs!=13)
  {
   gotoxy(21,8);
   printf("ajouter %c la bibliotheque", 133);
   gotoxy(21,10);
   printf("enregistrer un depart");
   gotoxy(21,12);
   printf("enregistrer un retour");
   gotoxy(21,14);
   printf("rechercher un livre");
   gotoxy(21,16);
   printf("quitter");

///////////////////////////////////////////////////////////////////////////
/////////////////fonction deplacement curseur sur menu/////////////////////
///////////////////////////////////////////////////////////////////////////
   
   curs=getch();
    if(curs=='P')
     {
     gotoxy(x,y);
       printf(" ");
       y=y+2;
    gotoxy(x,y);
       printf("%c",254);
     }
       if(curs=='H')
      {
        gotoxy(x,y);
        printf(" ");
        y=y-2;
        gotoxy(x,y);
     printf("%c",254);
      }
          if(y>ymax)
       {
         gotoxy(x,y);
         printf(" ");
         y=ymin;
         gotoxy(x,y);
         printf("%c",254);
       }
       if(y<ymin)
        {
          gotoxy(x,y);
          printf(" ");
          y=ymax;
          gotoxy(x,y);
          printf("%c",254);
        }
//////////////////entree et affichage menu ajouter/////////////////////

   if ((curs==13)&&(y==8))
   {
    ajouter(&tab1, nblivre);
   }
         else
          if ((curs==13)&&(y==10))
    {
     depart(&tab1, &tab2, nblivre, livre);
       getch();
      }
    else
             if ((curs==13)&&(y==12))
     {
      retour(&tab1, &tab2, nblivre, livre);
        getch();
     }
     else
                if ((curs==13)&&(y==14))
      {
       stock(&tab1, nblivre);
         getch();
      }
                else
                   if ((curs==13)&&(y==16))
       {
        quitter();
          boucle=0;
       }
  }
 }
////////////////////////////////////////////////////////////////////////
/////////////////////fonction : champs menu ajouter/////////////////////
////////////////////////////////////////////////////////////////////////

 void ajouter(tab_char &tab1, int nblivre);
 {
   int i=0;
 clrscr;
  while(nblivre!=100 && i==0)
    {
      nblivre=nblivre+1;
  printf("entrer le nom du livre : ");
  scanf("%s", &tab1[1][nblivre]);
  printf("entrer le nom de l'auteur : ");
  scanf("%s", &tab1[2][nblivre]);
  printf("entrer le nom de l'edition : ");
  scanf("%s", &tab1[3][nblivre]);
      printf("pour ajouter encore->0");
      scanf("%i",&i);
      clrscr();
    }
 }

///////////////////////////////////////////////////////////////////////////
///////////////////////////////fonction : stock////////////////////////////
///////////////////////////////////////////////////////////////////////////

 void stock(tab_char &tab1, int nblivre);
 {
  int i;
    tri(&tab1, i, j);
    for(i=XMIN; i<=nblivre; i++)
    {
     printf("%f\n",i);
     printf("%s",tab1[1][i]);
       printf("%s",tab1[2][i]);
       printf("%s",tab1[3][i]);
    }
 }

///////////////////////////////////////////////////////////////////////////
/////////////////////////fonction : tri////////////////////////////////////
///////////////////////////////////////////////////////////////////////////

  void tri(tab_char &tab1,int i,int j);
  {
   for(i=XMIN+1; i<nblivre; i++)
   {
     j=i-1;
    if(tab1[1][i]<tab1[1][j])
    echange(tab1, i, j);
   }
  }

///////////////////////////////////////////////////////////////////////////
////////////////////////fonction : echange/////////////////////////////////
///////////////////////////////////////////////////////////////////////////

  void echange(tab_char &tab1, int i,int j);
  {
   char tmp1, tmp2, tmp3;
     tmp1 = tab1[1][i];
   tab1[1][i] = tab1[1][j];
   tab1[1][j] = tmp1;
     tmp2 = tab1[2][i];
   tab1[2][i] = tab1[2][j];
   tab1[2][j] = tmp2;
   tmp3 = tab1[3][i];
   tab1[3][i] = tab1[3][j];
   tab1[3][j] = tmp3;
  }

///////////////////////////////////////////////////////////////////////////
///////////////////fonction : champs menu depart///////////////////////////
///////////////////////////////////////////////////////////////////////////

  void depart(tab_char &tab1, tab_char2 &tab2, int nblivre, int livre);
      {
      clrscr;
    int k=0, indice=0;
    while((nblivre!=0) && (k==0))
     {
         livre=livre+1;
       nblivre=nblivre-1;

   stock(&tab1, nblivre);

       printf("quel num de livre vous voulez louer");
       scanf("%f", indice);

       tab2[1][livre]=tab1[1][indice];
       tab2[2][livre]=tab1[2][indice];
   tab2[3][livre]=tab1[3][indice];

       gotoxy(21,8);
   printf("Nom locataire");
       scanf("%s", &tab2[5][livre]);
     gotoxy(21,18);
     printf("date depart");
       scanf("%s", &tab2[6][livre]);
     gotoxy(21,20);
     printf("date retour maximum");
       scanf("%s", &tab2[7][livre]);

       nblivre=nblivre-1;
       getch();

       printf("pour sup encor->0");
       scanf("%i",&k);

   }
}

///////////////////////////////////////////////////////////////////////////
/////////////////////////////fonction : retour/////////////////////////////
///////////////////////////////////////////////////////////////////////////

 void retour(tab_char &tab1, tab_char2 &tab2, int nblivre, int livre);
 {
  clrscr;
    int k=0, indice;
    while((nblivre!=0) && (k==0))
     {
     nblivre=nblivre+1;
       livre=livre-1;
   stock(tab1, nblivre);
       printf("quel num de livre vous avez loue");
       scanf("%i",&indice);
       tab1[1][indice]=tab2[1][livre];
       tab1[2][indice]=tab2[2][livre];
   tab1[3][indice]=tab2[3][livre];
       printf("pour retourner encor->0");
       scanf("%i",&k);
     }
 }

///////////////////////////////////////////////////////////////////////////
//////////////////////////////fonction quitter/////////////////////////////
///////////////////////////////////////////////////////////////////////////

 void quitter();
 {
 clrscr;
 gotoxy(10,10);
 printf("^^Au revoir et a bientot sur notre systeme de gestion^^\n");
 gotoxy(8,12);
 printf("B@rbouche et Marabou vous souhaites une bonne critique mdr");
    for (i=0; i<120000000; i++)
    {
    printf("");
  }
 }

clrscr();
}

dimanche 4 décembre 2005 à 21:50:08 | Re : pb en c

MrdJack

deja, tu pourrais faire mieux dans tes fonctions :
for (i=0; i<120000000; i++)
{
     printf("");
}

c'est sensé faire quoi ? une pause ?
sans blague...

et puis t'as prévu une quelquonque sauvegarde  parce que je vois mal une coupure de courant ou tout simplement l'arret du pc...

un bref regard sur la fonction tri() me permet de dire que les parametres i et j sont inutiles puisque tu leur réafecte une valeur aussitot entré dans la fonction... de plus ta fonction ne tri pas correctement... faudrait que tu regardes bien étape par étape (si tu as ceci a trier :  {20,50,100,10}, ta fonction ressortiera d'abord ceci : {50,20,100,10} puis : {50,100,20,10} et ensuite : {50,100,20,10} et tu remarque que ca colle pas trop ce tri... le truc serai de placer tout ca dans un while qui reboucle tant que le for fait au moin un echange. de cette facon, si il n'y a plu d'echange d'effectué, le tri est complet.)

pour les autres fonctions je n'ai pas regardé de plus pres, mais regarde bien étape par étape ce que fait chaque fonction et tu trouvera sans doute des ptites erreurs

sinon, le probleme viens d'où ?
où ca "couille" comme tu dis ?
donne des exemples qui nous permettrons de voir plus clairement une solution au probleme...

@++
dimanche 4 décembre 2005 à 21:55:07 | Re : pb en c

marabou

ben en fait qd g rentre d livre ca marche et qd g ve voir  ce ke ca fai la fonction stock ca m ecri 0.0000000000 et {null}{null}{null} dc voila
si ta une solution ossi pr une sovegarde g ve bien merci
dimanche 4 décembre 2005 à 22:15:14 | Re : pb en c

MrdJack

void stock(tab_char &tab1, int nblivre);
 {
  int i;
    tri(&tab1, i, j);
    for(i=XMIN; i<=nblivre; i++)
    {
     printf("%f\n",i);
// comme i est l'index du tableau, il est bizare de l'afficher en float... c'est ce qui te donne le 0.0000000. un int ferait l'affaire.
     printf("%s",tab1[1][i]);
       printf("%s",tab1[2][i]);
       printf("%s",tab1[3][i]);
    }
 }


de plus, dans la fonction d'ajout, utiliser un scanf pour récuperer les données entrées dans la console est tres déconseillé, c'est peut etre meme de là que vient ton erreur...

et pour faire court, ton systeme n'est pas optimisé du tout...
je te conseille d'utiliser des liste chainées qui te permettrons d'avoir plus de souplesses et de rapidité lors de la supression d'une entrée de la base, de l'ajout etc... (pas besoin de fonction de tri puisque tu inseres ton entrée directement a la bonne place...
en utilisant une structure du genre :
typedef struct bouquin
{
  char *livre;
  char *auteur;
  char *editeur;
} bouquin_struct

et perso, pour que ton appli sauvegarde les données, je te conseille dans un fichier en mode texte
ou si tu prefere, laisse tomber les listes chainnées et tout et utilise une base de donnée comme sql ou autre...

@++

dimanche 4 décembre 2005 à 22:39:36 | Re : pb en c

marabou

ok merci bien
g pe pa le fer en sql car en fait c un projet pr les cour et on doi lee fer en C merci bien


Cette discussion est classée dans : pb


Répondre à ce message

Sujets en rapport avec ce message

Les variables globales...... [ par netman ] Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)Bon je fait un petit programme et la je suis confronte a un pb .....J'uti pb de base de donnee en C [ par tequ13 ] j'aimerais savoir comment faire pour charger des fichiers (*.txt) a l'ouverture d'un programme pour ensuite les comparer et repérer les doublons pour pb avec procedure [ par bidules ] bonjour,voila mon code(simplifier) :void affiche(int numero){cout }void main(){affiche(10);}et un message d'erreur apparait lors de la compilation Pb code source CMphSock [ par xaviou ] Salut.J'ai téléchargé le projet "CMphSock" : Utilisation de Winsock sans MFC.Je l'ai compilé en mode Debug : tout est OKJ'ai essayé en mode Release : petit pb de type string [ par bidules ] D'apres ce que g pu apprendre lorsque l'on veut declarer une variable de type string il faut faire :#include string variable;c bien ca? car qd je fais pb de grille avec visual C++ [ par cedcrow ] Salut,je cherche à rendre éditable les cellules créés dans mon objet de type flexgrid (comme un tableur excel quoi !). Je ne trouve pas la méthode app Pb avec Glut sous Visual C++ [ par Yoann ] Bonjour !Je viens de me mettre à OpenGL avec Glut, mais j'ai un petit problème. En effet, quand je compile un exemple, j'ai l'erreur suivante :TestGlu Pb avec Glut sous VC++ et Dev [ par mederic ] Je ne sais pas si ça vient de mon include ou autre chose. Mais je n'arrive pas executer un exemple simple sur plusieurs compilateurs.Sur VC++, il écri un ti pb sur les tableaux [ par Julius Caesar ] On range dans un tableau 8 entiers générés aléatoirement par l'ordi. coment faire pour être sur que chaque nombre généré soit uniquen c'est à dire qu' pb avec gluLookAt() ! [ par naugondo ] Comment ça marche !!En fait, a quoi correpondent les 3 dernières coordonnées ?


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,421 sec (3)

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