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

الة حاسبة

بدأه betna في 22 أبريل 2013 · 21 رد · 8,820 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عملت الة حاسبة بسيطة 

لكن كود زرار النتيجة مش عايز يشتغل 

لسة مبتدئة لو تقولولي الغلط فين

 

Public Class Form1
Dim addition1 As Integer
Dim subtraction1 As Integer
Dim division1 As Double
Dim multiplication1 As Integer
Dim result As Integer
Dim choice As String
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs)
End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Select Case choice
Case "plus"
result = addition1 + Val(TextBox1.Text)
TextBox1.Text = 0
Case "minus"
result = subtraction1 - Val(TextBox1.Text)
TextBox1.Text = Str(result)
Case "division"
result = division1 / Val(TextBox1.Text)
TextBox1.Text = Str(result)
Case "multiplication"
result = multiplication1 * Val(TextBox1.Text)
TextBox1.Text = Str(result)
End Select
End Sub

Private Sub Button11_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button11.Click
TextBox1.Clear()
End Sub

Private Sub ZERO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZERO.Click
TextBox1.Text = TextBox1.Text & ZERO.Text
End Sub

Private Sub one_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles one.Click

TextBox1.Text = TextBox1.Text & one.Text

End Sub

Private Sub two_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles two.Click

TextBox1.Text = TextBox1.Text & two.Text
End Sub

Private Sub three_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles three.Click

TextBox1.Text = TextBox1.Text & three.Text
End Sub

Private Sub four_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles four.Click

TextBox1.Text = TextBox1.Text & four.Text
End Sub

Private Sub five_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles five.Click

TextBox1.Text = TextBox1.Text & five.Text
End Sub

Private Sub six_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles six.Click
TextBox1.Text = TextBox1.Text & six.Text
End Sub

Private Sub seven_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles seven.Click
TextBox1.Text = TextBox1.Text & seven.Text
End Sub

Private Sub eight_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles eight.Click

TextBox1.Text = TextBox1.Text & eight.Text
End Sub

Private Sub nine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nine.Click
TextBox1.Text = TextBox1.Text & nine.Text
End Sub

Private Sub plus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles plus.Click
addition1 = Val(TextBox1.Text)
TextBox1.Clear()
choice = "plus"
End Sub

Private Sub minus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles minus.Click
subtraction1 = 0
subtraction1 = Val(TextBox1.Text)
TextBox1.Clear()
choice = "minus"
End Sub

Private Sub divide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles divide.Click
division1 = Val(TextBox1.Text)
TextBox1.Clear()
choice = "division"
End Sub

Private Sub multiply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles multiply.Click
multiplication1 = Val(TextBox1.Text)
TextBox1.Clear()
choice = "multiplication"
End Sub
End Class

#2

يمكن ارفاق المشروع هذا افضل

#3
KARIMSOFT كتب:

يمكن ارفاق المشروع هذا افضل

#4

ياريت حد يفيدني ضروري

مرفق البرنامج للتعديل 

WindowsApplication13.rar

#5

بالنسبة لمبتدئة فهذه محاولة جيدة, طرقيتك قريبة جداً من الحل الأفضل.

 

لا توجد أي مشكلة بالأكواد البرمجية

 

وإنما المشكلة أن زر (=) غير مرتبط بأي حدث:

post-252722-0-92323900-1366708500_thumb.

 

ولحل المشكلة من قائمة الأحداث - حدث Click اختاري Button12_Click

 

كما يوجد خطأ بسيط في الأسطر التالية:

 

        Select Case choice
            Case "plus"
                result = addition1 + Val(TextBox1.Text)
                TextBox1.Text = 0

بالسطر الأخير يجب أن تكون:

 

TextBox1.Text = result
#6

شكرا جدا 

فعلا عدلت والبرنامج اشتغل 

لو سمحتلي ممكن بعض الاسئلة

1- كود زر ce وايه الفرق بينه وبين c

2- كود زر 1/x

3- كود %

4- كود الجذر

5- كود تغيير الاشارة

6- ازاي اخلي المعادلة كلها تكون مكتوبة امامي على الشاشة يعني مثل

3 + 5 = 8

#8

شكرا لسرعة الاجابة عليا

بس الرابط لالة حاسبة بال #C مش فيجوال بيسك

انا ماعرفش #C بس متهيالي ان طريقة كتابة الكود مختلفة

ياريت رابط بالفيجوال بيسك

#9

بالتوفيق ان شاء الله

#11

كما تفضل الإخوة الأفاضل بالردود السابقة, يمكنك الإستفادة من أكواد C# وتحويلها إلى VisualBasic ويوجد العديد من المواقع والبرامج التي تقوم بذلك, كون هاتين اللغتين شقيقتين من أسرة .Net

 

على كل حال, قد يكون الأمر معقداً الحصول على أكواد وتحويلها ومن ثم فهم طريقة عملها, وبما أن ما طلبته لا يستحق كل هذا التقعيد سأحاول المساعدة بدون استخدام برنامج C#

 

قبل البدء لدي ملاحظة على كودك, لقد قمت بتعريف أربع متغيرات تعبر عن أرقام:

Dim addition1 As Integer
Dim subtraction1 As Integer
Dim division1 As Double
Dim multiplication1 As Integer

ويمكن الإستغناء عنها والإكتفاء بمتغير واحد كما يلي:

Dim number1 As Double

وفي كل مرة تستخدمي أحد المتغيرات السابقة بدليه بهذا المتغير.

 

أما بالنسبة لطلباتك:

 

1- كود زر ce وايه الفرق بينه وبين c

يجب على زر CE أن يقوم فقط بمسح الشاشة مع ابقاء العملية التي اختارها المستخدم, أما الزر C فيقوم بمسح الشاشة وإلغاء العملية (أي كأنك شغلت الآلة الحاسبة من جديد)

 

2- كود زر 1/x

إن هذا الزر يقوم بحساب مقلوب العدد, أي بعد اختيار الرقم الأول والضغط على هذا الزر يجب أن تظهر النتيجة: 1÷العدد

 

3- كود %

لست متأكداً من هذا الزر, ولكن ببرنامج جعلته يقوم بحساب باقي قسمة العدد الأول على العدد الثاني

 

4- كود الجذر

لحساب كود الجذر يمكن استخدام الدالة: Math.Sqrt

 

5- كود تغيير الاشارة

لقلب إشارة العدد يكفي ضربه بالرقم -1

 

6- ازاي اخلي المعادلة كلها تكون مكتوبة امامي على الشاشة يعني مثل

3 + 5 = 8

من أجل هذه العملية يجب تغيير كل التعليمات التي تظهر النتيجة مثل:

TextBox1.Text = Str(result)

بهذا السطر:

TextBox1.Text = nuber1 & choice & TextBox1.Text & "=" & result

طبعاً بعد أن تكوني قد طبقت الملاحظة التي ذكرتها بالبداية.

#12

متشكرة جدا للاخ فؤاد على الاجابة

فعلا طبقت الملاحظات اللي قولتها وكلها اشتغلت

كان ليا سؤال للاسف مش فهماه وحفظته كده وخلاص 

ما هو المقصود بهذا السطر

ByVal sender As System.Object, ByVal e As System.EventArgs) Handles



وبعد اذنك لقيت في احدى المواقع انه يمكن كتابة الكود بهذه الطريقة

 

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click, btn2.Click, btn3.Click, btn4.Click, btn5.Click, btn6.Click, btn7.Click, btn8.Click, btn9.Click, Button2.Click
txtsource.Text = txtsource.Text & sender.text
End Sub

 

ممكن شرح الكود من فضلكوا

#13

عايزة افهم الفرق في الكود



وازاي اخلي النتيجة تطلع فيها ارقام عشرية 

يعني 1+1.1=2.1

تظهر عندي النتيجة 2

#14

بالنسبة لسؤالي الاخير فالحمد لله عرفت الخطا فين

اني معرفة المتغير اللي تظهر فيه النتيجة بانه integer وهذا التعريف يظهر الارقام الصحيحة فقط

وقمت بتغييره الى double فظهرت النتيجة في صورة ارقام كسرية

#15

أثناء تجوالي في منتدي Visual Basic.Net وجدت آلة حاسبة بلغة VB وسهلة وبسيطة جدا يمكنك الاستعانة بها في الكثير من الامور

الآلة الحاسبة العلمية بلغة الفيجوال بيسك دوت نت

أيضا وجدت كتاب يشرح طريقة عمل الالة الحاسبة باستخدام فيجوال بيسك 2008 شرح مبسط وسهل 

ان شاء الله يكون فيه الفائده

www.kutub.info_5634.pdf

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#16
محمد فؤاد تركي كتب:

أثناء تجوالي في منتدي Visual Basic.Net وجدت آلة حاسبة بلغة VB وسهلة وبسيطة جدا يمكنك الاستعانة بها في الكثير من الامور

الآلة الحاسبة العلمية بلغة الفيجوال بيسك دوت نت

أيضا وجدت كتاب يشرح طريقة عمل الالة الحاسبة باستخدام فيجوال بيسك 2008 شرح مبسط وسهل 

ان شاء الله يكون فيه الفائده

شكرا جدا على المرفقات 

هل تستطيع الاجابة عن سؤالي 

 

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click, btn2.Click, btn3.Click, btn4.Click, btn5.Click, btn6.Click, btn7.Click, btn8.Click, btn9.Click, Button2.Click

txtsource.Text = txtsource.Text & sender.text

End Sub

 

شرح هذا الكود 

#17

هذا الكود معناه انك ستقومين بعمل Handle لمجموعة من الازرار بحيث جميعهم يقومون بنفس الوظيفة او الــ Route

 

مثال

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, b_One.Click, b_Clear.Click
        MsgBox("i can handle two button")
    End Sub

اذا قمنا باستخدام ثلاثة ازرار وهم زر 1 و وزر Clear بالاضافة الي زر Button1 وكتبنا هذه الرسالة البسيطة تحت الحدث Button1_Click هذا معناه انه عندما تضغطين علي الازرار

b_One.Click
b_Clear.Click

Button1_Click

 

فجميعهم سيعرضون نفس الرسالة وفي المثال التي قد قمتي بطرحة نقوم بربط هذه الازرار بالاشتراك في روتين واحد وهو txtsource H أو كلهم يصبون نتائجهم في حقل واحد وهو حقل النتيجة txtsource

 

اتمني اكون قد أفدتك

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 25 أبريل 2013 في 10:41

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#18

شكرا لردك جدا

طيب والمقصود بال sender

وليه الكود مكتوب ByVal sender As System.Object, ByVal e As System.EventArgs

وفي بعض الاحيان بيكون

 sender As System.Object,  e As System.EventArgs

#21
betna كتب:

متشكرة جدا للاخ فؤاد على الاجابة

فعلا طبقت الملاحظات اللي قولتها وكلها اشتغلت

كان ليا سؤال للاسف مش فهماه وحفظته كده وخلاص 

ما هو المقصود بهذا السطر

ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

وبعد اذنك لقيت في احدى المواقع انه يمكن كتابة الكود بهذه الطريقة

 

Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click, btn2.Click, btn3.Click, btn4.Click, btn5.Click, btn6.Click, btn7.Click, btn8.Click, btn9.Click, Button2.Click

txtsource.Text = txtsource.Text & sender.text

End Sub

 

ممكن شرح الكود من فضلكوا

السلام عليكم

طبعاً بالنسبة لهذا الكود يمكن شرحه كالتالي:

ان الازرار التي اضفتيها الى كود الحدث  click للزر btn1 تعني انك عندما تقومي بالنقر على اي واحد من هولاء الازرار فانه سيتم ارسال نسخه منه عبر الاوبجكت sender وهذه النسخة من هذا الزر تحمل بعض الخصائص تبع هذا الزر مثل خاصية text الموجودة في الكود تبعك sender.text وتتنفذا هذه الخاصية تبع هذا الزر(اي كلما ننقر على اي زر تتنفذ الخاصية تبعه وترسل عبر الsender ).

فمثلا من الكود السابق عندما ننقر على الزر btn2 فان سيتم ارسال نسخه عبر الsender من btn2 وسيحتوي على بعض الخصائص الخاصة بهذا المفتاح ومنها خاصية text وسيظهر 2 في ال textbox وهذ الكود يفيد في ان نختصر الكود لكل المفاتيح في كود واحد بدلاً من وضع كود لكل مفتاح.

#22

هذا ملف لبرنامج لاله حاسبة عملتها بشكل مبسط Form1.vb.vbممكن يفيدك

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