الگوریتم نویسی



کدنویسی روالهای رویداد


1- روی دکمه "اولین" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

  private void btnFirst_Click(object sender, EventArgs e)

        {

            if (recCount == 0) return;  //  اگر هیچ رکوردی نبود خارج شود

           

            // متغیر رکوردجاری با اولین شماره رکورد مقداردهی شود

            recNo = 0;   

            FillTextBox();  // نمایش رکورد جاری

        }


2- روی دکمه "قبلی" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:


        private void btnPrevious_Click(object sender, EventArgs e)

        {

            if (recNo > 0)

            {

                recNo--;     // شماره رکوردجاری را یک واحد کاهش دهد

                FillTextBox();  // نمایش رکورد جاری

            }

        }


3- روی دکمه "بعدی" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

 private void btnNext_Click(object sender, EventArgs e)

        {   

            recNo++;   // یک واحد به شماره رکورد جاری اضافه می کنیم

            

            //  اگر شماره رکورد جاری از تعداد رکوردها کمتر بود

            if (recNo < recCount)     

                FillTextBox();  // نمایش رکورد جاری

            else

                recNo--;  // یک واحد به شماره رکورد جاری کم می کنیم

        }


4- روی دکمه "آخرین" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

       private void btnLast_Click(object sender, EventArgs e)

        {

            recNo=recCount;

            // به دلیل اینکه رکوردها از صفر شماره گذاری می شود شماره آخرین رکورد یکی کمتر از تعداد رکوردها خواهد بود

            recNo--; 


            if (recNo>=0)     // آخرین رکورد اگر رکوردی بود 

                FillTextBox();  // نمایش رکورد جاری      

        }


5- روی دکمه "اضافه" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

        private void btnAdd_Click(object sender, EventArgs e)

        {

            txtId.Text = "";  //textbox خالی کردن 

            txtFname.Text = "";

            txtLname.Text = "";

            flagAdd = true;  // مشخض می کند که دکمه اضافه کلیک شده است

            flagEdit = false;

            //نمایش دکمه های دخیره و انصراف و مخفی کردن سایر دکمه ها

            showButton(true);  

            txtFname.Focus();  // انتقال مکان نما به کادر متن

        }


6- روی دکمه "ویرایش" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

       private void btnEdit_Click(object sender, EventArgs e)

        {

            flagAdd = false;

            flagEdit = true;

            showButton(true);

            txtFname.Focus();  

        }


7- روی دکمه "انصراف" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

 private void btnCancel_Click(object sender, EventArgs e)

        {

            flagAdd = false;

            flagEdit = false;

            //  مخفی کردن دکمه های ذخیره و انصراف و نمایش سایر دکمه ها  

            showButton(false);  

            if (recCount > 0)  // اگر رکوردی بود

                FillTextBox(); // نمایش رکورد جاری

        }


8- روی دکمه "حذف" در صفحه فرم Double Click کرده تا پنجره کدنویسی متد رویداد click آن باز شود. دستورات را در آن می نویسیم:

   private void btnDelete_Click(object sender, EventArgs e)

   {

      DialogResult a = MessageBox.Show("آیا می خواهید حذف کنید"

     , "حذف رکورد جاری", MessageBoxButtons.YesNo, MessageBoxIcon.Warning,        MessageBoxDefaultButton.Button2);

     if(a==DialogResult.Yes)

     {   

       // Sql تعریف متغیر برای نگهداری دستورات 

     string sqlStatement = "delete from baseinfo where Id="+ txtId.Text ;

      // تعریف شی و تخصیص حافظه به شئ و  تنظیم آن

        OleDbCommand cmd2 = new OleDbCommand(sqlStatement, conn1);  

        conn1.Open();   // بازکردن اتصال

        int exe=cmd2.ExecuteNonQuery();  // اجرای دستور 

        conn1.Close();

        if(exe<0)

        {

      MessageBox.Show("رکورد حذف نشد","کاربرمحترم" ,MessageBoxButtons.OK        ,MessageBoxIcon.Error );

      return;

      }

      ds.Clear();   // پاک کردن اطلاعات شئ دیتاست

      // da1 کپی اطلاعات از بانک اطلاعاتی به دیتاست با از طریق شی

      da1.Fill(ds, "baseInfo"); 

      // تعداد کل رکوردها در متغیر ذخیره می شود  

      recCount = ds.Tables["baseInfo"].Rows.Count;  

      // اگر رکورد حذفی آخرین بود رویداد کلیک آخرین رکورد اجرا شود

      if (recNo >= recCount) btnLast.PerformClick();

      if(recCount>0)  // اگر رکوردی بود

      FillTextBox(); // رکورد جاری نمایش دهد

     }  

 }



کدها:

با دکمه F7 به بخش کد نویسی رفته بعد از متد  public frmBaseInfo یک متد به نام showButton جهت نمایش و عدم نمایش دکمه ها در زمان های مختلف اجرا با کد زیر می نویسیم:

private void showButton(bool flag)

        {

            txtFname.Enabled = flag;    // فعال یا غیر فعال کردن کادر متن جهت دریافت اطلاعات

            txtLname.Enabled = flag;    // فعال یا غیر فعال کردن کادر متن جهت دریافت اطلاعات

            pnlInsertEditSearchDelete.Visible = !flag;  // نمایش یا عدم نمایش دکمه های درج و .

            pnlMoveButton.Visible = !flag;      //  نمایش یا عدم نمایش دکمه های حرکت رکردها

            pnlSaveCancel.Visible = flag;     // نمایش یا عدم نمایش دکمه های ذخیره و انصراف

        }


جهت تست متد showButton ، متد frmBaseInfo به شکل زیر تغییر می دهیم:

   public frmBaseInfo()

        {

            InitializeComponent();

            pnlSaveCancel.Left=166;     // انتقال کادر دکمه های ذخیره و انصراف

            pnlSaveCancel.Top= 162;

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

            showButton(false);   

        }


جهت استفاده از کلاس های OleDb با دستور using System.Data.OleDb  فضای نامی مربوطه را در بخش using ها اضافه می نماییم.


برای نمایش تمامی رکوردها چند متغیر سراسری در سطح فرم و چند متد باید نعریف کنیم توجه متغیر ها باید در بیرون از همه متدها و در کلاس فرم باشد مانند مثال:


 public partial class frmBaseInfo : Form

    {  

        /* در مسیر فایل اجرایی پروزه کیی شود مانند مثال Tel.mdb  توجه فایل   

        D:\TelePhone\TelePhone\bin\Debug     */

        string strConnection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=tel.mdb";  

        OleDbConnection conn1;     // تعریف شئ برای اتصال به بانک

        OleDbCommand cmd1;         // تعریف شی برای اجرای دستورات

        OleDbDataAdapter da1;     // تعریف شی برای ایجاد ارتباط بین بانک اطلاعاتی و دیتاست

        DataSet ds;               // تعریف شی دیتاست 

        int recNo = 0;            // تعریف متغیر برای نگهداری شماره رکورد جاری

        int recCount=0;          // تعریف متغیر برای نگهداری نعداد رکوردهای جدول

        bool flagAdd = false, flagEdit = false;    

         // تعریف دو متغیر برای اینکه بدانیم کاربر کدام دکمه ها را انتخاب کرده است


  دستورات را در متد  frmBaseInfo  زیر دستور  InitializeComponent بنویسید.
توجه: دستورات قبلی که در این متد نوشته ایم را پاک نمی کنیم بلکه دستورات جدید را در محل مشخص شده اضافه می کنیم.
 
 public frmBaseInfo()
        {
            InitializeComponent();
            // Sql تعریف متغیر برای نگهداری دستورات  
            string sqlStatement = "select * from baseinfo"; 
             // تخصیص حافطه به شئ و بازکردن آن 
            conn1 = new OleDbConnection(strConnection);    
            cmd1 = new OleDbCommand(sqlStatement, conn1);  //  تخصیص حافظه به شئ و  تنظیم آن
            da1 = new OleDbDataAdapter(cmd1);              //  تخصیص حافظه به شئ و  تنظیم آن
            ds = new DataSet();                            //  تخصیص حافظه به شئ 
            //da1 کپی اطلاعات از بانک اطلاعاتی به دیتاست با از طریق شی
            da1.Fill(ds,"baseInfo");
            
            // تعداد کل رکوردها در متغیر ذخیره می شود 
            recCount = ds.Tables["baseInfo"].Rows.Count;  

           // اگر شماره رکوردی وجود داشت برای نمایش اولین آن دستور بعدی اجرا شود
            if (recCount>0)  
            FillTextBox();                                // فراخوانی متد برای خواندن اطلاعات از فیلدها به کادرهای متن
 توجه متد FillTextBox را جلوتر تعریف خواهیم نمود.//                                                                                       

تعریف متد FillTextBox برای انتقال اطلاعات از فیدهای رکورد به TextBox ها
راهنمایی : مکان تعریف متد بایذ  قبل از {{ بسته آخر صفحه باشد.

 private void FillTextBox()
        {
            txtId.Text = ds.Tables["baseInfo"].Rows[recNo]["Id"].ToString();
            txtFname.Text = ds.Tables["baseInfo"].Rows[recNo]["Fname"].ToString();
            txtLname.Text = ds.Tables["baseInfo"].Rows[recNo]["Lname"].ToString();
        }




1.     شروع

2.     W , L را بخوان

3.     Perimeter = (W + L)*2

4.     Area = W * L

5.     Area, Perimeter  را چاپ کن

6.     پایان

0

1-شروع:  

الف) یک پروژه #C از نوع کنسول در محیط VS ایجاد می کنیم.
ب) تمام متغیر هایی که در الگوریتم استفاده کرده ایم را در متد Main  به شکل زیر تعریف می کنیم.

static void Main(string[] args)

 {  //  تعریف متغیر های صحیح برای نگهداری مقادیر 

            int w, l, Perimeter, Area;

}



تبدیل سایر خطوط الگوریتم:

static void Main(string[] args)

        {

            int w, l, Perimeter, Area;


            // -----------------------------------------------------------------------------------    را بخوان   W , L  (2

            //  نمایش پیام برای دریافت طول

            Console.Write("Please enter a number for length:");

            w = int.Parse(Console.ReadLine());


            //  نمایش پیام برای دریافت عرض

            Console.Write("Please enter a number for width:");

            l = int.Parse(Console.ReadLine());

            // ---------------------------------------------------------------------------  Perimeter = (W + L)*2 (3


            // محاسبه محیط

            Perimeter = (w + l) * 2;



            // --------------------------------------------------------------------------------------   Area = W * L (4


            //  محاسبه مساحت

            Area = w * l;


            // ------------------------------------------------------------------------ را چاپ کن Perimeter , Area (5 


            Console.WriteLine("Perimeter is:{0}", Perimeter);

            Console.WriteLine("Area is:{0}", Area);

     //---------------------------------------------------------------------------------------------------------پایان (6

        }


1.     شروع

2.     A , B را بخوان

3.     SUM = A + B

4.     SUM را چاپ کن

5.     پایان

 


1-شروع:  
الف) یک پروژه #C از نوع کنسول در محیط VS ایجاد می کنیم.
ب) تمام متغیر هایی که در الگوریتم استفاده کرده ایم را در متد Main  به شکل زیر تعریف می کنیم.

 static void Main(string[] args)
   {
        //  تعریف متغیر های صحیح برای نگهداری مقادیر 
       int a , b , sum ;
         
   }
توجه: مراحل الف و ب برای قسمت شروع می باشد.

static void Main(string[] args)
   {
        //  تعریف متغیر های صحیح برای نگهداری مقادیر 
       int a , b , sum ;
2)َ A , B را بخوان   
           a=int.Parse(Console.ReadLine());
         b=int.Parse(Console.ReadLine());

3) SUM = A + B .
           sum= a+b;
4)  SUM را چاپ کن
           Console.WriteLine(sum);
5)پایان  .
   }

توجه: به دلیل اینکه این اولین برنامه بود برخی از قسمت ها حذف شده است.مثلا برای دریافت اطلاعات یا هنگام چاپ باید یک پیام مناسب داده شود. 

تبلیغات

محل تبلیغات شما
محل تبلیغات شما محل تبلیغات شما

آخرین وبلاگ ها

آخرین جستجو ها

میوه خشک لاکچری خودمان ساخت آموزش نوین آیلتس jaridarman 98-song01 آوای شعر من نسيم ياد معبود در كويرستان جان حکیم بار اهمیت استفاده از شیرهای برقی