PDA

View Full Version : حرفه ای: برنامه تبدیل عدد به حروف



poriab
یک شنبه 01 خرداد 1390, 20:32 عصر
سلام. این برنامه اش هست
هر کاری کردم نفهمیدم چطوری هست ! الگوریتمش رو بلدم توضیح کد ها را مختصر بگید ممنون می شم دوستان برنامه نویس


#include<iostream.h>

int main()
{
int sadwt=0, dahwt=0 , milwt=0 , wt=0;
int num=0;
int mil=0, hez=0, n=0, m;
int t;
int g=0;
cout<<"Please enter your number:"<<endl;
cin>>num;
// t=tedad(num);
int back=num;
int sad=0, dah=0, yek=0;
cout<<endl;
if(num==0)
{
cout<<"sefr";
}
if(num>999999)
{

num=num/1000000;
m=num;
n=m;
if(num>99)
{
num=num/100;
switch(num)
{
case 1 : cout<<"yek sad "; sad=1; break;
case 2 : cout<<"devist "; sad=2; break;
case 3 : cout<<"sisad "; sad=3; break;
case 4 : cout<<"chaharsad "; sad=4; break;
case 5 : cout<<"pansad "; sad=5; break;
case 6 : cout<<"sheshsad "; sad=6; break;
case 7 : cout<<"haftsad "; sad=7; break;
case 8 : cout<<"hashtsad "; sad=8; break;
case 9 : cout<<"nohsad "; sad=9; break;
}
sadwt=1;
num=m;
}
if(num>10)
{
num=num-(sad*100);
if(sadwt==1)
{
sadwt=0;
cout<<"va ";
}
switch(num)
{
case 10 : cout<<"dah "; dah=1; yek=0; break;
case 11 : cout<<"yazdah "; dah=1; yek=1; break;
case 12 : cout<<"davazdah "; dah=1; yek=2; break;
case 13 : cout<<"sizdah "; dah=1; yek=3; break;
case 14 : cout<<"chahardah "; dah=1; yek=4; break;
case 15 : cout<<"panzdah "; dah=1; yek=5; break;
case 16 : cout<<"shanzdah "; dah=1; yek=6; break;
case 17 : cout<<"hefdah "; dah=1; yek=7; break;
case 18 : cout<<"hejdah "; dah=1; yek=8; break;
case 19 : cout<<"noozdah "; dah=1; yek=9; break;
}
int x=num;
num=num/10;
switch(num)
{
case 2 : cout<<"bist "; dah=2; break;
case 3 : cout<<"si "; dah=3; break;
case 4 : cout<<"chehel "; dah=4; break;
case 5 : cout<<"panjah "; dah=5; break;
case 6 : cout<<"shast "; dah=6; break;
case 7 : cout<<"haftad "; dah=7; break;
case 8 : cout<<"hashtad "; dah=8; break;
case 9 : cout<<"navad "; dah=9; break;
}
dahwt=1;
num=x-(dah*10);
}
if(dah!=1)
{
if(dahwt==1)
{
dahwt=0;
cout<<"va ";
}
switch(num)
{
case 1 : cout<<"yek "; yek=1; break;
case 2 : cout<<"do "; yek=2; break;
case 3 : cout<<"se "; yek=3; break;
case 4 : cout<<"chahar "; yek=4; break;
case 5 : cout<<"panj "; yek=5; break;
case 6 : cout<<"shesh "; yek=6; break;
case 7 : cout<<"haft "; yek=7; break;
case 8 : cout<<"hasht "; yek=8; break;
case 9 : cout<<"noh "; yek=9; break;
}
}
g=(sad*100)+(dah*10)+yek;
if(g!=0)
{
cout<<"Milion ";
}
milwt=1;
g=0;
}
num=back-((sad*100000000)+(dah*10000000)+(yek*1000000));
m=num;
sad=0;
dah=0;
yek=0;
//cout<<m;
back=num;
//cout<<back;
int b=back;
if(num>999)
{
if(milwt==1)
{
milwt=0;
cout<<"va ";
}
num=num/1000;
m=num;
if(num>99)
{
num=num/100;
switch(num)
{
case 1 : cout<<"yek sad "; sad=1; break;
case 2 : cout<<"devist "; sad=2; break;
case 3 : cout<<"sisad "; sad=3; break;
case 4 : cout<<"chaharsad "; sad=4; break;
case 5 : cout<<"pansad "; sad=5; break;
case 6 : cout<<"sheshsad "; sad=6; break;
case 7 : cout<<"haftsad "; sad=7; break;
case 8 : cout<<"hashtsad "; sad=8; break;
case 9 : cout<<"nohsad "; sad=9; break;
}
sadwt=1;
num=m;
}
if(num>10)
{
num=num-(sad*100);
if(sadwt==1)
{
sadwt=0;
cout<<"va ";
}
switch(num)
{
case 10 : cout<<"dah "; dah=1; yek=0; break;
case 11 : cout<<"yazdah "; dah=1; yek=1; break;
case 12 : cout<<"davazdah "; dah=1; yek=2; break;
case 13 : cout<<"sizdah "; dah=1; yek=3; break;
case 14 : cout<<"chahardah "; dah=1; yek=4; break;
case 15 : cout<<"panzdah "; dah=1; yek=5; break;
case 16 : cout<<"shanzdah "; dah=1; yek=6; break;
case 17 : cout<<"hefdah "; dah=1; yek=7; break;
case 18 : cout<<"hejdah "; dah=1; yek=8; break;
case 19 : cout<<"noozdah "; dah=1; yek=9; break;
}
int x=num;
num=num/10;
switch(num)
{
case 2 : cout<<"bist "; dah=2; break;
case 3 : cout<<"si "; dah=3; break;
case 4 : cout<<"chehel "; dah=4; break;
case 5 : cout<<"panjah "; dah=5; break;
case 6 : cout<<"shast "; dah=6; break;
case 7 : cout<<"haftad "; dah=7; break;
case 8 : cout<<"hashtad "; dah=8; break;
case 9 : cout<<"navad "; dah=9; break;
}
dahwt=1;
num=x-(dah*10);
}
if(dah!=1)
{
if(dahwt==1)
{
dahwt=0;
cout<<"va ";
}
switch(num)
{
case 1 : cout<<"yek "; yek=1; break;
case 2 : cout<<"do "; yek=2; break;
case 3 : cout<<"se "; yek=3; break;
case 4 : cout<<"chahar "; yek=4; break;
case 5 : cout<<"panj "; yek=5; break;
case 6 : cout<<"shesh "; yek=6; break;
case 7 : cout<<"haft "; yek=7; break;
case 8 : cout<<"hasht "; yek=8; break;
case 9 : cout<<"noh "; yek=9; break;
}
}

g=(sad*100)+(dah*10)+yek;
if(g!=0)
{
cout<<"Hezar ";
}
wt=1;
g=0;
}
num=back-((sad*100000)+(dah*10000)+(yek*1000));
m=num;
sad=0;
dah=0;
yek=0;
//cout<<num;
//cout<<back;
back=num;
if(num>0)
{
if(wt==1)
{
wt=0;
cout<<"va ";
}
m=num;
if(num>99)
{
num=num/100;
switch(num)
{
case 1 : cout<<"yek sad "; sad=1; break;
case 2 : cout<<"devist "; sad=2; break;
case 3 : cout<<"sisad "; sad=3; break;
case 4 : cout<<"chaharsad "; sad=4; break;
case 5 : cout<<"pansad "; sad=5; break;
case 6 : cout<<"sheshsad "; sad=6; break;
case 7 : cout<<"haftsad "; sad=7; break;
case 8 : cout<<"hashtsad "; sad=8; break;
case 9 : cout<<"nohsad "; sad=9; break;
}
sadwt=1;
num=m;
}
if(num>10)
{

num=num-(sad*100);
if(sadwt==1)
{
sadwt=0;
cout<<"va ";
}
switch(num)
{
case 10 : cout<<"dah "; dah=1; yek=0; break;
case 11 : cout<<"yazdah "; dah=1; yek=1; break;
case 12 : cout<<"davazdah "; dah=1; yek=2; break;
case 13 : cout<<"sizdah "; dah=1; yek=3; break;
case 14 : cout<<"chahardah "; dah=1; yek=4; break;
case 15 : cout<<"panzdah "; dah=1; yek=5; break;
case 16 : cout<<"shanzdah "; dah=1; yek=6; break;
case 17 : cout<<"hefdah "; dah=1; yek=7; break;
case 18 : cout<<"hejdah "; dah=1; yek=8; break;
case 19 : cout<<"noozdah "; dah=1; yek=9; break;
}
int x=num;
num=num/10;
switch(num)
{
case 2 : cout<<"bist "; dah=2; break;
case 3 : cout<<"si "; dah=3; break;
case 4 : cout<<"chehel "; dah=4; break;
case 5 : cout<<"panjah "; dah=5; break;
case 6 : cout<<"shast "; dah=6; break;
case 7 : cout<<"haftad "; dah=7; break;
case 8 : cout<<"hashtad "; dah=8; break;
case 9 : cout<<"navad "; dah=9; break;
}
dahwt=1;
num=x-(dah*10);
}
if(dah!=1)
{
if(dahwt==1)
{
dahwt=0;
cout<<"va ";
}
switch(num)
{
case 1 : cout<<"yek "; yek=1; break;
case 2 : cout<<"do "; yek=2; break;
case 3 : cout<<"se "; yek=3; break;
case 4 : cout<<"chahar "; yek=4; break;
case 5 : cout<<"panj "; yek=5; break;
case 6 : cout<<"shesh "; yek=6; break;
case 7 : cout<<"haft "; yek=7; break;
case 8 : cout<<"hasht "; yek=8; break;
case 9 : cout<<"noh "; yek=9; break;
}
}
}
cout<<".";
cout<<endl;
cout<<endl;
cout<<" Thank you"<<endl;
cout<<endl;
char q='e';
while(q!='q')
{
cout<<" Enter Q for quit"<<endl;
cout<<" ";
cin>>q;
}
return 0;
}