PDA

View Full Version : مبتدی: وارد کردن اعداد و چاپ معادل نوشتاری آن



smemamian
دوشنبه 09 بهمن 1391, 00:43 صبح
سلام دوستان

برنامه زیر مبتدی نوشته شده ولی یک مشکل داره ! اینه که گاهی درست کار می کنه
گاهی هم نه !
برنامه به این صورت هست که اگر من عدد 55 رو وارد می کنم باید بنویسه : PanjahOpanj !
راه ی بهتر برای نوشتن چنین برنامه چی پیشنهاد می کنید ؟

#include <iostream>
#include <cstring>
#include <cstdlib>


using namespace std;

int main()
{
char* Number;
int Size=1 , Temp=0;

char *One_N[10] = { "" , "Yek" , "Doo" , "Se" , "Chahar" , "Panj" , "Shesh" ,
"Haft" ,"Hasht","Noh"};

char *Two_N[10] = { "","Yazdah","Davazdah","Sizdah","Chehardah","Ponzdah",
"Shanzdah","Hefdah","Hijdah","Nonzdah"};

char *Two_Ten_N[10] = {"","Dah","Bist","Sii","Chehel","Panjah","Shast","Hafdad","Hashtad"
,"Navad"};
cout <<"Plz Enter Numbr :\n" ;
cin >> Number ;

Size = strlen(Number);

Temp = atoi(Number);
if(Size==1)
{

for(int i=1 ; i<=9 ; i++)
{
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< One_N[i] << endl ;
}
}
if(Size==2)
{
if(Temp==10)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[1] << endl;
else if(Temp >= 11 && Temp <= 19)
for(int i=11 ; i <=19 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_N[i-10] << endl ;
else if (Temp >= 20 && Temp <= 29)
{
if(Temp==20)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[2] << endl;
else
for(int i=21 ; i <=29 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[2] << "O" << One_N[i-20] << endl ;
}
else if(Temp >= 30 && Temp <= 39)
{
if(Temp==30)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[3] << endl;
else
for(int i=31 ; i <=39 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[3] << "O" << One_N[i-30] << endl ;
}
else if (Temp >= 40 && Temp <= 49)
{
if(Temp==40)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[4] << endl;
else
for(int i=41 ; i <=49 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[4] << "O" << One_N[i-40] << endl ;
}
else if (Temp >= 50 && Temp <= 59)
{
if(Temp==50)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[5] << endl;
else
for(int i=51 ; i <=59 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[5] << "O" << One_N[i-50] << endl ;
}
else if(Temp >= 60 && Temp <= 69)
{
if(Temp==60)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[6] << endl;
else
for(int i=61 ; i <=69 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[6] << "O" << One_N[i-60] << endl ;
}
else if (Temp >= 70 && Temp <= 79)
{
if(Temp==70)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[7] << endl;
else
for(int i=71 ; i <=79 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[7] << "O" << One_N[i-70] << endl ;
}
else if (Temp >= 80 && Temp <= 89)
{
if(Temp==80)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[8] << endl;
else
for(int i=81 ; i <=89 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[8] << "O" << One_N[i-80] << endl ;
}
else (Temp >= 90 && Temp <= 99);
{
if(Temp==90)
cout << "Your Number = " << Temp <<
" Persian Text = " << Two_Ten_N[9] << endl;
else
for(int i=91 ; i <=99 ; i++)
if(Temp==i)
cout << "Your Number = " << Temp << " Persian Text = "
<< Two_Ten_N[9] << "O" << One_N[i-90] << endl ;
}

}

cin.get();
return 0;
}

Behnam.B
دوشنبه 09 بهمن 1391, 01:50 صبح
سلام. برنامه جالبیه من با تغییراتی جزئی(!!!) درستش کردم:

#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string.h>


using namespace std;

int main(){
int num;
char name[20];

char One_N[20][10] = {"Sefr", "Yek", "Doo", "Se", "Chahar", "Panj", "Shesh","Haft" ,"Hasht","Noh",
"Dah", "Yazdah", "Davazdah", "Sizdah", "Chehardah", "Panzdah", "Shanzdah","Hefdah","Hijdah","Nonzdah"};


char Ten_N[10][10] = {"", "", "Bist", "Sii", "Chehel", "Panjah", "Shast", "Hafdad", "Hashtad" ,"Navad"};

cout <<"Plz Enter Numbr :\n" ;
cin >> num ;

if(num >= 0 && num < 20){
strcpy(name, One_N[num]);
}
else
if(num >= 20 && num <= 99){
if(num%10 == 0)
strcpy(name, Ten_N[num/10]);
else{
strcpy(name, Ten_N[num/10]);
strcat(name, "-o-");
strcat(name, One_N[num%10]);
}
}
else{
cout << "Can't write!" << endl;
cin.get();
return 0;
}

cout << "Your Number = " << num <<
" Persian Text = " << name << endl;
cin.get();
return 0;
}

smemamian
دوشنبه 09 بهمن 1391, 10:57 صبح
تا این حد هم جزئی نبود ! 140 خط کجا و 45 خط کجا :لبخند:

ممنونم