Programmation en java
osiris
-
ray_fab -
ray_fab -
Bonjour,chers internautes!
je viens par le biais du net vous soumettre une recherche dans le but de l'aprondissement de mes commaissances!!
j'ai un prg en C++ que je voudrais traduire en java 5.5.1
et là je sollicite votre aide!
voici le code du programme en question:
//LES DIFFERENTES BIBLIOTHEQUES UTILISEES
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
#include <io.h>
char Fichier[50];
//STRUCTURE DE LA DESCRIPTION D'UN CANDIDAT
struct maillonCdt {
char nom[50];
char prenom[50];
char matrim[50];
char genre[50];
char NumCdt[50]; //clef de recherche des infos relatives a un candidat
maillonCdt *Cdtsuiv;
};
//PROTOTYPES DES DIFFERENTES FONCTIONS
void CreeList(maillonCdt *&ptrTete);
int Verif_NumCdt(maillonCdt *ptrTete,char NouvNum[50]);
void AfficheList(maillonCdt *ptrTete);
void DetruireList(maillonCdt *&ptrTete,char NumCdt[50]);
void AfficheChamp();
void Fenetre(int colonne, int ligne, int large, int longueur, int couleur_fond, int couleur_caractere);
void AfficheMenu();
void GererMenu(maillonCdt *ptrTete,char touche, int position);
void ArrierePlan();
void Enregistrer(maillonCdt *ptrTete);
void ChargerFic(maillonCdt *&ptrTete);
int existFiche(char Fichier[50]);
int Nb,
colonne,
ligne,
large,
longueur,
couleur_fond,
couleur_caractere;
/******************************************************************************
* FONCION PRINCIPALE
*
********************************************************************************/
int main()
{
clrscr(); //efface l'ecran
maillonCdt *ptrTete = NULL;
char touche;
int position;
ArrierePlan();//Appel dela fonction ArrierePlan
AfficheMenu();//Appel dela fonction AfficheeMenu
GererMenu(ptrTete,touche,position);//Appel dela fonction GererMenu
Enregistrer(ptrTete); //appel de la fonction Enregistrer
return 0; //main retourne toujours quelque chose
}
/***************************************************************************
* *
* Cette fonction empeche la saisie de numeros identiques *
* *
***************************************************************************/
int Verif_NumCdt(maillonCdt *ptrTete,char NouvNum[50])
{
int existe = 0, i;
maillonCdt *ptrCandidat;
ptrCandidat = ptrTete;
while(ptrCandidat != NULL)
{
if(strcmpi(ptrCandidat->NumCdt,NouvNum) == 0 )
{
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" DESOLE CE NUMERO EXISTE DEJA!!!";
window(27,41,70,41);
cout<<" RESAISIR UN AUTRE NUMERO ";
existe = 1;
}
ptrCandidat = ptrCandidat->Cdtsuiv; //passage au candidat suivant
}
return existe;//la fonction retourne existe
}
/**************************************************************************
* *
* Fonction permettant la saisie des informations sur un candidat *
* et le chainage dans une liste simplement chainee * *
* *
***************************************************************************/
void CreeList(maillonCdt *&ptrTete)
{
ptrTete = NULL;
int existe,ex;
maillonCdt *ptrCandidat, *C;
char NouvNum[50],Nfic[20], touche;
do{
ptrCandidat = new maillonCdt; //allocation de memoire de facon dynamique
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" LISTE DE CANDIDATURE");
window(36,12,70,14);
textbackground(3);
textcolor(4);
cprintf("SAISIE NUMERO ");
cout<<Nb+1; //compteur sur les numeros de saisie
AfficheChamp(); //appel de la fonction AfficheChamp
//cas du nom
window(39,17,70,17);
gets(ptrCandidat->nom);
//cas du prenom
window(39,21,70,21);
gets(ptrCandidat->prenom);
//cas du genre
window(39,25,70,25);
gets(ptrCandidat->genre);
//cas de lma situation matrimoniale
window(39,29,70,29);
gets(ptrCandidat->matrim); //chainage des elements
do
{
window(39,33,70,33);
cin>>NouvNum; //recupperation du nouveau numero
existe = Verif_NumCdt(ptrTete,NouvNum);
}while(existe);
strcpy(ptrCandidat->NumCdt,NouvNum);
if(ptrTete == NULL)
ptrTete = ptrCandidat;
else
{
C = ptrTete; //parcours de la liste jusqu'a la fin
while(C->Cdtsuiv)
C=C->Cdtsuiv;
C->Cdtsuiv = ptrCandidat; //chainage avec le dernier element
}
ptrCandidat->Cdtsuiv = NULL;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);cout<<" Echap pour terminer la saisie";
window(27,41,70,41);cout<<" Une touche pour continuer";
Nb++;
touche = getch();
Fenetre(25,7,70,44,3,15);
}while(touche != 27);
Enregistrer(ptrTete);//appel de la fonction
//d'enregistrement dans un fichier
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
return ;
}
/****************************************************************************
* *
* Affichage des elements enregistres *
* *
****************************************************************************/
void AfficheList(maillonCdt *ptrTete)
{
maillonCdt *T;
T = ptrTete;
while(T)
{
AfficheChamp(); //appel de la fonction AfficheChamp
window(39,17,70,17);cout<<T->nom;
window(39,21,70,21);cout<<T->prenom;
window(39,25,70,25);cout<<T->genre;
window(39,29,70,29);cout<<T->matrim;
window(39,33,70,33); cout<<T->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Tapez sur <ENTREE> pour passer au Cdt svt";
getch();//stoppe l'affichage de l'element suivant
//et l'affiche des qu'on tape sur <ENTREE>
T = T->Cdtsuiv; //passage au suivant
}
return ;
}
/***************************************************************************
* *
* Suppression d'un element de la liste *
* *
***************************************************************************/
void DetruireList(maillonCdt *&ptrTete,char NumCdt[50])
{
char rep;
maillonCdt *ptrCandidat, *C;
ptrCandidat = ptrTete;
while((ptrCandidat != NULL) && strcmpi(ptrCandidat->NumCdt,NumCdt) != 0)
{
ptrCandidat = ptrCandidat->Cdtsuiv; //on parcours jusqu'… trouv‚ le candidat
//ou jusqu'… la fin de la liste
}
if(stricmp(NumCdt, ptrCandidat->NumCdt)==0) //compare l'egalite des deux champs
{
AfficheChamp(); //appel de la fonction AfficheChamp
window(39,17,70,17);cout<<ptrCandidat->nom;
window(39,21,70,21);cout<<ptrCandidat->prenom;
window(39,25,70,25);cout<<ptrCandidat->genre;
window(39,29,70,29);cout<<ptrCandidat->matrim;
window(39,33,70,33);cout<<ptrCandidat->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Voulez-vous vraiment supprimer ? O/N ";
cin>>rep;
if(toupper(rep) == 'O')//permet de convertir les majuscules en
//en minuscule et vis versa
{
if( ptrCandidat == ptrTete)
{
ptrTete = ptrCandidat->Cdtsuiv;
delete ptrCandidat; //libere l'espace m‚moire allou‚ au candidat supprim‚
}
else
{
C->Cdtsuiv = ptrCandidat->Cdtsuiv; //chainage avec la candidat suivant
delete ptrCandidat;
}
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Suppression effectuee avec succes";
}
}
else
{
Fenetre(25,20,65,30,0,2);
window(41,24,65,28);
cout<<" DESOLE !";
window(27,27,65,28);cout<<"Aucun candidat ne porte ce numero .";
}
return ;
}
/************************************************************************
* Fonction permettant l'enregistrement dans un fichier * *
* *
/************************************************************************/
void Enregistrer(maillonCdt *ptrTete)
{
clrscr();
fstream Fiche;
char touch;
char Fichier[50];
maillonCdt *T=ptrTete;
int ex;
if(T==NULL)
{
gotoxy(10,2);
cout<<"IMPOSSIBLE DE CREER LE FICHIER CAR VOUS N'AVEZ PAS DE LISTE !"<<endl;
}
else
{
gotoxy(14,8);cout<<"Nom du Fichier : ";
cin>>Fichier;
ex=existFiche(Fichier);
if(ex==1)
{
window(35,27,73,28);
cout<<"UN FICHIER PORTE DEJA CE NOM !!!";
}
else
{
Fiche.open(Fichier,ios::out); //ouverture en mode ajout en fin de fichier
while(T != NULL)
{
Fiche<<T->nom<<endl;
Fiche<<T->prenom<<endl;
Fiche<<T->genre<<endl;
Fiche<<T->matrim<<endl;
Fiche<<T->NumCdt<<endl;
T = T->Cdtsuiv; //passage au candidat suivant
}
window(35,27,73,28);
cout<<"ENREGISRE AVEC SUCCES"<<endl;
Fiche.close();//fermeture du fichier
}
cout<<endl;
cin.get(touch);
Fiche.close(); //fermeture du fichier
}
window(31,38,70,41);
cout<<"TAPEZ <TOUCHE> POUR REVENIR AU MENU ";
return;
}
/***********************************************************************
* *
* cette fonction permet d'afficher des champs vides *
* *
***********************************************************************/
void AfficheChamp()
{
//cas du nom
Fenetre(25,16,37,18,15,1);
window(27,17,70,17);
cout<<"NOM ";
//cas du prenom
Fenetre(25,20,37,22,15,1);
window(27,21,70,21);
cout<<"PRENOM ";
//cas du genre
Fenetre(25,24,37,26,15,1);
window(27,25,70,25);
cout<<"GENRE ";
//cas de la situation matrimoniale
Fenetre(25,28,37,30,15,1);
window(27,29,70,29);
cout<<"SITUATø Mle ";
//cas du numero du candidat
Fenetre(25,32,37,34,15,1);
window(27,33,70,33);
cout<<"NUMERO CDT ";
window(27,17,70,17);
}
/*****************************************************************************
* Cette fonction teste l'existance d'un autre fichier du mˆme nom
*
*******************************************************************************/
int existFiche(char Fichier[50])
{
int ex=0;
fstream Fiche;
Fiche.open(Fichier,ios::in);
if(!Fiche.bad())
{
ex = 1;
Fiche.close();
}
return ex;
}
/******************************************************************************
* Cette fonction permet de charger le fichier *
* *
*******************************************************************************/
void ChargerFic(maillonCdt *&ptrTete)
{
fstream Fiche;
maillonCdt *T;
char Fichier[50];
int ex ;
gotoxy(13,7);
cout<<"Nom du Fichier :";
cin>>Fichier;
ex = existFiche(Fichier);
if(ex != 1)
{
window(32,24,70,24);
cout<<"LE FICHIER "<<Fichier<<" N'EXISTE PAS !!!";
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
}
else
{
ptrTete = NULL; //on initialise ptrTete … NULL
T = ptrTete ;
Fiche.open(Fichier,ios::in);//ouverture du fichier en mode lecture
while(!Fiche.eof())
{
T = new maillonCdt ;//allocation de facon dynamique
AfficheChamp();
Fiche>>T->nom;
if(strlen(T->nom) != 0 )
window(39,17,70,17);
cout<<T->nom;
Fiche>>T->prenom;
if(strlen(T->prenom)!=0)
window(39,21,70,21);
cout<<T->prenom;
Fiche>>T->genre;
if(strlen(T->matrim)!=0)
window(39,25,70,25);
cout<<T->genre;
Fiche>>T->matrim;
if(strlen(T->matrim)!=0)
window(39,29,70,29);
cout<<T->matrim;
Fiche>>T->NumCdt;
if(strlen(T->NumCdt)!=0)
window(39,33,70,33);
cout<<T->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
if(strlen(T->nom)!=0 && strlen(T->prenom)!=0 && strlen(T->genre)!=0 && strlen(T->matrim)!=0 && strlen(T->NumCdt)!=0);
{
T->Cdtsuiv=ptrTete;
ptrTete = T;//passage au candidat suivant
}
}
}
Fiche.close(); //fermeture du fichier
return ;
}
/*************************************************************************
* *
* cette fonction permet d' afficher le menu *
* *
*************************************************************************/
void AfficheMenu()
{
int i;
Fenetre(3,3,77,47,15,15);
for(i=5;i<60;i+=5)
{
switch(i)
{
//cas de Creer
case 5:
Fenetre(3,i,16,7,1,15);
window(3,i+1,13,7);
textcolor(4);
cprintf(" C");
textcolor(15);
cprintf("reer");
break;
//cas de afficher
case 10:
Fenetre(3,i,16,12,1,15);
window(3,i+1,22,11);
textcolor(4);
cprintf(" A");
textcolor(15);
cprintf("fficher");
break;
//cas de Detruire
case 15:
Fenetre(3,i,16,17,1,15);
window(3,i+1,22,17);
textcolor(4);
cprintf(" D");
textcolor(15);
cprintf("etruire");
break;
//cas de Creer en Memo(memoire en centrale)
case 20:
Fenetre(3,i,16,22,1,15);
window(3,i+1,22,21);
textcolor(15);
cprintf(" C");
textcolor(4);
cprintf("r");
textcolor(15);
cprintf("eer en Memo");
break;
//cas de Quitter
case 25:
Fenetre(3,i,16,27,1,15);
window(3,i+1,22,27);
textcolor(4);
cprintf(" Q");
textcolor(15);
cprintf("uitter");
break;
}
}
}
/****************************************************************************
* *
* cette fonction permet de gerer le menu *
* *
****************************************************************************/
void GererMenu(maillonCdt *ptrTete,char touche, int position)
{
char NumCdt[50];
int Stop = 0; //initialisation de Stop … 0
position = 5; //initialisation de Stop … 5
do
{
touche = getch();
if(touche == 80 && position <36)
position+=5;
else{
if(touche == 72 && position >5)
position-=5;
else{
if(touche == 80 && position==35)
position=5;
else
{
if(touche == 72 && position==5)
position=35;
else
{
//Gestion des raccourcis clavier
if(touche == 99 || touche == 67)//C ou c
{
position=5;
touche = 13;
}
else
{
if(touche == 97 || touche == 65)//A ou a
{
position=10;
touche = 13;
}
else
{
if(touche == 100 || touche == 68) //D ou d
{
position=15;
touche = 13;
}
else
{
if(touche == 81 || touche == 113) //R ou r
{
position=25;
touche = 13;
}
else
{
if(touche == 82 || touche == 114)//Q ou q
{
position=20;
touche = 13;
}
}
}
}
}
}
}
}
switch(position) //au cas ou il s'agit de la position
{
case 5:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,7);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,7);
cprintf(" C");
textcolor(1);
cprintf("reer");
if(touche == 13)
{
Fenetre(20,5,75,45,3,15);
CreeList(ptrTete); //appel de la fonction CreeList
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Creation De la Liste");
break;
case 10:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,12);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,12);
cprintf(" A");
textcolor(1);
cprintf("fficher");
if(touche == 13)
{
Fenetre(20,5,75,45,3,1);
if(ptrTete == NULL)
{
Fenetre(25,20,70,26,0,15);
window(37,22,75,24);
cprintf(" LA LISTE EST VIDE ");
window(30,24,75,24);
cprintf(" SVP remplissez la liste d'abord ");
}
else
{
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" AFFICHAGE");
AfficheList(ptrTete);//appel de la fonction AfficheList
}
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Affichage des elements de la liste");
break;
case 15:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,17);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,17);
cprintf(" D");
textcolor(1);
cprintf("etruire");
if(touche == 13)
{
Fenetre(20,5,75,45,3,1);
if(ptrTete == NULL)
{
Fenetre(25,20,70,26,0,15);
window(37,22,75,24);
cprintf(" LA FICHE EST VIDE ");
window(30,24,75,24);
cprintf(" SVP remplissez la fiche d'abord ");
}
else
{
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" SUPPRESSION D'ELEMENTS");
window(25,12,75,12);
cout<<"Entrer le numero du candidat ";
Fenetre(63,11,70,13,0,15);
window(64,12,70,12);
cin>>NumCdt;
DetruireList(ptrTete,NumCdt);//appel de la fonction DtruireListe
unlink(Fichier);
}
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Suppression d'elements");
break;
case 20:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,22);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,22);
cprintf(" C");
textcolor(1);
cprintf("reer en Memo");
if(touche == 13)
{
Fenetre(20,5,75,45,3,15);
ChargerFic(ptrTete);//appel de la fonction ChargerFic
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Creation De la Liste en Memoire centrale");
break;
case 25:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,27);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,27);
cprintf(" Q");
textcolor(1);
cprintf("uitter");
if(touche == 13)
Stop = 1;
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Quitter l'application");
break;
}
}
}while(Stop != 1);
}
/****************************************************************************
* cette fontion permet de creer une fenˆtre
*
****************************************************************************/
void Fenetre(int colonne, int ligne, int large, int longueur, int couleur_fond, int couleur_caractere)
{
window(colonne,ligne,large,longueur);
textbackground(couleur_fond);
textcolor(couleur_caractere);
clrscr();
}
/**************************************************************************
* *
* cette fonction permet de traiter l'arriere plan *
* *
***************************************************************************/
void ArrierePlan()
{
int i;
for(i = 0; i< 50;i++)
{
window(1,i,1,i+1);
cprintf("±");
}
for(i = 0; i< 50;i++)
{
window(80,i,80,i+1);
cprintf("±");
}
for(i = 1; i< 80;i++)
{
window(i,1,80,50);
cprintf("±");
}
for(i = 1; i< 81;i++)
{
window(i,50,80,50);
cprintf("±");
}
}
je viens par le biais du net vous soumettre une recherche dans le but de l'aprondissement de mes commaissances!!
j'ai un prg en C++ que je voudrais traduire en java 5.5.1
et là je sollicite votre aide!
voici le code du programme en question:
//LES DIFFERENTES BIBLIOTHEQUES UTILISEES
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
#include <io.h>
char Fichier[50];
//STRUCTURE DE LA DESCRIPTION D'UN CANDIDAT
struct maillonCdt {
char nom[50];
char prenom[50];
char matrim[50];
char genre[50];
char NumCdt[50]; //clef de recherche des infos relatives a un candidat
maillonCdt *Cdtsuiv;
};
//PROTOTYPES DES DIFFERENTES FONCTIONS
void CreeList(maillonCdt *&ptrTete);
int Verif_NumCdt(maillonCdt *ptrTete,char NouvNum[50]);
void AfficheList(maillonCdt *ptrTete);
void DetruireList(maillonCdt *&ptrTete,char NumCdt[50]);
void AfficheChamp();
void Fenetre(int colonne, int ligne, int large, int longueur, int couleur_fond, int couleur_caractere);
void AfficheMenu();
void GererMenu(maillonCdt *ptrTete,char touche, int position);
void ArrierePlan();
void Enregistrer(maillonCdt *ptrTete);
void ChargerFic(maillonCdt *&ptrTete);
int existFiche(char Fichier[50]);
int Nb,
colonne,
ligne,
large,
longueur,
couleur_fond,
couleur_caractere;
/******************************************************************************
* FONCION PRINCIPALE
*
********************************************************************************/
int main()
{
clrscr(); //efface l'ecran
maillonCdt *ptrTete = NULL;
char touche;
int position;
ArrierePlan();//Appel dela fonction ArrierePlan
AfficheMenu();//Appel dela fonction AfficheeMenu
GererMenu(ptrTete,touche,position);//Appel dela fonction GererMenu
Enregistrer(ptrTete); //appel de la fonction Enregistrer
return 0; //main retourne toujours quelque chose
}
/***************************************************************************
* *
* Cette fonction empeche la saisie de numeros identiques *
* *
***************************************************************************/
int Verif_NumCdt(maillonCdt *ptrTete,char NouvNum[50])
{
int existe = 0, i;
maillonCdt *ptrCandidat;
ptrCandidat = ptrTete;
while(ptrCandidat != NULL)
{
if(strcmpi(ptrCandidat->NumCdt,NouvNum) == 0 )
{
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" DESOLE CE NUMERO EXISTE DEJA!!!";
window(27,41,70,41);
cout<<" RESAISIR UN AUTRE NUMERO ";
existe = 1;
}
ptrCandidat = ptrCandidat->Cdtsuiv; //passage au candidat suivant
}
return existe;//la fonction retourne existe
}
/**************************************************************************
* *
* Fonction permettant la saisie des informations sur un candidat *
* et le chainage dans une liste simplement chainee * *
* *
***************************************************************************/
void CreeList(maillonCdt *&ptrTete)
{
ptrTete = NULL;
int existe,ex;
maillonCdt *ptrCandidat, *C;
char NouvNum[50],Nfic[20], touche;
do{
ptrCandidat = new maillonCdt; //allocation de memoire de facon dynamique
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" LISTE DE CANDIDATURE");
window(36,12,70,14);
textbackground(3);
textcolor(4);
cprintf("SAISIE NUMERO ");
cout<<Nb+1; //compteur sur les numeros de saisie
AfficheChamp(); //appel de la fonction AfficheChamp
//cas du nom
window(39,17,70,17);
gets(ptrCandidat->nom);
//cas du prenom
window(39,21,70,21);
gets(ptrCandidat->prenom);
//cas du genre
window(39,25,70,25);
gets(ptrCandidat->genre);
//cas de lma situation matrimoniale
window(39,29,70,29);
gets(ptrCandidat->matrim); //chainage des elements
do
{
window(39,33,70,33);
cin>>NouvNum; //recupperation du nouveau numero
existe = Verif_NumCdt(ptrTete,NouvNum);
}while(existe);
strcpy(ptrCandidat->NumCdt,NouvNum);
if(ptrTete == NULL)
ptrTete = ptrCandidat;
else
{
C = ptrTete; //parcours de la liste jusqu'a la fin
while(C->Cdtsuiv)
C=C->Cdtsuiv;
C->Cdtsuiv = ptrCandidat; //chainage avec le dernier element
}
ptrCandidat->Cdtsuiv = NULL;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);cout<<" Echap pour terminer la saisie";
window(27,41,70,41);cout<<" Une touche pour continuer";
Nb++;
touche = getch();
Fenetre(25,7,70,44,3,15);
}while(touche != 27);
Enregistrer(ptrTete);//appel de la fonction
//d'enregistrement dans un fichier
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
return ;
}
/****************************************************************************
* *
* Affichage des elements enregistres *
* *
****************************************************************************/
void AfficheList(maillonCdt *ptrTete)
{
maillonCdt *T;
T = ptrTete;
while(T)
{
AfficheChamp(); //appel de la fonction AfficheChamp
window(39,17,70,17);cout<<T->nom;
window(39,21,70,21);cout<<T->prenom;
window(39,25,70,25);cout<<T->genre;
window(39,29,70,29);cout<<T->matrim;
window(39,33,70,33); cout<<T->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Tapez sur <ENTREE> pour passer au Cdt svt";
getch();//stoppe l'affichage de l'element suivant
//et l'affiche des qu'on tape sur <ENTREE>
T = T->Cdtsuiv; //passage au suivant
}
return ;
}
/***************************************************************************
* *
* Suppression d'un element de la liste *
* *
***************************************************************************/
void DetruireList(maillonCdt *&ptrTete,char NumCdt[50])
{
char rep;
maillonCdt *ptrCandidat, *C;
ptrCandidat = ptrTete;
while((ptrCandidat != NULL) && strcmpi(ptrCandidat->NumCdt,NumCdt) != 0)
{
ptrCandidat = ptrCandidat->Cdtsuiv; //on parcours jusqu'… trouv‚ le candidat
//ou jusqu'… la fin de la liste
}
if(stricmp(NumCdt, ptrCandidat->NumCdt)==0) //compare l'egalite des deux champs
{
AfficheChamp(); //appel de la fonction AfficheChamp
window(39,17,70,17);cout<<ptrCandidat->nom;
window(39,21,70,21);cout<<ptrCandidat->prenom;
window(39,25,70,25);cout<<ptrCandidat->genre;
window(39,29,70,29);cout<<ptrCandidat->matrim;
window(39,33,70,33);cout<<ptrCandidat->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Voulez-vous vraiment supprimer ? O/N ";
cin>>rep;
if(toupper(rep) == 'O')//permet de convertir les majuscules en
//en minuscule et vis versa
{
if( ptrCandidat == ptrTete)
{
ptrTete = ptrCandidat->Cdtsuiv;
delete ptrCandidat; //libere l'espace m‚moire allou‚ au candidat supprim‚
}
else
{
C->Cdtsuiv = ptrCandidat->Cdtsuiv; //chainage avec la candidat suivant
delete ptrCandidat;
}
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" Suppression effectuee avec succes";
}
}
else
{
Fenetre(25,20,65,30,0,2);
window(41,24,65,28);
cout<<" DESOLE !";
window(27,27,65,28);cout<<"Aucun candidat ne porte ce numero .";
}
return ;
}
/************************************************************************
* Fonction permettant l'enregistrement dans un fichier * *
* *
/************************************************************************/
void Enregistrer(maillonCdt *ptrTete)
{
clrscr();
fstream Fiche;
char touch;
char Fichier[50];
maillonCdt *T=ptrTete;
int ex;
if(T==NULL)
{
gotoxy(10,2);
cout<<"IMPOSSIBLE DE CREER LE FICHIER CAR VOUS N'AVEZ PAS DE LISTE !"<<endl;
}
else
{
gotoxy(14,8);cout<<"Nom du Fichier : ";
cin>>Fichier;
ex=existFiche(Fichier);
if(ex==1)
{
window(35,27,73,28);
cout<<"UN FICHIER PORTE DEJA CE NOM !!!";
}
else
{
Fiche.open(Fichier,ios::out); //ouverture en mode ajout en fin de fichier
while(T != NULL)
{
Fiche<<T->nom<<endl;
Fiche<<T->prenom<<endl;
Fiche<<T->genre<<endl;
Fiche<<T->matrim<<endl;
Fiche<<T->NumCdt<<endl;
T = T->Cdtsuiv; //passage au candidat suivant
}
window(35,27,73,28);
cout<<"ENREGISRE AVEC SUCCES"<<endl;
Fiche.close();//fermeture du fichier
}
cout<<endl;
cin.get(touch);
Fiche.close(); //fermeture du fichier
}
window(31,38,70,41);
cout<<"TAPEZ <TOUCHE> POUR REVENIR AU MENU ";
return;
}
/***********************************************************************
* *
* cette fonction permet d'afficher des champs vides *
* *
***********************************************************************/
void AfficheChamp()
{
//cas du nom
Fenetre(25,16,37,18,15,1);
window(27,17,70,17);
cout<<"NOM ";
//cas du prenom
Fenetre(25,20,37,22,15,1);
window(27,21,70,21);
cout<<"PRENOM ";
//cas du genre
Fenetre(25,24,37,26,15,1);
window(27,25,70,25);
cout<<"GENRE ";
//cas de la situation matrimoniale
Fenetre(25,28,37,30,15,1);
window(27,29,70,29);
cout<<"SITUATø Mle ";
//cas du numero du candidat
Fenetre(25,32,37,34,15,1);
window(27,33,70,33);
cout<<"NUMERO CDT ";
window(27,17,70,17);
}
/*****************************************************************************
* Cette fonction teste l'existance d'un autre fichier du mˆme nom
*
*******************************************************************************/
int existFiche(char Fichier[50])
{
int ex=0;
fstream Fiche;
Fiche.open(Fichier,ios::in);
if(!Fiche.bad())
{
ex = 1;
Fiche.close();
}
return ex;
}
/******************************************************************************
* Cette fonction permet de charger le fichier *
* *
*******************************************************************************/
void ChargerFic(maillonCdt *&ptrTete)
{
fstream Fiche;
maillonCdt *T;
char Fichier[50];
int ex ;
gotoxy(13,7);
cout<<"Nom du Fichier :";
cin>>Fichier;
ex = existFiche(Fichier);
if(ex != 1)
{
window(32,24,70,24);
cout<<"LE FICHIER "<<Fichier<<" N'EXISTE PAS !!!";
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
}
else
{
ptrTete = NULL; //on initialise ptrTete … NULL
T = ptrTete ;
Fiche.open(Fichier,ios::in);//ouverture du fichier en mode lecture
while(!Fiche.eof())
{
T = new maillonCdt ;//allocation de facon dynamique
AfficheChamp();
Fiche>>T->nom;
if(strlen(T->nom) != 0 )
window(39,17,70,17);
cout<<T->nom;
Fiche>>T->prenom;
if(strlen(T->prenom)!=0)
window(39,21,70,21);
cout<<T->prenom;
Fiche>>T->genre;
if(strlen(T->matrim)!=0)
window(39,25,70,25);
cout<<T->genre;
Fiche>>T->matrim;
if(strlen(T->matrim)!=0)
window(39,29,70,29);
cout<<T->matrim;
Fiche>>T->NumCdt;
if(strlen(T->NumCdt)!=0)
window(39,33,70,33);
cout<<T->NumCdt;
Fenetre(25,37,70,42,2,1);
window(27,39,70,39);
cout<<" TAPEZ <ENTRER> POUR LE SUIVANT!!!";
window(27,41,70,41);
cout<<" TAPER <TOUCHE> POUR REVENIR AU MENU ";
if(strlen(T->nom)!=0 && strlen(T->prenom)!=0 && strlen(T->genre)!=0 && strlen(T->matrim)!=0 && strlen(T->NumCdt)!=0);
{
T->Cdtsuiv=ptrTete;
ptrTete = T;//passage au candidat suivant
}
}
}
Fiche.close(); //fermeture du fichier
return ;
}
/*************************************************************************
* *
* cette fonction permet d' afficher le menu *
* *
*************************************************************************/
void AfficheMenu()
{
int i;
Fenetre(3,3,77,47,15,15);
for(i=5;i<60;i+=5)
{
switch(i)
{
//cas de Creer
case 5:
Fenetre(3,i,16,7,1,15);
window(3,i+1,13,7);
textcolor(4);
cprintf(" C");
textcolor(15);
cprintf("reer");
break;
//cas de afficher
case 10:
Fenetre(3,i,16,12,1,15);
window(3,i+1,22,11);
textcolor(4);
cprintf(" A");
textcolor(15);
cprintf("fficher");
break;
//cas de Detruire
case 15:
Fenetre(3,i,16,17,1,15);
window(3,i+1,22,17);
textcolor(4);
cprintf(" D");
textcolor(15);
cprintf("etruire");
break;
//cas de Creer en Memo(memoire en centrale)
case 20:
Fenetre(3,i,16,22,1,15);
window(3,i+1,22,21);
textcolor(15);
cprintf(" C");
textcolor(4);
cprintf("r");
textcolor(15);
cprintf("eer en Memo");
break;
//cas de Quitter
case 25:
Fenetre(3,i,16,27,1,15);
window(3,i+1,22,27);
textcolor(4);
cprintf(" Q");
textcolor(15);
cprintf("uitter");
break;
}
}
}
/****************************************************************************
* *
* cette fonction permet de gerer le menu *
* *
****************************************************************************/
void GererMenu(maillonCdt *ptrTete,char touche, int position)
{
char NumCdt[50];
int Stop = 0; //initialisation de Stop … 0
position = 5; //initialisation de Stop … 5
do
{
touche = getch();
if(touche == 80 && position <36)
position+=5;
else{
if(touche == 72 && position >5)
position-=5;
else{
if(touche == 80 && position==35)
position=5;
else
{
if(touche == 72 && position==5)
position=35;
else
{
//Gestion des raccourcis clavier
if(touche == 99 || touche == 67)//C ou c
{
position=5;
touche = 13;
}
else
{
if(touche == 97 || touche == 65)//A ou a
{
position=10;
touche = 13;
}
else
{
if(touche == 100 || touche == 68) //D ou d
{
position=15;
touche = 13;
}
else
{
if(touche == 81 || touche == 113) //R ou r
{
position=25;
touche = 13;
}
else
{
if(touche == 82 || touche == 114)//Q ou q
{
position=20;
touche = 13;
}
}
}
}
}
}
}
}
switch(position) //au cas ou il s'agit de la position
{
case 5:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,7);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,7);
cprintf(" C");
textcolor(1);
cprintf("reer");
if(touche == 13)
{
Fenetre(20,5,75,45,3,15);
CreeList(ptrTete); //appel de la fonction CreeList
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Creation De la Liste");
break;
case 10:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,12);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,12);
cprintf(" A");
textcolor(1);
cprintf("fficher");
if(touche == 13)
{
Fenetre(20,5,75,45,3,1);
if(ptrTete == NULL)
{
Fenetre(25,20,70,26,0,15);
window(37,22,75,24);
cprintf(" LA LISTE EST VIDE ");
window(30,24,75,24);
cprintf(" SVP remplissez la liste d'abord ");
}
else
{
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" AFFICHAGE");
AfficheList(ptrTete);//appel de la fonction AfficheList
}
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Affichage des elements de la liste");
break;
case 15:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,17);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,17);
cprintf(" D");
textcolor(1);
cprintf("etruire");
if(touche == 13)
{
Fenetre(20,5,75,45,3,1);
if(ptrTete == NULL)
{
Fenetre(25,20,70,26,0,15);
window(37,22,75,24);
cprintf(" LA FICHE EST VIDE ");
window(30,24,75,24);
cprintf(" SVP remplissez la fiche d'abord ");
}
else
{
Fenetre(25,7,70,9,0,15);
window(37,8,70,8);
cprintf(" SUPPRESSION D'ELEMENTS");
window(25,12,75,12);
cout<<"Entrer le numero du candidat ";
Fenetre(63,11,70,13,0,15);
window(64,12,70,12);
cin>>NumCdt;
DetruireList(ptrTete,NumCdt);//appel de la fonction DtruireListe
unlink(Fichier);
}
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Suppression d'elements");
break;
case 20:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,22);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,22);
cprintf(" C");
textcolor(1);
cprintf("reer en Memo");
if(touche == 13)
{
Fenetre(20,5,75,45,3,15);
ChargerFic(ptrTete);//appel de la fonction ChargerFic
}
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Creation De la Liste en Memoire centrale");
break;
case 25:
AfficheMenu();//appel de la fonction AfficheMenu
window(3,position,16,27);
textbackground(4);
textcolor(15);
clrscr();
window(3,position+1,16,27);
cprintf(" Q");
textcolor(1);
cprintf("uitter");
if(touche == 13)
Stop = 1;
Fenetre(10,45,70,47,15,0);
window(12,46,70,47);
cprintf("Quitter l'application");
break;
}
}
}while(Stop != 1);
}
/****************************************************************************
* cette fontion permet de creer une fenˆtre
*
****************************************************************************/
void Fenetre(int colonne, int ligne, int large, int longueur, int couleur_fond, int couleur_caractere)
{
window(colonne,ligne,large,longueur);
textbackground(couleur_fond);
textcolor(couleur_caractere);
clrscr();
}
/**************************************************************************
* *
* cette fonction permet de traiter l'arriere plan *
* *
***************************************************************************/
void ArrierePlan()
{
int i;
for(i = 0; i< 50;i++)
{
window(1,i,1,i+1);
cprintf("±");
}
for(i = 0; i< 50;i++)
{
window(80,i,80,i+1);
cprintf("±");
}
for(i = 1; i< 80;i++)
{
window(i,1,80,50);
cprintf("±");
}
for(i = 1; i< 81;i++)
{
window(i,50,80,50);
cprintf("±");
}
}
A voir également:
- Programmation en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
Si tu avais un problème avec une ou deux fonctions on pourrait t'aider... mais là, c'est limite si tu ne te moques pas de nous !
Pourquoi faire soi même ce que les autres font très bien ?
Internet - une nouvelle forme d'esclavagisme ?
c-moi, cyniquement votre.
Internet - une nouvelle forme d'esclavagisme ?
c-moi, cyniquement votre.
au faite c'est un job ki m'est été demandé mais malheureusement j'ai à peine fait java!!
et là le job m'est urgent!! c'est por celà!!
et là le job m'est urgent!! c'est por celà!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question