ماشین حساب ساده در سی شارپ (همراه با فایل پروژه و ویدیو آموزشی)
سلام دوستای خوب آرکد، در این مطلب آموزشی براتون یه پروژه ساده از نوع ویندوز فرم با عنوان ماشین حساب ساده در سی شارپ رو براتون آموزش میدم.
تو این مطلب که برای دوستای تازه وارد کاربرد داره، میتونید شرط ها و ساختارهای if و swich رو به راحتی یاد بگیرید برای شروع میریم ظاهر فرممون رو طراحی میکنیم.
خب تو تصویر بالا دیدین که ساختار ماشین حسابمون رو ایجاد کردیم. از ظاهرش معلومه که خیلی سادس و ازش انتظار محاسبه انتگرال رو نداریم. فقط چهار عمل اصلی رو میخوایم برامون انجام بده. (اگه فرصت کنم و اینو کاملش میکنیم و به صورت یه پروژه کامل میزارم تا دانلودش کنید)
خب میریم سراغ کد نویسی ماشین حسابمون.
برای شروع نیاز داریم تا چهارتا متغییر سراسری تعریف کنیم
Num1 برای نگه داری مقدار عدد اول
Num2 برای نگه داری مقدار عدد دوم
Point برای نگه داری وضعیت نقطه اعشار
Amalgar هم برای نگه داری عمل ریاضی
1 2 3 4 | string Amalgar = ""; bool Point = false; double Num1 = 0; double Num2 = 0; |
خب برای کلید های ۰ تا ۹ از این کد استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | private void btn1_Click(object sender, EventArgs e) { lblResult.Text += btn1.Text; } private void btn2_Click(object sender, EventArgs e) { lblResult.Text += btn2.Text; } private void btn3_Click(object sender, EventArgs e) { lblResult.Text += btn3.Text; } private void btn4_Click(object sender, EventArgs e) { lblResult.Text += btn4.Text; } private void btn5_Click(object sender, EventArgs e) { lblResult.Text += btn5.Text; } private void btn6_Click(object sender, EventArgs e) { lblResult.Text += btn6.Text; } private void btn7_Click(object sender, EventArgs e) { lblResult.Text += btn7.Text; } private void btn8_Click(object sender, EventArgs e) { lblResult.Text += btn8.Text; } private void btn9_Click(object sender, EventArgs e) { lblResult.Text += btn9.Text; } private void btn0_Click(object sender, EventArgs e) { lblResult.Text += btn0.Text; } |
کد های مربوط به عمهای اصلیمون هم به شکل زیر هست
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | private void btnPlus_Click(object sender, EventArgs e) { Num1=double.Parse(lblResult.Text); Amalgar = "+"; lblResult.Text = ""; Point = false; } private void btnMines_Click(object sender, EventArgs e) { Num1 = double.Parse(lblResult.Text); Amalgar = "-"; lblResult.Text = ""; Point = false; } private void btnMul_Click(object sender, EventArgs e) { Num1 = double.Parse(lblResult.Text); Amalgar = "*"; lblResult.Text = ""; Point = false; } private void btnDev_Click(object sender, EventArgs e) { Num1 = double.Parse(lblResult.Text); Amalgar = "/"; lblResult.Text = ""; Point = false; } |
خب برای نقطه اعشار هم اینو مد نظر داشته باشید که کاربر فقط میتونه یه بار اعشار رو وارد کنه بنابراین ما اومدیم یه متغییر تعریف کردیم تا بیش از یه بار اعشار وارد نشه.
1 2 3 4 5 6 7 8 | private void btnPoint_Click(object sender, EventArgs e) { if(!Point) { lblResult.Text += "."; Point = true; } } |
برای اینکه کاربر آخرین عدد وارد شده رو هم بتونه پاک کنه از کد زیر استفاده کردیم.
1 2 3 4 5 6 7 | private void btnBackSpace_Click(object sender, EventArgs e) { if (lblResult.Text.Length > 0) { lblResult.Text = lblResult.Text.Substring(0, lblResult.Text.Length - 1); } } |
میرسیم به کار اصلیمون که کاربر بعد اینکه عدد دوم رو وارد کرد و روی مساوی کلیک کرد باید بررسی کنیم ببینیم چه عملی رو میخواد و نتیجه رو بر حسب اون به کاربر نشون بدیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | private void btnEqule_Click(object sender, EventArgs e) { Num2 = double.Parse(lblResult.Text); try { switch (Amalgar) { case "+": lblResult.Text = (Num1 + Num2).ToString(); break; case "-": lblResult.Text = (Num1 - Num2).ToString(); break; case "*": lblResult.Text = (Num1 * Num2).ToString(); break; case "/": lblResult.Text = (Num1 / Num2).ToString(); break; } } catch { lblResult.Text = "ERROR"; Amalgar = ""; Point = false; Num1 = 0; Num2 = 0; } } |
خب همه نیازمندی های این ماشین حساب ساده رو نوشتیم. سعی میکنم یه فیلم آموزشی هم بزارم تا دوستای مبتدی هم بدونن کلا ما چیکار کردیم.همچنین اگه مشکلی هم بود توی کامنتا بگید تا راهنماییتون کنیم.
سلام ممنون عالی بود
ممنون دوست عزیز