مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: فجوال بيسك 6 vb :: المشاريع و الاكواد الجاهزة
صفحة 1 من اصل 1 • شاطر
مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
بسم الله الرحمن الرحيم
أخوانى الكرام أهلا وسهلا بكم فى مشروع أخر وهو عبارة عن الة حاسبة تشبة الى حد كبير الالة الحاسبة الموجودة فى الويندوذ ...فبعد أن قمنا فى المشروع السابق بأنشاء الة حاسبة بسيطة ...نأتى الان لانشاء الة حاسبة أكثر تعقيدا من السابقة و التى تعتمد على المتغيرات و ايضا بعض الاكواد التى تعتبر جديدة عليك بعض الشىء ....
أولا :الادوات المطلوبة
_ عدد 23 زر أمر
_عدد 2 فيرم farme
_عدد 3 صندوق نص textbox
ثانيا : ضبط الادوات
تعلمنا سويا فى دروس سابقا كيف تضبط أدواتك بما أننا شرح ذلك سابقا فلا داعى للتكرار ...و كل ما اريده منك الان أن تضع أدواتك على الفورم و تضبها كما فى الشكل التالى :
من الصورة السابقة تستطيع أن تضبط أدواتك و تضع الاسم المناسب (caption) لكل زر فقد تعلمنا ذلك جديدا ...لكن هناك خاصية جيدة عليك لزر الاوامر الا وهى خاصية تغير خلفية الز بلون معين ....الامر بيسط جدا فلكى تقوم بتغير لون الخليفية لاى زر من خلال الخاصية ستايل style بأن تجعلها تساوى Graphical ثم بعد ذلك تختار اللون المناسب لخلفية الزر عن طريق الخاصية BackColor....وذلك كما فى الصورة التالية :
و ايضا نجعل خاصية MaxLength لنصدوق النص الاول _شاشة العمليات الحسابية _ تساوى 16 و ذلك لنجعل عدد الارقام بهذا الصندق 16 رقم فقط لانه لو لم نعطى قيمة لهذه الخاصية فأن هذا الصندوق سيسمح للمستخدم أدخال ارقام الى مالا نهاية ...أما عند تحديد قيمة لهذه الخاصية فلن يقبل الصندوق أكثر من تلك القيمة ....أنظر الصورة التالية :
أما عند تحديد قيمة لتلك الخاصية فأنها لن تسمح الا بتلك القيمة من الارقام ....كما فى الصورة التالية
أخيرا نجعل الخاصية Locked لجميع صناديق النصوص الثلاثة تساوى True وذلك لمنع المستخدم من الكتابة فيهم ...
ثالثا : كتابة الكود أو الشفرة البرمجية :
بالنسبة لزر أوامر الارقام و الفاصلة العشرية :
يوجد فى الالة الحاسبة التى نحن بصدد برمجتها عدد 11 زر خاص بالارقام و العلامة العشرية تم ترقيمها من الرقم (صفر)حتى الرقم (9)بالاضافة الى زر (.)العلامة العشرية .....المطلوب من تلك الازرار هو عند الضغط عليها يتم كتابة الرقم الخاص بها فى شاشة الناتج الحسابى text1 ....و الكود الخاص بكل زر سيكون على النحو التالى :
بالنسبة لزر العلامة العشرية (.)
- الكود:
Text1.Text = Text1.Text + "."
بالنسبة للزر (صفر):
- الكود:
Text1.Text = Text1.Text + "0"
بالنسبة للزر (1)
- الكود:
Text1.Text = Text1.Text + "1"
بالنسبة للزر (2)
- الكود:
Text1.Text = Text1.Text + "2"
وهكذا بالنسبة لجميع الارقام الباقية حتى تصل الى الرقم (9)...وتعالو نشرح الاكواد السابقة :
الكود الاول : بقول للبرنامج عند الضغط على رز (.) العلامة العشرية أكتب فى شاشة الناتج الحسابى (text1) علامة عشرية (.) بالاضافة الى القيمة الموجودة أساسا فى تلك الشاشة (text1)
الكود الثانى : بنفس المنطق بقول للبرنامج عند الضغط على رز (1) أكتب فى شاشة الناتج الحسابى (text1) الرقم (1) بالاضافة الى القيمة الموجودة أساسا فى تلك الشاشة (text1) ....و بنفس المنطق لجميع الاكواد الاخرى حتى تصل للرقم (9)...
حتى الان لم ننتهى من برمجة أزار الاوامر الخاصة بالارقام و العلامة العشرية لان هناك مشكة سوف تقابلنا لو أكتفينا بالكود السابق ...الا وهى وجود قيم أخرى فى text1 ....فمثلا كتنبا الرقم (12)ثم ضغطنا على زر الجمع (+) و نريد أن كتب الرقم الثانى وليكن (13)..فسنجد أن الرقم الاول (12) مازال موجود فى شاشة الناتج الحسابى text1 وعند كتابة الرقم الثانى (13) سنجد أن البرنامج قد قام بكتابة الرقم الثانى بالاضافة الى الرقم الاول وسنجد أن شاشة الناتج الحسابى text1 مكتوب بها الرقم على هذا الشكل (1213)......
أذن المطلوب هو مسح أى قيمية فى شاشة الناتج الحسابى text1 بشرطين ...الاول أن يكون ذلك بعد الضغط على أحد أزرار العمليات الحسابية (+),(-),(*),(/)أو زر(=)....أما الشرط الثانى هو أن يتم ذلك أيضا مع أول ضغطة لادخال الرقم الثانى ...كيف يمكن عمل ذلك عن طريق الكود ؟
الحل بيسط ....نقوم بعمل متغير من نوع Boolean وليكن أسمه test وذلك ليبين لنا إذا ما كنا لتونا قد ضغطنا على أحد أزرار العمليات أو = أم لا بحيث يمسح شاشة الناتج الحسابى text1 مع أول ضغطة لادخال الرقم الثانى....وطبعا درسنا سابقا ماذا نقصد بالمتغير و أنواعه وكيفية التصريح عنه؟ فأرجوا أن ترجع الية ...وتعالوا ألان نكنب الكود بعد التعديل :
1 : يتم التصريح فى القسم العام للنموذج عن المتغير test كما فى الكود التالى :
- الكود:
Dim text As Boolean
2 :الكود الخاص بزر أمر العلامة العشرية (.)....سيكون بعد التعديل على النحو التالى :
- الكود:
If Test = True Then
Test = False
Text1.text = ""
End If
Text1.text = Text1.text + "."
شرح الكود السابق .....
- أستخدمنا جملة IF _وهى من الجمل الشرطية _ فبقول للبرنامج لو المتغير test يساوى True عندئذ أجعل هذا المتغير يساوى false ثم أمسح القيم الموجودة فى text1 ...وأنتهى بـــ end if ...بعد ذلك أكتب فى شاشة الناتج الحسابى text1 العلامة العشرية (.) بالاضافة الى القيمة الموجودة اساسا فى مربع النص text1 أو شاشة الناتج الحسابى .....
3- الكود الخاص بزر الامر رقم (1)...سيكون بنفس منطق الكود السابق مع تغير طفيف وهو أن يكتب البرنامج رقم (1) بدلا من العلامة العشرية ...على النحو التالى :
- الكود:
If Test = True Then
Test = False
Text1.text = ""
End If
Text1.text = Text1.text + "1"
وعلى هذا القياس كرر تلك العملية لجميع أزرار الامر الخاصة بالارقام حتى تصل الى الرقم (9)
كتابة الكود بالنسبة لأزرار العمليات الحسابية (+),(-),(*),(/):
تعالوا يا أخوانى الان نحدد المطلوب من تلك الزراير السابقة و تتمثل فى :
_ جعل المتغير test يساوى Ture
_ حفظ الرقم الاول المدخل من المستخدم فى متغير ما حتى نستطيع أجراء العمليات الحسابية علية
_أن يكتب البرنامج نوع العملية الحسابية فى صندوق النص الثانى text2
بعد ما حددنا الاجراءات الملطوبة من تلك الزراير ....نأتى لكتابة الكود :
1_ نقوم بعمل متغير من نوع double وليكن أسمه N1 وذلك لحفظ الرقم الاول المدخل من المستخدم كما أوضحنا سابقا ....وذلك عن طريق كتابة الكود التالى فى قسم التصريحات للنموذج :
- الكود:
Dim N As Double
2_ ثم نكتب الكود التالى تحت كل زر من أزارا العمليات الحسابية السابقة .....فمثلا تحت زر الامر (+) نكتب الكود التالى :
- الكود:
Test = True
N = Val(Text1.text)
Text2.text = "+"
وتحت زر (-) الطرح نكتب الكود التالى :
- الكود:
Test = True
N = Val(Text1.text)
Text2.text = "-"
وهكذا بالنسبة لزر امر الضرب(*)و زر الامر القسمة (/) مع تغير نوع العملية فى السطر الثالث من الكود
كتابة الكود بالنسبة لزر الامر يساوى (=).
المطلوب من هذا الزر هو عند الضغط عليه عرض ناتج العملية الحسابية فى صندوق النص الاول text1 بناء على نوع العملية الموجودة فى صندوق النص الثانى text2 ثم بعد ذلك يجعل البرنامج المتغير test تساوى True ثم يكتب فى صندوق النص الثانى علامة (=)....أذن الكود لهذا الزر سيكون على النحو التالى :
- الكود:
If Text2.text = "+" Then
Text1.text = N + Val(Text1.text)
End If
If Text2.text = "-" Then
Text1.text = N - Val(Text1.text)
End If
If Text2.text = "*" Then
Text1.text = N * Val(Text1.text)
End If
If Text2.text = "/" Then
Text1.text = N / Val(Text1.text)
End If
Test = True
Text2.text = "="
شرح الكود السابق ....نقول للبرنامج أذا كانت قيمة صندوق النص الثانى text2 تساوى علامة الجمع (+)عندئذ أجعل قيمة صندوق النص الاول text1 تساوى قيمية المتغير (N) أو الرقم الاول المخزن+ القيمة الموجودة حاليا فى text1 ....وتم تكرار جملة الشرط هذه مع باقى العمليات الحسابية الاخرى (-),(/),(*).....ثم بعد ذلك جعلنا المتغير test تساوى true و أيضا التكست الثانى قيمة (=)
لكن ولأنه قد تحدث أخطاء ناتجة عن قسمة على الصفر مثلاً ، أو OverFlow ، ولكي لا يتوقف البرنامج فإننا نضع العبارة التالية في بداية الاجراء :
On Error Resume Next
بالنسبة لزر الامر (c):
يستخدم هذا الامر فى الالة الحاسبة لالغاء العملية الحسابية و مسح البيانات المدخلة و بالتالى فأن الكود الخاص بهذا الزر سيكون على النحو التالى :
- الكود:
Text1.text = ""
Text2.text = ""
بالنسبة لزر الامر (CE):
يستخدم هذا الامر فى الالة الحاسبة لمسح البيانات الموجودة حاليا فى شاشة الحاسبة مع عدم الغاء باقى العملية ....وبالتالى سيكون الكود على النحو التالى :
- الكود:
Text1.Text = ""
بالنسبة لزر الامر BackSpace
المطلوب من هذا الزر هو مسح رقم واحد من الارقام التى بالشاشة مع كل ضغطة ...فمثلا أريد أن أكتب 1245 فقمت كتابتة بالخطأ هكذا 1254 فبدلا من مسح الرقم كاملا ثم أعادة كتابتة أقوم بالضغط على زر BackSpace لمسح الرقم 5 ثم 4 و أقوم بتصحيح الخطأ .....و لكى يتم كتابة الكود لهذا الزر فيجب علينا أستخدام دالة Left والتي ستقتص نصاً من اليسار بطول النص - 1 ، وذلك بالشكل التالي :
- الكود:
If Len(Text1.text) <> 0 Then Text1.text = Left(Text1.text, Len(Text1.text) - 1)
بالنسبة لزر الامر (+/-)
هذا الزر الخاص بتغير أشارة الرقم الى سالب أو موجب ولكى يتم ذلك فهناك كود بيسط جدا للغاية وهو على النحو التالى :
- الكود:
Text1.Text = Val(Text1.Text) * -1
لاحظ يا عزيزى أننا فى الكود السابق طلبنا من البرنامج عند الضغط على هذا الزر أن يجعل قيمة text1 تساوى تلك القيمة مضروبة فى سالب (1) ...وبالتالى فأن الناتج لو كان بالسالب سيصبح بالموجب لان (سالب*سالب موجب)...ولو أن الرقم الموجود بالموجب فسيصبح بالسالب لان(سالب *موجب = سالب)....
بالنسبة لزر الامر +M
طبعا هذا الزر خاص بزاكرة الالة لكى نخنزن به أى رقم نريده ......أذن سنقوم بعمل متغير من نوع double وليكن أسمه Memory ليحل محل الذاكرة .......ويتم ذلك عن طريق التصريح عن اسم المتغيرة و نوعة فى قسم التصريحات بالنموذج من خلال الكود التالى :
- الكود:
Dim Memory As Double
بعد ذلك نقوم بكتابة الكود التالى فى زر الامر +M
- الكود:
Memory = Val(Text1.text)
Text3.text = M
شرح الكود :
فى السطر الاول ...بقول للبرنامج أجعل قيمة المتغير Memory تساوى القيمة الموجودة فى Text 1
فى السطر الثانى ...بقول للبرنامج أكتب حر M لكى أبين للمستخدم أن ذاكرة الحاسبة مخزن بها أرقام
بالنسبة لزر الامر MR
هذا الزر مطلوب منه عرض القيمة الموجودة فى الذاكرة على شاشة الناتج الحسابى text1 وبالتالى فأن الكود سيكون على النحو التالى :
- الكود:
Text1.text = Memory
بالنسبة لزر الامر MC
هذا الزر مطلوب منه مسح القيمة الموجودة فى الذاكرة و بالتالى فأن الكود الخاص بهذا الزر سيكون على النحو التالى :
- الكود:
Memory = 0
Text3.text = ""
لاحظ أننا أضفنا السرط الثانى فى الكود لكى نوضح للمستخدم أن الذاكرة فارغة من خلال Text3
بهذا أخوانى الكرام نكون قد أنتهينا من برمجة الة حاسبة معقده بعض الشىء .....و اليكم المشروع بالكامل فى المرفقات
- المرفقات
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
أخى أحمد ....
لماذا لا أستطيع تحميل الملف المرفق من المرفقات ....مكتوب لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات...
أرجوا حل المشكلة
لماذا لا أستطيع تحميل الملف المرفق من المرفقات ....مكتوب لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات...
أرجوا حل المشكلة
جورج صبحى- ......
- تاريخ التسجيل : 18/02/2011
المساهمات : 127
النقاط : 259
التقيم : 6
الجنس :
رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
جورج صبحى كتب:أخى أحمد ....
لماذا لا أستطيع تحميل الملف المرفق من المرفقات ....مكتوب لا تتوفر على صلاحيات كافية لتحميل هذه المرفقات...
أرجوا حل المشكلة
جارى حل المشكلة ياسيد جورج ....وشكرا لك على التنبيه و على مواضيعك المميزة ....فينك ياراجل من زمان
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
جارى حل المشكلة ياسيد جورج ....وشكرا لك على التنبيه و على مواضيعك المميزة ....فينك ياراجل من زمان
شكرا لك أخى أحمد أنا أستطعت التحميل من المرفقات
السنى- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 249
النقاط : 464
التقيم : 25
الجنس :
رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
مشكوووووووووووور
abdullah- .
- تاريخ التسجيل : 24/01/2017
المساهمات : 5
النقاط : 5
التقيم : 0
الدولة :
الجنس :
رد: مشروع أنشاء الة حاسبة معقدة مثل حاسبة الويندوذ الى حد ما
شكرا جزيلا اخي
هل يمكنك مساعدتى في عمل لوحة مفاتيح للحروف العربية مثل هذه الآلة الحاسبه بحيث يمكن تشغيلها للكتابة في مربع نص على الشاشة اثناء عرض تقديمى power point لتشغيلها على kiosk mode presentation ؟
احتاجها في شريحة بوربوينت لإدماجها في عرض التقديمى ولم أجدها باللغة العربية إطلاقاً.
هل يمكنك مساعدتى في عمل لوحة مفاتيح للحروف العربية مثل هذه الآلة الحاسبه بحيث يمكن تشغيلها للكتابة في مربع نص على الشاشة اثناء عرض تقديمى power point لتشغيلها على kiosk mode presentation ؟
احتاجها في شريحة بوربوينت لإدماجها في عرض التقديمى ولم أجدها باللغة العربية إطلاقاً.
Dr.Rehab- .
- تاريخ التسجيل : 07/04/2018
المساهمات : 1
النقاط : 1
التقيم : 0
الدولة :
الجنس :
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: فجوال بيسك 6 vb :: المشاريع و الاكواد الجاهزة
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
اليوم في 7:23 am من طرف mona mohamed
» حداد هناجر
أمس في 8:57 pm من طرف moslema_r
» ارخص شركة تنظيف ثريات بالرياض
الخميس مايو 16, 2024 7:32 pm من طرف moslema_r
» تصميم تطبيق للأسر المنتجة
الأربعاء مايو 15, 2024 10:41 am من طرف mona mohamed
» شركة تنظيف منازل ام القيوين
الثلاثاء مايو 14, 2024 7:50 pm من طرف moslema_r
» شركة تنظيف محلات بالرياض
الثلاثاء مايو 14, 2024 7:34 pm من طرف moslema_r
» تصميم تطبيق مثل حراج
الثلاثاء مايو 14, 2024 9:59 am من طرف mona mohamed
» تصميم تطبيق نقل أثاث
الإثنين مايو 13, 2024 10:30 am من طرف mona mohamed
» افضل شركة تنظيف ستائر بالرياض
الأحد مايو 12, 2024 7:57 pm من طرف moslema_r
» تصميم تطبيق للسوبر ماركت
الأحد مايو 12, 2024 7:22 am من طرف mona mohamed