سورس خواندن اعداد با صدای فارسی در زبان سی شارپ
در این بخش سورس خواندن اعداد با صدای فارسی را برای شما آماده کرده ایم که با استفاده از زبان برنامه نویسی C# نوشته شده است. در ادامه می توانید توضیحات و تصاویر مربوط به این برنامه را مشاهده کنید.
توضیحات پروژه
این پروژه که با استفاده از WinForms نوشته شده است یک عدد از کاربر می گیرد و آن را با صدای فارسی برای کاربر می خواند (مانند سیستم های نوبت دهی که در بانک ها و سایر مراکز وجود دارند). ظاهر برنامه شامل یک عدد دکمه (Button) با نام BtnToSpeech و یک عدد فیلد متنی (TextBox) با نام TxtNumber(برای گرفتن عدد از کاربر) است.
نحوه کار برنامه
این برنامه یک عدد از کاربر می گیرد و آن را به متد Initializer کلا NumberToSpeech ارسال می کند. این متد با استفاه از متد GetNumberName معادل فارسی آن عدد را در یک لیست ذخیره می کند. سپس این لیست که شامل معادل فارسی عدد است یه یک لیست پخش برای Player می شود. در نهایت لیست پخش با استفاده از متد Play پخش می شود.
نحوه کار متد GetNumberName
یک عدد به عنوان ورودی می گیرد و به روش بازگشتی معادل فارسی آن را تشخیص می دهد. فرض کنید عدد وارد شده ۲۱۴۲ است. متد GetNumberName ابتدا مقدار “دو” را به لیست اضافه می کند، سپس چون عدد چهار رقمی است، مقدار “هزار” را به لیست اضافه می کند. بعد از آن مقدار “و” اضافه می شود. سپس مقدار “یک” اضافه می شود. بعد از آن چون عدد سه رقمی شده است، مقدار “صد” اضافه می شود و این روش تا آخر ادامه می یابد. در نهایت محتوای لیست برای عدد ۲۱۴۲ به صورت زیر خواهد بود:
- دو
- هزار
- و
- یک
- صد
- و
- چهل
- و
- دو
قسمت های از سورس پروژه
using System; using System.Windows.Forms; namespace NumberToSpeech { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// فیلد عدد ورودی را بررسی می کند /// </summary> /// <returns>Boolean</returns> private bool InputValidator() { // طول متن موجود درداخل TxtDigit را بررسی می کند if (TxtNumber.Text.Length > 12) { MessageBox.Show(@"عدد وارد شده باید حداکثر 12 رقم باشد"); return false; } // بررسی می کند که آیا متنی داخل جعبه if (string.IsNullOrEmpty(TxtNumber.Text)) { MessageBox.Show(@"شما باید یک عدد وارد کنید"); return false; } // اگر متن جعبه متنی خالی نباشد و طول آن بیشتر از 12 نباشد، true برمیگرداند. return true; } private void BtnToSpeech_Click(object sender, EventArgs e) { try { if (!InputValidator()) return; NumberToSpeech.Initializer(long.Parse(TxtNumber.Text)); NumberToSpeech.Play(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void TxtNumber_KeyPress(object sender, KeyPressEventArgs e) { // این شرط چیزی که کاربر درون جعبه متنی وارد می کند را بررسی می کند // اگر مقدار وارد شده یک عدد باشد یعنی 0 تا 9 آن را قبول می کند // در غیر این صورت چیزی به متن موجود اضافه نمی شود if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) { e.Handled = true; } } } }
نکات
- این برنامه با استفاده از نرم افزار ویژوال استودیو نسخه ۲۰۱۵ نوشته شده است.
- برای استفاده از Player ویندوز باید فایل WMPLib.dll را به بخش Reference های پروژه خود اضافه کنید.
- این برنامه فقط می تواند عددی که طول آن حداکثر ۱۲ رقم است را بخواند.
- قسمت های مختلف کد های برنامه با کامنت گذاری فارسی توضیح داده شده است.
نوشته سورس خواندن اعداد با صدای فارسی در زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.