سعی میکنم تو پست آینده ماشین حسابمون رو حرفه ای ترش کنیم
یه پروژه سی شارپ رو شروع کنید
اگه هنوز تو استارت کار مشکل دارین پست های قبلی سی شارپ رو یه نگاه بندازین قبلا تصویری شو نوشتم :)
به پروژه تون 19 تا دکمه اضافه کنید Button
یه تکست باکس Text Box
و یه لیست باکس List Box
فرمتون رو شبیه شکل زیر درست کنید
اسم دکمه ها و اندازه هاشون رو دستکاری کنین تا شبیه ماشین حساب شه
طرح و زیبایی قالب کار با خودتون ...
خوب قیافه شو درست کردیم حالا بریم سراغ کد نویسیش :)
تکست باکس و لیست باکسمون که دریافت کننده هستن
پس باید برای دکمه ها تک تک کد وارد کنیم
ابتدا باید چند تا متغییر تعریف کنیم
میدونیم که برای انجام عملیات چهارگانه ریاضی ( - + * / ) ما نیاز به سه تا متغیر داریم
متغیر اول عدد اول رو میگیره متغیر دوم عدد بعدی رو میگیره متغییر سوم جواب رو در خودش جا میده
ترجیحا این متغییر ها رو بصورت رشته ای تعریف میکنم
برای اینکار روی صفحه ی فورم دوبل کلیک میکنیم و بعد از کد زیر
public Form1()
{
InitializeComponent();
}
private String a, b, c;
private double abc = 1 , cba = 0;
یه متغییر دیگه از نوع عدد صحیح با مقدار یک هم اضافه میکنیم
int i = 1;
بهتره یه متغییر منطقی هم به عنوان کلید به برنامه مون اضافه کنیم تا جلوی ایراد های احتمالی رو بگیریم
private bool key = false;
اینجا متغییر key رو اختیاری نادرست تعریف کردم میتونستیم true یا درست هم تعریفش کنیم
در ادامه کار بیشتر متوجه ماجرا میشین ;)
حالا بریم سراغ دکمه هامون ...
ساده ترین کد برای دکمه CL هستش ... روش دوبار کلیک کنید و کد زیر رو براش تعریف کنید
textBox1.Clear();
دکمه بعدی دکمه بک اسپیسی که درست کردیم هستش
روش دوبل کلیک کنید تا بریم سراغ کدهای این دکمه
( دیگه هر دکمه ای که بحثش شد خودتون بدونید که باید روش دوبل کلیک کنید تا برین قسمت کد نویسی اون دکمه دیگه D: )
textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
کد ساده ی بعدی مال نقطه هه هسسش (همون که کار ممیز رو انجام میده) :)
if (textBox1.Text == "")
textBox1.Text = "0.";
else
textBox1.Text += button57.Text;
کد نویسیم هم یکم حالت خسته داره آکولاد ماکولاد خبری نی شما خوشتون اومد خودتون بزارین :)
کد عددها شبیه همه فقط فرق خیلی کوچیکی داره اونم اینه که عدد دکمه رو تو کدها عوض میکنیم
من برای جالب تر شدن کارم عدد یک رو برای دکمه یک عدد دو رو برای دکمه دو و .... در نظر گرفتم
برای مثال کد عدد یک به شکل زیر میشه :
if (key)
{
textBox1.Clear();
key = false;
}
textBox1.Text += button1.Text;
تکست باکس رو خالی کن و منطقمون رو هم همچنان نادرست قرار بده (هیچ کاری انجام نده)
ولی اگه تعریفمون صحت نداشت (یعنی عملی که داریم انجام میدیم درست بود)
به نوشته های موجود در تکست باکسمون نوشته دکمه رو اضافه کن
ما میتونستیم به شکل زیر هم بنویسیم
if (key)
{
textBox1.Clear();
key = false;
}
textBox1.Text += "1";
در کل سلیقه است دیگه هر مدلی میشه نوشت
این کد رو برای همه دکمه های عدد (صفر تا نه) تعریف کنید (کد بالایی یا پایینی)
فقط دقت کنید عدد هارو تغییر بدین
در نهایت کدهای تمام ده عدد رو به کمک این تکه کدها تکمیل میکنیم
حالا کد دکمه مثبت منفی رو باید بنویسیم
خوب این دکمه کارش اینه که عدد وارد شده رو منفی یا مثبت کنه
کد زیر رو براش تعریف کنید :
if (textBox1.Text == "")
{
MessageBox.Show("هیچ عددی وارد نشده است");
listBox1.Items.Add("Error");
listBox1.Items.Add("================================");
}
else
{
textBox1.Text = (double.Parse(textBox1.Text) * -1).ToString();
}
ولی اگه تکست باکس خالی نبود عدد موجود در تکست باکس رو ضرب در منفی یک کنه
حالا کد دکمه های چهار تا عمل ریاضی رو باید وارد کنیم
اول کد دکمه تقسیم :
if (textBox1.Text == "")
{
MessageBox.Show("هیچ عددی وارد نشده است");
listBox1.Items.Add("Error");
listBox1.Items.Add("================================");
}
else
{
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("÷");
if (i == 1)
{
abc = double.Parse(textBox1.Text);
i++;
}
else
{
abc /= double.Parse(textBox1.Text);
}
textBox1.Clear();
a = (abc).ToString();
c = "/";
}
قسمت دوم (در غیر این صورت = else )
به لیست باکسمون ابتدا محتویات تکست باکس رو اضافه میکنه
بعد علامت تقسیم رو اضافه میکنه
اگه اولین عدد ورودی بود
مقدار موجود در تکست باکس رو برای مقدار abc قرار میده
اگه اولین ورودی نبود
مقدار جدید رو تقسیم بر مقدار قبلی میکنه
تکست باکس رو تمیز میکنه (خالیش میکنه)
به متغییر a که قبلا تعریف کرده بودیم مقدار abc رو نسبت میده
و به متغییر c هم علامت تقسیم رو نسبت میده (عملی که قراره بعدا انجام بشه)
کد دکمه ی ضرب به شکل زیر هست
if (textBox1.Text == "")
{
MessageBox.Show("هیچ عددی وارد نشده است");
listBox1.Items.Add("Error");
listBox1.Items.Add("================================");
}
else
{
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("×");
abc *= double.Parse(textBox1.Text);
textBox1.Clear();
a = (abc).ToString();
c = "*";
}
int i = 1;
if (textBox1.Text == "")
{
MessageBox.Show("هیچ عددی وارد نشده است");
listBox1.Items.Add("Error");
listBox1.Items.Add("================================");
}
else
{
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("-");
cba -= double.Parse(textBox1.Text);
if (i == 1)
{
cba *= -1;
i++;
}
textBox1.Clear();
a = (cba).ToString();
c = "-";
}
این کار برای انجام دادن یک عمل برای یک بار در چرخه هستش
شرط دوم ابتدا مقدار تکست باکس و علامت - رو به لیست باکس اضافه میکنه
سپس مقدار موجود در تکست باکس رو از مقدار متغییر cba تفریق میکنه
همونطور که میدونید مقدار اولیه ی این متغییر صفر بود
پس وقتی ما اولین عدد وارد شده مون رو از صفر کم کنیم اولین ورودی ما منفی خواهد شد
برای رفع این ایراد ما دوباره شرط میکنیم که اگر مقدار i یک بود (که هست)
مقدار متغییر cba رو ضرب در 1- کن
(که در این صورت اولین عددی که وارد کردیم دیگه علامتش عوض نمیشه)
بعد به i یکی اضافه میکنیم تا دیگه این شرط تکرار نشه
و ....
کد دکمه جمع :
if (textBox1.Text == "")
{
MessageBox.Show("هیچ عددی وارد نشده است");
listBox1.Items.Add("Error");
listBox1.Items.Add("================================");
}
else
{
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("+");
cba += double.Parse(textBox1.Text);
textBox1.Clear();
a = (cba).ToString();
c = "+";
}
حالا میرسیم به دکمه قولشون :)
کدهای دکمه مساوی :
b = textBox1.Text;
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("=");
switch (c)
{
case "+":
textBox1.Text = (double.Parse(a) + double.Parse(b)).ToString();
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("================================");
abc = 0;
key = true;
break;
case "-":
textBox1.Text = (double.Parse(a) - double.Parse(b)).ToString();
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("================================");
abc = 0;
i = 1;
key = true;
break;
case "*":
textBox1.Text = (double.Parse(a) * double.Parse(b)).ToString();
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("================================");
abc = 1;
key = true;
break;
case "/":
textBox1.Text = (double.Parse(a) / double.Parse(b)).ToString();
listBox1.Items.Add(textBox1.Text);
listBox1.Items.Add("================================");
key = true;
abc = 1;
i = 1;
break;
}
و ...
توضیحات این قسمت رو بعدا مینویسم
دیگه خسته شدم :/
قصد این نیست که ماشین حساب بسازین و ازش استفاده کنید و ...
امروزه ماشین حساب ها پیش پا افتاده ترین برنامه ها هستن و ما میتونیم خیلی راحت بهترین و پیشرفته ترین برنامه شو به دست بیاریم
قصد من از توضیح دادن و نوشتن این پست ، فقط آشنا شدن شما با کدها هست و دوست دارم یجوری از یه گوشه ی این بازی جالب شروع کنید به نوشتن و ساختن
اگه کد نویس قدیمی باشین متوجه میشین که من اینجا از کدهای ماشین حساب معمولی استفاده نکردم
کدهایی که در این آموزش استفاده کردم قسمتی از کدهایی بود که تو پروژه های بزرگ حسابداری ازشون استفاده میشه
امیدوارم مفید واقع شده باشه :)
عشقم
مردشور قیافتو ببرن
دلمم نمیاد فحشت بدم :(
تو اگه میخوای اعضای این وب کاری بشن
کد نویسی سی شارپ رو از ابتدا شروع کن آموزش بده طرز استفاده و طرز قرار گیری و ...... تا از اونجا استارت بزنیم
منی ک نمیدونم هر کدوم از این تگ ها چیه و به چه دردی میخوره چطور حفظ کنم و یاد بگیرم و ...... ؟
راستی هنوزم سر حرفم هستم واس اومدن نظرت چیه ؟ چیکار کنم ؟ بهت امیدوار باشم یا ن ؟
یه شماره تماس بهم برسون بهت زنگ بزنم بیشتر بحرفیم