در دو بخش قبلی، شما مقدمات لازم را جهت نوشتن یک ماشین‌حساب ساده (اما کامل) با چهار عمل اصلی ریاضی فراگرفتید. ممکن است خیلی از عزیزان خواننده، خودشان این پروژه را با موفقیت انجام داده‌اند؛ در حالی که ممکن است بعضی‌ها بدلیل مشکلاتی که در بین راه با آن‌ها برخورد کرده‌اند، نتوانسته‌اند پروژه را به‌صورت کامل آماده کنند.

طراحی ظاهری و شروع

اولین قدم در انجام پروژه ماشین‌حساب، طراحی ظاهری آن به‌شکلی که به سلیقه شما سازگار باشد، خواهد بود. من در اینجا به‌صورت یک ظاهر بسیار بسیار ساده آموزش خودم را شروع می‌کنم. نسخه‌ی شماره ۱ نرم‌افزار ماشین‌حساب شما، به‌شکل زیر خواهد بود:

همانطور که در تصویر فوق مشاهده می‌کنید، شما یک Text Boxجهت نمایش اعداد و ارقام (هنگام نوشتن و دریافت نتیجه)، button هایی برای نمایش اعداد از ۰ تا ۹، یک ممیز (point) که در اعداد انگلیسی به‌صورت نقطه می‌باشد و دو button برای جمع و مساوی را اضافه خواهید کرد. خوب، اولین کار باید پروژه‌ی خود را شروع کنید. از منوی File، وارد بخش New Project شوید و پروژه‌ی خود را به‌صورت Windows Application بسازید. برای Form ایجاد شده، Property های زیر را تنظیم کنید:



Size: 440, 487

Text: Calculator

برای اینکه به فرم خود کمی رنگ اضافه کرده باشیم و آن را از حالت پیشفرض خارج کنیم، شما باید Property ای با نام BackColor را تغییر دهید. به تصویر زیر دقت کنید:

من رنگ مورد نظر خودم را انتخاب کرده‌ام؛ شما می‌توانید رنگ دلخواه و سازگار با سلیقه خودتان را انتخاب کنید، پس راحت باشید! اکنون، یک Text Box اضافه کنید و تنظیمات زیر را بر روی آن اعمال کنید:

Name: txtDisplay Location: 66, 52 Size: 200, 26 TextAlign: Right

الان وقت اضافه کردن button ها که اعداد ۰ تا ۹ را برای شما نمایش دهند. شما برای اینکار به ۱۰ button نیاز خواهید داشت. اولین button را اضافه کنید و تنظیمات زیر را برای button مشخص شده اعمال کنید:

Name: btnZero Font: Microsoft Sans Serif, Bold, 12 Location: 49, 40 Text: 0

این button برای نمایش عدد ۰ بود. Button بعدی را جهت نمایش عدد ۱ اضافه کنید و تنظیمات زیر را بر روی آن اعمال کنید:

Name: btnOne Font: Micorosft Sans Serif, Bold, 12 Location: 49, 40 Text: 1

یکی از راه‌های آسان برای اضافه کردن چندین button، استفاده از Copy/Past می‌باشد. برای اینکار، button شماره ۱ را انتخاب کنید و بر روی آن Right Click کنید و Copy را انتخاب کنید. الان نشانگر موس را روی یک جای خالی از فرم خود قرار دهید و مجدداً Right Click کنید و Past را برگزینید. شما فقط کافیست که دو مشخصه را تغییر دهید؛ یکی Name را به btnTwo تغییر دهید و دیگری مشخصه Text آن را به ۲ تغییر دهید. برای Button ممیز نیز مشخصه Name آن را به btnPoint تغییر دهید و مشخصه Text را به یک نقطه تغییر دهید. فقط ۳ button دیگر مانده؛ این سه‌تا را هم اضافه کنید و به ترتیب Property های زیر را تغییر دهید:

Name: btnPlus Font: Microsoft Sans Serif, Bold, 12 Location: 324, 159 Size: 49, 40 Text: + Name: btnEquals Font: Microsoft Sans Serif, Bold, 12 Location: 324, 230 Size: 49, 40 Text: = Name: btnClear Font: Microsoft Sans Serif, Bold, 12 Location: 324, 305 Size: 49, 40 Text: Clear

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

شروع کدنویسی ماشین حساب

قبل از اینکه کار خودمان را شروع کنیم، اجازه دهید که یک نقشه کلی از پروژه‌ی خودمان داشته باشیم و مراحل کار را یک‌به‌یک با هم‌دیگر بررسی کنیم. شخص بر روی شماره‌ها کلیک می‌کند تا اولین رقم مورد نظر خود برای انجام عمل جمع را مشخص سازد.
اولین رقمی که کاربر ایجاد می‌کند، باید در Text Box نمایش داده شود.
بر روی کلید + کلیک می‌کند تا به سی‌شارپ این را بگوید که می‌خواهد عمل جمع را انجام دهد.
بعد از کلیک بر روی +، باید Text Box پاک شود تا برای رقم دوم آماده شود.
دوباره با استفاده از کلیدهای ۰ تا ۹، رقم دوم خود را مشخص می‌کند.
بر روی کلید مساوی کلیک می‌کند تا نتیجه در Text Box ظاهر شود.

خوب با اولین مرحله شروع می‌کنیم.

بر روی button شماره ۱ دابل-کلیک کنید تا اینکه وارد کدنویسی شوید. ما در این مرحله، می‌خواهیم برای تمامی buttonها این‌کار را انجام دهید که وقتی یکی از button های اعداد کلیک بخورند، عدد آن‌ها در Text Box نمایش داده شود. پس برای button با نام btnOne، کد زیر را اضافه می‌کنیم:



txtDisplay.Text = btnOne.Text;

این کد می‌گوید: «مقدار Text مربوط به Text Box با نام txtDisplay را به مقدار Text برای button ای با نام btnOne (که ۱ است) تغییر بده.» به یاد داشته باشید که هرچیزی که در سمت راست مساوی در کدنویسی است، دقیقاً برابر مقداری خواهد بود که در سمت چپ آن خواهد بود. برنامه‌ی خود را اجرا کنید؛ بر روی شماره ۱ کلیک کنید. خواهید دید که شماره ۱ در Text Box شما نمایش داده خواهد شد. چند بار دیگر بر روی شماره ۱ کلیک کنید؛ متوجه اشکال برنامه شدید؟ شما احتمالاً فکر می‌کردید که مثلاً اگر دوبار button شماره ۱ را کلیک کنید، باید عدد ۱۱ را نمایش دهد. چرا؟ دلیل ایراد نرم‌افزار این است که شما به سی‌شارپ نگفته بودید که مقداری که قبلاً در Text Box را نگه‌دار و مقدار جدید را در کنارش قرار بده! پس دوباره با دابل-کلیک کردن بر روی btnOne، وارد بخش کد شوید و کد قبلی خود را به کد زیر تغییر دهید:



txtDisplay.Text = txtDisplay.Text + btnOne.Text;

در این کد، علامت جمع نمایانگر عمل جمع نیست؛ بلکه چونکه هر دو متغیر از نوع String هستند، پس این دو را در کنار هم می‌آورد و به اصطلاح، یکدیگر را به هم الصاق می‌کند. یک‌بار دیگر برنامه خود را اجرا کنید و عملیات فوق را امتحان کنید، خواهید دید که این‌بار نمایش عدد‌های ۱، ۱۱، ۱۱۱، و … بدون مشکل خواهد بود. الان به برنامه خود بازگردید و اینبار بر روی btnTwo دابل-کلیک کنید و کد زیر را اضافه کنید:



txtDisplay.Text = txtDisplay.Text + btnTwo.Text;

تنها تفاوتی که کد بالا با کد قبلی دارد این هست که نام button شما از btnOne به btnTwo تغییر پیدا کرد. تمامی این‌کارها را برای تمامی اعداد (از ۲ تا ۹) انجام دهید. در نهایت، باید کد‌های شما به شکل زیر باشد:

یک‌بار دیگر جهت اطمینان، برنامه خود را اجرا کنید و از صحت کارکرد تمامی button ها مطمئن شوید. پس از اطمینان حاصل کردن از تمامی button ها به محیط برنامه خود بازگردید و بر روی button مربوط به Clear دابل-کلیک کنید و کد زیر را اضافه کنید:



txtDisplay.Clear();

بعد از نام Text Box، شما یک نقطه قرار دادید و کلمه Clear را نوشتید و در مقابل آن دو پرانتز قرار دادید؛ این بدین معنی‌است که Clear یک method است که مقدار داخل txtDisplay را خالی می‌کند. مجدداً برنامه خود را اجرا کنید و پس از وارد کردن چندین عدد، button پاک‌کردن را امتحان کنید و از صحت کارکرد آن مطمئن شوید. الان که کار نمایش اعداد ما به پایان رسید، وقت آن است که عدد وارد شده را در یک متغیر ذخیره کنیم؛ پس از آنکه کلید مساوی کلیک خورد، عمل جمع انجام شود. (توجه کنید که عمل جمع با کلیک کردن بر روی button مربوط به مساوی باید انجام شود؛ نه خود کلید جمع!) Button جمع، باید عدد وارد شده را از Text Box دریافت کند و چونکه این مقدار بصورت String دریافت می‌شود، باید آن را به عدد تبدیل کرد. سپس این عدد را در یک متغیر عددی ذخیره می‌کنیم. در نهایت باید در انتهای کد خود، یک خط کد دیگری اضافه کنیم که مقدار داخل Text Box را خالی کند تا آماده دریافت رقم بعدی باشد. اولین رقم وارد شده می‌بایست که در یک متغیر ذخیره شود. ما برای اینکار از متغیر نوع Double استفاده خواهیم کرد تا ما بتوانیم مقدار بزرگی را از اعداد پشتیبانی کنیم. (همچنان بتوانیم از ارقام دارای ممیز نیز پشتیبانی کنیم.) از آنجایی که تمامی button های داخل فرم می‌بایست که متغیر را ببینند، می‌بایست که این متغیر خارج از هرگونه کدی مربوط به button تعریف شود. یعنی تعریف این متغیر در چنین جایی کاملاً اشتباه است:



private void btnOne_Click(object sender, EventArgs e)

{

Double total1 = 0;

}

اگر شما چنین کاری را بکنید، تنها btnOne خواهد توانست که متغیر total1 را بشناسد؛ ولی دیگر اشیاء دسترسی به total1 نخواهند داشت و برای آن‌ها تعریف نشده خواهد ماند. روش درست تعریف متغیری که می‌بایست اصطلاحاً به‌صورت Global تعریف شود، به‌شکل زیر است:



double total1 = 0;

private void btnPlus_Click(object sender, EventArgs e)

{

}

کدی که باید برای خود btnPlus تعریف شود، به شکل زیر است: (کدهای آبی رنگ)



double total1 = 0;

private void btnPlus_Click(object sender, EventArgs e)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

}

تنها کاری که در کد‌های بالا انجام می‌دهیم این است که مقدار Text را از txtDisplay میگیرم، آن را به double تغییر می‌دهیم و در نهایت در متغیر total1 ذخیره می‌کنیم. دقت کنیم که ما مجدداً این خط کد را نوشتیم:



total1 = total1 +

درست همانند کاری که در رابطه با نمایش اعداد کردیم، در اینجا هم انجام می‌دهیم. با این تفاوت چونکه هر دو مقدار از نوع عدد هستند، متغیر total1 مقدار قبلی خود را حفظ می‌کند و توسط علامت +، مقدار جدید را به خود اضافه می‌کند. یکی از راه‌های متداول در سی‌شارپ، چیزی شبیه به کد زیر است:



Total1 += double.Parse(txtDisplay.Text);

این کد، دقیقاً همان کاری را می‌کند که کد زیر انجام می‌دهد:



total1 = total1 + double.Parse(txtDisplay.Text);

پس آنکه کد مربوط به button جمع را نوشته‌ایم، به سراع کدهای مربوط به Button مساوی می‌پردازیم. Button مساوی، محلی‌است که عمل جمع باید در آن اتفاق بیفتد؛ اینجاست که ما واقعاً عمل جمع را انجام خواهید داد. برای اینکه پاسخ نهایی را جایی ذخیره کنیم، ما یک متغیر دیگر به شکل زیر اضافه خواهیم کرد:



double total1 = 0;

double total2 = 0;

private void btnPlus_Click(object sender, EventArgs e)

{

total1 = total1 + double.Parse(txtDisplay.Text);

txtDisplay.Clear();

}

پس ما یک متغیر با نام total2 از نوع double تعریف کردیم. به فرم خود برگردید و بر روی button مساوی دابل-کلیک کنید؛ کدهای زیر را اضافه کنید:



total2 = total1 + double.Parse( txtDisplay.Text );

txtDisplay.Text = total2.ToString( );

total1 = 0;

فکر نمی‌کنم نیازی به توضیح دادن کدهای بالا باشد! همه چیز کاملاً واضح است! الان وقت آن است که برنامه خود را اجرا کنید و چند عمل جمع را انجام دهید و از صحت آن مطمئن شوید. تمرین: ما هنوز کدی را برای ممیز ننوشته‌ایم. این‌کار را به عهده شما خواهیم گذاشت! (راهنمایی: شما تنها و تنها باید ۱ خط کد اضافه کنید!).

 

منبع:گویا آی تی

نظر خود را اضافه نمایید

ارسال نظر به عنوان مهمان

0
  • هیچ نظری یافت نشد.