التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عمل برنامج اختبار سرعة الطباعة من خلال .net
#1
كاتب الموضوع : أحمد جمال

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


في هذا الدرس سوف نقوم بعمل تطبيق بسيط نستطيع من خلاله تعلم بعض من أساسيات .net والخاصة بالتعامل مع الأدوات ، التعامل مع النصوص وبعض أساسيات اللغة مثل الجمل الشرطية والتكرارات .

في هذا الدرس سوف نقوم بعمل برنامج يتيح لك اختيار اختبار لسرعة الطباعة باللغة العربية أو الإنجليزية من خلال قطعة ثابتة وفي نهاية الاختبار يذكر لك نسبة الصحة والخطأ اضافة للوقت الذي تم فيه الاختبار .

تعتمد إحدى الأفكار البسيطة للبرنامج على تجزئة النص لمجموعة من الكلمات بناء على معامل معين " مسافة Space مثلاً " وفي نهاية الأمر يقارن الكلمات الأصلية بالكلمات المكتوبة .

في طريقتنا هذه سيكون الخطأ في وضع علامة المسافة بين الكلمات كافياً ليكون ما بعد هذا الخطأ بالكامل خطأ نظراً لعدم تحقيق شرط المقارنة بالمسافات ، ولكن حتى هذه اللحظة فهي طريقة بسيطة لتعلم عمل مثل هذا النوع من الأمثلة وما زال هناك الكثير مما يمكن اضافته لهذا المثال .

لنبدا سوية ، ونقوم بتصميم فورم Form مبدئي يحتوي على اختيار للغة الانجليزية والعربية عبر زري أمر ، وفي النافذة الأخرى نقوم بوضع Label لنضع فيه النص المطلوب ، Text Box ليستطيع المستخدم كتابة النص ، زر امر للعودة وزر أمر لإنهاء الاختبار ، مؤقت Timer مع Lable لعرض الوقت ثانية بثانية للمستخدم . وأخيراً Timer آخر لاعطاء المستخدم ثلاث ثوان منذ فتح الشاشة وحتى بدأ الاختبار .

سنبدأ بأوامر النافذة Form الأولى ، لهذا سوف يكون في زر اختيار اللغة الإنجليزية هذا الأمر :

كود :
Dim F As New Form2()
Dim Test As String = "Ajax (also known as AJAX), shorthand for 'Asynchronous JavaScript and XML', is a development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is intended to increase the web page's interactivity, speed, functionality, and usability."
F.Label1.Text = Test
F.ShowDialog()
وفي زر اللغة العربية هذا الأمر :

كود :
Dim F As New Form2()
Dim Test As String = "مشروع جنوم مشروع عالمي يهدف إلى إنشاء منصة حاسوبية سهلة الاستعمال مبنية حصرا على البرمجيات الحرة. يدخل في هذا المسعى تكوين أدوات تساعد المطورين على كتابة تطبيقات برمجية قائمة بذاتها، وانتقاء وترشيح من البرامج حسناها لتكون ضمن الإصدار الرسمي، والتركيز على ما يسمى 'البيئة المكتبية'، أي جميع البرامج المتدخلة في إطلاق البرامج وتدبير المستندات وتنظيم النوافذ والأشغال الجارية. يستضيف مشروع جنوم باقة من البرامج المختلفة، والتي تُنتخب منها مجموعة محدودة تصدر تحت الاسم الشامل جنوم. يعمل جنوم على نظام تشغيل مثل لينكس أو سولاريس لشركة صن ميكروسيستيمز مكونين نظاما حاسوبيا مكتمل الأوصاف"
F.Label1.Text = Test
F.Label1.RightToLeft = Windows.Forms.RightToLeft.Yes
F.TextBox1.RightToLeft = Windows.Forms.RightToLeft.Yes
F.ShowDialog()
ونلاحظ اضافة سطرين اضافيين لتعديل خاصية RightToLeft لتناسب اللغة العربية ...

اما في الفورم الثاني فستكون لدينا هذه الأوامر :

1 - تعريف متغيرات للوقت كمتغيرات عامة :
كود :
Dim Sec, Min, Hou As Integer
[SIZE=4]2 - بالنسبة لل Timer سيكون المؤقت الأول enabled=true وهو الخاص باعطاء المستخدم ثلاث ثوان قبل البداية ، وبمجرد الانتهاء من هذه الثلاث ثوان سيتم تفعيل المؤقت الآخر والذي ستكون الحالة الافتراضية له enabled=false وكذلك السماح للمستخدم بضغط زر انهاء وبالكتابة في مربع النص :[/SIZE]

كود :
Label2.Text = Convert.ToString(Convert.ToInt32(Label2.Text) - 1)
If (Convert.ToInt32(Label2.Text) = 0) Then
TextBox1.Enabled = True
Timer1.Enabled = False
Timer2.Enabled = True
Button1.Enabled = True
TextBox1.Focus()
End If

[SIZE=4]3 - في المؤقت الثاني سوف نقوم بعمل عداد للوقت ( ثواني:دقائق:ساعات ) :[/SIZE]

كود :
Sec += 1
If (Sec = 60) Then
Sec = 0
Min += 1
If (Min = 60) Then
Min = 0
Hou += 1
End If
End If
Label2.Text = Convert.ToString(Hou) + ":" + Convert.ToString(Min) + ":" + Convert.ToString(Sec)

4 - زر العودة للشاشة الرئيسية :
كود :
Me.Close()

5 - زر انهاء الاختبار وحساب النتائج :

- في هذا الزر سوف نقوم بعدة مهام ، فأولاً سنقوم بايقاف ال Timer وتعريف متغير لحلقة تكرار for loop والخاصة بالمقارنة ، تعريف متغير لتخزين عدد المحاولات الصحيحة من نوع Integer وآخر لتخزين الرسالة التي ستظهر للمستخدم من نوع String :

كود :
Timer2.Enabled = False
Dim result As String
Dim correctcount As Integer = 0
Dim I As Integer = 0

- ثانياً سنقوم بعمل مصفوفة من الكلمات من النص الأساسي يفصل بينها " المسافة " وكذلك في النص المكتوب :

كود :
Dim x() As String = Label1.Text.Split(" ")
Dim y() As String = TextBox1.Text.Split(" ")
- ثالثاً سنقوم بعمل for loop للمقارنة بين الحروف ، وفي حالة كون النص الثاني لم يصل لنهايته بعد ، فإنه يتم المقارنة بين الكلمتين المتناظرتين في النص الأول والثاني :

كود :
For I = 0 To x.Length - 1
If I < y.Length Then
If x(I) = y(I) Then correctcount += 1
Else
Exit For
End If
Next
رابعاً سنقوم بتجميع عدد من البيانات بناء على المعطيات السابقة ونخزنها في المتغير result :

كود :
result = "Time: " + Label2.Text + vbNewLine
result += "Word Count: " + y.Length.ToString() + " words Of " + x.Length.ToString() + " words." + vbNewLine
result += "True Word Count: " + correctcount.ToString() + vbNewLine
result += "False Word Count: " + (x.Length - correctcount).ToString() + vbNewLine
result += "Final Result :" + (Convert.ToUInt32((correctcount * 100) / x.Length)).ToString() + "%." + vbNewLine + vbNewLine + "Test is Finsih. Thankyou..."
خامساً وأخيراً عرض الناتج في رسالة واغلاق الشاشة :

كود :
MessageBox.Show(result, "Result")
Me.Close()

وبالتأكيد ما زال هناك المزيد مما يمكن أن يضاف لهذا المثال الصغير ، وعموماً فالملف في المرفقات ...

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته .


الملفات المرفقة
.zip   WindowsApplication2.zip (الحجم : 41.98 ك ب / التحميلات : 87)
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
عمل برنامج اختبار سرعة الطباعة من خلال .net - بواسطة Raggi Tech - 04-10-12, 09:58 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيف تتعامل مع برنامج الإكسيل من برنامجك rinawi 7 6,626 12-11-22, 12:11 AM
آخر رد: خالد العصاوي
  نظرة على DropBox SDK و التعامل معها +برنامج رفع و تحميل ملفات ابو ليلى 4 4,871 08-09-22, 11:54 AM
آخر رد: saif2023
  برنامج مبيعات ومشتريات وإدارة أعمال ( الفاتورة الإلكترونية ) yassoo1985 2 2,245 04-06-22, 01:14 PM
آخر رد: yassoo1985
Heart طلب برنامج Advanced Installer أبو خالد الشكري 0 1,418 16-05-22, 09:12 PM
آخر رد: أبو خالد الشكري
  أهم طرق إدارة المخازن وتطبيقها على برنامج مخازن وارد ومنصرف Menna ahmeed 0 1,967 27-04-22, 12:52 PM
آخر رد: Menna ahmeed
  طريقة إنشاء برنامج طباعة ملصقات الباركود ملهمـ 1 4,398 22-12-21, 05:09 PM
آخر رد: alessam4pro
  تنفيذ كود vb.net من خلال مربع نص @@أبورائد@@ 20 14,605 06-10-21, 05:05 PM
آخر رد: الماجيك مسعد
Lightbulb [مقال] التعامل مع ملفات اوفيس من خلال مكتبة NPOI ابو ليلى 2 4,190 01-07-21, 11:42 AM
آخر رد: kebboud
Heart [VB.NET] برنامج ادارة المطاعم و الكافيهات mgr21002100 6 6,650 14-01-21, 07:59 PM
آخر رد: abarrak
  تفعيل برنامج Visual Studio 2019 Adilo idabdellah 4 11,514 20-05-20, 11:48 AM
آخر رد: الفاضي

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم