سورس تبدیل عدد به حروف فارسی در زبان سی شارپ

csharp convert number to alphabet 4996 سورس تبدیل عدد به حروف فارسی در زبان سی شارپ

سورس تبدیل عدد به حروف فارسی در زبان سی شارپ

در این بخش سورس تبدیل عدد به حروف را برای شما آماده کرده ایم که با استفاده از زبان برنامه نویسی C# نوشته شده است. در ادامه می توانید توضیحات و تصاویر مربوط به این برنامه را مشاهده کنید.

توضیحات پروژه

این پروژه با استفاده از WinForms نوشته شده است. ظاهر برنامه شامل یک عدد دکمه (Button) با نام BtnToAlphabet و دو عدد فیلد متنی (TextBox) با نام های TxtDigit (برای گرفتن عدد از کاربر) و TxtResult (برای نمایش خروجی به کاربر) است. به منظور تبدیل عدد به معادل حروف فارسی آن یک کلاس با نام DigitConvertor ایجاد کرده ایم. اعضای این کلاس را در زیر مشاهده می کنید:

فیلد ConvertedDigits

یک لیست از نوع string است که برای نگهدادری بخش های تبدیل شده عدد استفاده می شود.

متد ToAlphabet(long digit)

یک عدد به عنوان ورودی می گیرد  و آن به متد GetDigitName ارسال می کند تا این متد حروف آن عدد را در لیست ConvertedDigits ذخیره کند. سپس این لیست را به رشته تبدیل کرده و به عنوان خروجی باز می گرداند. این متد به صورت public تعریف شده است.

متد GetDigitName(long digit)

یک عدد به عنوان ورودی می گیرد و به روش بازگشتی معادل فارسی آن را تشخیص می دهد. این متد به صورت private تعریف شده است. فرض کنید عدد وارد شده ۲۱۴۲ است. متد GetDigitName ابتدا مقدار “دو” را به لیست ConvertedDigits اضافه می کند، سپس چون عدد چهار رقمی است، مقدار “هزار” را به لیست اضافه می کند. بعد از آن مقدار “و” اضافه می شود. سپس مقدار “یک” اضافه می شود. بعد از آن چون عدد سه رقمی شده است، مقدار “صد” اضافه می شود و این روش تا آخر ادامه می یابد. در نهایت محتوای لیست برای عدد ۲۱۴۲ به صورت زیر خواهد بود:

  • دو
  • هزار
  • و
  • یک
  • صد
  • و
  • چهل
  • و
  • دو

csharp convert number to alphabet 4996 1 سورس تبدیل عدد به حروف فارسی در زبان سی شارپ

قسمت های از سورس پروژه:

using System;
using System.Windows.Forms;
namespace ConvertNumberToAlphabet
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// بررسی می کند که آیا فیلد مربوط به عدد خالی است یا خیر
        /// </summary>
        /// <returns>Boolean</returns>
        private bool InputValidator()
        {
            // طول متن موجود درداخل TxtDigit را بررسی می کند
            if (TxtDigit.Text.Length > 12)
            {
                MessageBox.Show(@"عدد وارد شده باید حداکثر 12 رقم باشد");
                return false;
            }
            // بررسی می کند که آیا متنی داخل جعبه 
            if (string.IsNullOrEmpty(TxtDigit.Text))
            {
                MessageBox.Show(@"شما باید یک عدد وارد کنید");
                return false;
            }
            // اگر متن جعبه متنی خالی نباشد و طول آن کمتر از 12 باشد، true برمیگرداند.
            return true;
        }
        // رویداد کلیک دکمه تبدیل
        private void BtnToAlphabet_Click(object sender, EventArgs e)
        {
            // متن موجود در داخل جعبه متنی را چک می کند
            if (!InputValidator()) return;

            // بلوک try برای مدیریت خطاها استفاده می شود
            // به این صورت که ابتدا کد های داخل بلوک try اجرا می شود
            // و اگر در هنگام اجرا کدها خطایی رخ، کدهای داخل بلوک catch اجرا می شود
            try
            {
                // متن موجود در داخل جعبه متنی را به عدد تبدیل می کند
                var digit = long.Parse(TxtDigit.Text);
                // متن موجود در داخل TxtResult را پاک می کند
                TxtResult.Clear();
                // عدد را با استفاده از کلاس DigitConvertor به حروف تبدیل می کند
                TxtResult.Text = DigitConvertor.ToAlphabet(digit);
            }
            catch (Exception ex)
            {
                // در صورتی که در فرآیند تبدیل عدد به حروف خطایی رخ دهد آن را نمایش می دهد
                MessageBox.Show(ex.Message);
            }
        }
        private void TxtDigit_KeyPress(object sender, KeyPressEventArgs e)
        {
            // این شرط چیزی که کاربر درون جعبه متنی وارد می کند را بررسی می کند
            // اگر مقدار وارد شده یک عدد باشد یعنی 0 تا 9 آن را قبول می کند
            // در غیر این صورت چیزی به متن موجود اضافه نمی شود
            if (!char.IsControl(e.KeyChar) &&
                !char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}

نکات

  • این برنامه با استفاده از نرم افزار ویژوال استودیو نسخه ۲۰۱۵ نوشته شده است.
  • این برنامه فقط می تواند عددی که طول آن حداکثر ۱۲ رقم است را به حروف تبدیل کند.
  • قسمت های مختلف کد های برنامه با کامنت گذاری فارسی توضیح داده شده است.

نوشته سورس تبدیل عدد به حروف فارسی در زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *