شماره تماس 09336863931 | 09178169907 پست الکترونیک info@provid.ir

الگوریتم خوشه بندی کا میانگین در سی شارپ #5

در این پست از وبسایت پرووید با قسمت پنجم از سری آموزشی “پیاده سازی الگوریتم خوشه بندی کا-میانگین در سی شارپ” در خدمت شما هستیم. به ادامه ی مطلب بروید.

دریافت داده های برنامه از کاربر

کاری که الان باید انجام بدیم اینه که به کاربر اجازه بدیم داده های موردنظرشو وارد کنه و همچنین اونا رو ببینه. من برای این کار، دو تا TextBox روی فرم گذاشتم که کاربر دو تا مقدار برای پروپرتی های Height و Weight وارد می کنه و وقتی توی TextBox دوم دکمه ی Enter از کیبورد رو میزنه اون دو تا عدد رو به یه ListBox اضافه می کنم. این کدی هست که برای رویداد Key_Down از TextBox نوشتم:


        private void txtWeight_KeyDown(object sender, KeyEventArgs e)
        {           
            if (e.KeyCode==Keys.Enter)
            {
                if (string.IsNullOrEmpty(txtHeight.Text) || string.IsNullOrEmpty(txtWeight.Text))
                {
                    MessageBox.Show("Please enter the values for both Height and Weight.");
                    return;
                }
                DataPoint dp=new DataPoint();
                dp.Height = double.Parse(txtHeight.Text);
                dp.Weight = double.Parse(txtWeight.Text);
                lstRawData.Items.Add(dp.ToString());
            }
        }

وقتی که کاربر داده هاشو وارد کرد و نهایتاً دستور شروع کار رو داد، باید داده های درون ListBox رو بریزیم توی کالکشن هایی که توی پست قبلی تعریف کردیم. البته اینو بگم که میشه توی همون مرحله ی قبل (وارد کردن داده ها توی ListBox) هم داده ها رو توی کالکشن ها بریزیم ولی خب کاری که من کردم این بوده که با زدن یه دکمه، هر چی داده توی ListBox هست رو میریزم توی کالکشن _rawDataToCluster. این کدی هست که برای این کار اضافه کردم.

private void InitilizeRawData()
{
if (_rawDataToCluster.Count == 0)
{
string lstRawDataItem = string.Empty;
for (int i = 0; i < lstRawData.Items.Count; i++)
{
DataPoint dp = new DataPoint();
lstRawDataItem = lstRawData.Items[i].ToString();
lstRawDataItem = lstRawDataItem.Replace("{", "");
lstRawDataItem = lstRawDataItem.Replace("}", "");
string[] data = lstRawDataItem.Split(',');
dp.Height = double.Parse(data[0]);
dp.Weight = double.Parse(data[1]);
_rawDataToCluster.Add(dp);
}
}
}

همونطور که می بینید، این کد توی تمامی سطرهای ListBox پیمایش انجام میده، داده های درون هر سطر رو با متد Split جدا می کنه، یک شی جدید از نوع DataPoint می سازه، پروپرتی ها رو ست می کنه و نهایتاً اون شی رو به کالکشن اضافه می کنه.

خب تا اینجای کار باشه برای امروز. ادامه ی حرفمو توی پست بعدی می گم.

نظر بدهید

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

CLOSE
CLOSE