| 
					Sujet : C++ : Ajout d'une verification dans une fonction ! J'y arrive paaaaaaa | 
			
				| janoscoder | 
				tiens, jette un oeil à:
 http://www.dinkum.com/htm_cpl/valarray.html
 c'est cool.
 Avec ça tu peut genre accéder aux pixels d'une ligne dans un bitmap, ou accéder à une sous région d'un bitmaps comme si c'était un bitmap, etc...
 J'ai pas encore eu le temps de le décortiquer, mais j'ai implémenté des trucs comme ça pour mon prog.
 a+
   pour ce qui est DB ça permet de masquer des valeurs ou de sélectionner par champ.   | 
			
			
					
						| fabd | 
			Voila, il s'agit d'un programme ki gere les emprunts dans un vidéo club (comme ca, ca le fait, mais le prog est a chier :D), enfin bon...
 On peut ajouter des titres, mais il peuve avoir le meme numéro ! Je voudrais integrer une fonction dans la méthode ajout() qui verifie si le numéro est déja present, et si c le cas, lui dire de choisir un autre numéro...
 VOila la source :
   // bibliotheque
 #include <iostream.h>
 #include <string.h>
   // structure str_film
 struct str_film
 {
  int id_film;  	// numéro du film
  char title_film[25];	// titre du film
 };
   // classe emprunt
 class emprunt
 {
  str_film tab_film[100];	// tableau de structure des films enregistrés
  int nb_film;    // nombre de films enregistrés
  
 public:
    emprunt();              // constructeur de la classe
  void affiche(void);            // methode affichage de la liste des films
  void ajout(int ajout_id_film, char ajout_title_film[25]);  // methode d'ajout d'un film
  void supprimer(int del_id_film);        // methode de supression d'un film
  void recherche(int num_film);        	// methode de recherche n°1 (par n° film)
  void recherche2(char title[25]);        // methode de recherche n°2 (par titre)
   };
   //constructeur de la classe
 emprunt::emprunt()
 {
  nb_film = 0;
    // initialisation du tableau de structure
  for(int i=0 ; i<100 ; i++)
  {
  	tab_film[i].id_film = 0;
  }
   }
   //affichage de tous les films de la liste
 void emprunt::affiche(void)
 {
  for(int i=0 ; i<nb_film ; i++)
  {
  	cout<<"\nNumero du film: "<<tab_film[i].id_film<<" ";
  	cout<<"Titre: "<<tab_film[i].title_film<<"\n";
  }
 }
   //ajout d'un film
 void emprunt::ajout(int ajout_id_film, char ajout_title_film[25])
 {
  int i=0;
  //comparaison du numero saisi et des numeros de la liste
  for(i=0 ; i<nb_film ; i++)
  {
  	if(tab_film[i].id_film > ajout_id_film)
  	{
    //on sort de la boucle lorsque le numero saisi est inférieur à au moins un des numeros de la liste
    break;
  	}
  }
  //cas où le numero saisi est superieur à tout les numeros de la liste
  if(i == nb_film)
  {
  	//insertion du numero et du titre à la dernière position de la liste
  	tab_film[i].id_film = ajout_id_film;
  	strcpy(tab_film[i].title_film,ajout_title_film);
  }
  else
  {
  	//cas où le numero saisi est inferieur à au moins un des numeros de la liste
  	for(int j=nb_film ; j>=i ; j--)
  	{//décalage
    tab_film[j+1].id_film = tab_film[j].id_film;
    strcpy(tab_film[j+1].title_film,tab_film[j].title_film);
  	}
  	//ecrasement
  	tab_film[i].id_film = ajout_id_film;
  	strcpy(tab_film[i].title_film,ajout_title_film);
  }
  nb_film++;
 }
   //suppression d'un film
  void emprunt::supprimer(int del_id_film)
 {
  int i=0;
  int k=0;
  
  for(i=0 ; i<=nb_film ; i++)
  {
  	//si le numero saisi est dans la liste
  	if(tab_film[i].id_film == del_id_film)    	{
    //décalage
             for(k=(i+1) ; i<=nb_film ; i++)
              {
              tab_film[k-1].id_film = tab_film[k].id_film;
              strcpy(tab_film[k-1].title_film,tab_film[k].title_film);
              }
             //on supprime le dernier film de la liste (dernier film de la liste en double à cause du décalage)
             nb_film--;
    //on sort de la boucle
    break;
          }
  }
   }
   //recherche d'un film par le n°film dans la liste
 void emprunt::recherche(int num_film)
 {
  int test=0;
  
  for(int i=0 ; i<= nb_film ; i++)
  {
  	//si le numero saisi est dans la liste
  	if(num_film == tab_film[i].id_film)    	{
    test=1;
    cout<<"\nVoici le titre du film cherche: "<<tab_film[i].title_film<<"\n";
    
  	}
  }
  //si le numero saisi n'est pas dans la liste
  if (test==0)
  {
  cout<<"\nLe film n'est pas dans la liste\n";
  }
 }
   //recherche d'un film par le titre dans la liste
 void emprunt::recherche2(char title[25])
 {
  int test=0;
  for(int i=0 ; i< nb_film ; i++)
  {
  	//si le titre saisi est dans la liste
  	if(strcmp(tab_film[i].title_film,title) == 0)
  	{
    test=1;
    cout<<"\nVoici le numero du film cherche: "<<tab_film[i].id_film<<"\n";
      	}
  }
  //si le titre saisi n'est pas dans la liste
  if (test==0)
  {
  cout<<"\nLe film n'est pas dans la liste\n";
  }
 }
     int main()
 {
     //instance de la classe emprunt
     emprunt a;
      int choix;
  int numero;
  char titre[25];
  
  do
  {
  	//menu
  	cout<<"\n1 - Ajout d'un film\n";
  	cout<<"2 - Suppression d'un film\n";
  	cout<<"3 - Recherche d'un film par numero \n";
  	cout<<"4 - Recherche d'un film par titre\n";
  	cout<<"5 - Affichage de la liste des films\n";
  	cout<<"6 - Quitter\n";
  	cout<<"Entrer le chiffre desire : ";
  	cin>>choix;
    	//ajout d'un film
  	if (choix == 1)
  	{
  	cout<<"\nEntrer un numero:";
  	cin>>numero;
  	cout<<"\nEntrer le titre du film:";
  	cin>>titre;
  	a.ajout(numero,titre);
  	}
      	//suppression d'un film
  	if (choix == 2)
  	{
  	cout<<"\nEntrer un numero:";
  	cin>>numero;
  	a.supprimer(numero);
  	}
      	//recherche d'un film par numero
  	if (choix == 3)
  	{
  	cout<<"\nEntrer un numero:";
  	cin>>numero;
  	a.recherche(numero);
  	}
      	//recherche d'un film par titre
  	if (choix == 4)
  	{
  	cout<<"\nEntrer un titre: ";
  	cin>>titre;
  	a.recherche2(titre);
  	}
    	//affichage de la liste des films
  	if (choix == 5)
  	{
  	cout<<"\nVoici la liste des films:\n";
  	a.affiche();
  	}
    //quitter le programme    }while (choix != 6);
  
  return 0;
 }   |