PDA

View Full Version : سوال: ایجاد پنل مدیریتی جهت فرمول نویسی



mahsa.admin
پنج شنبه 22 مرداد 1394, 07:49 صبح
باسلام خدمت دوستان
من در پروژم میخام یک پنل مدیریتی بسازم که کاربر یکسری محاسباتو خودش تنظیم کنه یا ایجاد کنه
به عنوان یک مثال خیلی ساده : اگر ستا تکس باکس داشته باشیم در دوتا عدد نوشته شود در سومی فرمول با زدن باتن در پیامی عدد حاصل از فرمول را نمایش دهد
در تکس باکس اول مثلا 10 در دومی 2 داریم در تکس باکس سوم فرمولی به شکل A+b مینویسم بازدن باتن عدد 12 رانمایش دهد(فرمول نوشته شده به هر شکلی امکانش باشد)
دوستان ممنون میشم راهنمایی کن حالا یا این روش یا روش بهتری که مد نظرشون هست

zayens
پنج شنبه 22 مرداد 1394, 10:56 صبح
فرمول ! کار سختیه
من برای یک از پروژه ها این کار را انجام دادم ولی چون تجاری هست امکان گزاشتن کدش را ندارم
میتونم راهنماییت کنم

اول اینکه حوزه فرمولتو باید تعیین کنی
که مثلا در چه حدی باشه ینی مثلا
در همین حد :B* (A+B)*2+A+B
یا در حد پیشرفته تر و فرمولهای پیچیده ریاضی

دوم اینکه باید پیمایش را یاد بگیری
الگوریتم های پیمایش برای جدا کردن پرانتز یه ذره برنامه نویسی حرفه ای تر میخواد
الگوریتمهایی نظیر میانوند و پیشوند که باید کار با "پُشته" را هم یاد بگیرید

این لینک را هم ببینید
http://barnamenevis.org/showthread.php?84369-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA-%D9%85%DB%8C%D8%A7%D9%86%D9%88%D9%86%D8%AF-%D8%A8%D9%87-%D9%BE%DB%8C%D8%B4%D9%88%D9%86%D8%AF&p=419485&viewfull=1#post419485

mahsa.admin
پنج شنبه 22 مرداد 1394, 11:05 صبح
با تشکر
فرمول خیلی ساده د حد A+b یا A*50
همین حد

hamid_hr
پنج شنبه 22 مرداد 1394, 11:08 صبح
چهار عمل اصلی رو اینطوری میشه محاسبه کرد


DataTable dt = new DataTable();
var x = dt.Compute("2*(3+9)", "");
Console.WriteLine(x);

mahsa.admin
پنج شنبه 22 مرداد 1394, 12:17 عصر
با تشکر از جناب hamid_hr (http://barnamenevis.org/member.php?25531-hamid_hr)
امکانش هست درمثالی که زدم پیاده سازی بشه

hamid_hr
پنج شنبه 22 مرداد 1394, 12:27 عصر
DataTable dt = new DataTable();
var x = dt.Compute(textBox3.Text.Replace("x", textBox1.Text).Replace("y", textBox2.Text), "");
با فرض اینکه x همون textbox1 هست و y هم textbox2 و فورمولم همون textBox3 باشه

mahsa.admin
پنج شنبه 22 مرداد 1394, 12:51 عصر
با تشکر از جناب حمید خان
متاسفانه رو فایل من جواب نمیده امکانش هست رو فایل اجرا کنید:لبخندساده:

hamid_hr
پنج شنبه 22 مرداد 1394, 13:21 عصر
قو رویداد button1_Click اینو بنویسید

DataTable dt = new DataTable(); var x = dt.Compute(txtTotal.Text.Replace("a", txtA.Text).Replace("b", txtB.Text), "");
MessageBox.Show(x.ToString());