سلام دوستان ، من می خوام یک آزمون درست کنم . که توش تایمر هم باشه .
برای مثال 2 دقیقه برای جواب دادن وقت داشته باشه و تایمر هم روی صفحه باشه و زمان رو نشون بده . ممنون با زیان سی شارپ هم کار نکردم . با Visual basic
Printable View
سلام دوستان ، من می خوام یک آزمون درست کنم . که توش تایمر هم باشه .
برای مثال 2 دقیقه برای جواب دادن وقت داشته باشه و تایمر هم روی صفحه باشه و زمان رو نشون بده . ممنون با زیان سی شارپ هم کار نکردم . با Visual basic
کسی نبود ، خیلی مهمه دوستان . ممنون میشم اگر راهنمایی کنین
سلام.من پروژه ام درمورد همین موضوع بوده.یعنی آزمونهای آنلاین زماندار.الان C#روی سیستمم نصب ندارم که کدش رو بخوام برات دربیارم.اگه توی دفترم یادداشت کرده باشم برات مینویسم.راستی برای کی میخوای؟خوشحال میشم اگه بتونم کمکتون کنم. [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
---------- Post added at 04:07 PM ---------- Previous post was at 04:06 PM ----------
راستی به زبانVB.NETنوشتم نه C#.NET
به چه زبانی لازم داری؟
من 7 تیر باید تحویل بدم و کلاً موندم چیکار کنم . به زیان vb می خوام :40:نقل قول:
سلام.یعنی برا فردا میخوای؟نقل قول:
خوب اول از همه تو قسمت ثبت سوال باید زمان جواب دادن به سوال رو هم وارد کنی.مثلا برای سوال X مدت زمان پاسخگویی 2 دقیقه باشه.
توی Page_Load صفحه آزمون باید یه Sesion تعریف کنی که این نشان دهنده زمانی است که وارد آزمون شده ایم،
T یک متغیر هست که از نوع integer تعریف کردم و مقدارSession رو توی اون قرار دادم:
حالا توی صفحه ای که میخوای سوالها رو جواب بدی باید 2 تا آبجکت بزاری.ScriptManager1 و Timer1کد:T = Session("TestTime")
حالا روی Timer1 کلیک میکنی و دستورات زیر رو مینویسی:
دو تا برچسبHHLabel و MMLabel برای نمایش زمان فعلی سیستم می باشد.یعنی زمان فعلی سیستم رو با زمان پایان آزمون که در برچسب های EHLable و EMLable مقدارسان قرار دارد مقایسه میکنیم.اگر با هم برابر بود دکمهMe.EndAzmoonBTN_Click(sender, e) فراخونی میشود و صفحه آزمون غیر فعال می شود.کد:Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
HHLabel.Text = Date.Now.Hour
MMLabel.Text = Date.Now.Minute
If ((HHLabel.Text) = EHLable.Text) And ((MMLabel.Text) = EMLable.Text) Then
MsgBox("کاربر گرامی زمان آزمون شما به پایان رسید.", MsgBoxStyle.OkOnly + MsgBoxStyle.Critical + MsgBoxStyle.DefaultButton1, "پایان آزمون")
'EndAzmoonBTN_Click(sender, e)
Me.EndAzmoonBTN_Click(sender, e)
' Response.Redirect("..\StudentPages\Result.aspx")
End If
End Sub
در Page_Load دستورات زیر رو بنویس:
HLable و Mlable برای نمایش زمان شروع آزمون هستش.برچسب ها به ترتیب برای ساعت و دقیقه هستند.کد:Dim sum As Integer = 0
For Each row In dt.Rows
sum += Val(row("TestTime").ToString())
Next
TimeLabel.Text = Str(sum)
Dim EndH, EndM As Integer
HLable.Text = Date.Now.Hour
MLable.Text = Date.Now.Minute
Session("TimeAzmoon") = HLable.Text + " : " + MLable.Text
EndM = Val(MLable.Text) + Val(TimeLabel.Text)
EndH = Val(HLable.Text)
If EndM >= 60 Then
EndH = EndH + (EndM / 60)
EndM = EndM Mod 60
End If
EHLable.Text = EndH
EMLable.Text = EndM
'end azmoon
EHLable و EMLable برای نمایش طمان پایان آزمون هستش.
TimeLable مدت زمان امتحان رو نشون میده که مثلا این آزمون 20 دقیقه طول میکشه تا تموم بشه.
آخر سر که زمان امتحان تموم میشه آزمون غیر فعال میشه و با زدن دکمه اسال پاسخ وارد صفحه کارنامه میشی:
کد زیر دکمه ارسال پاسخ را غیر فعال میکند.
دکمه زیر هم برای نمایش نتیجه آزمون می باشد که با غیر فعال شدن دکمه ارسال پاسخ این دکمه فعال می شود:کد:EndAzmoonBTN.Enabled = False
سپس باید DataList1 رو هم غیر فعال کنی تا دیگه نتونی توش تغییر ایجاد کنیم:کد:AnswerBTN.Enabled = True
این هم کد دکمه ارسال پاسخ:کد:DataList1.Enabled = False
Array یک آرایه هست که مشخصات سوالهایی را که پاسخ داده ایم را توی خودش نگهداری میکند و مقدارش رو توی یک Session قرار میدهیم تا در صفحه نمایش جوابها استفاده کنیم.کد:Protected Sub EndAzmoonBTN_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles EndAzmoonBTN.Click
EndAzmoonBTN.Enabled = False
AnswerBTN.Enabled = True
DataList1.Enabled = False
Dim T As String
T = Session("TestTime")
TimeLabel.Text = T 'zamani ke varede azmoon shodeheem
Dim array(DataList1.Items.Count - 1, 1) As Long
Dim i As Integer = 0
While i < Me.DataList1.Items.Count
Dim testid As TextBox = DataList1.Items(i).FindControl("idtest")
Dim gozineye1 As RadioButton = DataList1.Items(i).FindControl("radio1")
Dim gozineye2 As RadioButton = DataList1.Items(i).FindControl("radio2")
Dim gozineye3 As RadioButton = DataList1.Items(i).FindControl("radio3")
Dim gozineye4 As RadioButton = DataList1.Items(i).FindControl("radio4")
array(i, 0) = testid.Text
If gozineye1.Checked = True Then
array(i, 1) = 1
ElseIf gozineye2.Checked = True Then
array(i, 1) = 2
ElseIf gozineye3.Checked = True Then
array(i, 1) = 3
ElseIf gozineye4.Checked = True Then
array(i, 1) = 4
ElseIf gozineye1.Checked = False Then
array(i, 1) = -1
ElseIf gozineye2.Checked = False Then
array(i, 1) = -1
ElseIf gozineye3.Checked = False Then
array(i, 1) = -1
ElseIf gozineye4.Checked = False Then
array(i, 1) = -1
Else
array(i, 1) = 0
End If
i += 1
End While
Session("array") = array
End Sub
راستی تمام کدها به زبان vb.net هست.امیدوارم که به دردتون بخوره.