Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0

    Đọc một số bất kì bằng tiếng việt.

    + Đây là một chương trình đọc số bằng tiếng việt. Do một số người kếu khó nên mih viết lại bằng C# cho các bản thấy nó cũng đơn giản thôi. Mih đính kèm project bên dưới nhé.



    DemoNumber.zip

    - - - Nội dung đã được cập nhật ngày 10-05-2014 lúc 08:52 PM - - -


    Mã:
    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace DemoNumber{    class Number    {        private string number;        private string[] snumber = {"không","Một","Hai","Ba","Bốn","Năm","Sáu","Bảy","Tám","Chín"};        private string[] hnumber = {""," nghìn ", " triệu ", " tỉ " };        public Number()        {            number = "";        }        public Number(string number)        {            this.number = number;        }        public string NUMBER         {            get { return number; }            set { number = value; }        }        public string number1(int c)        {            return snumber[c];        }        public string number2(int a,int b)        {            if (a == 1 && b == 0) return "mười";            else                if (a == 0 && b == 0) return "";                else                     if (b == 0) return snumber[a] + " mươi";                    else                        if (a == 0) return snumber[b];                        else                            if(a==1) return " mười " + snumber[b];                           else return snumber[a] + " mươi " + snumber[b];                        }        public string number3(int a, int b, int c)        {            if (a == 0 && b == 0 && c == 0) return "";            else                if (b == 0 && c == 0) return snumber[a] + " trăm";                else                    if (b == 0) return snumber[a] + " trăm linh " + snumber[c];                    else return snumber[a] + " trăm " + number2(b,c);        }        public string readNumber()        {            int a = 0, b = 0, c = 0, dem = 0;            int n = number.Length-1;            char [] so=number.ToCharArray();            string s = "";            string s1 =" ";            for (int i = n+1; i > 0; i -= 3)            {                if (i < 3)                {                    switch (i)                    {                        case 1: c = so[n--] - 48; s = number1(c)+ hnumber[dem]+s; break;                        case 2: c = so[n--] - 48; b = so[n--] - 48; s = number2(b, c) + hnumber[dem]+s; break;                    }                }                else {                    c = so[n--] - 48; b = so[n--] - 48; a = so[n--]-48;                    s1 = number3(a, b, c);                    if (s1.CompareTo("") != 0||dem==3)                    {                                                s = s1 + hnumber[dem] + s;                    }                }                dem++;                if (dem > 3) dem = 1;            }                return s;        }    }}

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Quá hay thanks bạn nhiều, kết bạn nha.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Uhm. Nó còn 1 số lỗi nhỏ. Mih để đấy các bạn tham khảo tự khắc phục. hehe.

  4. #4
    Ngày tham gia
    Sep 2015
    Đang ở
    24 Rạch Bùng Binh , P10,Q3 , HCM
    Bài viết
    0
    Bổ sung xíu với trường hợp đọc 1 số có số 5 tận cùng ý.
    Thực ra bạn đọc là "năm" là hợp lý rồi. Nhưng có thế có yêu cầu như sau:
    35 : Ba mươi lăm
    105 : Một trăm linh năm.
    [IMG]images/smilies/smile.png[/IMG] Thêm một trường hợp nữa cần xử lý.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •