تبلیغات
.::مهندسین نرم افزار دانشگاه آزاد::. - تابع تبدیل عدد به حروف انگلیسی !!!!
.::مهندسین نرم افزار دانشگاه آزاد::.
FUTURE IS FOR US

بازدید : مرتبه
تاریخ : سه شنبه 9 فروردین 1390
تابعی برای تبدیل عدد ورودی به حروف انگلیسی از نوع بازگشتی. برای مثال عدد 123:
one hundred twenty three

از اون جایی که برنامه یه مقدار طولانی هست گفتم بهتره توی ادامه مطلب قرارش بدم !!!
حتما امتحانش کنید برنامه ساده و جالبیه !!!!

برای دیدن سورس کد برنامه به ادامه مطلب برید لطفا !!!
void trans()
{
    clrscr();
    int s=0,i2=0,x[99];
    char y[99]={0};
    //Get number
    cout<<"Enter your number:\n";
    do
    {
        i2++;
        y[i2]=getche();
    }while(y[i2]!=13);
    i2--;
    //recognize digits
    for(register int i=1;i2>=1;i2--)
    {
        x[i]=y[i2]-48;
        i++;
    }
    i--;
    //Show number
    clrscr();
    cout<<"Your number: ";
    for(register int i3=i;i3>=1;i3--)
        cout<<x[i3];
    cout<<endl<<"Result:\n";
    //Translate
    for(;i>=1;i--)
    {
        if(s==1)
        {
            switch(x[i])
            {
                case 0:cout<<"";break;
                case 1:cout<<"eleven ";break;
                case 2:cout<<"twelve ";break;
                case 3:cout<<"thirteen ";break;
                case 4:cout<<"fourteen ";break;
                case 5:cout<<"fifteen ";break;
                case 6:cout<<"sixteen ";break;
                case 7:cout<<"seventeen ";break;
                case 8:cout<<"eighteen ";break;
                case 9:cout<<"nineteen ";break;
            }
            s=0;
        }
        else
        {
            if(i%3==2)
            {
                switch(x[i])
                {
                    case 0:cout<<"";break;
                    case 1:s=1;break;
                    case 2:cout<<"twenty ";break;
                    case 3:cout<<"thirty ";break;
                    case 4:cout<<"fourty ";break;
                    case 5:cout<<"fifty ";break;
                    case 6:cout<<"sixty ";break;
                    case 7:cout<<"seventy ";break;
                    case 8:cout<<"eighty ";break;
                    case 9:cout<<"ninety ";break;
                }
            }
            else
            {
                switch(x[i])
                {
                    case 0:cout<<"";break;
                    case 1:cout<<"one ";break;
                    case 2:cout<<"two ";break;
                    case 3:cout<<"three ";break;
                    case 4:cout<<"four ";break;
                    case 5:cout<<"five ";break;
                    case 6:cout<<"six ";break;
                    case 7:cout<<"seven ";break;
                    case 8:cout<<"eight ";break;
                    case 9:cout<<"nine ";break;
                        default: trans();
                }
            }
        }
        if((x[i+2]==0&&x[i]==0)||(x[i]==0&&x[i-2]==0))
        {
            cout<<"";
        }
        else
        {
            if(i%3==0)
                cout<<"hundred ";
            else if(i==4)
                cout<<"thousand ";
            else if(i==7)
                cout<<"million ";
            else if(i==10)
                cout<<"billion ";
            else if(i==13)
                cout<<"trillion ";
            else if(i==16)
                cout<<"quadrillion ";
            else if(i==19)
                cout<<"quintillion ";
            else if(i==22)
                cout<<"sextillion ";
            else if(i==25)
                cout<<"septillion ";
            else if(i==28)
                cout<<"octillion ";
            else if(i==31)
                cout<<"nonillion ";
            else if(i==34)
                cout<<"decillion ";
            else if(i==37)
                cout<<"undecillion ";
            else if(i==40)
                cout<<"duodecillion ";
            else if(i==43)
                cout<<"tredecillion ";
            else if(i==46)
                cout<<"quattuordecillion ";
            else if(i==49)
                cout<<"quindecillion ";
            else if(i==52)
                cout<<"sexdecillion ";
            else if(i==55)
                cout<<"septendecillion ";
            else if(i==58)
                cout<<"octodecillion ";
            else if(i==61)
                cout<<"novemdecillion ";
            else if(i==64)
                cout<<"vigintillion ";
            else if(i==67)
                cout<<"unvigintillion ";
            else if(i==70)
                cout<<"duovigintillion ";
            else if(i==73)
                cout<<"trevigintillion ";
            else if(i==76)
                cout<<"quattuorvigintillion ";
            else if(i==79)
                cout<<"quinvigintillion ";
            else if(i==82)
                cout<<"sexvigintillion ";
            else if(i==85)
                cout<<"septenvigintillion ";
            else if(i==88)
                cout<<"octovigintillion ";
            else if(i==91)
                cout<<"novemvigintillion ";
            else if(i==94)
                cout<<"trigintillion ";
            else if(i==97)
                cout<<"untrigintillion ";
            else if(i==100)
                cout<<"duotrigintillion ";
            ESC:
        }
    }
    gotoxy(0,22);
    cout<<endl<<endl<<"Press any key to translate another number"<<endl;
    getch();
    trans();
}

//end



طبقه بندی: سورس کد سی,سی++، 
برچسب ها: عدد به حروف، تابع، ntoc، تابع بازگشتی، سورس، SE01، Surce code، function،
دنبالک ها: ALIREZA،
ارسال توسط .::علیرضا ارجمندنیا::.
آخرین مطالب
آرشیو مطالب
پیوند ها