تبدیل اعداد به حروف و تابع پخش فایل صوتی
سلام دوستان .
من میخوام چندین فایل صوتی رو توی یه برنامه وارد کنم (به عنوان یه تابع ) و چندین بار در برنامه این فایل های صوتی رو تابع هاشونو فراخوانی کنم .
میتونید کمکم کنید ؟
این کارو برای خواندن اعداد میخوام .
کامپلر هم vs2010 هستش و زبانی هم که دارم برنامه مینویسم c++.
در ضمن من برنامه ی تبدیل اعداد به حروفو نوشتم که بعدا اون حروف ها رو تبدیل به فایل صوتی می کنم.
تقریبا هم کامله فقط نمیدونم مشکلش کجاست که خروجی مد نظر رو نمیده .
میتونید کمکم کنید و مشکلشو رفع کنید ؟
کد:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
void main();
//==================================
class Reading
{private:
int my_number;
int teliardgan;
int sadgane_teliardgan;
int dahgane_teliardgan;
int yekane_teliardgan;
int meliardgan;
int sadgane_meliardgan;
int dahgane_meliardgan;
int yekane_meliardgan;
int melyongan;
int sadgane_melyongan;
int dahgane_melyongan;
int yekane_melyongan;
int hezargan;
int sadgane_hezargan;
int dahgane_hezargan;
int yekane_hezargan;
int sadgan;
int dahgan;
int yekan ;
public:
Reading(int);
void print_yek_ta_noh(int);
void print_yazadah_ta_nozdah(int);
void print_bist_ta_navad(int);
friend void main();
};
//=============================================
Reading::Reading(int b)
{
my_number=b;
teliardgan=int(my_number/1000000000000);
sadgane_teliardgan=int(teliardgan/100);
dahgane_teliardgan=int(teliardgan-(sadgane_teliardgan*100)/10);
yekane_teliardgan=int(teliardgan-(sadgane_teliardgan*100+dahgane_teliardgan*10));
meliardgan=int(my_number-(teliardgan*1000000000000)/1000000000);
sadgane_meliardgan=int(meliardgan/100);
dahgane_meliardgan=int(meliardgan-(sadgane_meliardgan*100)/10);
yekane_meliardgan=int(meliardgan-(sadgane_meliardgan*100+dahgane_meliardgan*10));
melyongan=int(my_number-(teliardgan*1000000000000+meliardgan*1000000000)/1000000);
sadgane_melyongan=int(melyongan/100);
dahgane_melyongan=int(melyongan-(sadgane_melyongan*100)/10);
yekane_melyongan=int(melyongan-(sadgane_melyongan*100+dahgane_melyongan*10));
hezargan=int(my_number-(teliardgan*1000000000000+meliardgan*1000000000+melyongan*1000000)/1000);
sadgane_hezargan=int(hezargan/100);
dahgane_hezargan=int(hezargan-(sadgane_hezargan*100)/10);
yekane_hezargan=int(hezargan-(sadgane_hezargan*100+dahgane_hezargan*10));
sadgan =int ( (my_number-(teliardgan*1000000000000+meliardgan*1000000000+melyongan*1000000+hezargan*1000) )/100 ) ;
dahgan =int ( (my_number-(teliardgan*1000000000000+meliardgan*1000000000+melyongan*1000000+hezargan*1000+sadgan*100) )/10 ) ;
yekan = int ( (my_number-(teliardgan*1000000000000+meliardgan*1000000000+melyongan*1000000+hezargan*1000+sadgan*100+dahgan*10)));
}
//=====================================================================================================================================
void Reading::print_yek_ta_noh(int a)
{
switch(a)
{
case 1:cout<<"yek";break;
case 2:cout<<"du";break;
case 3:cout<<"se";break;
case 4:cout<<"chahar";break;
case 5:cout<<"pang";break;
case 6:cout<<"shish";break;
case 7:cout<<"haft";break;
case 8:cout<<"hasht";break;
case 9:cout<<"noh";break;
default:cout<<"";
}
}
//=====================================================
void Reading::print_yazadah_ta_nozdah(int a)
{
switch(a)
{
case 10:cout<<"dah";break;
case 11:cout<<"yazda";break;
case 12:cout<<"davazdah";break;
case 13:cout<<"sizdah";break;
case 14:cout<<"chahardah";break;
case 15:cout<<"panzdah";break;
case 16:cout<<"shanzadah";break;
case 17:cout<<"hefdah";break;
case 18:cout<<"hejdah";break;
case 19:cout<<"nonzadah";break;
default:cout<<"";
}
}
//===================================================
void Reading::print_bist_ta_navad(int a)
{
switch(a)
{
case 20:cout<<"bist ";break;
case 30:cout<<"si ";break;
case 40:cout<<"chehel ";break;
case 50:cout<<"pangah ";break;
case 60:cout<<"shast ";break;
case 70:cout<<"haftad ";break;
case 80:cout<<"hastad ";break;
case 90:cout<<"navad ";break;
default:cout<<"";
}
}
//====================================================
void main()
{
int b;
cin>>b;
Reading x(b);
x.print_yek_ta_noh(x.sadgane_teliardgan);
if (x.sadgane_teliardgan>0)
cout<<" sad ";
if (x.dahgane_teliardgan>1)
{cout<<"o";
x.print_bist_ta_navad ( (x.dahgane_teliardgan*10) ) ;
}
if (x.dahgane_teliardgan==1)
{cout<<"o";
x.print_yazadah_ta_nozdah( (x.dahgane_teliardgan*10+x.yekane_teliardgan) ) ;
}
if (x.dahgane_teliardgan!=1)
{cout<<"o";
x.print_yek_ta_noh(x.yekane_teliardgan);
}
if (x.teliardgan>0)
{cout<<" teliard ";
cout<<"o";
}
//=========================================
x.print_yek_ta_noh(x.sadgane_meliardgan);
if (x.sadgane_meliardgan>0)
cout<<" sad ";
if (x.dahgane_meliardgan>1)
{cout<<"o";
x.print_bist_ta_navad ( (x.dahgane_meliardgan*10) ) ;
}
if (x.dahgane_meliardgan==1)
{cout<<"o";
x.print_yazadah_ta_nozdah( (x.dahgane_meliardgan*10+x.yekane_meliardgan) ) ;
}
if (x.dahgane_meliardgan!=1)
{cout<<"o";
x.print_yek_ta_noh(x.yekane_meliardgan);
}
if (x.meliardgan>0)
{cout<<" meliard ";
cout<<"o";
}
//===============================================
x.print_yek_ta_noh(x.sadgane_melyongan);
if (x.sadgane_melyongan>0)
cout<<" sad ";
if (x.dahgane_melyongan>1)
{cout<<"o";
x.print_bist_ta_navad ( (x.dahgane_melyongan*10) ) ;
}
if (x.dahgane_melyongan==1)
{cout<<"o";
x.print_yazadah_ta_nozdah( (x.dahgane_melyongan*10+x.yekane_melyongan) ) ;
}
if (x.dahgane_melyongan!=1)
{cout<<"o";
x.print_yek_ta_noh(x.yekane_melyongan);
}
if (x.melyongan>0)
{cout<<" melyon ";
cout<<"o";
}
//=================================================
x.print_yek_ta_noh(x.sadgane_hezargan);
if (x.sadgane_hezargan>0)
cout<<" sad ";
if (x.dahgane_hezargan>1)
{cout<<"o";
x.print_bist_ta_navad ( (x.dahgane_hezargan*10) ) ;
}
if (x.dahgane_hezargan==1)
{cout<<"o";
x.print_yazadah_ta_nozdah( (x.dahgane_hezargan*10+x.yekane_hezargan) ) ;
}
if (x.dahgane_hezargan!=1)
{cout<<"o";
x.print_yek_ta_noh(x.yekane_hezargan);
}
if (x.hezargan>0)
{cout<<" hezar ";
cout<<"o";
}
//=================================================
x.print_yek_ta_noh(x.sadgan);
if (x.sadgan>0)
cout<<" sad ";
if (x.dahgan>1)
{cout<<"o";
x.print_bist_ta_navad ( (x.dahgan*10) ) ;
}
if (x.dahgan==1)
{cout<<"o";
x.print_yazadah_ta_nozdah( (x.dahgan*10+x.yekan) ) ;
}
if (x.dahgan!=1)
{cout<<"o";
x.print_yek_ta_noh(x.yekan);
}
}
ممنون.