تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] تصميم برنامج تعليمي .. تدريبات على الاعراب المختصر
#4
(17-08-20, 11:42 PM)مصمم هاوي كتب : برنامج رائع أتمنى أن تكمله للنهاية، فهذا هو مجال تخصصي لغة عربية

  حاضر استاذ
ان شاء الله يكون مبدا البرنامج مفهوم
يعني ممكن تحضر عدة انماط  حسب تعقيداتها
و تضع لكل منها ملف تكست تضع فيه جملا اعرابها هو نفسه
يعني يمكن ننتج 100 الجمل او المتسويات من اللعب

ارجو ان تصحح ما اخطأت فيه 
فالبعكس فليس مجالي اللغة و ادابها

نتابع الشرح :

في form_load
 سنحفظ في مصفوفات الكوومبكس و الليبالات و الصور

PHP كود :
Combox = {ComboBox1ComboBox2ComboBox3ComboBox4ComboBox5}
 
       Labl = {Label1Label2Label3Label4Label5}
 
       Labl2 = {Label6Label7Label8Label9Label10}
 
       pict = {PictureBox1PictureBox2PictureBox3PictureBox4PictureBox5}
 
      

الانماط التي ذكرناها هي كالتالي

PHP كود :
 p1 = {"فعل ماض""فاعل مرفوع""حرف جر""اسم مجرور"}
 
       p2 = {"فعل ماض ناقص""اسم كان و اخواتها""خبر كان و اخواتها"}
 
       p3 = {"حرف ناسخ""اسم إن و اخواتها""خبر إن و اخوانها"}
 
       p4 = {"فعل ماض""فاعل مرفوع""مفعول به منصوب""صفة منصوبة"}
 
       p5 = {"فعل مضارع""فاعل مرفوع""حال منصوبة""حرف جر""اسم مجرور"}
 
       p6 = {"فعل ماض""فاعل مرفوع""مفعول به اول""مفعول به ثان"}
 
       p7 = {"فعل ماض""فاعل مرفوع""مفعول به منصوب و هو مضاف""مضاف اليه"}
 
       p8 = {"فعل ماض""فاعل مرفوع""مفعول مطلق""صفة منصوبة"}
 
       p9 = {"مبتدأ مرفوع ""خبر مرفوع""صفة مرفوعة"}
 
       p10 = {"حرف نصب""فعل مضارع منصوب""فاعل مرفوع""صفة مرفوعة"}
 
      

يعني من اجل ملف تكست 1 حلها هو المصفوفة p1
وهي التي نقارن بها بين اجابة الطالب و الاعراب

نجمعها في مصفوفة ايضا
PHP كود :
  Rpp = {p1p2p3p4p5p6p7p8p9p10}
 
    

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

PHP كود :
   For Each gh As Array In Rpp
            For i 
0 To gh.Length 1
                somme
.Add(gh(i))
 
           Next
        Next
        For i 
0 To somme.Count 2
            For p 
somme.Count 1 To i 1 Step -1
                If somme
(i).ToString somme(p).ToString Then
                    somme
.RemoveAt(p)
 
               End If
 
           Next
        Next
        
' ترتيب العناصر
        somme.Sort()
     

الان تم التحضير  للبرنامج

الان مع الدة توليد الاسئلة : question()

سنخفي كل الكومبوكسات و نفرغها من محتواها
اليبلات و كل الصور و ايضا نرجعها الى فراغ 

PHP كود :
For 0 To 4
            Combox
(p).Visible False
            Combox
(p).Items.Clear()
 
           Labl(p).Visible False
            Labl2
(p).Text Nothing
            Labl2
(p).Visible False
            pict
(p).Visible False
        Next 

ثم سنعبئ الكومبوكسات من المصفوفة التي جمعنا فيها الاجابات كلها

PHP كود :
For 0 To somme.Count 1
            For p 
0 To 4
                Combox
(p).Items.Add(somme(f))
 
           Next
        Next 

سنضع كل عناصر الاجابة فارغة 

PHP كود :
   reponses = {""""""""""}
 
    

ثم سنختار عشوائيا رقم من 1 الى 10 وهو الذي ويافق ملف التكست 

PHP كود :
 Dim NmberQ Nrandom.Next(110)
 
       Dim Hafs As String Application.StartupPath "\" & NmberQ & ".txt"
     

 الان سننشئ مصفوفة تتكون من اسطر هذا التكست

PHP كود :
   Dim readH As StreamReader
        Dim Harr
() As String Nothing
        
''''''''''''
 
       readH = New StreamReader(Hafs)
 
       Dim I As Integer
        Do Until readH
.EndOfStream
            ReDim Preserve Harr
(I)
 
           Harr(I) = readH.ReadLine()
 
           I += 1
        Loop
        readH
.Close() 



ايضا سنختار عشوائيا من بين هذه الجمل من المصفوفة و نضعها في textrich
PHP كود :
 Dim Nmberphrase Nrandom.Next(0Harr.Length)
 
       RichTextBox1.Text Harr(Nmberphrase)
 
       RichTextBox1.SelectionAlignment HorizontalAlignment.Center
       

بعدها سنقسم كلماتها في مصفوفة 

PHP كود :
  txtQ Harr(Nmberphrase).Split(" "

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

PHP كود :
For 0 To txtQ.Length 1
            Combox
(p).Visible True
            Labl
(p).Visible True
            Labl
(p).Text txtQ(p)
 
       Next 

نتابع :

كما تذكرون قد جمعنا الحلول في مصفوفة 
لما اخترنا رقم ملف التكست فالحل هو رقم مصفوفة الاجابة في المجموعة - 1

PHP كود :
 Dim sol Rpp(NmberQ 1)
 
    

ثم نملا بها ليبالات الحل الحمراء التي تهر في حالى الخطا

PHP كود :
For 0 To sol.Length 1
            Labl2
(I).Text sol(I)
 
       Next 

 حينها نضيف 1 لرقم السؤال لعرض ابلسؤال الموالي

و بالتالي تكون دالة توليد الاسئلة  الكلية هي

PHP كود :
 Sub questions()

 
       ' اخفاء الكومبوكس و كالكلمات و الصور
        For p = 0 To 4
            Combox(p).Visible = False
            Combox(p).Items.Clear()
            Labl(p).Visible = False
            Labl2(p).Text = Nothing
            Labl2(p).Visible = False
            pict(p).Visible = False
        Next

        ' 
ملء الكومبوكس
        For f 
0 To somme.Count 1
            For p 
0 To 4
                Combox
(p).Items.Add(somme(f))
 
           Next
        Next

        
'تفريغ الاجابات
        reponses = {"", "", "", "", ""}
        ' 
اختيار عشوائي للملف ووضعه في مصفوفة
        Dim NmberQ 
Nrandom.Next(110)
 
       Dim Hafs As String Application.StartupPath "\" & NmberQ & ".txt"
        Dim readH As StreamReader
        Dim Harr() As String = Nothing
        ''''''''''''
        readH = New StreamReader(Hafs)
        Dim I As Integer
        Do Until readH.EndOfStream
            ReDim Preserve Harr(I)
            Harr(I) = readH.ReadLine()
            I += 1
        Loop
        readH.Close()
        ' اختيار عوائي للجملة من المصقوقة
        Dim Nmberphrase = Nrandom.Next(0, Harr.Length)
        RichTextBox1.Text = Harr(Nmberphrase)
        RichTextBox1.SelectionAlignment = HorizontalAlignment.Center
        txtQ = Harr(Nmberphrase).Split(" ")

        ' اظهار عدد الكلمات و الكومبوكس وفق عدد كلمات الجملة
        For p = 0 To txtQ.Length - 1
            Combox(p).Visible = True
            Labl(p).Visible = True
            Labl(p).Text = txtQ(p)
        Next

        ' الحل
        Dim sol = Rpp(NmberQ - 1)
        For I = 0 To sol.Length - 1
            Labl2(I).Text = sol(I)
        Next

        NmberQ += 1
    End Sub 

نتابع :

الان في الكومبوكسات سنجعل كل ما يختار كومبوكس يسجل clic +1
و يسجل اختياره في مصفوفة الاجابات
لطلك من اجل الحدث ComboBox1_SelectedIndexChanged سنضع الكود

PHP كود :
clic += 1
        reponses
(0) = ComboBox1.Text 

و نكرره لكل كومبوكس مع تغيير رقمه في الكود

و بالتالي من اجل 5 كوبموكس سنجد التالي

PHP كود :
 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox1.SelectedIndexChanged
        clic 
+= 1
        reponses
(0) = ComboBox1.Text
    End Sub
    Private Sub ComboBox2_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox2.SelectedIndexChanged
        clic 
+= 1
        reponses
(1) = ComboBox2.Text
    End Sub

    Private Sub ComboBox3_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox3.SelectedIndexChanged
        clic 
+= 1
        reponses
(2) = ComboBox3.Text
    End Sub

    Private Sub ComboBox4_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox4.SelectedIndexChanged
        clic 
+= 1
        reponses
(3) = ComboBox4.Text
    End Sub

    Private Sub ComboBox5_SelectedIndexChanged
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles ComboBox5.SelectedIndexChanged
        clic 
+= 1
        reponses
(4) = ComboBox5.Text
    End Sub 

الان في زر التالي سنضع ببساطة 

PHP كود :
questions() 

اما في زر التصحيح نضع  دالة التصحيح

PHP كود :
verfications() 

ماذا نضع في دالة التصحيح ؟؟؟؟

مباشرة سنقارن محتوى مصفوفة الاجابة reponses  مع مصفوفة الحلول Labl2


اذا وجد النصين متساوين يضيف رقم 1 الى متغير reusi  وهو عدد الكلمات الصحيحة
و يعطي الصورة شكل صح 

و الا سيعطي الصورة شكل خطا 
 اذا كان متغير reusi  هو نفسه عدد كلمات الجملة فهو قد اجاب على كل الكلمات فنعطيه  1 للنقاط  scor +1  من 10
ثم نهر كل الصور

اذا وصل الى 10/10 فهو قد اجاب جيدا نظهر له رسالة تهنئة 

اذن الكود لكه للتصحيح كالتالي

PHP كود :
 Sub verfications()
 
       Dim reusi As Integer 0
        For i 
0 To 4
            If reponses
(i) = Labl2(i).Text Then
                reusi 
+= 1
                pict
(i).Image My.Resources.yes
            Else
                Labl2
(i).Visible True
                 pict
(i).Image My.Resources.no
            End 
If
 
       Next
        If reusi 
5 Then
            score 
+= 1
            Labscore
.Text += 1
        End 
If

 
       For i 0 To txtQ.Length 1
            pict
(i).Visible True
        Next

        If reusi 
>= 10 Then
            MessageBox
.Show(" ما شاء الله انت في طريقك  لاحتراف الاعراب""عبد الهادي بهاب"MessageBoxButtons.OKMessageBoxIcon.Information)
 
           restart()
 
       End If

 
   End Sub 

بعد 10 /10

سنعيد من جديد و نفعل دالة الاعادة restart

PHP كود :
Sub restart()
 
       score 0
        Labscore
.Text 0
        NmberQ 
0
        questions
()
 
   End Sub 

اخيرا مع الملف

اولا حمل الملفات هذه وهي ملفات تكست من 1 الى 10
يمكن ان تيف لها جملا لكن بنفس سياق الاعراب


.rar   i3rab_ txt.rar (الحجم : 2.51 ك ب / التحميلات : 39)

ثم حمل ملف برنامج الاعراب المختصر


.rar   i3rab.rar (الحجم : 159.38 ك ب / التحميلات : 57)

mp = vb4arb.com

ضعه في مجلد \bin\Debug

و استمتع بالبرنامج

بالتوفيق في مشاريعكم

لا تنسونا بدعوة خالصة
 لعل الكلمة التي تنفعني لم أكتبها بعد
عبد الله بن المبارك
الرد }}}
تم الشكر بواسطة: بلدي , بلدي , ابراهيم ايبو , asemshahen5


الردود في هذا الموضوع
RE: تصميم برنامج تعليمي .. تدريبات على الاعراب المختصر - بواسطة عبد الهادي بهاب - 18-08-20, 02:16 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  برنامج معمل تحاليل طبية قوقيلا 0 110 26-11-25, 11:31 AM
آخر رد: قوقيلا
  متجري: برنامج محاسبة و مبيعات لمتجر 2021 مع السورس كود. Mohamad Anan 25 16,405 09-07-25, 05:50 AM
آخر رد: Taha Okla
Heart [مشروع] نسخه مصغره من برنامج صانع الاكواد للجميع aliday03 20 20,890 05-05-25, 12:14 AM
آخر رد: ashrafhisham
  [مثال] برنامج فتح الملفات من الأقراص Kamil 0 322 04-05-25, 10:10 PM
آخر رد: Kamil
  مساعدة في تصميم تقرير سيد أحمد 0 249 07-04-25, 09:59 PM
آخر رد: سيد أحمد
  [مشروع] برنامج المحرر لكتابة مواضيع المنتدى - النسخة النهائية sooriaty03 16 15,503 14-12-24, 04:48 PM
آخر رد: princelovelorn
  رابط تحميل برنامج منبه الصلاة | Prayer Alarm mmaalmesry 0 559 04-11-24, 06:02 PM
آخر رد: mmaalmesry
  برنامج التعامل مع السكانر وتحويل الصور إلى PDF F.H.M 0 660 04-11-24, 02:08 PM
آخر رد: F.H.M
Wink [مشروع] برنامج مؤقيت الصلاة الاصدار الثالث alsaher1 11 4,349 21-10-24, 04:34 PM
آخر رد: altoki939
  [مشروع] تصميم احترافي لبرنامج شئون الموظفين باستخدام ديف اكسبريس + تحميل السورس كود mazentq 7 7,750 14-10-24, 05:21 PM
آخر رد: بوحمد

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


يقوم بقرائة الموضوع: