⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paper.aspx

📁 程序源代码分成两个部分: &#61557 一部分是用记事本或EditPlus编写的
💻 ASPX
字号:
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="system.Data" %>
<%@ Import Namespace="system.Data.Oledb" %>

<Html>
<Head>
<Title>网上考试系统</Title>
<Script Language="VB" runat="Server">

Dim dt As DataTable
Dim score1,score2,score3 As Single
Dim number1,number2,number3 As Integer
Dim type1,type2,type3 As string
Dim num As Integer
Dim examname As String

Sub Page_Load(Sender As object,e As Eventargs)
	Dim SQL As String			
	if not page.ispostback then		
	CreateTable()
	ReadPaper()
	Randomize(timer)
	SQL = "select  * from  subject where type='单项选择题'"
	if type1<>"type" then
		MakePaper(SQL,number1)
		SingleChoice.DataSource=dt.defaultview
		SingleChoice.databind()
	end if
	SQL = "select  * from  subject where type='多项选择题'"
	if type2<>"type" then
		MakePaper(SQL,number2)
		MultiChoice.DataSource=dt.defaultview
		MultiChoice.databind()
	end if
	SQL = "select  * from  subject where type='判断题'"
	if type3<>"type" then
		MakePaper(SQL,number3)		
		Judge.DataSource=dt.defaultview
		Judge.databind()
	end if
        end if
	
End Sub
Sub CreateTable()
	dt = New DataTable("Paper")
	CreateColumn("System.Int32","SubjectID")
	CreateColumn("System.String","question")
	CreateColumn("System.String","option1")
	CreateColumn("System.String","option2")
	CreateColumn("System.String","option3")
	CreateColumn("System.String","option4")
	CreateColumn("System.String","answer")
End Sub
Sub CreateColumn(Byval DataType As String,Byval ColumnName As String)
	Dim dc As DataColumn
	dc = New DataColumn()
	with dc
		.DataType = System.Type.GetType(DataType)
		.ColumnName = ColumnName
	end with
	dt.Columns.Add(dc)
End Sub
Sub ReadPaper()	
	Dim conn as OledbConnection
	Dim com as OledbCommand
	Dim rd As OledbDataReader
	Dim conStr As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("EXAM.MDB")
	Dim SQL As String="select type1,number1,score1,type2,number2,score2,type3,number3,score3,examname,examid from paper where examdate=(select max(examdate) from paper) "
	conn = New OleDbConnection(conStr)	
	Conn.Open()
	Com = New OledbCommand(SQL,conn)
	rd=Com.ExecuteReader()
	type1="type"
	type2="type"
	type3="type"
	while rd.read() 
		label1.Text=rd.GetString(9)
		if not rd.IsDbNull(0) then
		type1=trim(rd.GetString(0))
		number1=rd.GetInt16(1)
		score1=rd.GetFloat(2)
		end if
		if not rd.IsDbNull(3) then
		type2=trim(rd.GetString(3))
		number2=rd.GetInt16(4)
		score2=rd.GetFloat(5)
		end if
		if not rd.IsDbNull(6) then
		type3=trim(rd.GetString(6))
		number3=rd.GetInt16(7)
		score3=rd.GetFloat(8)
		end if
		session("examid")=rd.GetInt32(10)
	end while	
	rd.close()
	conn.Close()
End Sub
Sub MakePaper(Byval str As String,Byval number As Integer)
	Dim conn as OledbConnection
	Dim conStr As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("EXAM.MDB")
	Dim ad as OledbDataAdapter
	Dim ds as Dataset
	Dim i,examid As Integer
	Dim count As Integer		'某项题型的试题数目
	Dim dr As DataRow
	conn = New OleDbConnection(conStr)	
	Conn.Open()	
	dt.Clear()
	For i=0 to number -1
		ad=New OledbDataAdapter(Str,conn)
		ds = New DataSet()		
		ad.Fill(ds, "Single")
		count=ds.Tables(0).Rows.Count
		examid = CInt(Int(count * Rnd()))				
		dr = dt.NewRow()
		dr("SubjectID")=ds.Tables(0).Rows(examid)("SubjectID")
		dr("question")=ds.Tables(0).Rows(examid)("question")
		dr("option1")=ds.Tables(0).Rows(examid)("option1")
		dr("option2")=ds.Tables(0).Rows(examid)("option2")
		dr("option3")=ds.Tables(0).Rows(examid)("option3")
		dr("option4")=ds.Tables(0).Rows(examid)("option4")
		dr("answer")=ds.Tables(0).Rows(examid)("answer")
		dt.Rows.Add(dr)
	Next
	conn.Close()	
End Sub
Sub OnSubmit_Click(Sender As object,e As Eventargs)
	Dim conn as OledbConnection
	Dim com as OledbCommand
	'Dim rd As OledbDataReader
	Dim conStr As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("EXAM.MDB")
	Dim SQL As String
	Dim total As Single
	conn = New OleDbConnection(conStr)	
	Conn.Open()	
	total = SingleScore() + MultiScore() + JudgeScore()
	SQL="insert into score(userid,examid,score) values(" & session("userid") & "," & session("examid") & "," & total & ")"
	Com = New OledbCommand(SQL,conn)
	Com.ExecuteNonQuery()
	Score.Text = "总成绩为:" & total & "分"
	conn.close()	
End Sub
Function SingleScore()  As Single
    Dim s1,s2,s3,s4 As RadioButton 
    Dim tmp As DataListItem 
    Dim SingleID,SingleAnswer,SScore As Label
    Dim SingleResult As Image
    Dim i As Integer
    Dim TotalScore As Single = 0
    Dim ans As String
    
    For i=0 To SingleChoice.Items.Count-1 	
	tmp = SingleChoice.Items(i)
	s1 = tmp.FindControl("Single1")
	s2 = tmp.Findcontrol("Single2")
	s3 = tmp.FindControl("Single3")
	s4 = tmp.FindControl("Single4")
	SingleID = tmp.FindControl("SingleID")
	SingleAnswer = tmp.FindControl("SingleAnswer")
	SScore = tmp.FindControl("SingleScore")
	SingleResult = tmp.FindControl("SingleResult")
	If s1.Checked Then 
	    ans = "A"
	Else If s2.Checked Then 
	    ans = "B"
	Else If s3.Checked Then
	    ans = "C"
	Else If s4.Checked Then
	    ans = "D"
        Else
	    ans = "0"
	End If
	SingleResult.Visible="True"			
        if ans = trim(SingleAnswer.Text) Then	    
	    TotalScore = TotalScore + Single.Parse(SScore.Text)	    
	    SingleResult.ImageUrl="Right1.jpg"
	else	    
	    SingleResult.ImageUrl="error1.jpg"	  
	End IF 
	
     Next
	
     return TotalScore
  End Function
  
  Function MultiScore() As Single
    Dim m1,m2,m3,m4 As CheckBox  
    Dim tmp As DataListItem
    Dim MultiID,MultiAnswer,MScore As Label 
    Dim MultiResult As Image 
    Dim i As Integer
    Dim ans As String
    Dim TotalScore As Single
    Dim no As Integer
    For i=0 To  MultiChoice.Items.Count-1 
       tmp = MultiChoice.Items(i)
       m1 = tmp.FindControl("Multi1")
       m2 = tmp.Findcontrol("Multi2")
       m3 = tmp.FindControl("Multi3")
       m4 = tmp.FindControl("Multi4")
       MultiID = tmp.FindControl("MultiID")  
       MultiAnswer = tmp.FindControl("MultiAnswer") 
       MScore = tmp.FindControl("MultiScore") 
       MultiResult = tmp.FindControl("MultiResult")  
      If m1.Checked Then 
	    ans = "A"
      Else 
	    ans = "0"
      End If
      If m2.Checked Then 
	    ans &= "B"
      Else 
	    ans &= "0"
      End If
      If m3.Checked Then 
	    ans &= "C"
      Else 
	    ans &= "0"
      End If 
      If m4.Checked Then 
	    ans &= "D"
      Else 
	    ans &= "0"
      End If
	MultiResult.Visible="True"
      if ans = Trim(MultiAnswer.Text) Then	    
		TotalScore = TotalScore + Single.Parse(MScore.Text)
		MultiResult.ImageUrl="Right1.jpg"		
      else	    
	    MultiResult.ImageUrl="error1.jpg"		  
      End IF  
    Next
    return TotalScore
  End Function

  Function JudgeScore() As Single
    Dim j1,j2 As RadioButton  
    Dim tmp As DataListItem 
    Dim JudgeID,JudgeAnswer,JScore As Label 
    Dim JudgeResult As Image
    Dim i As Integer
    Dim TotalScore As Single
    Dim ans As String
    For i=0 To  Judge.Items.Count-1 
       tmp= Judge.Items(i)
       j1 = tmp.FindControl("Judge1")
       j2 = tmp.Findcontrol("Judge2")
       JudgeID = tmp.FindControl("JudgeID")
       JudgeAnswer = tmp.FindControl("JudgeAnswer")
	JScore = tmp.FindControl("JudgeScore")
	JudgeResult = tmp.FindControl("JudgeResult")
      If j1.Checked Then 
	    ans = "Y"
      ElseIf j2.Checked Then 
	    ans = "N"
      Else
            ans = "0"	  
      End If   
	JudgeResult.Visible="True"   
      if ans = Trim(JudgeAnswer.Text) Then        
		TotalScore = TotalScore + Single.Parse(JScore.Text)
		JudgeResult.ImageUrl="Right1.jpg"		
      else	    
	    JudgeResult.ImageUrl="error1.jpg"	 	
      End IF  
	Next
	return TotalScore	
  End Function  
  Sub OnReturn_Click(byval Sender As object,e As Eventargs)
	Response.Redirect("exam.aspx")
End Sub
</Script>

</Head>
<Body>
<form  runat="server">
	<P>
      <asp:Label id="Label1" Font-Bold="True" Font-Size="26pt" ForeColor="Orange" runat="server" /><P>       
      <asp:Label id="Score" Font-Bold="True" Font-Size="20pt" ForeColor="Red" runat="server" /><P>       
      <asp:DataList id="SingleChoice" runat="server">             
       <HeaderTemplate>	
	<HR><P>
        <b><Font color="Blue" size="5"><%#type1%>(共<%#number1%>题,每题<%#score1%>分)</b></FONT>	
       <table border=0 width="740"> 
       <% num=0 %>        
       </HeaderTemplate>
       <ItemTemplate>
               <% num=num+1 %>
	       
         <tr>
           <td bgcolor="#EFEFEF"><FONT COLOR="BLUE">
             <%=num%>、&nbsp; <%# DataBinder.Eval(Container.DataItem, "question") %>
	     <asp:Label id="SingleID" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "SubjectID")%>' runat="server" />        		
	     <asp:Label id="SingleAnswer" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "answer")%>' runat="server" />       		
	     <asp:Label id="SingleScore" visible="False" Text='<%# score1%>' runat="server" />       		
           </font></td>
         </tr>
	     <tr>
	       <td>
	         <asp:RadioButton id="Single1" GroupName="S" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option1")%>'/>
	       </td>
	     </tr>
         <tr>
           <td>
             <asp:RadioButton id="Single2" GroupName="S" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option2")%>'/>
           </td>
         </tr>
         <tr>
           <td>
             <asp:RadioButton id="Single3" GroupName="S" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option3")%>'/>
           </td>
         </tr>
         <tr>
           <td>
             <asp:RadioButton id="Single4" GroupName="S" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option4")%>'/>
           </td>
         </tr>
	<tr>
           <td>
             <asp:Image id="SingleResult" Visible="False" runat="Server" />
           </td>
         </tr>
      </ItemTemplate> 
      <FooterTemplate>	     
      </table>      
      </FooterTemplate>
    </asp:DataList><P>
    <asp:DataList id="MultiChoice" runat="server">             
       <HeaderTemplate>
	<HR><P>
	<b><Font color="Blue" size="5"><%#type2%>(共<%#number2%>题,每题<%#score2%>分)</b></FONT>
       <table border=0 width="740">
	<% num=0 %>        
       </HeaderTemplate>
       <ItemTemplate>
         <% num=num+1 %>
	<asp:Label id="MultiID" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "SubjectID")%>' runat="server" />	     
	<asp:Label id="MultiAnswer" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "answer")%>' runat="server" />      
	<asp:Label id="MultiScore" visible="False" Text='<%# score2%>' runat="server" />       		
         <tr>
           <td bgcolor="#EFEFEF"><FONT COLOR="BLUE">
             <%=num%>、&nbsp; <%# DataBinder.Eval(Container.DataItem, "question") %>     
           </font></td>
         </tr>
  	     <tr>
  	       <td>
  	         <asp:CheckBox id="Multi1" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option1")%>'/>
  	       </td>
  	     </tr>
         <tr>
           <td>
             <asp:CheckBox id="Multi2" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option2")%>'/>
           </td>
         </tr>
         <tr>
           <td>
             <asp:CheckBox id="Multi3" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option3")%>'/>
           </td>
         </tr>
         <tr>
           <td>
             <asp:CheckBox id="Multi4" runat="Server" Text='<%# DataBinder.Eval(Container.DataItem, "option4")%>'/>
           </td>
         </tr>
	<tr>
           <td>
             <asp:Image id="MultiResult" Visible="False" runat="Server" />
           </td>
         </tr>
       </ItemTemplate> 
       <FooterTemplate>	
       </table>       
       </FooterTemplate>
     </asp:DataList><P>
     <asp:DataList id="Judge" runat="server">             
      <HeaderTemplate>
	<HR><P>
      <b><Font color="Blue" size="5"><%#type3%>(共<%#number3%>题,每题<%#score3%>分)</b></FONT>
       <table border=0 width="740">
	<% num=0 %>   
      </HeaderTemplate>
      <ItemTemplate>
        <% num=num+1 %>	 
	<asp:Label id="JudgeID" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "SubjectID")%>' runat="server" />   
	<asp:Label id="JudgeAnswer" visible="False" Text='<%# DataBinder.Eval(Container.DataItem, "answer")%>' runat="server" />       		
	<asp:Label id="JudgeScore" visible="False" Text='<%# score3%>' runat="server" />       		
        <tr>
          <td bgcolor="#EFEFEF" ><FONT COLOR="BLUE">
            <%=num%>、&nbsp; <%# DataBinder.Eval(Container.DataItem, "question") %>            
          </font></td>
        </tr>
	<tr>
	  <td>
	    <asp:RadioButton id="Judge1" GroupName="J" runat="Server" Text="对"/>
	  </td>
	</tr>
        <tr>
          <td>
            <asp:RadioButton id="Judge2" GroupName="J" runat="Server" Text="错"/>
          </td>
        </tr>
	<tr>
           <td>
             <asp:Image id="JudgeResult" Visible="False" runat="Server" />
           </td>
         </tr>
      </ItemTemplate> 
      <FooterTemplate>
	
        </table>        
      </FooterTemplate>
    </asp:DataList><P align="center">
    <asp:Button id="Submit" Text="交 卷"  OnClick="OnSubmit_Click" runat="server"/>
    <asp:Button id="Return" Text="返 回"  OnClick="OnReturn_Click"  runat="server"/> 
</form>
</Body>
</Html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -