Accueil > > > GESTION DE CD AVEC SAUVEGARDE DES DONNÉES
GESTION DE CD AVEC SAUVEGARDE DES DONNÉES
Information sur la source
Description
Cette application permet de gérer des CD et aussi que lors de sa fermeture sauvegarde les données dans CD.dll et lors de son ouverture les lit.
Source
- #include <iostream.h> // Cout, cin, cerr ... (les flux)
- #include <conio.h> // Pour textcolor();textbackground();...
- #include <conio.c> // Le même pour Dev-C++
- #include <fstream.h> // Pour ifstream et ofstream (fichier)
- #include <stdlib.h> // Pour system("pause");...
- #include <string.h> // Manipulation des chaînes de caractères
- #include <stdio.h>
-
-
- struct gestioncd
- {
- char nom[100+1];
- char desc[100+1];
- char end[100+1];
- int qte;
- };
-
- gestioncd cd[1000+1];
- int nbr=0;
- int fal=0;
-
- char tnom[100+1];
- char tdesc[100+1];
- char tend[100+1];
- int tqte;
-
- int cherche(char rdchaine[],char chainear[])
- {
- int nbchainear=0;
- for (int i=0;chainear[i]!='\0';i++){nbchainear++;}
- int nbrdchaine=0;
- for (int i=0;rdchaine[i]!='\0';i++){nbrdchaine++;}
- if (nbchainear>nbrdchaine){return 0;}
- int y=0;
- for (int x=0;x<nbrdchaine;x++)
- {
- if (rdchaine[x]==chainear[y]){y++;}
- else
- {
- if (y==nbchainear){return 1;}
- else {y=0;}
- }
- }
- if (y!=nbchainear){return 0;}
- }
-
- int recup()
- {
- ifstream fichiero("CD.dll");
- if (!fichiero){return 0;}
- char verif[5000+1];
- double verif2;
- fichiero >> verif;
- if (strcmp(verif,"Gestion")!=0){return 0;}
- fichiero >> verif;
- if (strcmp(verif,"CD")!=0){return 0;}
- fichiero >> verif;
- if (strcmp(verif,"version")!=0){return 0;}
- fichiero >> verif2;
- if (verif2!=1.0){return 0;}
- fichiero >> nbr;
- for (int i=0;i<nbr;i++)
- {
- fichiero >> verif;
-
- if (strcmp(verif,"eNOMe")!=0){return 0;}
-
- cd[i].nom[0]='\0';
-
- for (;strcmp(verif,"eDESCe")!=0;)
- {
-
- fichiero >> verif;
-
- if (strcmp(verif,"eDESCe")!=0 && strcmp(verif,"eNULLe")!=0)
- {
- strcat(cd[i].nom,verif);
- strcat(cd[i].nom," ");
- }
-
- }
-
- if (strcmp(verif,"eDESCe")!=0){return 0;}
-
- cd[i].desc[0]='\0';
-
- for (;strcmp(verif,"eENDe")!=0;)
- {
-
- fichiero >> verif;
-
- if (strcmp(verif,"eENDe")!=0 && strcmp(verif,"eNULLe")!=0)
- {
- strcat(cd[i].desc,verif);
- strcat(cd[i].desc," ");
- }
-
- }
-
- if (strcmp(verif,"eENDe")!=0){return 0;}
-
- cd[i].end[0]='\0';
-
- for (;strcmp(verif,"eQTEe")!=0;)
- {
-
- fichiero >> verif;
-
- if (strcmp(verif,"eQTEe")!=0 && strcmp(verif,"eNULLe")!=0)
- {
- strcat(cd[i].end,verif);
- strcat(cd[i].end," ");
- }
-
- }
-
- if (strcmp(verif,"eQTEe")!=0){return 0;}
-
- fichiero >> cd[i].qte;
-
- }
- fichiero >> verif;
- if (strcmp(verif,"eFINe")!=0){return 0;}
- fichiero.close();
- return 1;
- }
-
- int sauv()
- {
- remove("CD.dll");
- ofstream fichiers("CD.dll");
- if (!fichiers){return 0;}
- fichiers << "Gestion CD version 1.0 " << nbr << " ";
- for (int i=0;i<nbr;i++)
- {
- fichiers << "eNOMe ";
- if (cd[i].nom[0]=='\0'){fichiers << "eNULLe ";}
- else {fichiers << cd[i].nom << " ";}
- fichiers << "eDESCe ";
- if (cd[i].desc[0]=='\0'){fichiers << "eNULLe ";}
- else {fichiers << cd[i].desc << " ";}
- fichiers << "eENDe ";
- if (cd[i].end[0]=='\0'){fichiers << "eNULLe ";}
- else {fichiers << cd[i].end << " ";}
- fichiers << "eQTEe ";
- fichiers << cd[i].qte << " ";
- }
- fichiers << "eFINe";
- fichiers.close();
- return 1;
- }
-
- int c=1;int b=15;
-
- int trouv(char couleur[100],int *varia)
- {
- if (strcmp(couleur,"bleu")==0)
- {
- clrscr();
- cout << "\n\nBleu comment ?\n\n\t- Fonce (f)\n\t- Clair (c)\n\t- Flash (l)\n\t- Turquoise (t)\n\n\t\tVotre choix : ";
- char choix;
- cin >> choix;
- if (choix=='f' || choix=='c' || choix=='t' || choix=='l')
- {
- if (choix=='f')*varia=1;
- if (choix=='c')*varia=9;
- if (choix=='t')*varia=3;
- if (choix=='l')*varia=11;
- return 1;
- }
- else cout << "Mauvais choix !";return 0;
- }
-
- if (strcmp(couleur,"blanc")==0){*varia=15;return 1;}
-
- if (strcmp(couleur,"vert")==0){
- clrscr();
- cout << "\n\nVert comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\t- Kaki (k)\n\n\t\tVotre choix : ";
- char choix;cin >> choix;
- if (choix=='c'||choix=='f'||choix=='k'){if (choix=='c'){*varia=10;}if (choix=='f'){*varia=2;}if (choix=='k'){*varia=6;}return 1;
- }
- else {cout << "Mauvais choix !";return 0;}
- }
-
- if (strcmp(couleur,"rouge")==0)
- {
- clrscr();
- cout << "\n\nRouge comment ?\n\n\t- Rouge (r)\n\t- Bordeau (b)\n\n\t\tVotre choix : ";
- char choix;cin >> choix;
- if (choix=='r'||choix=='b'){if (choix=='r') *varia=12;else *varia=4;return 1;}
- else {cout << "Mauvais choix !";return 0;}
- }
-
- if (strcmp(couleur,"violet")==0){
- clrscr();
- cout << "\n\nViolet comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\n\t\tVotre choix : ";
- char choix;cin >> choix;
- if (choix=='c'||choix=='f'){if (choix=='c') *varia=13;else *varia=5;return 1;}
- else {cout << "Mauvais choix !";return 0;}
- }
-
-
- if (strcmp(couleur,"gris")==0)
- {
- clrscr();
- cout << "\n\nGris comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\n\t\tVotre choix : ";
- char choix;cin >> choix;
- if (choix=='c'||choix=='f'){if (choix=='c') *varia=7;else *varia=8;return 1;}
- else {cout << "Mauvais choix !";return 0;}
- }
-
- if (strcmp(couleur,"jaune")==0){*varia=14;return 1;}
- if (strcmp(couleur,"noir")==0){*varia=0;return 1;}
- }
-
- void couleur()
- {
- clrscr();
- gotoxy(10,3);
- char couleur[100];
- int trouve=0;
- while (!trouve)
- {clrscr();
- cout << "\n\n\tEntrez la couleur du texte : ";
- cin.getline(couleur,sizeof(couleur));
- trouve = trouv(couleur,&c);
- }
- trouve=0;
- while (!trouve)
- {clrscr();
- cout << "\n\n\tEntrez la couleur du fond : ";
- cin.getline(couleur,sizeof(couleur));
- trouve = trouv(couleur,&b);
- }
- }
-
- void ajoutcd()
- {
- cout << flush;
- clrscr();
- if (nbr>(sizeof(cd)-1)){cout << "\n\n\n\tNombre maximal de CD depase !\n\n\n\tAppuyer sur une touche pour revenir au menu";system("pause>nul");return;}
- cout << "\n\nEntrez le titre du cd numero " << nbr <<" : ";
- cin.getline(tnom,sizeof(tnom));
- cout << "\n\nEntrez sa description : ";
- cin.getline(tdesc,sizeof(tdesc)-1);
- cout << "\n\nEntrez son endroit de rangement : ";
- cin.getline(tend,sizeof(tend)-1);
- cout << "\n\nEntrez la quantite : ";
- cin >> tqte;
- char debug[1+1];cin.getline(debug,sizeof(debug));
- if (cin.fail()){cin.clear();fal=1;}
- clrscr();
- cout << "\n\n\tVoici les informations :\n\nNumero du CD : " << nbr;
- cout << "\n\nNom : " << tnom;
- cout << "\n\nDescription : " << tdesc;
- cout << "\n\nEndroit de rangement : " << tend;
- cout << "\n\nQuantite : " << tqte;
- cout << "\n\n\nAppuyez sur \"o\" ou \"O\" puis sur entrer pour confirmer sinon Entrer.";
- textcolor(b);char choix[1+1];cin.getline(choix,sizeof(choix));textcolor(c);
- if (choix[0]=='o' || choix[0]=='O')
- {
- strcpy(cd[nbr].nom,tnom);
- strcpy(cd[nbr].desc,tdesc);
- strcpy(cd[nbr].end,tend);
- cd[nbr].qte=tqte;
- nbr++;
- }
- cout << flush;
- tnom[0]='\0';
- tdesc[0]='\0';
- tend[0]='\0';
- tqte=0;
- }
-
- void voircd()
- {
- clrscr();
- if (nbr==0)
- {
- gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
- cout << "Appuyez sur une touche pour revenir au menu.";
- system("pause>nul");
- return;
- }
- cout << "VOICI LA LISTE DES CD :\n\n";
- int limit=0;
- for (int i=0;i<nbr;i++,limit++)
- {
- if (limit>15)
- {
- cout <<"\n\nAppuyez sur une touche pour voir la suite";
- system("pause>nul");
- clrscr();
- cout <<"VOICI LA LISTE DES CD (suite):\n\n";
- limit=0;
- }
- cout << "Nom du CD numero "<<i<<" : "<<cd[i].nom<<endl;
- }
- cout << "\n\nAppuyez sur une touche pour retourner au menu.";
- system("pause>nul");
- return;
- }
-
- void voirnumero()
- {
- clrscr();
- if (nbr==0)
- {
- gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
- cout << "Appuyez sur une touche pour revenir au menu.";
- system("pause>nul");
- return;
- }
- cout << "\n\n\nEntrez le numero : ";int num;cin >> num;char debug[1+1];cin.getline(debug,sizeof(debug));fal=0;
- if (cin.fail()){cin.clear();fal=1;}
- if (num>=nbr)
- {
- gotoxy(10,5);cout << "\n\nCE CD N\'EXISTE PAS !\n\n\n";
- cout << "Appuyez sur une touche pour revenir au menu.";
- system("pause>nul");
- return;
- }
- clrscr();
- cout << "\n\n\tVoici les informations :\n\nNumero du CD : " << num;
- cout << "\n\nNom : " << cd[num].nom;
- cout << "\n\nDescription : " << cd[num].desc;
- cout << "\n\nEndroit de rangement : " << cd[num].end;
- cout << "\n\nQuantite : " << cd[num].qte;
- cout << "\n\n\nAppuyez sur une touche pour retourner au menu.";
- system("pause>nul");
- }
-
- void modifnum()
- {
- clrscr();
- if (nbr==0)
- {
- gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
- cout << "Appuyez sur une touche pour revenir au menu.";
- system("pause>nul");
- return;
- }
- cout << "\n\n\nEntrez le numero du CD a modifier : ";
- int num;cin >> num;char debug[1+1];cin.getline(debug,sizeof(debug));
- fal=0;if (cin.fail()){cin.clear();fal=1;}
- if (num>=nbr)
- {
- gotoxy(10,5);cout << "\n\nCE CD N\'EXISTE PAS !\n\n\n";
- cout << "Appuyez sur une touche pour revenir au menu.";
- system("pause>nul");
- return;
- }
- clrscr();
- cout << "Entrez les informations concernant le CD a modifier.\n";
- cout << "Si le champ est vide il sera considere comme inchange\n";
- cout << "Sauf pour la quantitee qui est obligatoire !\n\n";
- cout << "\n\nEntrez le titre du cd numero " << num <<" : ";
- cin.getline(tnom,sizeof(tnom));
- cout << "\n\nEntrez sa description : ";
- cin.getline(tdesc,sizeof(tdesc)-1);
- cout << "\n\nEntrez son endroit de rangement : ";
- cin.getline(tend,sizeof(tend)-1);
- cout << "\n\nEntrez la quantite : ";
- cin >> tqte;cin.getline(debug,sizeof(debug));
- fal=0;if (cin.fail()){cin.clear();fal=1;}
- clrscr();
- cout << "\n\n\tVoici les informations change sur le CD numero : " << num;
- cout << "\n";
- if (tnom[0]!='\0')cout << "\n\nNom : " << tnom;
- if (tdesc[0]!='\0')cout << "\n\nDescription : " << tdesc;
- if (tend[0]!='\0')cout << "\n\nEndroit de rangement : " << tend;
- cout << "\n\nQuantite : " << tqte;
- cout << "\n\n\nAppuyez sur \"o\" ou \"O\" puis sur entrer pour confirmer sinon Entrer.";
- textcolor(b);
- char choix[1+1];cin.getline(choix,sizeof(choix));textcolor(c);
- if (choix[0]=='o' || choix[0]=='O')
- {
- if (tnom[0]!='\0')strcpy(cd[num].nom,tnom);
- if (tdesc[0]!='\0')strcpy(cd[num].desc,tdesc);
- if (tend[0]!='\0')strcpy(cd[num].end,tend);
- cd[num].qte=tqte;
- }
- cout << flush;
- tnom[0]='\0';
- tdesc[0]='\0';
- tend[0]='\0';
- tqte=0;
- }
-
- void supp()
- {
- nbr=0;
- }
-
- void rech()
- {
- clrscr();
- char bb[100+1];
- cout << "\n\n\n\nEntrez le mot ou le morceau de mot a rechercher : ";
- cin.getline(bb,sizeof(bb));
- int nbfois=0;
- for (int i=0;i<nbr;i++)
- {
- int result=cherche(cd[i].nom,bb);
- if (result)
- {
- if (!nbfois)
- {
- clrscr();cout << "\tRESULTAT DE LA RECHERCHE : \n\n" ;nbfois++;
- }
-
- if (nbfois>=15)
- {
- cout << "\n\nAppuyez sur une touche pour la suite...";
- system("pause>nul");clrscr();
- cout << "\tRESULTAT DE LA RECHERCHE (suite)";nbfois=1;
- }
-
- cout << "Num\x82ro : " << i << "\tnom : " << cd[i].nom << endl;
-
- }
- }
-
- if (!nbfois)
- {
- cout << "\n\n\nAUCUN OBJET TROUVE !\n\n";
- }
-
- cout << "Appuyez sur une touche pour retourner au menu";
- system("pause>nul");
- }
-
- int main()
- {
- int succes;
- succes=recup();
- if (!succes){textcolor(12);textbackground(15);clrscr();cout << "Erreur dans la recuperation des donnees !";system("pause>nul");}
- while(1)
- {
- succes=sauv();
- if (!succes){textcolor(12);textbackground(15);clrscr();cout << "Erreur dans la sauvegarde des donnees !";system("pause>nul");}
- fal=0;if (cin.fail()){cin.clear();fal=1;}
- textcolor(c);textbackground(b);clrscr();
- cout << "\n\n\tBienvenu dans le programme de gestion de CD\n\n\n";
- cout << "\tQue voulez-vous faire ?\n";
- cout << "\n\t\t- Ajouter un CD (a)(A)";
- cout << "\n\t\t- Voir un cd avec le numero (n)ou(N)";
- cout << "\n\t\t- Voir tous les CD (v)ou(V)";
- cout << "\n\t\t- Modifier un CD avec le numero (m)ou(M)";
- cout << "\n\t\t- Supprimer toute les donnees (s) ou (S)";
- cout << "\n\t\t- Rechercher parmi les noms (r) ou (R)";
- cout << "\n\t\t- Changer la couleur de fond et du texte (c)ou(C)";
- cout << "\n\t\t- Quitter (q)(Q)";
- cout << "\n\n\t\t\tVotre choix : ";
- char choix[1+1];cin.getline(choix,sizeof(choix));
- switch (choix[0])
- {
- case 'r' :
- case 'R' : rech();break;
- case 's' :
- case 'S' : supp();break;
- case 'm' :
- case 'M' : modifnum();break;
- case 'n' :
- case 'N' : voirnumero();break;
- case 'v' :
- case 'V' : voircd();break;
- case 'A' :
- case 'a' : ajoutcd();break;
- case 'C' :
- case 'c' : couleur();break;
- case 'q' :
- case 'Q' : return 0;
- default : cout << "\n\nMauvais choix !\n\nAppuyez sur une touche pour retaper le choix";system("pause>nul");break;
- }
- }
- }
#include <iostream.h> // Cout, cin, cerr ... (les flux)
#include <conio.h> // Pour textcolor();textbackground();...
#include <conio.c> // Le même pour Dev-C++
#include <fstream.h> // Pour ifstream et ofstream (fichier)
#include <stdlib.h> // Pour system("pause");...
#include <string.h> // Manipulation des chaînes de caractères
#include <stdio.h>
struct gestioncd
{
char nom[100+1];
char desc[100+1];
char end[100+1];
int qte;
};
gestioncd cd[1000+1];
int nbr=0;
int fal=0;
char tnom[100+1];
char tdesc[100+1];
char tend[100+1];
int tqte;
int cherche(char rdchaine[],char chainear[])
{
int nbchainear=0;
for (int i=0;chainear[i]!='\0';i++){nbchainear++;}
int nbrdchaine=0;
for (int i=0;rdchaine[i]!='\0';i++){nbrdchaine++;}
if (nbchainear>nbrdchaine){return 0;}
int y=0;
for (int x=0;x<nbrdchaine;x++)
{
if (rdchaine[x]==chainear[y]){y++;}
else
{
if (y==nbchainear){return 1;}
else {y=0;}
}
}
if (y!=nbchainear){return 0;}
}
int recup()
{
ifstream fichiero("CD.dll");
if (!fichiero){return 0;}
char verif[5000+1];
double verif2;
fichiero >> verif;
if (strcmp(verif,"Gestion")!=0){return 0;}
fichiero >> verif;
if (strcmp(verif,"CD")!=0){return 0;}
fichiero >> verif;
if (strcmp(verif,"version")!=0){return 0;}
fichiero >> verif2;
if (verif2!=1.0){return 0;}
fichiero >> nbr;
for (int i=0;i<nbr;i++)
{
fichiero >> verif;
if (strcmp(verif,"eNOMe")!=0){return 0;}
cd[i].nom[0]='\0';
for (;strcmp(verif,"eDESCe")!=0;)
{
fichiero >> verif;
if (strcmp(verif,"eDESCe")!=0 && strcmp(verif,"eNULLe")!=0)
{
strcat(cd[i].nom,verif);
strcat(cd[i].nom," ");
}
}
if (strcmp(verif,"eDESCe")!=0){return 0;}
cd[i].desc[0]='\0';
for (;strcmp(verif,"eENDe")!=0;)
{
fichiero >> verif;
if (strcmp(verif,"eENDe")!=0 && strcmp(verif,"eNULLe")!=0)
{
strcat(cd[i].desc,verif);
strcat(cd[i].desc," ");
}
}
if (strcmp(verif,"eENDe")!=0){return 0;}
cd[i].end[0]='\0';
for (;strcmp(verif,"eQTEe")!=0;)
{
fichiero >> verif;
if (strcmp(verif,"eQTEe")!=0 && strcmp(verif,"eNULLe")!=0)
{
strcat(cd[i].end,verif);
strcat(cd[i].end," ");
}
}
if (strcmp(verif,"eQTEe")!=0){return 0;}
fichiero >> cd[i].qte;
}
fichiero >> verif;
if (strcmp(verif,"eFINe")!=0){return 0;}
fichiero.close();
return 1;
}
int sauv()
{
remove("CD.dll");
ofstream fichiers("CD.dll");
if (!fichiers){return 0;}
fichiers << "Gestion CD version 1.0 " << nbr << " ";
for (int i=0;i<nbr;i++)
{
fichiers << "eNOMe ";
if (cd[i].nom[0]=='\0'){fichiers << "eNULLe ";}
else {fichiers << cd[i].nom << " ";}
fichiers << "eDESCe ";
if (cd[i].desc[0]=='\0'){fichiers << "eNULLe ";}
else {fichiers << cd[i].desc << " ";}
fichiers << "eENDe ";
if (cd[i].end[0]=='\0'){fichiers << "eNULLe ";}
else {fichiers << cd[i].end << " ";}
fichiers << "eQTEe ";
fichiers << cd[i].qte << " ";
}
fichiers << "eFINe";
fichiers.close();
return 1;
}
int c=1;int b=15;
int trouv(char couleur[100],int *varia)
{
if (strcmp(couleur,"bleu")==0)
{
clrscr();
cout << "\n\nBleu comment ?\n\n\t- Fonce (f)\n\t- Clair (c)\n\t- Flash (l)\n\t- Turquoise (t)\n\n\t\tVotre choix : ";
char choix;
cin >> choix;
if (choix=='f' || choix=='c' || choix=='t' || choix=='l')
{
if (choix=='f')*varia=1;
if (choix=='c')*varia=9;
if (choix=='t')*varia=3;
if (choix=='l')*varia=11;
return 1;
}
else cout << "Mauvais choix !";return 0;
}
if (strcmp(couleur,"blanc")==0){*varia=15;return 1;}
if (strcmp(couleur,"vert")==0){
clrscr();
cout << "\n\nVert comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\t- Kaki (k)\n\n\t\tVotre choix : ";
char choix;cin >> choix;
if (choix=='c'||choix=='f'||choix=='k'){if (choix=='c'){*varia=10;}if (choix=='f'){*varia=2;}if (choix=='k'){*varia=6;}return 1;
}
else {cout << "Mauvais choix !";return 0;}
}
if (strcmp(couleur,"rouge")==0)
{
clrscr();
cout << "\n\nRouge comment ?\n\n\t- Rouge (r)\n\t- Bordeau (b)\n\n\t\tVotre choix : ";
char choix;cin >> choix;
if (choix=='r'||choix=='b'){if (choix=='r') *varia=12;else *varia=4;return 1;}
else {cout << "Mauvais choix !";return 0;}
}
if (strcmp(couleur,"violet")==0){
clrscr();
cout << "\n\nViolet comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\n\t\tVotre choix : ";
char choix;cin >> choix;
if (choix=='c'||choix=='f'){if (choix=='c') *varia=13;else *varia=5;return 1;}
else {cout << "Mauvais choix !";return 0;}
}
if (strcmp(couleur,"gris")==0)
{
clrscr();
cout << "\n\nGris comment ?\n\n\t- Clair (c)\n\t- Fonce (f)\n\n\t\tVotre choix : ";
char choix;cin >> choix;
if (choix=='c'||choix=='f'){if (choix=='c') *varia=7;else *varia=8;return 1;}
else {cout << "Mauvais choix !";return 0;}
}
if (strcmp(couleur,"jaune")==0){*varia=14;return 1;}
if (strcmp(couleur,"noir")==0){*varia=0;return 1;}
}
void couleur()
{
clrscr();
gotoxy(10,3);
char couleur[100];
int trouve=0;
while (!trouve)
{clrscr();
cout << "\n\n\tEntrez la couleur du texte : ";
cin.getline(couleur,sizeof(couleur));
trouve = trouv(couleur,&c);
}
trouve=0;
while (!trouve)
{clrscr();
cout << "\n\n\tEntrez la couleur du fond : ";
cin.getline(couleur,sizeof(couleur));
trouve = trouv(couleur,&b);
}
}
void ajoutcd()
{
cout << flush;
clrscr();
if (nbr>(sizeof(cd)-1)){cout << "\n\n\n\tNombre maximal de CD depase !\n\n\n\tAppuyer sur une touche pour revenir au menu";system("pause>nul");return;}
cout << "\n\nEntrez le titre du cd numero " << nbr <<" : ";
cin.getline(tnom,sizeof(tnom));
cout << "\n\nEntrez sa description : ";
cin.getline(tdesc,sizeof(tdesc)-1);
cout << "\n\nEntrez son endroit de rangement : ";
cin.getline(tend,sizeof(tend)-1);
cout << "\n\nEntrez la quantite : ";
cin >> tqte;
char debug[1+1];cin.getline(debug,sizeof(debug));
if (cin.fail()){cin.clear();fal=1;}
clrscr();
cout << "\n\n\tVoici les informations :\n\nNumero du CD : " << nbr;
cout << "\n\nNom : " << tnom;
cout << "\n\nDescription : " << tdesc;
cout << "\n\nEndroit de rangement : " << tend;
cout << "\n\nQuantite : " << tqte;
cout << "\n\n\nAppuyez sur \"o\" ou \"O\" puis sur entrer pour confirmer sinon Entrer.";
textcolor(b);char choix[1+1];cin.getline(choix,sizeof(choix));textcolor(c);
if (choix[0]=='o' || choix[0]=='O')
{
strcpy(cd[nbr].nom,tnom);
strcpy(cd[nbr].desc,tdesc);
strcpy(cd[nbr].end,tend);
cd[nbr].qte=tqte;
nbr++;
}
cout << flush;
tnom[0]='\0';
tdesc[0]='\0';
tend[0]='\0';
tqte=0;
}
void voircd()
{
clrscr();
if (nbr==0)
{
gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
cout << "Appuyez sur une touche pour revenir au menu.";
system("pause>nul");
return;
}
cout << "VOICI LA LISTE DES CD :\n\n";
int limit=0;
for (int i=0;i<nbr;i++,limit++)
{
if (limit>15)
{
cout <<"\n\nAppuyez sur une touche pour voir la suite";
system("pause>nul");
clrscr();
cout <<"VOICI LA LISTE DES CD (suite):\n\n";
limit=0;
}
cout << "Nom du CD numero "<<i<<" : "<<cd[i].nom<<endl;
}
cout << "\n\nAppuyez sur une touche pour retourner au menu.";
system("pause>nul");
return;
}
void voirnumero()
{
clrscr();
if (nbr==0)
{
gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
cout << "Appuyez sur une touche pour revenir au menu.";
system("pause>nul");
return;
}
cout << "\n\n\nEntrez le numero : ";int num;cin >> num;char debug[1+1];cin.getline(debug,sizeof(debug));fal=0;
if (cin.fail()){cin.clear();fal=1;}
if (num>=nbr)
{
gotoxy(10,5);cout << "\n\nCE CD N\'EXISTE PAS !\n\n\n";
cout << "Appuyez sur une touche pour revenir au menu.";
system("pause>nul");
return;
}
clrscr();
cout << "\n\n\tVoici les informations :\n\nNumero du CD : " << num;
cout << "\n\nNom : " << cd[num].nom;
cout << "\n\nDescription : " << cd[num].desc;
cout << "\n\nEndroit de rangement : " << cd[num].end;
cout << "\n\nQuantite : " << cd[num].qte;
cout << "\n\n\nAppuyez sur une touche pour retourner au menu.";
system("pause>nul");
}
void modifnum()
{
clrscr();
if (nbr==0)
{
gotoxy(10,5);cout << "AUCUN CD ENREGISTRE !\n\n\n";
cout << "Appuyez sur une touche pour revenir au menu.";
system("pause>nul");
return;
}
cout << "\n\n\nEntrez le numero du CD a modifier : ";
int num;cin >> num;char debug[1+1];cin.getline(debug,sizeof(debug));
fal=0;if (cin.fail()){cin.clear();fal=1;}
if (num>=nbr)
{
gotoxy(10,5);cout << "\n\nCE CD N\'EXISTE PAS !\n\n\n";
cout << "Appuyez sur une touche pour revenir au menu.";
system("pause>nul");
return;
}
clrscr();
cout << "Entrez les informations concernant le CD a modifier.\n";
cout << "Si le champ est vide il sera considere comme inchange\n";
cout << "Sauf pour la quantitee qui est obligatoire !\n\n";
cout << "\n\nEntrez le titre du cd numero " << num <<" : ";
cin.getline(tnom,sizeof(tnom));
cout << "\n\nEntrez sa description : ";
cin.getline(tdesc,sizeof(tdesc)-1);
cout << "\n\nEntrez son endroit de rangement : ";
cin.getline(tend,sizeof(tend)-1);
cout << "\n\nEntrez la quantite : ";
cin >> tqte;cin.getline(debug,sizeof(debug));
fal=0;if (cin.fail()){cin.clear();fal=1;}
clrscr();
cout << "\n\n\tVoici les informations change sur le CD numero : " << num;
cout << "\n";
if (tnom[0]!='\0')cout << "\n\nNom : " << tnom;
if (tdesc[0]!='\0')cout << "\n\nDescription : " << tdesc;
if (tend[0]!='\0')cout << "\n\nEndroit de rangement : " << tend;
cout << "\n\nQuantite : " << tqte;
cout << "\n\n\nAppuyez sur \"o\" ou \"O\" puis sur entrer pour confirmer sinon Entrer.";
textcolor(b);
char choix[1+1];cin.getline(choix,sizeof(choix));textcolor(c);
if (choix[0]=='o' || choix[0]=='O')
{
if (tnom[0]!='\0')strcpy(cd[num].nom,tnom);
if (tdesc[0]!='\0')strcpy(cd[num].desc,tdesc);
if (tend[0]!='\0')strcpy(cd[num].end,tend);
cd[num].qte=tqte;
}
cout << flush;
tnom[0]='\0';
tdesc[0]='\0';
tend[0]='\0';
tqte=0;
}
void supp()
{
nbr=0;
}
void rech()
{
clrscr();
char bb[100+1];
cout << "\n\n\n\nEntrez le mot ou le morceau de mot a rechercher : ";
cin.getline(bb,sizeof(bb));
int nbfois=0;
for (int i=0;i<nbr;i++)
{
int result=cherche(cd[i].nom,bb);
if (result)
{
if (!nbfois)
{
clrscr();cout << "\tRESULTAT DE LA RECHERCHE : \n\n" ;nbfois++;
}
if (nbfois>=15)
{
cout << "\n\nAppuyez sur une touche pour la suite...";
system("pause>nul");clrscr();
cout << "\tRESULTAT DE LA RECHERCHE (suite)";nbfois=1;
}
cout << "Num\x82ro : " << i << "\tnom : " << cd[i].nom << endl;
}
}
if (!nbfois)
{
cout << "\n\n\nAUCUN OBJET TROUVE !\n\n";
}
cout << "Appuyez sur une touche pour retourner au menu";
system("pause>nul");
}
int main()
{
int succes;
succes=recup();
if (!succes){textcolor(12);textbackground(15);clrscr();cout << "Erreur dans la recuperation des donnees !";system("pause>nul");}
while(1)
{
succes=sauv();
if (!succes){textcolor(12);textbackground(15);clrscr();cout << "Erreur dans la sauvegarde des donnees !";system("pause>nul");}
fal=0;if (cin.fail()){cin.clear();fal=1;}
textcolor(c);textbackground(b);clrscr();
cout << "\n\n\tBienvenu dans le programme de gestion de CD\n\n\n";
cout << "\tQue voulez-vous faire ?\n";
cout << "\n\t\t- Ajouter un CD (a)(A)";
cout << "\n\t\t- Voir un cd avec le numero (n)ou(N)";
cout << "\n\t\t- Voir tous les CD (v)ou(V)";
cout << "\n\t\t- Modifier un CD avec le numero (m)ou(M)";
cout << "\n\t\t- Supprimer toute les donnees (s) ou (S)";
cout << "\n\t\t- Rechercher parmi les noms (r) ou (R)";
cout << "\n\t\t- Changer la couleur de fond et du texte (c)ou(C)";
cout << "\n\t\t- Quitter (q)(Q)";
cout << "\n\n\t\t\tVotre choix : ";
char choix[1+1];cin.getline(choix,sizeof(choix));
switch (choix[0])
{
case 'r' :
case 'R' : rech();break;
case 's' :
case 'S' : supp();break;
case 'm' :
case 'M' : modifnum();break;
case 'n' :
case 'N' : voirnumero();break;
case 'v' :
case 'V' : voircd();break;
case 'A' :
case 'a' : ajoutcd();break;
case 'C' :
case 'c' : couleur();break;
case 'q' :
case 'Q' : return 0;
default : cout << "\n\nMauvais choix !\n\nAppuyez sur une touche pour retaper le choix";system("pause>nul");break;
}
}
}
Conclusion
Bonjour ceci est ma première source alors un peu d'indulgence.
Cette application est fonctionnelle et sans bug connu. Si vous décelez un bug merci de m'en avertir par mail à webmaster@jscv.com
Cette application permet de gérer des CD et aussi que lors de sa fermeture sauvegarde les données dans CD.dll et lors de son ouverture les lit. Donc si vous voulez gérer vos CD c'est idéal vu que les donnés sont toujours conservées et que si vous ne supprimez pas les données vous pouvez par exemple continuer le lendemain à faire l'invetaire.
Compilé et testé sous Dev-C++
Amusez-vous bien !
Vous pouvez aussi visiter mon site www.victorlogiciels.com
Coasne Victor (13 1/2 ans au moment de la source) 15 ans
-------------------------------------
HISTO RIQUE DES MODIFICATIONS :
Vendredi 4 Juin 2004 -> Ajout du module de recherche dans les noms.
-------------------------------------
Me rci de donner votre note ainsi que mettre vos commentaires !!!
Historique
- 01 février 2005 19:03:22 :
- 24 juin 2005 23:39:48 :
- Modif age
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|