PDA

View Full Version : سیستم آزمون گیری ساده



mosiera98
دوشنبه 21 فروردین 1385, 01:32 صبح
آقا کمک دوروز مهلت دارم......یک برنامه که مثلا 10 تا سوال رو همراه گزینه هاش به کاربر نمایش بده وبعد نمره بده بانک sql2000 ......خواهش می کنم اگه کسی نمونه برنامه داره بزاره
مرسی از عزیزان

nazaninam
دوشنبه 21 فروردین 1385, 21:09 عصر
این سوال قبلا پرسیده شده یه جستجو بفرمایید
بیشتر در مورده پروژه توضیح بدید
1- سوال ها متغیر هستند یا ثابت؟
2- زمان پاسخ گویی به چه نحوی هست؟
و...

mosiera98
چهارشنبه 23 فروردین 1385, 02:41 صبح
سلام
فعلا زمان مطرح نیست ببینید سوالات از بانک خوانده می شند و سپس بصورت داینامیک به صفحه اضافه میشند حالا مشکل من اینه که در کدوم رویداد ودر کجا سیشن مربوط به انتخاب کاربر را ذخیره کنم من سوالات و گزینه های جواب رو بصورت داینامیک به یک پنل اضافه میکنم وفقط مشکل من در حساب کردن نمره است چون وقتی کاربر دکمه ارسال رو میزنه همه چی از بین میره ومن میخوام موقعی که کاربر دکمه ارسالو زد یا قبلش یا هر جایی که شما صلاح بدونید سیشن مربوط به سوالات وجوابهای کاربر رو ذخیره کنم واللاه نمیدونم چطور میشه قبل از عمل پست بک این کارو انجام داد
آقای نازنینم لطفا مرا راهنمایی نمایید -ممنون

صابر
چهارشنبه 23 فروردین 1385, 03:02 صبح
اگه می‌خواین از Session استفاده کنید؛
اگه جواب سوالات رو در رویداد مربوط به کلیک دکمه ارسال در Session ذخیره کنید. بعد از Postbackاطلاعات Session از بین نمی‌ره..
اگه مشکلی داشتین، کدتون رو (یا قسمتی از اون رو) اینجا بذارین.

mosiera98
چهارشنبه 23 فروردین 1385, 03:16 صبح
سلام آقا صابر
یعنی وقتی کلیک انجام شد من سیشن پانلمو ذخیره کنم مگه postback کی انجام میشه
من برای هر سوال یک radiobuttonlist گذاشتم که میخام انتخاب کاربر selectedindex تمومی سوالات رو ذخیره کنم به نظر شما این کار عملی یا کار بهتری رو پیشنهاد می کنید
از جوابتون ممنونم

nazaninam
چهارشنبه 23 فروردین 1385, 10:54 صبح
راه حل کلی اینه که ابتدا تعداد سوالات درست و غلط و یا نزده رو بدست بیارید که فکر کنم اینکارو کردید
خوب حالا با چند تا ضرب و تقسیم ساده نمره کاربر بدست میاد میتونی توی دیتابیس ذخیرش کنی
اگه هنوز نتونستی تعداد درست یا غلط رو بدست بیاری بگو

mosiera98
چهارشنبه 23 فروردین 1385, 23:59 عصر
ببینید چون من تمامی radiobuttonlistهامو بصورت داینامیک به پنلم اضافه میکنم ویک id با اندیس مربوط به اون سوال میدم بعد کنترل با اون id رو پیدا نمیکنه البته وقتی یک radiobuttonlistبصورت تکی بدون گذاشتن تو دستور for each datarow in mydataset.table(0) اونموقع درسته ومیتونم selectindex مربوط به adiobuttonlistرو بفهمم ولی مشکل من اینه وقتی چند تا رادیو باتن لیست اضافه میکنم جواب نمی ده شاید باید از آرایه های کنترلی استفاده کنم که نمیدونم
از یکی از دوستام شنیدم گه باید از کلاس tcontrol استفاده کنم کسی چیزی دربارش میدونه
واللاه خسته شدم از بس که با این برنامه وررفتم کسی در مورد کنترل کنترلهایی که بصورت runtime ایجاد میشند تجربه داره ممنون میشم اگه کسی منو راهنمایی کنه
من الان فقط سوالاتو از بانک خوندم وتو دیتاستم ریختم وبعد برای هر سوال یک لیبل و یک رادیو باتن لیست گزاشتم که درست کار میکنه الان میخوام اونهایی که کاربر جواب داده رو بفهمم که با اینکه هر کدوم یک id داره اما نمیدونم چرا نمیشه اینم کدمه:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Try
Me.SqlDataAdapter1.Fill(Objds1, "tblsoalat_computer_software")
Catch ex As Exception
Response.Write(ex.ToString)
End Try
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If ViewState("controlsadded") Is Nothing Then
AddControls()
End If
End Sub
Protected Overrides Sub LoadViewState(ByVal savedState As Object)
MyBase.LoadViewState(savedState)
If ViewState("controlsadded") = True Then
AddControls()
End If
End Sub

Private Sub AddControls()

Dim dynamictextbox As RadioButtonList = New RadioButtonList
dynamictextbox.Items.Add((("g1")))
dynamictextbox.Items.Add((("g2")))
dynamictextbox.Items.Add((("g3")))
dynamictextbox.Items.Add((("g4")))
dynamictextbox.ID = "dynamictextbox" & 12
Panel1.Controls.Add(dynamictextbox)
Panel1.Controls.Add(New LiteralControl("<BR><BR>"))
'*******************
indexr1sEmps = indexr1sEmps + 1

Dim dynamicbutton As New Button
AddHandler dynamicbutton.Click, AddressOf dynamicbutton_Click
dynamicbutton.Text = "Dynamic Button"
Panel1.Controls.Add(dynamicbutton)
Dim dynamictextbox2 As New TextBox
dynamictextbox2.Text = "(Enter some text2)"
dynamictextbox2.ID = "dynamictextbox2"
Dim dynamicbutton2 As New Button
AddHandler dynamicbutton2.Click, AddressOf dynamicbutton2_Click
dynamicbutton2.Text = "دریافت سوالات"
Panel1.Controls.Add(dynamictextbox2)
Panel1.Controls.Add(New LiteralControl("<BR><BR>"))
Panel1.Controls.Add(dynamicbutton2)
'***********
ViewState("controlsadded") = True
End Sub

Private Sub dynamicbutton_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs)
'Dim tb As TextBox
'tb = CType(Panel1.FindControl("dynamictextbox88"), TextBox)
'Label1.Text = Server.HtmlEncode(tb.Text)
Dim myradio As New RadioButtonList
myradio = CType(Panel1.FindControl("dynamictextbox12"), RadioButtonList)
Label1.Text = Server.HtmlEncode(myradio.SelectedIndex + 1)
End Sub
Private Sub dynamicbutton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
' Dim tb As TextBox
'tb = CType(Panel1.FindControl("dynamictextbox2"), TextBox)
'Label1.Text = Server.HtmlEncode(tb.Text)
Try
Dim dr As DataRow
For Each dr In Objds1.Tables("tblsoalat_computer_software").Rows
sEmps(indexr1sEmps) = CStr(dr("soal"))
'‏(گزینه 1)‏ " & dr("g1_javab") & " </br>‏(گزینه 2)‏-" & dr("g2") & "</br> ‏(گزینه 3)‏ " & dr("g3") & "</br> ‏(گزینه 4)‏ " & dr("g4") & " <br> "
'Me.RadioButton1.Text = dr("g1_javab")
'Me.RadioButton2.Text = dr("g2")
'Me.RadioButton3.Text = dr("g3")
'Me.RadioButton4.Text = dr("g4")
r1(indexr1sEmps, 1) = CStr(dr("g1"))
r2(indexr1sEmps, 2) = CStr(dr("g2"))
r3(indexr1sEmps, 3) = CStr(dr("g3"))
r4(indexr1sEmps, 4) = CStr(dr("g4"))
g(indexr1sEmps) = CStr(dr("javab"))
' Response.Write("soal" & indexr1sEmps & " = " & g(indexr1sEmps))
'*********************soal
Dim myLabel As Label = New Label
myLabel.Text = indexr1sEmps & "-" & sEmps(indexr1sEmps)
myLabel.ID = "soal" & indexr1sEmps
Panel1.Controls.Add(myLabel)
Dim spacer As LiteralControl = New LiteralControl("<br>")
Panel2.Controls.Add(spacer)
'&&&&&&&&&&**********new my code radiobuttonlist
Dim myradiolist As RadioButtonList = New RadioButtonList
' AddHandler myradiolist.SelectedIndexChanged, AddressOf dynamicbutton_Click
myradiolist.Items.Add(r1(indexr1sEmps, 1))
myradiolist.Items.Add(r2(indexr1sEmps, 2))
myradiolist.Items.Add(r3(indexr1sEmps, 3))
myradiolist.Items.Add(r4(indexr1sEmps, 4))
myradiolist.ID = "myradiolist" & (indexr1sEmps)
Panel1.Controls.Add(myradiolist)
'&&&&&&&&&&**********end my code

'*************
'***************
Dim line As Label = New Label
line.Text = "__________________________________________________ ___________________"
Panel2.Controls.Add(line)
'**************
Dim spacer5 As LiteralControl = New LiteralControl("<br>")
Panel2.Controls.Add(spacer5)
'******************
indexr1sEmps = indexr1sEmps + 1
Next
Catch ex As Exception

End Try

End Sub
در این حالت فقط یک رادیوباتنلیست الکی اضافه کردم که جواب کاربر رو میفهمم ولی وقتی از
طریق دستور for each datarow in mydataset.table(0) نمیشه که نمیشه

PrinceDotNet
پنج شنبه 24 فروردین 1385, 21:38 عصر
از این استفاده کن

http://www.codeproject.com/aspnet/xmlquiz.asp

mosiera98
جمعه 25 فروردین 1385, 11:04 صبح
اینو دارم این با استفاده از xml هستش وسوالات کاملا" ثابت هست ولی من میخوام سوالاتم داینامیک باشه
مشکل من فقط در جواب گرفتنه نمیدونم چرا وقتی به سوالاتم مثلا" ایتم داریو باتنم یک رشته ثابت میزارم مثلا" میزارم "بلی " درسته اما وقتی همینو تو متغیر از نوع string میزارم که از دیتاستم خوندم مشکل داره و وقتی میخوام نمره بگیرم تموم متغیرهام خالی میشه
خواهش میکنم مرا راهنمایی کنید

nazaninam
جمعه 25 فروردین 1385, 13:26 عصر
یک سیستم آزمون گیری فوق العاده ساده یکم تغییرش بدی میشه همونی که میخوای
امکانات:
1- کاملا از دیتابیس پر میشه ( سوالات و جواب ها)
2- تعداد درست نادرست و نزده رو هم خیلی ساده محاسبه می کنه
یکم تغییرش بده میتونی تراز بدی و حتی نمودارم بکشی
میتونی کاربر بندی کنی و آخرش یه report از همه بدی که البته باسه اینکار باید اطلاعات رو در دیتابیس ذخیره کنی
به هر ترتیب خوش باشی...