918博天堂

Server : Microsoft-IIS/10.0
System : Windows NT EBS-6136 10.0 build 17763 (Windows Server 2016) i586
User : jxgj ( 0)
PHP Version : 7.0.33
Disable Function : passthru,exec,system,shell_exec,proc_open,popen,pcntl_exec,socket_bind,stream_socket_server
Directory :  D:/tmp_aspnet/root/8346f1f3/9c1cfaad/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : D:/tmp_aspnet/root/8346f1f3/9c1cfaad/App_Web_1xg41kxm.3.cs
?#pragma checksum "D:\wwwroot\bujuan\wwwroot\PersonInfo\SubmJobOne.aspx.cs" "{ff1816ec-aa5e-4d10-87f7-6f4963833460}" "6081847EF0AB592FC0B7800E1497757B32014601"

#line 1 "D:\wwwroot\bujuan\wwwroot\PersonInfo\SubmJobOne.aspx.cs"
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.IO;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Configuration;
using System.Text;

namespace EasyExam.PersonalInfo
{
	/// <summary>
	/// SubmJobOne 的提要注明。
	/// </summary>
	public partial class SubmJobOne : System.Web.UI.Page
	{
		protected string strMessage="";
		PublicFunction ObjFun=new PublicFunction();
		int intPaperID=0,intUserScoreID=0,intRemTime=0,intRemMinute=0,intRemSecond=0,intTestAmount=0;
		int intPassMark=0,intFillAutoGrade=0,intSeeResult=0,intPassState=0,intAutoJudge=0,intJudgeState=0,intJudgeUserID=0;
		string strRubricID="",strBaseTestType="",strUserAnswer="",strMsg="";
		double dblUserScore=0,dblImpScore=0,dblSubScore=0;
		int i=0,intTestNum=0;
		string[] strArrTypeStandardAnswer,strArrTypeUserAnswer;
		string[] strArrUserAnswer,strArrStandardAnswer;

		#region//*********初始信息*******
		protected void Page_Load(object sender, System.EventArgs e)
		{
			intPaperID=Convert.ToInt32(Request["PaperID"]);
			intUserScoreID=Convert.ToInt32(Request["UserScoreID"]);
			intRemMinute=Convert.ToInt32(Request["timeminute"]);
			intRemSecond=Convert.ToInt32(Request["timesecond"]);
			intRemTime=intRemMinute*60+intRemSecond;//作业渣滓功夫
			intTestNum=Convert.ToInt32(Request["irow"]);//当前试题

			intPassMark=Convert.ToInt32(Request["PassMark"]);
			intFillAutoGrade=Convert.ToInt32(Request["FillAutoGrade"]);
			intSeeResult=Convert.ToInt32(Request["SeeResult"]);
			intAutoJudge=Convert.ToInt32(Request["AutoJudge"]);
			if ((intPaperID!=0)&&(intUserScoreID!=0))
			{
				try
				{
					string strConn=ConfigurationSettings.AppSettings["strConn"];
					SqlConnection SqlConn=new SqlConnection(strConn);
					SqlCommand ObjCmd=new SqlCommand();
					SqlConn.Open();

					SqlDataAdapter SqlCmdTest=null;
					DataSet SqlDSTest=null;

					//SqlCmd=new SqlDataAdapter("select * from PaperInfo where PaperID="+intPaperID+" order by PaperID asc",SqlConn);
					//SqlDS=new DataSet();
					//SqlCmd.Fill(SqlDS,"PaperInfo");
					//if (SqlDS.Tables["PaperInfo"].Rows.Count==0)
					//{
					//	Response.Write("<script>alert('考试试卷纪录不存在,提交失败!')</script>");
					//	return;
					//}
					//else
					//{
					//	intPassMark=Convert.ToInt32(SqlDS.Tables["PaperInfo"].Rows[0]["PassMark"]);
					//	intFillAutoGrade=Convert.ToInt32(SqlDS.Tables["PaperInfo"].Rows[0]["FillAutoGrade"]);
					//	intSeeResult=Convert.ToInt32(SqlDS.Tables["PaperInfo"].Rows[0]["SeeResult"]);
					//	intAutoJudge=Convert.ToInt32(SqlDS.Tables["PaperInfo"].Rows[0]["AutoJudge"]);
					//}
					//
					//SqlCmd=new SqlDataAdapter("select * from UserScore where UserScoreID="+intUserScoreID+" order by UserScoreID asc",SqlConn);
					//SqlDS=new DataSet();
					//SqlCmd.Fill(SqlDS,"UserScore");
					//if (SqlDS.Tables["UserScore"].Rows.Count==0)
					//{
					//	Response.Write("<script>alert('答卷纪录不存在,提交失败!')</script>");
					//	return;
					//}

					StringBuilder BuilderRubricID=new StringBuilder();    //试题ID
					StringBuilder BuilderUserAnswer=new StringBuilder();  //答案
					StringBuilder BuilderUserScore=new StringBuilder();   //得分

					//统计所有试题得分
					SqlCmdTest=new SqlDataAdapter("select a.RubricID,a.TestMark,b.StandardAnswer,a.UserAnswer,d.BaseTestType from UserAnswer a,RubricInfo b,PaperTestType c,TestTypeInfo d where a.RubricID=b.RubricID and b.TestTypeID=c.TestTypeID and b.TestTypeID=d.TestTypeID and a.UserScoreID="+intUserScoreID+" and c.PaperID="+intPaperID+" order by c.PaperTestTypeID,a.TestOrder",SqlConn);
					SqlDSTest=new DataSet();
					SqlCmdTest.Fill(SqlDSTest,"UserAnswer");
					dblImpScore=0;dblSubScore=0;intTestAmount=SqlDSTest.Tables["UserAnswer"].Rows.Count;
					for(i=0;i<SqlDSTest.Tables["UserAnswer"].Rows.Count;i++)
					{
						dblUserScore=0;
						strRubricID=SqlDSTest.Tables["UserAnswer"].Rows[i]["RubricID"].ToString();
						if (i==(intTestNum-1))
						{
							strBaseTestType=Convert.ToString(Request["BaseTestType"+Convert.ToString(intTestNum)]);
							strUserAnswer=Convert.ToString(Request["Answer"+Convert.ToString(intTestNum)]);
						}
						else
						{
							strBaseTestType=SqlDSTest.Tables["UserAnswer"].Rows[i]["BaseTestType"].ToString();
							strUserAnswer=SqlDSTest.Tables["UserAnswer"].Rows[i]["UserAnswer"].ToString();
						}
						if (strUserAnswer==null)
						{
							strUserAnswer="";
						}
						if (strUserAnswer.Length>2000)
						{
							strUserAnswer=strUserAnswer.Substring(0,2000);
						}
						strUserAnswer=strUserAnswer.Replace("|","︱");
						switch(strBaseTestType)
						{
							case "单选类":
								strUserAnswer=strUserAnswer.Trim().Replace(",","");
								strUserAnswer=strUserAnswer.Trim().Replace(" ","");
								if (strUserAnswer.ToUpper()==SqlDSTest.Tables["UserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ","").ToUpper())
								{
									dblUserScore=Convert.ToDouble(SqlDSTest.Tables["UserAnswer"].Rows[i]["TestMark"]);
									dblImpScore=dblImpScore+dblUserScore;
								}
								break;
							case "多选类":
								strUserAnswer=strUserAnswer.Trim().Replace(",","");
								strUserAnswer=strUserAnswer.Trim().Replace(" ","");
								if (strUserAnswer.ToUpper()==SqlDSTest.Tables["UserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ","").ToUpper())
								{
									dblUserScore=Convert.ToDouble(SqlDSTest.Tables["UserAnswer"].Rows[i]["TestMark"]);
									dblImpScore=dblImpScore+dblUserScore;
								}
								break;
							case "判断类":
								strUserAnswer=strUserAnswer.Trim().Replace(",","");
								strUserAnswer=strUserAnswer.Trim().Replace(" ","");
								if (strUserAnswer.ToUpper()==SqlDSTest.Tables["UserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ","").ToUpper())
								{
									dblUserScore=Convert.ToDouble(SqlDSTest.Tables["UserAnswer"].Rows[i]["TestMark"]);
									dblImpScore=dblImpScore+dblUserScore;
								}
								break;
							case "填空类":
								strUserAnswer=strUserAnswer.Trim().Replace(" ","");
								if (intFillAutoGrade==1)
								{
									strArrUserAnswer=strUserAnswer.ToUpper().Split(',');
									strArrStandardAnswer=SqlDSTest.Tables["UserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ","").ToUpper().Split(',');
									for(int j=1;j<=Math.Min(strArrUserAnswer.Length,strArrStandardAnswer.Length);j++)
									{
										if (strArrUserAnswer[j-1]==strArrStandardAnswer[j-1])
										{
											dblUserScore=Convert.ToDouble(SqlDSTest.Tables["UserAnswer"].Rows[i]["TestMark"])*(1/Convert.ToDouble(Math.Min(strArrUserAnswer.Length,strArrStandardAnswer.Length)));
										}
									}
									dblSubScore=dblSubScore+dblUserScore;
								}
								break;
							case "问答类":
								break;
							case "作文类":
								break;
							case "打字类":
								strArrTypeStandardAnswer=SqlDSTest.Tables["UserAnswer"].Rows[i]["StandardAnswer"].ToString().Split(',');
								if (strUserAnswer.ToString().IndexOf(",")>=0)
								{
									strArrTypeUserAnswer=strUserAnswer.Trim().Split(',');
								}
								else
								{
									strArrTypeUserAnswer="0,0".Split(',');
								}
								dblUserScore=System.Math.Round(Convert.ToDouble(SqlDSTest.Tables["UserAnswer"].Rows[i]["TestMark"])*System.Math.Min(1,Convert.ToDouble(strArrTypeUserAnswer[0])/Convert.ToDouble(strArrTypeStandardAnswer[1]))*(Convert.ToDouble(strArrTypeUserAnswer[1])/100),1);
								dblImpScore=dblImpScore+dblUserScore;
								break;
							case "操作类":
								break;
						}
						//更新答案、得分
						//ObjCmd.CommandText="Update UserAnswer set UserAnswer='"+ObjFun.getStr(strUserAnswer,2000)+"',UserScore="+dblUserScore+" where UserScoreID="+intUserScoreID+" and TestOrder="+SqlDSTest.Tables["UserAnswer"].Rows[i]["TestOrder"]+"";
						//ObjCmd.ExecuteNonQuery();
						BuilderRubricID.Append(strRubricID+"|");
						BuilderUserAnswer.Append(strUserAnswer+"|");
						BuilderUserScore.Append(dblUserScore.ToString()+"|");
					}
					//更新答案、得分
					ObjCmd=new SqlCommand("UpdateUserAnswer",SqlConn);
					ObjCmd.CommandType=CommandType.StoredProcedure;//批示为存储过程
					ObjCmd.Parameters.Add("@RecordNumber",SqlDbType.Int,4);
					ObjCmd.Parameters["@RecordNumber"].Value=intTestAmount;
					ObjCmd.Parameters.Add("@UserScoreID",SqlDbType.Int,4);
					ObjCmd.Parameters["@UserScoreID"].Value=intUserScoreID;
					ObjCmd.Parameters.Add("@RubricID",SqlDbType.VarChar,8000);
					ObjCmd.Parameters["@RubricID"].Value=BuilderRubricID.ToString();
					ObjCmd.Parameters.Add("@UserAnswer",SqlDbType.VarChar,8000);
					ObjCmd.Parameters["@UserAnswer"].Value=BuilderUserAnswer.ToString();
					ObjCmd.Parameters.Add("@UserScore",SqlDbType.VarChar,8000);
					ObjCmd.Parameters["@UserScore"].Value=BuilderUserScore.ToString();
					ObjCmd.ExecuteNonQuery();//执行存储过程

					//总分
					if ((dblImpScore+dblSubScore)>=intPassMark)
					{
						intPassState=1;
					}
					//自动阅卷
					if (intAutoJudge==1)
					{
						intJudgeState=1;
						intJudgeUserID=Convert.ToInt32(ObjFun.GetValues("select UserID from UserInfo where LoginID='Admin'","UserID"));
					}
					//更新保留功夫、考试渣滓功夫、IP地址
					//ObjCmd.CommandText="Update UserScore set ExamState=1,EndTime=Getdate(),RemTime="+intRemTime+",LoginIP='"+Convert.ToString(Request.ServerVariables["Remote_Addr"])+"',JudgeState="+intJudgeState+",JudgeUserID="+intJudgeUserID+",ImpScore="+dblImpScore+",SubScore="+dblSubScore+",PassState="+intPassState+",TotalMark="+(dblImpScore+dblSubScore)+" where UserScoreID="+intUserScoreID+"";
					//ObjCmd.ExecuteNonQuery();
					ObjCmd=new SqlCommand("SubmitUserScore",SqlConn);
					ObjCmd.CommandType=CommandType.StoredProcedure;//批示为存储过程
					ObjCmd.Parameters.Add("@ExamState",SqlDbType.Int,4);
					ObjCmd.Parameters["@ExamState"].Value=1;
					ObjCmd.Parameters.Add("@RemTime",SqlDbType.Int,4);
					ObjCmd.Parameters["@RemTime"].Value=intRemTime;
					ObjCmd.Parameters.Add("@LoginIP",SqlDbType.VarChar,20);
					ObjCmd.Parameters["@LoginIP"].Value=Convert.ToString(Request.ServerVariables["Remote_Addr"]);
					ObjCmd.Parameters.Add("@JudgeState",SqlDbType.Int,4);
					ObjCmd.Parameters["@JudgeState"].Value=intJudgeState;
					ObjCmd.Parameters.Add("@JudgeUserID",SqlDbType.Int,4);
					ObjCmd.Parameters["@JudgeUserID"].Value=intJudgeUserID;
					ObjCmd.Parameters.Add("@ImpScore",SqlDbType.Float);
					ObjCmd.Parameters["@ImpScore"].Value=dblImpScore;
					ObjCmd.Parameters.Add("@SubScore",SqlDbType.Float);
					ObjCmd.Parameters["@SubScore"].Value=dblSubScore;
					ObjCmd.Parameters.Add("@PassState",SqlDbType.Int,4);
					ObjCmd.Parameters["@PassState"].Value=intPassState;
					ObjCmd.Parameters.Add("@TotalMark",SqlDbType.Float);
					ObjCmd.Parameters["@TotalMark"].Value=System.Math.Round(dblImpScore+dblSubScore,1);
					ObjCmd.Parameters.Add("@UserScoreID",SqlDbType.Int,4);
					ObjCmd.Parameters["@UserScoreID"].Value=intUserScoreID;
					ObjCmd.ExecuteNonQuery();//执行存储过程 

					SqlConn.Close();
					SqlConn.Dispose();

					if (intSeeResult==1)
					{
						strMsg="您自动评卷得分:"+Convert.ToString(System.Math.Round((dblImpScore+dblSubScore),1));
					}
					else
					{
						strMsg="您已经成功提交答卷!";
					}
					//显示信息
					strMessage=strMessage+"<form id='form1' method='post'>";
					strMessage=strMessage+"<table width='100%' border='0' height='100%'>";
					strMessage=strMessage+"<tr align='center'><td>";
					strMessage=strMessage+"<table border='1' bordercolorlight='#000000' bordercolordark='#FFFFFF' cellspacing='0' bgcolor='#99CCFF'>";
					strMessage=strMessage+"<tr><td><table border='0' bgcolor='#0033CC' cellspacing='0' cellpadding='2' width='700'>";
					strMessage=strMessage+"<tr><td style='font-size: 12pt; color: #FFFFFF' width='423'>□作业了局</td>";
					strMessage=strMessage+"</tr></table>";
					strMessage=strMessage+"<table border='0' width='700' cellpadding='4'>";
					strMessage=strMessage+"<tr>";
					strMessage=strMessage+"<td style='font-size: 36pt; color: black' align=center width='700' height=300><p style='line-height: 100%'><B>"+strMsg+"</B></td></tr><tr><td colspan='2' align='center' valign='top'>";
					strMessage=strMessage+"<input class='button' type='button' name='cancel'  value='实现作业' onclick='window.close()'>";
					if (intSeeResult==1)
					{
						strMessage=strMessage+"<input class='button' type='button' name='cancel'  value='查看答卷' onclick=javascript:{NewWin=window.open('ShowAnswer.aspx?UserScoreID="+intUserScoreID+"','ShowAnswer','titlebar=yes,menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=no,copyhistory=yes,top=0,left=0,width=screen.availWidth,height=screen.availHeight');NewWin.moveTo(0,0);NewWin.resizeTo(screen.availWidth,screen.availHeight);}>";
						strMessage=strMessage+"<input class='button' type='button' name='cancel'  value='答卷统计' onclick=javascript:{NewWin=window.open('ShowStatis.aspx?UserScoreID="+intUserScoreID+"','ShowStatis','titlebar=yes,menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=yes,resizable=no,copyhistory=yes,top=0,left=0,width=screen.availWidth,height=screen.availHeight');NewWin.moveTo(0,0);NewWin.resizeTo(screen.availWidth,screen.availHeight);}>";
					}
					strMessage=strMessage+"</td></tr></table></td></tr></table>";
					strMessage=strMessage+"</td></tr></table>";
					strMessage=strMessage+"</form>";
				}
				catch
				{
					//显示信息
					strMessage=strMessage+"<form id='form1' method='post' action='SubmJobAll.aspx'>";
					foreach(string item in Request.Form)
					{
						strMessage=strMessage+"<input type='hidden' name='"+item+"' value='"+Request.Form[item].ToString()+"'>";
					}
					strMessage=strMessage+"<table width='100%' border='0' height='100%'>";
					strMessage=strMessage+"<tr align='center'><td align='center'>";
					strMessage=strMessage+"<table border='1' bordercolorlight='#000000' bordercolordark='#FFFFFF' cellspacing='0' bgcolor='#99CCFF'>";
					strMessage=strMessage+"<tr><td><table border='0' bgcolor='#0033CC' cellspacing='0' cellpadding='2' width='350'>";
					strMessage=strMessage+"<tr><td style='font-size:12pt; color:#FFFFFF' width='360'>□提醒信息</td>";
					strMessage=strMessage+"</tr></table>";
					strMessage=strMessage+"<table border='0' width='350' cellpadding='4'>";
					strMessage=strMessage+"<tr><td width='59' align='center' valign='top'><img border='0' src='../images/Information.gif'></td>";
					strMessage=strMessage+"<td style='font-size: 12pt; color: black' width='269'>提交答卷失败,请治理员查抄数据库服务器或网络是否正常,正常后再试着提交一次。</td></tr><tr><td colspan='2' align='center' valign='top'>";
					strMessage=strMessage+"<input class='button' type='submit' name='ok' id='ok' value='沉新提交'>";
					strMessage=strMessage+"<input class='button' type='button' name='cancel'  value='关关窗口' onclick='window.close()'>";
					strMessage=strMessage+"</td></tr></table></td></tr></table>";
					strMessage=strMessage+"</td></tr></table>";
					strMessage=strMessage+"</form>";
				}
			}
		}
		#endregion

		#region Web 窗体设计器天生的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该挪用是 ASP.NET Web 窗体设计器所必须的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的步骤 - 不要使用代码编纂器批改
		/// 此步骤的内容。
		/// </summary>
		private void InitializeComponent()
		{    
		}
		#endregion
	}
}


#line default
#line hidden