الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اله حاسبه ذات طابع خاص

بدأه mohamed salama في 2 سبتمبر 2010 · 0 رد · 1,031 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم ورحمه الله وبركاته

فى البدايه احب ان اشكر كل من بدأ فى قراءه هذا الموضوع

يوجد مشكله فى عمل اله حاسبه من نوع خاص جدا كيف هذا ؟ :unsure:

فهذه الاله بها 2 تيكست بوكس Text Box كما هو موضح بالصوره المرفقه

post-170153-029726800 1283430710_thumb.j

وبه ايضا الارقام من 1 الى 9 :blush:

ونريد عمل الاتى :

عندما يضغط المستخدم على الزر الاول يكتب الرقم فى اول text box ثم عندما يضغط على زر اخر يكتب الرقم فى الـ text box الثانى ثم يعرض ناتج الضرب لهما فى نفس الوقت بدون الضغط على اى زر اخر بجوار الكلمه التى اسفلهم ثم اذا ضغطنا ضغطه ثالثه يكتب الرقم فى الـ text box الاول مره اخرى ... وهكذا .

كيف نفعل ذلك ؟

:excl:

:excl:

:excl:

اليكم الاجابه مع الكود والبرنامج سورس كود فى المرفقات (فيجوال استوديو 2008) ... :lol:

المشاكل :

اولا كيف لنا ان نعرف عند الضغط على اى زر انه سيكتب فى التكست الاول ام الثانى ... :ohmy:

ثانيا كيف لنا عندما نضغط ثانيا على اى زر ان يضرب الرقمين فى بعضهما ويظهر الناتج ... :ohmy:

ثالثا كيف لى عندما اضغط ثالثا على اى زر ان يكتب فى التكست الاول ... :ohmy:

انها لمشاكل صعبه بعض الشىء وتحتاج لتفكير عميق ...

وهل اذا حليت هذه المشاكل فى اى مكان ساكتب الكود لحل هذا المشكله هل ساكتب الكود داخل كل زر من ازرار الاله الحاسبه اى 9 مرات تكرار للكود ام لكل زر سيكون كود خاص به ... :mad:

لقد اوقعت نفسى فى حيره ... :wacko:

كيف لى ان احل كل هذه المشاكل فى وقت سريع ... :blink:

سوف نفكر مع بعضنا البعض حتى نحل هذه المشكله فى وقت سريع ... هيا بنا :)

اولا : لمعرفه ان هذا الزر هو اول زر مضغوط وان الكتابه ستكون فى الـ text box الاول يمكنك كتابه هذا الكود :

if (textBox1.Text.Equals(""))
            {
                textBox1.Text = btn1.Text;
                          }

ثانيا : لمعرفه ان الزر الاول تم الضغط عليه وان هذا الزر المغوط هو الثانى اى انه سيكتب قيمته فى الـ text box الثانى يكون كالتالى :

if (label1.Text.Length > 9)
            {
                textBox1.Text = btn1.Text;
                textBox2.Text = "";
                label1.Text = "Result =";
                return;
            }

ثالثا لمعرفه ان الزر الاول والثانى تم الضغط عليهم وان الزر القادم هو الزر الثالث وسوف يكتب فى الـ text box الاول وسيمحى النتيجه السابقه يكون كالتالى :

if (label1.Text.Length > 9)
            {
                textBox1.Text = btn1.Text;
                textBox2.Text = "";
                label1.Text = "Result =";
                          }

وبهذه الاكواد نكون قد اتممنا حل ثلاث مشاكل ولكن تبقى المشكله النهائيه هل سأكتل الثلاثه اكواد السابقه فى كل زر من الازرار التسعه ام سيكون لكل زر كوده الخاص به :

لا : سوف نكون method للتسهيل علينا فى كتابه الكود وستكون هذه الـ method حتحوى على الثلاثه اكواد ثم نقوم بمناداه هذه الـ method فى كل زر موجود من التسعه ازرار كالتالى :

الـ method :

public void oper(Button btn1)
        {
            if (textBox1.Text.Equals(""))
            {
                textBox1.Text = btn1.Text;
                return;
            }
            if (textBox2.Text.Equals(""))
            {
                textBox2.Text = btn1.Text;
                label1.Text = String.Format("Result = {0}",
                    (int.Parse(textBox1.Text) * int.Parse(textBox2.Text)));
                return;
            }
            if (label1.Text.Length > 9)
            {
                textBox1.Text = btn1.Text;
                textBox2.Text = "";
                label1.Text = "Result =";
                return;
            }
        }

ولكن هنا لماذا يوجد سطر فى كل حاله به كلمه return :

لانه لكل مره اريد فقط حاله وحيده لا اريده ان يمر بكل الحالات فالحاله المتوافقه مع الموجوده حاليا فقط هى التى تنفذ ثم يخرج البرنامج ليستقبل حاله اخرى

بهذا اكون قد انهيت الدرس ... شاكر لكم قراءته ...

اذا كان فى اى كود لا يمكنكم فهمه او استيعابه من فضلكم اضف رد وسوف اشرحه بالتفصيل ... :)

Special Calc.rar

المرفقات
1.JPG
73b14eadba.gif

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

لكل مبتدئى البرمجه برمجه بلغه السى شارب

تنصيب ويندوز 8 على vmware

مواضيع مشابهة