المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : c++ help me ..


malak54
2016-01-22, 11:03
salam , svp fahmoni fi program ta3 c++ lien par lien et mrc :)




///////////
#include <iostream>
#include <string>
using namespace std;
struct element {
string mot_eng ;
string mot_fr ;
element *suivant ;
} ;

struct text {
string mot ;
text *suivant ;
} ;

element * creer_dictionnaire(){
element *p, *Q,*tete ;
Q=new(element) ; Q->mot_eng="begin" ; Q->mot_fr="debut" ; Q->suivant=NULL ; p=Q; tete=Q;
Q=new(element) ; Q->mot_eng="do" ; Q->mot_fr="faire" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="else" ; Q->mot_fr="sinon" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="end" ; Q->mot_fr="fin" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="false" ; Q->mot_fr="faux" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="for" ; Q->mot_fr="pour" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="if" ; Q->mot_fr="si" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="read" ; Q->mot_fr="lire" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="then" ; Q->mot_fr="alors" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="true" ; Q->mot_fr="vrai" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="while" ; Q->mot_fr="tant que" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
Q=new(element) ; Q->mot_eng="write" ; Q->mot_fr="ecrire" ; Q->suivant=NULL ; p->suivant=Q ;p=Q;
return tete ;
} //1..............enrichir plus votre dictionnaire SVP
int traduction(){
char n;
cout<<"1: anglais -> francais ."<<endl;
cout<<"2: francais -> anglais ."<<endl;
cout<<"Choisissez la direction du traduction,svp"<<endl;
cout<<"entrez '1' ou bien '2' :";
cin>>n;
while ((n!='1')&&(n!='2')){
cout<<"Ereure!!! ,vous devez entrez soit '1' ou bien '2' "<<endl;
cout<<"re_ecrit ici votre choix : ";
cin>>n;
}
return n;
}

text *ecrire_text(){ /*2..............Les séparateurs sont: un blanc, une virgule, point virgule ou point. Vous devez donc prendre en considération les autres séparateurs*/


cout<<"votre texte doit se terminer avec un ' * ' "<<endl;
cout<<"____ecrire ici votre texte : _____________________________________"<<endl;
string mot;
text *p=NULL,*tete=NULL,*q;
cin>>mot;
p=new(text);
p->mot=mot;
p->suivant=NULL;
tete=p;
while (p->mot!="*")
{
cin>>mot;
q=new(text);
q->mot=mot;
q->suivant=NULL;
p->suivant=q;
p=q;
}
return tete;
}

string recherche_traduction(int langue,element *l,string mot){
string synonyme=mot;
bool trouve=false;
element *p=l;
if (langue=='1'){
while ((p!=NULL)&&(trouve==false)){
if (p->mot_eng==mot){
synonyme=p->mot_fr;
trouve= true;
}
p=p->suivant;
}
}
else{
while ((p!=NULL)&&(trouve==false)){
if (p->mot_fr==mot){
synonyme=p->mot_eng;
trouve= true;
}
p=p->suivant;
}
}
return synonyme;
}

text *traduire(char langue,element *dictionnaire,text *l){
text *p=NULL,*tete=NULL,*q;
string mot,m;
while (l!=NULL)
{
m=l->mot;
mot= recherche_traduction(langue,dictionnaire,m);
q=new(text);
q->mot=mot;
q->suivant=NULL;
if (tete !=NULL)
p->suivant=q;
else
tete=q;
p=q;
l=l->suivant;
}
return tete;
}

void afficher_dictionnaire(element *L){
element *First =L ;
while(First !=NULL)
{
cout<<First->mot_eng<<" : " ;
cout<<First->mot_fr<<endl ;
First=First->suivant ;
}
}

void Afficher_text(text *L){
text *First =L ;
while(First !=NULL)
{
cout<<First->mot<<" ";
First=First->suivant ;
}
}
//******* la recherche d'un mot dans le dictionnaire**********
bool recherche (element *l,string mot){
element *p=l;
bool trouve=false;
while ((p!=NULL)&&(trouve==false)){
if ((p->mot_eng==mot)||(p->mot_fr==mot)){
trouve= true;
}
p=p->suivant;
}
return trouve;
}

element *ajoute(element *l,char langue){
string mot;
cout<<"entrez le mot que vous voulez ajouter , svp : ";
cin>>mot;
if (recherche(l,mot)==true){
cout<<"le mot que vous avez composer existe deja dans le dictionaire !"<<endl;
}
else{
element *q;
q=new(element);
if(langue=='1'){
q->mot_eng=mot;
cout<<"entrez sa traduction en francais, svp! : ";
cin>>mot;
q->mot_fr=mot;}
else{
q->mot_fr=mot;
cout<<"entrez sa traduction en englais, svp! : ";
cin>>mot;
q->mot_eng=mot;
}
q->suivant=l;
l=q;
cout<<"****** votre mot a ete ajoute correctement ****** "<<endl;
}
return l;
}

element *supprimer(element *l){
string mot;
cout<<"Svp , entrez le mot que vous voulez supprimer : ";
cin>>mot;
if ((l->mot_eng==mot)||(l->mot_fr==mot)){
l=l->suivant;
}
else{
element *p=l,*q=p;
bool trouve=false;
p=p->suivant;
while ((trouve==false)&&(p!=NULL)){
if ((p->mot_eng==mot)||(p->mot_fr==mot)){
q->suivant=p->suivant;
delete(p);
trouve=true;
}
else{
q=p;
p=p->suivant;
}
}
}
return l;
}

int main() {
char n,langue;
element *dictionnaire;
dictionnaire=creer_dictionnaire() ;
langue=traduction();
cout<<"Voulez-vous traduire un texte (si oui entrez '1' sinon entrez '0') : ";
cin>>n;
while ((n!='0')&&(n!='1')){
cout<<"Ereure!!! ,vous devez entrez soit '0' ou bien '1' "<<endl;
cout<<"re_ecrit ici votre choix : ";
cin>>n;
}
if(n=='1'){
text *txt ,*txt2;
txt=ecrire_text();
txt2=traduire(langue,dictionnaire,txt);
cout<<"______traduction:_________________________________ __________"<<endl;
Afficher_text(txt2);
}
cout<<"Voulez-vous ajouter un mot au dictionnaire (si oui entrez '1' sinon entrez '0') : ";
cin>>n;
while ((n!='0')&&(n!='1')){
cout<<"Erreure!!! ,vous devez entrez soit '0' ou bien '1' "<<endl;
cout<<"re_ecrit ici votre choix : ";
cin>>n;
}
if(n=='1'){
ajoute(dictionnaire,langue);
/* 3..............pour mieux monter l'ajout et la suppression: tu peut afficher les mots de dictionnaire après insertion et suppression par ordre alphabétique*/
}
cout<<"Voulez-vous supprimer un mot du dictionnaire (si oui entrez '1' sinon entrez '0') : ";
cin>>n;
while ((n!='0')&&(n!='1')){
cout<<"Erreure!!! ,vous devez entrez soit '0' ou bien '1' "<<endl;
cout<<"re_ecrit ici votre choix : ";
cin>>n;
}
if(n=='1'){
supprimer(dictionnaire);
}
}

nana47
2016-01-22, 15:41
slm
il faut toujour faire des effort pour comprendre un code et j'aime bien que vous allez apprendre quelque chose de ma reponse


http://up.top4top.net/downloadf-21ztlz1-zip.html (http://up.top4top.net/downloadf-21ztlz1-zip.html)


les explications sont de genre commentaire c dans le fichier .c dedant
bn courage

malak54
2016-01-23, 12:01
Mrc :) :) :)

nana47
2016-02-07, 13:46
Mrc :) :) :)
2r1 je spere que j'ai t'aide :)