کد ماشین حساب در ویندوز فرم سی شارپ c# همراه با سورس کدها

اولین قدم قبل از نوشتن کد ماشین‌حساب در ویندوز فرم سی شارپ c#، طراحی ظاهری آن خواهد بود. ما در اینجا به‌صورت یک ظاهر بسیار ساده آموزش خود را شروع می‌کنیم. (تذکر:در جلسه اول با محیط ویندوز فرم آشنا شدیم و همچنین کار کردن با دستورات را در آموزش برنامه نویسی تحت کنسول آموزش دادیم)

ابتدا کنترل ها را از پنجره Toolbax روی فرم قرار می دهیم:

کنترل های مورد نیاز :

TextBox

Button

Label

کد ماشین حسابدر ویندوز فرم به زبان سی شارپ c#

خصوصیات(نام و متن) هر یک از اشیاء که در فرم قرار داده ایم را به شکل زیر تنظیم کردیم:

textbox1:

ویژگی نام برای textbox در ویندوز فرم

textbox2:

ویژگی نام برای textbox در ویندوز فرم

label1:

label2:

Button1:

Button2:

Button3:

Button4:

کد سی شارپ ماشین حساب:

روی هر کدام از این اشیا کلیک کنیم به کد مربوط به آن قسمت از برنامه هدایت می شویم و دستورات زیر را وارد می کنیم. این دستورات با توجه به آموزشی که قبلا تحت کنسول داشتیم بسیار ساده و قابل فهم می باشند:

کد ماشین حساب به زبان سی شارپ c#

برنامه ماشین حساب ساده اینجا به پایان رسید.

ماشین حساب با دستور if

حالا می خواهیم این ماشین حساب را کمی پیشرفته تر طراحی کنیم چیزی مشابه تصویر زیر:

"<yoastmark

یک فرم مشابه تصویر بالا طراحی می کنیم سپس کدهای زیر را در این form قرار می دهیم:

//—————————-تعریف متغیر ها

  public  double Result1, Result2, Sum, Mul, Min, Div;

        Boolean OPMul,OPSum,OPMin,OPDiv;

//———————-توابع مربوط به کلیک کردن دکمه های 0 تا 9

        private void button1_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “1”;         
        }

        private void button2_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “2”;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “3”;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “4”;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “5”;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “6”;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “7”;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “8”;
        }

        private void button9_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text +”9″;
        }

        private void button0_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “0”;
        }

//——————–تابع دکمه پاک کردن

        private void buttonC_Click(object sender, EventArgs e)
        {
            txtResult.Text = “”;
        }
 //————————————عملگرها

            private void buttonMul_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OPMul = true;
            }
        }

        private void buttonDiv_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OPDiv = true;
            }
        }

        private void buttonMin_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OPMin = true;
            }
        }
        private void buttonSum_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OPSum = true;
            }
        }

//————————————عملگر مساوی

        private void buttonEqual_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result2 = double.Parse(txtResult.Text);
                if (OPSum == true)
                {
                    Sum = Result1 + Result2;
                    txtResult.Text = Sum.ToString();
                    OPSum = false;
                }
                else if (OPMin == true)
                {
                    Min = Result1 – Result2;
                    txtResult.Text = Min.ToString();
                    OPMin = false;
                }
                else if (OPMul == true)
                {
                    Mul = (Result1 * Result2);
                    txtResult.Text = Mul.ToString();
                    OPMul = false;
                }
                else if (OPDiv == true)
                {
                    Div = Result1 / Result2;
                    txtResult.Text = Div.ToString();
                    OPDiv = false;
                }
            }
        }

توضیح کد:

  • ابتدا تابع click هر دکمه تعریف شد که اگر فشرده شود چه مقداری کنار مقدار داخل txtResult قرار بگیرد و مجدد در txtResult نمایش داده شود مثلا اگر داخل txtResult از قبل مقدار 2 بود و حال  دکمه 1 فشرده شود،مقداری که در داخل txtResult نمایش داده می شود 21 است.
  • در داخل تابع click  هر عملگر ابتدا  با یک دستور if چک می کنیم اگر txtResult  خالی نبود، مقدار داخل txtResult را از رشته به عدد تبدیل می کند و در متغیر Result1 ذخیره می کند.سپس txtResult را خالی می کنیم برای ورود عدد دوم. سرانجام یک متغیر Boolean  مخصوص به خود را true می کند تا بعدا در تابع مساوی بتوانیم تشخیص دهیم که کدام عملگر کلیک شده است.( مثلا تابع ضرب متغیر OPMul را true می کند.)
  • داخل تابع click مربوط به عملگر مساوی، ابتدا عدد دومی که وارد شده را از رشته به عدد تبدیل کرده و داخل Result2 ذخیره می کنیم. با دستور if ، هر کدام از متغیر های بولین OPSum ،OPMin ،OPMul،OPDiv  را چک می کنیم .مثلا  اگر OPMul == true بود یعنی دکمه ضرب کلیک شده است.بنابراین Result1 را در Result2 ضرب کرده و تبدیل به رشته می کنیم و داخلtxtResult ذخیره می کنیم . در نهایت متغیر بولین خاص آن عملگر را false می کنیم.

ماشین حساب با دستور switch

حالا می خواهیم همان ماشین حساب با فرم بالا را با دستور switch بنویسیم.

public double Result1, Result2, Sum, Mul, Min, Div;

        public string OP;

 

        private void button1_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “1”;         
        }

        private void button2_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “2”;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “3”;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “4”;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “5”;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “6”;
        }

        private void button7_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “7”;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “8”;
        }

        private void button9_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text +”9″;
        }

        private void button0_Click(object sender, EventArgs e)
        {
            txtResult.Text = txtResult.Text + “0”;
        }

//——————–تابع دکمه پاک کردن

        private void buttonC_Click(object sender, EventArgs e)
        {
            txtResult.Text = “”;
        }
 //————————————عملگرها

        private void buttonSum_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OP = “+”;
            }
        }

        private void buttonMin_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OP = “-“;
            }
        }

            private void buttonMul_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OP = “*”;
            }
        }

        private void buttonDiv_Click(object sender, EventArgs e)
        {
            if (txtResult.Text != “”)
            {
                Result1 = double.Parse(txtResult.Text);
                txtResult.Text = “”;
                OP = “/”;
            }
        }

//————————————عملگر مساوی

        private void buttonEqual_Click_1(object sender, EventArgs e)

        {
            if (txtResult.Text != “”)
            {
                Result2 = double.Parse(txtResult.Text);
                switch (OP)
                {
                    case “+”:
                        txtResult.Text = (Result1 + Result2).ToString();
                        break;
                    case “-“:
                        txtResult.Text = (Result1 – Result2).ToString();
                        break;
                    case “*”:
                        txtResult.Text = (Result1 * Result2).ToString();
                        break;
                   case “/”:
                        txtResult.Text = (Result1 / Result2).ToString();
                        break;
                        return;
                }
            }
        }

 کدنویسی با دستور switch مشابه کدنویسی با دستور if است و توضیح خاصی ندارد.

  • برای دانلود سورس کد ماشین حساب با دستور if کلیک کنید:

  • برای دانلود سورس کد ماشین حساب با دستور switch کلیک کنید:

امیدواریم از آموزش کد ماشین حساب در ویندوز فرم سی شارپ c# استفاده کافی برده باشید و در آموزش بعد به نوشتن پروژه بازی جورچین می پردازیم. با ما همراه باشید.

 

لطفا سوالات و پیشنهادات خود را در قسمت ثبت دیدگاه پایین همین آموزش با ما در میان بگذارید.

به این مقاله چند تا ستاره میدی؟
[تعداد رای: 75 امتیاز: 3.9]