-
دیکشنریاش بیان تو
و بدين صورت بهمین سادگی ! به همین خوشمزگی !
اينم برنامه ديکشنري
البته اگه ميخايند تو فايلم ذخيره کنه يکم کار ميبره ولي خوبيش اينه که خيلي سادس
ببخشيد اگه بد خط نوشتم !!!؟؟؟
راستی اگه مشکلم دارم تو برنامه اساتید عزیزم بگید تا درستش کنم !!! قربان همه
کد:
#include<iostream.h>
#include <conio.h>
#include<string.h>
/********************************* Class Word *******************************/
class Word
{
public:
Word() { Next=NULL; }
char English[30];
char Farsi[30];
Word *Next;
};
/****************************** Class ArrayList *******************************/
class ArrayList
{
public:
ArrayList() { Head=NULL; Address1=NULL; Address2=NULL; }
void Add(char *,char *);
int Del(char ,char *);
int Search(char ,char *);
void Show(void);
char En[30],Fa[30];
private:
Word *Head;
Word *Address1;
Word *Address2;
};
///////////////////////////// ArrayList::Add /////////////////////////////////
void ArrayList::Add(char *en,char *fa)
{
Word *Temp=new(Word);
strcpy(Temp->English,en);
strcpy(Temp->Farsi,fa);
Temp->Next=Head;
Head=Temp;
}
///////////////////////////// ArrayList::Del /////////////////////////////////
int ArrayList::Del(char ef,char *word)
{
if( Search(ef,word) )
{
Word *Temp=new(Word);
Temp=Address1;
if(Address2)
Address2->Next=Address1->Next;
else
Head=Temp->Next;
delete Temp;
return 1;
}// if search was not found
return 0;
}
///////////////////////////// ArrayList::Search /////////////////////////////////
int ArrayList::Search(char ef,char *str)
{
Word *Temp=new Word;
Temp=Head;
Address2=NULL;
while(Temp)
{
Address1=Temp;
if(ef=='e' && !strcmp(Temp->English,str) )
{
strcpy(En,Temp->English);
strcpy(Fa,Temp->Farsi);
return 1;
}
if(ef=='f' && !strcmp(Temp->Farsi,str) )
{
strcpy(En,Temp->English);
strcpy(Fa,Temp->Farsi);
return 1;
}
Address2=Temp;
Temp=Temp->Next;
} // while Temp
return 0;
}
///////////////////////////// ArrayList::Show /////////////////////////////////
void ArrayList::Show(void)
{
Word *Temp=new(Word);
Temp=Head;
cout<<"\n\n =========================== ";
while( Temp!=NULL )
{
cout<<"\n English: "<<Temp->English;
cout<<" Farsi:"<<Temp->Farsi;
cout<<"\n --------------------------";
Temp=Temp->Next;
}
cout<<"\n\n =========================== ";
delete Temp;
getch();
}
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
char Detect(void)
{
int i;
do{
clrscr();
cout<<"\n 1) English ";
cout<<"\n 2) Farsi";
cout<<"\n\n Make your chice: ";
cin>>i;
switch(i)
{
case 1: return 'e';
case 2:return 'f';
}
}while(1);
}
//////////////////////////////////// Main() ///////////////////////////////////
void main(void)
{
int i;
char en[30];
char fa[30];
ArrayList Dic;
do{
clrscr();
cout<<"\n 1) Add Item ";
cout<<"\n 2) Delete Item";
cout<<"\n 3) Search";
cout<<"\n 4) Show All";
cout<<"\n 5) Exit";
cout<<"\n\n Make Your Choice: ";
cin>>i;
switch(i)
{
case 1:
clrscr();
cout<<"\n\n Please enter an English word: ";
cin>>en;
cout<<"\n\n Please enter its Farsi meaning: ";
cin>>fa;
Dic.Add(en,fa);
break;
case 2:
clrscr();
cout<<"\n\n Please enter the word you want to delete :";
cin>>en;
if(Dic.Del(Detect(),en))
cout<<"\n\n One item deleted !!! ";
else
cout<<"\n\n The word was not found !!! ";
break;
case 3:
clrscr();
cout<<"\n\n Please enter the word you want to search :";
cin>>en;
if( Dic.Search(Detect(),en) )
{
cout<<"\n\n Finding word is success !!! \n";
cout<<"\n The English word : "<<Dic.En;
cout<<"\n The Farsi word :"<<Dic.Fa;
}
else
cout<<"\n\n The word was not found !!! ";
getch();
break;
case 4:
clrscr();
Dic.Show();
break;
}// switch
}while(i!=5);
}