PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله به کاربردن دستوارت شرطی در زبان c# به همراه مثال



MAHDIAR
9th July 2010, 04:31 PM
در بسیاری از موارد در ساخت برنامه های کاربردی نیاز به مقایسه دو عملگر حس میشود در C# مانند سایر زبان های برنامه نویسی این امکان وجود دارد تا با استفاده از دستوارت تعبیه شده در این زبان عمل مقایسه انجام شود .

کلمات کلیدی برای ساده ترین دستوارت شرطی عبارت است از:
If و case که رایج ترین موارد در عمل مقایسه هستند

برای تعداد بالا و راحتی کار استفاده از case مناسب تر بوده و بلعکس عملگر If مناسب است

برای اینکه عمل مقایسه ساده ای را بین دو عدد انجام دهید مثال زیر را دنبال کنید
برنامه ای ایجاد کنید تا با گرفتن ۲ عدد و مقایسه انان عدد بزرگتر را نمایش دهد…..
برای این کار ابتدا مثل همیشه نیاز به تعریف ۲ متغیر به صورت زیر است:


در قسمت public partial class

Int x,y;

پس از تعریف دو متغیر x, y روی فرم نیاز به ۲ عدد Textbox داریم

برای انجام عملیات و کددهی ان نیاز به Button داریم که انرا نیز اضافه میکنیم

حالا نوبت به مقداردهی متغیرها میرسد:

x = Convert.ToInt32(textBox1.Text);

y = Convert.ToInt32(textBox2.Text);

پس از اینکه با دو قطعه کد بالا دو عدد را از کاربر گرفتیم نیاز به مقایسه با دستور if داریم

شکل کلی دستور If به صورت زیر است:

IF (condition) statement

کلمه If که یک کلمه رزرو شده بوده و نیازی به تغییر ندارد قسمت Condition نمایش دهنده شرط مورد نظر میباشد و قسمت Statement عمل مناسب به هنگام درستی شرط است

برای حالت غلط بودن ان از کلمه Else استفاده میکنیم به صورت زیر:
else statement

گاهی نایز است تا چندین شرط مورد بررسی قرار گیرد که برای این موضوع نیاز به استفاده از دستور Else If داریم با شکل کلی:
else if(condition) statement

در واقع اگر شرط اول نادرست باشد با مراجعه به else if های بعدی شرط های انان را نیز بررسی کرده تا به شرط درست یا به else نهایی برسد

پس از انکه متوجه شکل کلی دستورات if شدیم حالا نوبت به مقایسه دو عدد گرفته شده از کاربر میرسد :
If(x>y) messagebox.show(“X is greater”);

کد بالا مقدار X و Y را مقایسه کرده و در صورت درست بودن شرط در یک پیغام دلخواه نتیجه را نمایش میدهد
http://www.gooyait.com/uploads/ifc1.jpg
برای مقایسه حالت دوم که Y از X بزرگتر است چون ۲ حالت بیشتر در این مقایسه مدنظر نیست از ۲ حالت زیر میتوان استفاده کرد:
حالت اول:

Else messagebox.show(“Y is greater”);

حالت دوم :
else if (y>x) messagebox.show(“ y is greater “);http://www.gooyait.com/uploads/ifc2.jpg

MAHDIAR
9th July 2010, 04:33 PM
میتوانید دقیقا مقدار عددی هر متغیر را قرار بدهید :
messagebox.show(convert.tostring(y));

توجه کنید اگر کدهای مقاله را Copy میکنید به دلیل بزرگ و کوچک بودن حروف برنامه از شما ایارد میگیرد که باید حروف اول هر کلمه را بزرگ بنویسید

استفاده از دستور Case

در بسیاری از اواقت ممکن است تعداد مقایسه هایی که نیاز دارید مقدار زیادی باشد که نوشتن کدهای مقایسه با استفاده از دستور If مشکل و پیچیده میشود برای این منظور از دستور case باید استفاده شود که شکل کلی ان به صورت زیر میباشد:

switch(n)

}

case 1:

Statement;

Break;

Case 2:

Statement;

Break;

Case 3 :
statement;

Break;

Default:

Statement;

}

قطعه کد بالا دارای قسمت های مختلفی میباشد که هرکدام وظیف خاصی و عمل خاصی را انجام میدهند:
قسمت Switch کلمه ای کلیدی است که باید در کد حضور داشته باشد

قسمت N در اصل متغیری است که شما میخواهید انرا با چند مقدار مقایسه کنید

کلمه Case نیز کلمه ای کلیدی و رزروو شده است

۱ در واقع عدد مورد نظر شما یا هر مقداری است که شما میخواهید انرا با N مقایسه کنید

Satement در واقع دستور مورد نظر برای اجرا شدن است

Break کلمه ای کلیدی است که اگر این شرط درست نبود از مقایسه خارج شود و به خط بعد برود

کلمه default حکم else در if را دارد که اگر هیچ کدام از دستوارت بالا درست نباشد چه عملی انجام شود!

برای مثال رشته ای از کاربر گرفته و انرا با ۲ رشته مقایسه کنیم

x = (textBox1.Text);

switch (x)

{

case “ali”: MessageBox.Show(“ii”); break;

case “reza”: MessageBox.Show(“ss”); break;

}

http://www.gooyait.com/uploads/ifc3.jpg
کد بالا نشان دهنده املای صحیح در دستوارت است که باید حروف اول هر کلمه بزرگ باشد

کد بالا ابتدا رشته ای از کاربر گرفته و سپس انرا با دو کلمه ali و reza مقایسه میکند

در کد بالا به دلیل عدم وجود default اگر هیچ یک از شروط درست نباشد عملی انجام نمیشود

استفاده از دو دستور بالا به صورت ترکیبی:
برای استفاده از دو دستور بالا به صورت ترکیبی باعث میشود تا دو مقایسه پشت سرهم انجام شود یعنی پس از وارد شدن به case مورد نظر شرط دیگری نیز چک شود

x = (textBox1.Text);

switch (x)

{

case “ali”:(If Statement) ; break; case “reza”: if (statement) ; break

default:

statement;

}

کنترل ورود و خروج افراد که با استفاده از UserName و password افراد صورت میگیرد یکی از کاربردی ترین موارد در ساخت برنامه هایی است که به صورت عمومی مورد استفاده قرار میگیرد

به این صورت که فرد با وارد کردن نام کاربری و رمز خود به صفحه مشخصی وارد شده و از برنامه مختص خودش استفاده میکند

در مقاله قبل روشی برای مقایسه مقادیر مختلف توضیح داده شد که با استفاده از ان دستوارت میتوانیم نام و رمز گرفته شده را مقایسه با نام و رمز تعریف شده کنیم

برای این منظور نیاز به فرم اولیه برای دریافت اطلاعات و نیز طراحی فرم های دیگر برای هرکس داریم که بر طبق ان اطلاعات نمایش داده شود

بنابراین اجزای زیر را به فرم اضافه میکنیم:
textbox برای دریافت نام و رمز

Button برای هدایت کردن به فرم مخصوص پس از چک کردن و button خروج

۲ عدد label برای نمایش محل رمز و نام کاربری

پس از اینکه تمامی موارد را روی فرم خود اضافه کردید نوبت به کددهی میرسد

ابتدا باید ۱ متغیر از نوع رشته تعریف کنیم تا نام را بگیرد
http://www.gooyait.com/uploads/ifc4.jpg

MAHDIAR
9th July 2010, 04:36 PM
و نیز ۱ متغیر عددی برای رمز

Int b;

String a;

سپس نوبت به مقداردهی متغیرها میرسد

a=(textbox1.text);

b=convert.toint32(textbox2.text);

کد بالا دو رشته دریافتی که همان رمز و نام هستند را به متغیرها مقداردهی میکند

سپس باید به مقایسه انها بپردازیم

در این مثال کاربران مجاز سیستم ۴ نفر هستند با نام های ali reza hamed mohsen

توجه کنید که نام ها کاملا اختیاری بوده

و نیز رمز هریک به ترتیب ۱۰۰ ۲۰۰ ۳۰۰ ۴۰۰ میباشد که این نیز اختیاری میباشد

در button 1 برای خروج کد close(); را مینویسیم

در button 2 کد های زیر که عمل مقایسه و نمایش فرم جدید را بر عهده دارد نوشته میشود

توجه کنید برای اضافه کردن فرم جدید از منوی project گزینه add windows form را بزنید و سپس نام و Ok را انتخاب کنید

a = (textBox1.Text);

b = Convert.ToInt32(textBox2.Text);

دو کد بالا نام و رمز کاربری را دریافت میکند

برای تعریف و شناساندن فرم های جدید به فرم پایه خود از حالت کلی زیر استفاده میشود :

subForm myNewForm = new subForm();

myNewForm.Show ();

در واقع subform فرم زمینه شما

Newform فرم جدید شما

Show خاصیت نمایش فرم شما میباشد

اگر فرم خودرا تعریف نکنید خاصیت show وجود نخواهد داشت

پس از اضافه کردن ۴ فرم برای ۴ نفر نوبت به تعریف انان میرسد

Form2 Form2 = new Form2();

تعریف فرم ۲

Form3 Form3 = new Form3();

تعریف فرم ۳

Form4 Form4 = new Form4();

تعریف فرم ۴

Form5 Form5 = new Form5();

پس از انکه تمامی فرم هارا تعریف کردیم نوبت به عمل مقایسه و نمایش انان میرسد

switch (a)

{

case “ali”: if (b == 100) Form2.Show(); break;

عمل مقایسه در کد بالا ابتدا نام ali را چک کرده و سپس رمز ان را

case “reza”: if (b == 200) Form3.Show(); break;

case “hamed”: if (b == 300) Form4.Show(); break;

case “mohesn”: if (b == 400) Form5.Show(); break;

default: MessageBox.Show(“not found”); break;

{

در اخر اگر هیچ یک از موارد درست نباشد با پیغام دلخواه نتیجه را اعلام میکند
http://www.gooyait.com/uploads/ifc5.jpg
http://www.gooyait.com/uploads/ifc6.jpg
برای انکه نام فرم هرکس مطابق با نام کاربری ان باشد از کدزیر استفاده میشود

Form2.text در واقع خاصیت نام فرم میباشد

اگر انرا مقداردهی کنیم نمایش اسم ان تغییر میکند

Form2.text=a;

چون a نام فرد مورد نظر است نام فرم همانند ان میشود

case “ali”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “Reza”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “Hamed”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;

case “mohsen”: if (b == 100) Form2.Show(); Form2.Text = a; ; break;
http://www.gooyait.com/uploads/ifc7.jpg

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد