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

📄 frmexamscreen.cs

📁 本论文叙述了联机考试系统的现状以及C#语言的概况。重点介绍了联机考试系统的实现过程:包括系统分析、 系统调查、 数据流程分析、功能设计、 数据库设计、 系统物理配置方案、 系统实现、 系统测试和调试。
💻 CS
📖 第 1 页 / 共 2 页
字号:
				string caption = "确认提交试卷";
				MessageBoxButtons buttons = MessageBoxButtons.YesNo;
				DialogResult result;

				// Displays the MessageBox.

				result = MessageBox.Show(this, message, caption, buttons);

				if(result == DialogResult.No) return;
			}

			answer();
			currentAnswer();//所添加
			scoreval = CalculateScore();
			int intResult = 0;
			if (scoreval != 0)
				intResult = 100/questionCount*scoreval;
			Close();//所添加
			frmExamResult examres=new frmExamResult(scoreval,intResult);
		    DataAccess.SaveStudentScore (frmLogin.userid  ,frmExamSchedule.examcode,scoreval,intResult);

			examres.Show();
		}

		private void tmrExamTime_Tick(object sender, System.EventArgs e)
		{
			controltime = controltime - 1;  //add by dongping for control timer
			if (controltime%6==0)
			{
				time=time-1;
			}
			if(controltime==0)
			{
				this.tmrExamTime.Enabled =false;
				promptSumbit = false;
				btnSubmit_Click(sender,e);
			}
			
			this.lblTimeData.Text=time.ToString ();
			
		}


		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-25
		private void frmExamScreen_Load(object sender, System.EventArgs e)
		{
			searchValue=new string [4];
			
			
			duration = frmExamSchedule.durationtext;
			time     = Double.Parse(duration);
			controltime= time*6;//add by dongping convert minutes to 10seconds interval
			this.lblTimeData.Text=time.ToString ();

			//start loading questions

			Exam objExam=new Exam();

			searchValue[0]="";
			searchValue[1]="";
			searchValue[2]=frmExamSchedule.examcode;
			searchValue[3]="";

			dtExam = objExam.FetchExamDetails(searchValue);

			if (dtExam.Rows.Count == 0)
			{
				MessageBox.Show("数据丢失或不完整!");
				Close();
				return ;
			}


			string subject = dtExam.Rows[0]["SubjectCode"].ToString ();
		
			StudentTest objTest=new StudentTest();
			searchValue[0]=frmExamSchedule.examcode;
			searchValue[1]=subject;
			dtPaper = objTest.FetchPaper(searchValue);
			
			questionCount = dtPaper.Rows.Count;  //题目数目

			if (questionCount == 0)
			{
				MessageBox.Show("没有合适的题目数量");
				Close();
				return ;
			}

						//initialize an array for storing selected answers
			selectedanswers = new string[questionCount];  //放置选项
			//除去correctanswers  = new string[questionCount];
			
			//currentQNo = 1;改为
			currentQNo = 0;  //初始当前题目编号

			for(int index=0;index<questionCount;index++)
				this.cboQuestion.Items.Add((index+1).ToString ());

			this.cboQuestion.Text=(currentQNo+1).ToString();
			PopulateQuestions(0);	
			btnPrevious.Enabled = false;
			
		}
		
		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-26
		private void PopulateQuestions(int rowno)
		{
			//除去///if (currentQNo >1 && currentQNo <=questionCount)
			//除去//	CheckAnswers();
			
			dr = dtPaper.Rows[rowno];
			this.txtQuestion.Text=dr["Question"].ToString (); 
			this.radOptionA.Text =dr["OptionA"].ToString ();
			this.radOptionB.Text =dr["OptionB"].ToString ();
			this.radOptionC.Text =dr["OptionC"].ToString ();
			this.radOptionD.Text =dr["OptionD"].ToString ();
			//correctanswers[rowno] = dr["CorrectAns"].ToString();    
			this.lblQNo.Text = (currentQNo+1).ToString (); 
						
		}

		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-25
		private int CalculateScore()
		{
			int score = 0;
			//check for the answers
			for (int index = 0;index < questionCount; index++)
			{
				
				if(selectedanswers[index]!=null)			
				{
					//除去//if (correctanswers[index].Equals(selectedanswers[index]))
					string correctAnswer = dtPaper.Rows[index]["CorrectAns"].ToString(); //所添加
					if (selectedanswers[index] == correctAnswer) //所添加
						score=score+1;
				}
			}
			
			return score;
		}
		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-26
		private void btnPrevious_Click(object sender, System.EventArgs e)
		{
			if (!answer())  return;
			
			currentQNo--;
			
			enableButtons();

			PopulateQuestions(currentQNo);
			
			currentAnswer();
		}
		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-26
		private void btnNext_Click(object sender, System.EventArgs e)
		{
			if (!answer())  return;
			
			currentQNo++;

			enableButtons();
			
			PopulateQuestions(currentQNo);
					
			currentAnswer();
		}

		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-26
		private void cboQuestion_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			answer();
			
			currentQNo=Int32.Parse(this.cboQuestion.Text)-1;
			
			lblQNo.Text =(currentQNo+1).ToString (); 
			
			enableButtons();

			PopulateQuestions(currentQNo);
			
			currentAnswer();

		}
		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-26
		//除去
		/*private void frmExamScreen_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
		{
			//check for enablign disabling of buttons
			if (currentQNo==questionCount)
			{
				this.btnNext.Enabled =false; 
				if (!this.btnPrevious.Enabled)
					this.btnPrevious.Enabled =true; 
			}
			else if (currentQNo > 1)
			{
				if (!this.btnNext.Enabled)
					this.btnNext.Enabled =true; 
				if (!this.btnPrevious.Enabled)
					this.btnPrevious.Enabled =true; 
			}
			if(currentQNo==1)
			{
				this.btnPrevious.Enabled =false; 
				if (!this.btnNext.Enabled)
					this.btnNext.Enabled =true; 
			}

			if (currentQNo < questionCount)
			{
				if (!this.btnNext.Enabled)
					this.btnNext.Enabled =true; 
			}
			
		}*/

		
		/*private bool CheckAnswers()
		{
			//checking the answers
				
			if (this.radOptionA.Checked)
			{
				selectedanswers[currentQNo-1]="A";
				this.radOptionA.Checked=false;
			}

			else if (this.radOptionB.Checked)
			{
				selectedanswers[currentQNo-1]="B";
				this.radOptionB.Checked=false;
			}

			else if (this.radOptionC.Checked)
			{
				selectedanswers[currentQNo-1]="C";
				this.radOptionC.Checked=false;
			}

			else if (this.radOptionD.Checked)
			{
				selectedanswers[currentQNo-1]="D";
				this.radOptionD.Checked=false;
			}
			else
			{
				MessageBox.Show("请选择一项答案");
				return false;
			}
			return true;
		}*/
		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-25
		//所添加的CODES
		private bool answer()
		{
			//checking the answers
			if (this.radOptionA.Checked)
			{
				selectedanswers[currentQNo]="A";
			}

			else if (this.radOptionB.Checked)
			{
				selectedanswers[currentQNo]="B";
			}

			else if (this.radOptionC.Checked)
			{
				selectedanswers[currentQNo]="C";
			}

			else if (this.radOptionD.Checked)
			{
				selectedanswers[currentQNo]="D";
			}
			
			return true;
		}

		//修改情况:部门:ACCP产品开发培训部   修改人:王文  时间:2004-12-25
		/*private void GetLastAnswer()
		{
			//retrieve the last selected answer for this 
			//question if student had answered it previously
			int rowno = currentQNo;
			
			if (selectedanswers[rowno-1]!=null)
			{
				selected=selectedanswers[rowno-1];
				if(selected  == "A")
					this.radOptionA.Checked =true;
				else if(selected.Equals("B"))
					this.radOptionB.Checked=true;
				else if(selected.Equals("C"))
					this.radOptionC.Checked=true;
				else if(selected.Equals("D"))
					this.radOptionD.Checked=true;
			}	
		}*/
		//所添加的CODES
		private void currentAnswer()
		{
			if (selectedanswers[currentQNo]!=null)
			{
				selected=selectedanswers[currentQNo];
				switch(selected)
				{
					case "A":
						radOptionA.Checked =true;
						break;
					case "B":
						radOptionB.Checked=true;
						break;
					case "C":
						radOptionC.Checked=true;
						break;
					case "D":
						radOptionD.Checked=true;
						break;
				}
			}	
			else
			{
				noAnswer();
			}
		}

		void noAnswer()
		{
			radOptionA.Checked=false;
			radOptionB.Checked=false;
			radOptionC.Checked=false;
			radOptionD.Checked=false;
			selected = null;
		}
		void enableButtons()
		{
			btnNext.Enabled     = true;
			btnPrevious.Enabled = true;

			if (currentQNo == 0)
			{
				btnPrevious.Enabled = false;
			}
			else if (currentQNo == questionCount-1)
			{
				btnNext.Enabled = false;
			}
		}

		//以上为所添加的CODES

	private void btnHelp_Click(object sender, System.EventArgs e)
	{
		Help.ShowHelp(this,Environment.CurrentDirectory +@"\\OES_Help\OES_Help.chm");
	}

	private void btnReset_Click(object sender, System.EventArgs e)
	{
		for(int index=1;index<=questionCount;index++)
		this.selectedanswers[index]=null;
		scoreval=0;
	
	}
	}
}

⌨️ 快捷键说明

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