Programmation en java

Fermé
osiris - 19 févr. 2008 à 15:45
 ray_fab - 19 févr. 2008 à 18:54
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("±");
}
}
A voir également:

5 réponses

Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
19 févr. 2008 à 15:49
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 !
0
c-moi Messages postés 81 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 6 juillet 2011 10
19 févr. 2008 à 15:51
Pourquoi faire soi même ce que les autres font très bien ?

Internet - une nouvelle forme d'esclavagisme ?

c-moi, cyniquement votre.
0
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à!!
0
Darkito Messages postés 1191 Date d'inscription vendredi 7 décembre 2007 Statut Membre Dernière intervention 26 mai 2010 545
19 févr. 2008 à 16:16
Ben si t'as pas les capacités, il fallait le refuser.
il faut savoir dire non des fois !
0
sauf ke je n'ai pas le choix!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour il faut poster pas à pas tes fonctions et la nous pourrions t'aider.
au pire si tu veux je pourrais t'aider mais que sur msn par ce que je peux pas lire la totalité de ton programme.
Bon courage.
0