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

سؤال ضروري عن ال multiple forms

بدأه Randa Qassem في 2 مايو 2010 · 4 رد · 925 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبا

اول شي يسعدني الانضمام اليكم .. وانا عم ببحث بالانترنت لقيت منتداكم وقلت هاد اللي بدي اياه بما انه دراستي computer science

تاني شي بدي اسأل كم سؤال

انا عم بعمل بروجيكت طلبه الدكتور وهو عبارة عن automated exam

وطلب انو يكون كل سؤال على form وطبعا كل فورم فيه button next & button back

ال next بوجهني عالسؤال التالي والباك بوجهني عالسؤال السابق

طبعا الاسئلة فيها Multiple choice & fill in the blank << مش موضوعنا

هلأ انا كتبت الكود التالي لزر النكست

 namespace Exam
{
    public partial class Q2 : Form
    {
        public Q2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            Q3 q3 = new Q3();
            this.Hide();
            q3.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Q1 q1 = (Q1)Application.OpenForms["Q1"];
            this.Hide();
        }
    }
}

بس المشكله انه لما اليوزر يعمل check عال radio button اللي فيه الاجابه الصحيحه ويعمل باك عالسؤال اللي قبله ويرجع يعمل نكست بصير ال radio button (unchecked )

لأنه كل مره بكبس فيها الnext button برجع يعمل initialization مره تانيه

مين عندو فكره كيف بقدر احل هالمشكله كيف بقدر اخليه يشوف ازا كان الفورم مفتوح من قبل ما يعمل initialize

#2

بسم الله الرحمن الرحيم

الحل الأول :

عمل مصفوفة بحيث عند الإنتقال بين سؤال وسؤال تكون العملية هية الإنتقال بين نافذة ونافذة بحيث يتم إخفاء النافذة بقد عند الإنتقال مع الإحتفاظ بكامل البيانات.

الحل الثاني :

عمل بُنية مُعينة ( قاعدة بيانات - ملف نصي مؤقت - ملف xml - مصفوفة - قائمة ..) بحيث تُخزن الأجوبة وعند استعراض آي سؤال يتم تخزين الإجابة فيه وعند العودة تتم إعادة القيمة من هذه البُنية

أتمنى أن أكون قد أفدت

أخوكُم في الله : سامر

تم تعديل هذه المشاركة بواسطة samer226047 في 2 مايو 2010 في 21:49

إن كلماتنا ستبقى ميتة أعراساً من الشموع لا حراك فيها جامدة ، حتى إذا متنا من أجلها انتفضت حية وعاشت بين الأحياء ، كل كلمة عاشت كانت قد اقتاتت قلب إنسان حي ، فعاشت بين الأحياء ، والأحياء لا يتبنون الأموات

الليل ولى وجاء دورك يا صباح سفينة الإيمان سارت لا تبالي بالرياح

ولا تنسوني من دعائكم

#3

طيب لما اعمل ملف نصي مؤقت واخزن فيه عن طريق ستريم رايتر

كيف بقدر ارجع استدعيه

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

ووين بكون هالحكي بـ كلاس خارجي او بنفس زر الـ button

يا ريت تدعمني بـ كود

لأني ما اشتغلت قبل هيك بال files

انا لسا مبتدئه بالسي شارب

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

#4

أختي تستطيعين بكل بساطة استخدام أداة TabControl أو Treeview لانشاء مثل هذا النوع من الانظمة وستبقى القيم ضمن الأدوات حيث يمكنك في نهاية الامتحان المرور على كل الأدوات ومقارنة الاجابات بالاجابة الصحيحة وتوليد النتيجة

سأفترض السيناريو التالي للامتحان:

1- بداية الأمر تظهر نافذة تسجيل دخول للطالب

2- قراءة الامتحان الخاص بالطالب من قاعدة البيانات مثلا ثم توليد الاسئلة باستخدام احدى الادوات السابقة (TabControl, TreeVeiw) في زمن التنفيذ Run Time برمجيا

3- قراءة الاجابات الصحيحة للأسئلة من قاعدة البيانات ثم تخزينها بمصفوفة كلاس Array Class.

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

5- اظهار النتيجة ويمكن ان تضعي Timer تنازلي حسب وقت الامتحان وعند انتهاء الوقت يقوم بانهاء الامتحان تلقائيا

لقد قمت بكتابة مثال صغير يبين طريقة استخدام TabControl بالمرفقات

ارجو ان تكون اجابتي مفيدة

بالتوفيق

AutomatedExam.rar

تم تعديل هذه المشاركة بواسطة was_hal في 3 مايو 2010 في 12:58

1338031614581.png

" اللهــم إنّا مغلــوبــون فانتصــــر "

(اللهم سبحانك لا علم لنا إلا ما علمتنا إنك أنت العليم الحكيم)

#5

مفيدة ... وجزاك الله خير

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