Hàm chuyển số thành chữ !

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Hàm chuyển số thành chữ !

Bài gửi by khongxacdinh on 25/9/2009, 23:28

lang thang trên mạng tự nhiên thấy , bạn nào đọc qua tranh thủ post bài chỉnh sủa đoạn code này lại cho hoàn thiện nha (cái này là C)

public void docso()
{
string s = textBox1.Text.Trim();
if (s != "")
{
s = xoasokhong(s);
switch (s.Length)
{
case 1: label1.Text = motso(s) + " đồng"; break;
case 2: label1.Text = haiso(s) + " đồng"; break;
case 3: label1.Text = baso(s) + " đồng"; break;
default: label1.Text = nhieuso(s, s.Length); break;
}
}
else label1.Text = "Bạn phải nhập giá trị vào";
}
#region Các hàm đọc số
public string motso(string bienso)
{
switch (bienso)
{
case "0": return "không";
case "1": return "một";
case "2": return "hai";
case "3": return "ba";
case "4": return "bốn";
case "5": return "năm";
case "6": return "sáu";
case "7": return "bảy";
case "8": return "tám";
case "9": return "chín";
}
return "không";
}
public string haiso(string bienso)
{
string biendoc = " mười ";

if ((bienso.Substring(1, 1) == "0") && (bienso.Substring(0, 1)
!= "1")) biendoc = motso(bienso.Substring(0, 1)) + " mươi ";
if (bienso.Substring(1, 1) != "0")
switch (bienso.Substring(1, 1))
{
case "5":
if (bienso.Substring(0, 1) == "1") biendoc = " mười lăm";
else biendoc = motso(bienso.Substring(0, 1)) + " mươi lăm";
break;
case "1":
if (bienso.Substring(0, 1) == "1") biendoc = " mười một";
else biendoc = motso(bienso.Substring(0, 1)) + " mươi mốt";
break;
default:
if (bienso.Substring(0, 1) == "1") biendoc = " mười " + motso(bienso.Substring(1, 1));
else biendoc = motso(bienso.Substring(0, 1)) + " mươi " + motso(bienso.Substring(1, 1));
break;
}
return biendoc;
}
public string baso(string bienso)
{
string biendoc = "trăm";
if (bienso.Substring(1, 1) == "0")
{
if (bienso.Substring(2, 1) == "0") biendoc = motso(bienso.Substring(0, 1)) + " trăm ";
else biendoc = motso(bienso.Substring(0, 1)) + " trăm lẻ " + motso(bienso.Substring(2, 1));
}
else
{
biendoc = motso(bienso.Substring(0, 1)) + " trăm " + haiso(bienso.Substring(1, 2));
}
return biendoc;
}
#endregion
// hàm xử lý vấn đề số 0
private string xoasokhong(string tam)
{
while (tam[0] == '0')
{
if (tam.Length > 1) tam = tam.Substring(1,tam.Length-1);
else break;
}
return tam;
}
// hàm xử lý chèn các giá trị
private string kieuchen(int tam)
{
switch (tam)
{
case 0: return " đồng ";
case 1: return " nghìn ";
case 2: return " triệu ";
case 3: return " tỷ ";
}
return "";
}
// hàm đọc nhiều số
private string nhieuso(string bienso, int dodai)
{
string biendoc = "", bientam = "";
int i = 0;
while ((dodai) > 3)
{
bientam = baso(bienso.Substring(bienso.Length - 3, 3));
bienso = bienso.Substring(0, bienso.Length - 3);
biendoc = bientam + kieuchen(i) + biendoc;
i++;
if (i > 3) i = 1;
if (dodai > 3) dodai = dodai - 3;
}
if (dodai == 1) biendoc = motso(bienso) + kieuchen(i) + biendoc;
if (dodai == 2) biendoc = haiso(bienso) + kieuchen(i) + biendoc;
if (dodai == 3) biendoc = baso(bienso) + kieuchen(i) + biendoc;
return biendoc;
}

khongxacdinh
Cống hiến
Cống hiến

Tổng số bài gửi : 163
Join date : 18/09/2009
Đến từ : GoogleMap

http://tourvn24h.com, k8t11.tk

Về Đầu Trang Go down

Re: Hàm chuyển số thành chữ !

Bài gửi by khongxacdinh on 25/9/2009, 23:29

class Class1

{

///

/// The main entry point for the application.

///


[STAThread]

static void Main(string[] args)

{

//

// TODO: Add code to start application here

//

//string t = string.Empty;

string str= "";

while(str!="?")

{

str = Console.ReadLine();

try{double.Parse(str);}

catch{break;}

Console.WriteLine(DocSo(double.Parse(str)));

}

}

public static string DocSo(double n)

{

string strSo = n.ToString();

int len = (int)strSo.Length / 3;

if(len*3 < strSo.Length)len++;

string[] t = new string[len];

int i = 0;

while(strSo != "")

{

if(strSo.Length > 3)

{

tIdea = strSo.Substring(strSo.Length - 3,3);

strSo = strSo.Substring(0,strSo.Length - 3);

}

else

{

tIdea = strSo;

strSo = "";

}

i++;

}

string str="";

string temp;

for(i = t.Length-1; i>=0; i--)

{

temp = Doc3(tIdea);

if(temp.Trim() != "")

{

str += temp.Trim() + " " + DonVi(i+1) + " ";

}

}

return str;

}

public static string DonVi(int n)

{

string str = "";

switch(n.ToString())

{

case "0":

str = "VN";

break;

case "1":

str = "Dong";

break;

case "2":

str = "Ngan";

break;

case "3":

str = "Trieu";

break;

case "4":

str = "Ty";

break;

}

return str;

}

public static string Doc3(string n)

{

string tram = string.Empty,chuc=string.Empty,dv = string.Empty;

if(n.Length == 3)

{

tram = n[0].ToString();

chuc = n[1].ToString();

dv = n[2].ToString();

}

if(n.Length == 2)

{

chuc = n[0].ToString();

dv = n[1].ToString();

}

if(n.Length == 1)

{

dv = n[0].ToString();

}

if(n != "000")

{

if(tram != "") tram = So(int.Parse(tram)) + " Tram";

if(chuc != ""){

switch(chuc)

{

case "0":

if(dv != "0"){

chuc = "Le";dv = So(int.Parse(dv));

}else{

dv = "";

chuc = "";

}

break;

case "1":

chuc = " Muoi";

if(dv != "0"){

if(dv=="5"){

dv = "Lam";

}else{

dv = So(double.Parse(dv));

}

}else{

dv = "";

}

break;

default:

chuc = So(int.Parse(chuc)) + " Muoi";

if(dv=="5")

{

dv = "Lam";

}

else

{

if(dv != "0") dv = So(int.Parse(dv));

else dv = "";

}

//dv = So(int.Parse(dv));

break;

}

}

else

{

if(chuc != "")

{

switch(chuc)

{

case "1":

chuc = " Muoi";

if(dv != "0")

{

if(dv=="5")

{

dv = "Lam";

}

else

{

dv = So(int.Parse(dv));

}

}

break;

default:

chuc = So(int.Parse(chuc)) + " Muoi";

if(dv=="5")

{

dv = "Lam";

}

else

{

dv = So(int.Parse(dv));

}

break;

}

}

else

{

dv = So(int.Parse(dv));

}

}

}

else

{

tram = "";

chuc = "";

dv = "";

}

return tram + " " + chuc + " " + dv;

}

public static string So(double n)

{

string str = "";

switch(n.ToString())

{

case "0":

str = "Khong";

break;

case "1":

str = "Mot";

break;

case "2":

str = "Hai";

break;

case "3":

str = "Ba";

break;

case "4":

str = "Bon";

break;

case "5":

str = "Nam";

break;

case "6":

str = "Sau";

break;

case "7":

str = "Bay";

break;

case "8":

str = "Tam";

break;

case "9":

str = "Chin";

break;

}

return str;

}

}

khongxacdinh
Cống hiến
Cống hiến

Tổng số bài gửi : 163
Join date : 18/09/2009
Đến từ : GoogleMap

http://tourvn24h.com, k8t11.tk

Về Đầu Trang Go down

MERCI...!

Bài gửi by NguyenHong on 26/9/2009, 09:26

Hi khongxacdinh,

Mình cũng đang tìm you post lên kịp thời luôn thanks nha.hihi

Về xem nhưng không biết hiểu không nữa,

Hỏi nhỏ nhe, tên của you?!

NguyenHong

Tổng số bài gửi : 12
Join date : 16/09/2009
Age : 30
Đến từ : Tiền Giang

Về Đầu Trang Go down

Re: Hàm chuyển số thành chữ !

Bài gửi by angel_hb on 26/9/2009, 22:39

Chào Bà con....
Tui mói lợm được con cờ Caro nè. Bà con nào sửa được qua C# thì Post lại đi cho học hỏi chút nha!
//---------------------------------------//

Subject: Viet game tro choi caro
* Cac bien su dung *****
* dong,cot : dung de xac dinh so dong vao so cot cua mang A[][].
* x,y : vi tri co dinh cua mang A[][].
* c1,c2,c3,c4 : dung de truyen ky tu ke ban co caro.
* x1,y1,x2,y2 : la luu vi tri tai goc ben trai va goc ben phai cua ban co.
* k,l : la vi tri hien tai cua dau nhay.
* dx,dy : la khoang cach cua x va y khi di chuyen phim tren ban co.
* K_Tra : dung de kiem tra xem da thang chua.
* Ten[2] : dung luu ho ten cua 2 nguoi choi.
* ch : dung de nhan biet cac phim mui ten, phim , phim .
* Co : luu ky tu quan co 'X' hay 'O'.
* A[][] : dung de luu cac quan co voi ky tu 'X'=1, 'O'=2.
* flag : dung de nhan biet nguoi choi thu 1 chon 'X' hay 'O'.
* m : dung de dem co du 5 quan lien tiep cung loai hay khong ?
* i,j : dung lam bien chay.
* GTD,GTC : dung luu gia tri chan 2 dau cua quan co.
*/


#include
#include
#include
const dong=25,cot=47,x=cot/2,y=dong/2;


/* Thu tuc ve 1 dong */
void Ve_1d(int x2,char c1,char c2,char c3,char c4)
{ cprintf("%c",c1);
for (int i=1;i<=(x2-3)/2;i++)
cprintf("%c%c",c2,c3);
cprintf("%c%c",c2,c4);
}
//============================================


/* Thu tuc ke bang */
void Ke_bang(int x1,int y1,int x2,int y2)
{ gotoxy(x1,y1);
Ve_1d(x2,'Ú','Ä','Â','¿');
for (int i=1;i<(y2-y1);i++)
{ gotoxy(x1,y1+i);
Ve_1d(x2,'Ã','Ä','Å','´');
}
gotoxy(x1,y2);
Ve_1d(x2,'À','Ä','Á','Ù');
}
//============================================


/* Thu tuc nhap ho ten nguoi choi */
void Nhap_HoTen(char *Ten[])
{ for (int k=0;k<2;k++)
{ printf("Nhap ho ten nguoi thu %d=",k+1);
gets(Ten[k]);
}
}
//============================================


/* Thu tuc bam phim qua trai */
void Qua_Trai(int &l,int dx)
{ if (l==-x/dx)
l=(x+1)/dx;
else l--;
}


/* Thu tuc bam phim qua phai */
void Qua_Phai(int &l,int dx)
{ if (l==(x+1)/dx)
l=-x/dx;
else l++;
}


/* Thu tuc bam phim di len */
void Di_Len(int &k,int dy)
{ if (k==-(y-1)/dy)
k=(y+1)/dy;
else k--;
}
//============================================
/* Thu tuc bam phim di xuong */
void Di_Xuong(int &k,int dy)
{ if (k==(y+1)/dy)
k=-(y-1)/dy;
else k++;
}
//============================================
/* Ham kiem tra duong cheo goc trai */

int Ktra_DuongCheo1(int A[dong][cot],int k,int l,int >D,int >C)
{ int i,j,m;
for (i=k-1,j=l-1,m=1;i>=k-5;i--,j--)
if (A[y+k][x+l]==A[y+i][x+j])
m++;
else
{ GTD=A[y+i][x+j];
break;
}
for (i=k+1,j=l+1;i<=k+5;i++,j++)
if (A[y+k][x+l]==A[y+i][x+j])
m++;
else
{ GTC=A[y+i][x+j];
break;
}
return m;
}
//============================================


/* Ham kiem tra duong thang dung */
int Ktra_DuongThang(int A[dong][cot],int k,int l,int >D,int >C)
{ int i,m;
for (i=k-1,m=1;i>=k-5;i--)
if (A[y+k][x+l]==A[y+i][x+l])
m++;
else
{ GTD=A[y+i][x+l];
break;
}
for (i=k+1;i<=k+5;i++)
if (A[y+k][x+l]==A[y+i][x+l])
m++;
else
{ GTC=A[y+i][x+l];
break;
}
return m;
}
============================================


/* Ham kiem tra duong cheo goc phai */
int Ktra_DuongCheo2(int A[dong][cot],int k,int l,int >D,int >C)
{ int i,j,m;
for (i=k-1,j=l+1,m=1;i>=k-5;i--,j++)
if (A[y+k][x+l]==A[y+i][x+j])
m++;
else
{ GTD=A[y+i][x+j];
break;
}
for (i=k+1,j=l-1;i<=k+5;i++,j--)
if (A[y+k][x+l]==A[y+i][x+j])
m++;
else
{ GTC=A[y+i][x+j];
break;
}
return m;
}


============================================
/* Ham kiem tra duong ngang */
int Ktra_DuongNgang(int A[dong][cot],int k,int l,int >D,int >C)
{ int j,m;
for (j=l-1,m=1;j>=l-5;j--)
if (A[y+k][x+l]==A[y+k][x+j])
m++;
else
{ GTD=A[y+k][x+j];
break;
}
for (j=l+1;j<=l+5;j++)
if (A[y+k][x+l]==A[y+k][x+j])
m++;
else
{ GTC=A[y+k][x+j];
break;
}
return m;
}


//============================================
/* Ham kiem tra thang chua */
int Ktra_Thang(int A[dong][cot],int k,int l)

{ int m,GTD,GTC,SoLan=0;
while (SoLan++<=4)
{ switch (SoLan)
{ case 1: m=Ktra_DuongCheo1(A,k,l,GTD,GTC); break;
case 2: m=Ktra_DuongThang(A,k,l,GTD,GTC); break;
case 3: m=Ktra_DuongCheo2(A,k,l,GTD,GTC); break;
case 4: m=Ktra_DuongNgang(A,k,l,GTD,GTC); break;
}
if ((m==5) && ((GTD==0) || (GTC==0)))
return 1;
}
return 0;
}


/* Ham luu va xuat quan co */
char LuuXuat_QuanCo(int A[dong][cot],int k,int l,int Co)
{ int So,mau;
So=(Co=='X') ? 1:2;
mau=(Co=='X') ? 12:14;
if (A[y+k][x+l]==0)
{ A[y+k][x+l]=So;
textcolor(mau);
putch(Co);
if (Ktra_Thang(A,k,l)!=1)
switch (Co)
{ case 'X': Co='O'; break;
case 'O': Co='X'; break;
}
}
return Co;
}


void main()
{ int A[dong][cot],k,l,K_Tra,flag;
const dx=2,dy=1;
char *Ten[2];
char ch,Co;


start:
textattr(0x07);
clrscr();
Nhap_HoTen(Ten);
printf("Ban %s chon quan co di truoc (X/O)=",Ten[0]);
Co=toupper(getch());
flag=(Co=='X') ? 0:1;


/* Tao gia tri 0 cho mang A[][] */
for (k=0;k for (l=0;l A[k]
=0;


clrscr();
gotoxy(56,1);
textattr(0x5E+128);
cprintf("Tro Choi Caro !");
textattr(0x07);


/* Ke ban co caro */
textcolor(2);
Ke_bang(1,1,cot,dong);
textcolor(7);
k=0,l=0;
do
{ gotoxy(x+l*dx,y+k*dy);
ch=getch();
if (ch==27) goto thoat;
if (ch=='\0')
{ ch=getch();
switch (ch)
{ case 'K': Qua_Trai(l,dx); break; // Trai
case 'M': Qua_Phai(l,dx); break; // Phai
case 'H': Di_Len(k,dy); break; // Len
case 'P': Di_Xuong(k,dy); break; // Xuong
}
} // if (ch=='\0')
else
if (ch==13)
switch (Co)
{ case 'X': Co=LuuXuat_QuanCo(A,k,l,Co);
case 'O': Co=LuuXuat_QuanCo(A,k,l,Co);
} // switch (Co)
K_Tra=Ktra_Thang(A,k,l);
}
while ((ch!=27) && (K_Tra!=1));


gotoxy(50,23);
textcolor(13);
if ((K_Tra==1) && (flag==0))
cprintf("Ban %s da thang !",Ten[A[y+k][x+l]-1]);
if ((K_Tra==1) && (flag==1))
cprintf("Ban %s da thang !",Ten[2-A[y+k][x+l]]);


thoat:
gotoxy(50,25);
textcolor(11);
cprintf("Ban co tiep tuc khong ?");
textcolor(7);
ch=getch();
if (toupper(ch)=='Y') goto start;
}

angel_hb
Khởi đầu
Khởi đầu

Tổng số bài gửi : 28
Join date : 21/09/2009
Age : 29
Đến từ : Thủ Đức - TP HCM

Về Đầu Trang Go down

Re: Hàm chuyển số thành chữ !

Bài gửi by Sponsored content Today at 05:20


Sponsored content


Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết