基于ASPNET在线考试系统课程实训.doc

上传人:精*** 文档编号:837383 上传时间:2023-09-07 格式:DOC 页数:17 大小:3.23MB
下载 相关 举报
基于ASPNET在线考试系统课程实训.doc_第1页
第1页 / 共17页
基于ASPNET在线考试系统课程实训.doc_第2页
第2页 / 共17页
基于ASPNET在线考试系统课程实训.doc_第3页
第3页 / 共17页
基于ASPNET在线考试系统课程实训.doc_第4页
第4页 / 共17页
基于ASPNET在线考试系统课程实训.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、目录:1、设计题目12、背景与目的13、开发环境与开发工具14、主要功能15、数据库设计与实现16、系统的详细设计26.1、登陆页面26.2、考试页面46.3、评阅页面96.4、管理页面137、总结15ACM国际学院入学考试系统1、设计题目ACM国际学院入学考试系统。2、背景与目的ASP.NET Web课程设计是本学期的一本很重要的专业课,本次课程设计就是为了检测本学期对这本书的掌握情况。本次课程设计也将作为期末考评。“ACM国际学院入学考试系统”主要针对大一新生的入学考试。3、开发环境与开发工具网站开发环境:Microsoft Visual Studio 2008集成开发环境。网站开发语言:

2、C#。数据库:Microsoft SQL Server 2005数据库。开发环境运行平台:Windows Server 2008。测试软件:Windows Installer Explorer 9、360极速浏览器。4、主要功能主要实现了在线考试,在线阅卷,以及简单的登录功能、注册功能和基本的增删查改的功能。5、数据库设计数据库(ksxt)表:学生表(ksxt_student)教师表(ksxt_teacher)管理员表(ksxt_ad)题库表试卷表成绩表其他表:网站表,用来存储页面属性,如title6、系统的详细设计6.1、登陆页面登陆页面功能:用户输入账号密码并选择类型后点击登陆,若密码正确

3、,则跳转对应页面。本系统一个三种用户:学生,主要实现考试功能;教师,主要实现评阅试卷和查询学生成绩的功能;管理员,主要实现用户注册,用户管理和对试卷的更新,添加和删除功能。登陆页面特色:页面采用CSS+DIV布局,可实现登陆框的垂直水平居中,页面标题可以在数据库中修改。未采用MultiView控件,通过代码验证用户类型。核心代码:/布局 bodymargin: 0px; #bjtposition: absolute;width: 100%;height: 212px;top: 50%;margin-top: -106px;border: solid 0px red;background-col

4、or: #FFF;/背景条 #dlkposition: absolute; width: 500px; height: 200px; left: 50%; margin-left: -250px; border: 3px dashed #630; padding: 3px;/登录框protected void Page_Load(object sender, EventArgs e)this.MaintainScrollPositionOnPostBack = true;if (!IsPostBack)SqlConnection con = new SqlConnection();con.Co

5、nnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStringsloc.ToString();con.Open();SqlCommand com = new SqlCommand(select 内容 from 网站 where 元素=title, con);SqlDataReader dr = com.ExecuteReader();if (dr.Read()Sessionxt = Convert.ToString(dr内容).Replace(, );/给标题赋值Sessionbt = t.T

6、ext = Convert.ToString(dr内容);Label1.Text = Convert.ToString(dr内容).Replace(, );con.Close();t.Text = Convert.ToString(Sessionbt);/给标题赋值protected void denglu_Click(object sender, EventArgs e)/登陆按钮 string yhlxsv = yhlx.SelectedValue; SqlConnection con = new SqlConnection(); con.ConnectionString = System

7、.Web.Configuration.WebConfigurationManager.ConnectionStringsloc. ToString(); con.Open(); SqlCommand com = null; switch (yhlxsv)/验证用户类型,调用对应查询语句 case 学生: com = new SqlCommand(select 姓名 from ksxt_student where 学号= + yhzh.Text.Trim() + and 密码= + yhmm.Text.Trim() + , con); break; case 教师: com = new SqlC

8、ommand(select 姓名 from ksxt_teacher where 教号= + yhzh.Text.Trim() + and 密码= + yhmm.Text.Trim() + , con); break; case 管理员: com = new SqlCommand(select 姓名 from ksxt_ad where 管号= + yhzh.Text.Trim() + and 密码= + yhmm.Text.Trim() + , con); break; SqlDataReader dr = com.ExecuteReader(); if (dr.Read() Session

9、xm = dr姓名; Sessionlx = yhlxsv; Sessionxh = yhzh.Text.Trim(); switch (yhlxsv)/验证用户类型,跳转对应页面 case 学生: Response.Redirect(/ksxt/studentpages/kaoshi.aspx); break; case 教师: Response.Redirect(/ksxt/teacherpages/pingyue.aspx); break; case 管理员: Response.Redirect(/ksxt/adpages/guanli.aspx); break; else Page.R

10、egisterStartupScript(, alert(账号或密码错误!); con.Close();6.2、考试页面考试页面功能:学生用户进入页面,会显示用户“类型”、“姓名”和“时间”;当用户点击“开始考试”后会出现“题型”、“重置”、“交卷”按钮和通过“题库表”动态生成的试题,在动态生成的试题前会删除该用户上次的试卷,然后把新试题存入“试卷表”中,每题限时2分钟。点击“交卷”弹出话框,只有完全答题后点“是”才能把答案更新到“试卷表”的“学生答案”字段中。考试页面特色:页面采用CSS+DIV布局,可实现登陆框的垂直水平居中,页面标题可以在数据库中修改;随机出题,随机打乱选项;并对Wiza

11、rd控件重新编辑,可实现Wizard、View和RadioButtonList联动,有时间限制。核心代码:/背景条 /显示代码document.write() /日期容器 setInterval(labTime.innerText=new Date().toLocaleString(),1000)/每1000毫秒执行一次=0)minutes = Math.floor(maxtime/60);seconds = Math.floor(maxtime%60);msg = minutes+分+seconds+秒;document.alltimer.innerHTML=msg;if(maxtime =

12、 1*10) alert(注意,还有10秒,10秒后退出系统!);-maxtime;elseClearInterval(timer);alert(时间到,考试结束,将返回登陆页面!);location.href=/ksxt/index.aspx;timer = setInterval(CountDown(),1000);-protected void Page_Load(object sender, EventArgs e) this.MaintainScrollPositionOnPostBack = true; if (!IsPostBack) Page.RegisterStartupSc

13、ript(, alert(如果你已经考试过了,会清空原有记录!); xh = Convert.ToString(Sessionxh); Label1.Text = Convert.ToString(Sessionxm); if (Label1.Text.Trim() = )/如果没登陆,则Label1无值,页面会跳转首页 Response.Write(alert(请登录!);location.href=/ksxt/index.aspx;); Label2.Text = Convert.ToString(Sessionlx); Label3.Text = , + Convert.ToString

14、(Sessionxt); t.Text = Convert.ToString(Sessionbt);/给标题赋值protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) MultiView1.ActiveViewIndex = RadioButtonList1.SelectedIndex;/RadioButtonList与MultiView的联动protected void Button1_Click(object sender, EventArgs e)/开始考试按钮 Response.W

15、rite(alert(每道题限时30秒,超出后考试结束!);); SqlConnection con = new SqlConnection(); con.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStringsloc. ToString(); con.Open(); SqlCommand SC = new SqlCommand(delete from 试卷 where 学号 = + xh + , con);/删除该用户做的题SqlCommand XZT1 = new SqlCom

16、mand(insert into 试卷 select top 5 + xh + ,编号,类型,题目,选项1,选项2,选项3,选项4,答案,from 题库 where 类型 = 选择1order by newid(), con);/随机出选择题1,其他题略 int t1 = SC.ExecuteNonQuery(); if (t1 0 & t2 0 & t3 0 & t4 0 & t5 0) bh = new string18;/保存随机出题后的编号 Panel1.Visible = true;/显示一些控件 jiaojuan2.Visible = true; chongzhi.Visible

17、= true; MultiView1.ActiveViewIndex = RadioButtonList1.SelectedIndex = 0; SqlCommand XZT = new SqlCommand(select 编号,题目,选项1,选项2,选项3,选项4 from 试卷 where 学号 = + Convert.ToString(Sessionxh) + , con);/查询该生的试卷 SqlDataReader dr = XZT.ExecuteReader(); int i = 1; while (dr.Read() string xx = new string4; bhi -

18、1 = Convert.ToString(dr编号); switch (i)/从数据库读取的试卷给题目和选项赋值 case 1:/1-10为选择题 11-18为选择填空 XZTM1.Text = i.ToString() + 、 + dr题目.ToString(); for (int j = 0; j xx.Length; j+) xxj = dr选项 + (j + 1).ToString().ToString(); xzpx(xx);/随机打乱选项 for (int j = 0; j xx.Length; j+) XZXX1.Itemsj.Text = xxj; break; /省略,代码太

19、繁琐。因重命名了控件名,简化太麻烦。简化见后 case 18: JDTM3.Text = i.ToString() + 、 + dr题目.ToString(); break; i+; if (i = 0) Page.RegisterStartupScript(, alert(出题错误!); con.Close(); else Page.RegisterStartupScript(, alert(出题错误!);public void xzpx(string xx)/打乱选项方法 Random ra = new Random(); int sjs1 = ra.Next(0, 4); for (in

20、t i = 0; i 0 &/*略*/& T18 0) Response.Write(alert(提交成功!点击退出考试系统。);location.href=/ksxt/index.aspx; ); else Page.RegisterStartupScript(, alert(提交失败,请联系管理员!); con.Close(); catch (Exception ex)/出现未选择选项,会出现异常的解决 Page.RegisterStartupScript(, alert(提交失败,部分选择题未选择!); while (dr.Read()/简化 从数据库读取的试卷给题目和选项赋值 见考试系

21、统2 THi - 1 = Convert.ToString(dr题号); LXi - 1 = Convert.ToString(dr类型); Control La = FindControl(Label + (i + 10); if (La != null) Label Lab = (Label)La; Lab.Text = i.ToString() + 、 + dr题目.ToString(); if (i 11) Control Ra = FindControl(RadioButtonList + i); if (Ra != null) RadioButtonList Radio = (Ra

22、dioButtonList)Ra; for (int j = 0; j 4; j+) Radio.Itemsj.Text = dr选项 + (j + 1).ToString(); i+;public void shangchuan()/简化 点击交卷后调用的方法 见考试系统2 string daan = new string18; for (int i = 0; i daan.Length; i+) if (i 10) Control Ra = FindControl(RadioButtonList + (i + 1); if (Ra != null) RadioButtonList Radi

23、o = (RadioButtonList)Ra; if (Radio.SelectedIndex 0) Response.Write(alert(有未做的题!);); return; else daani = Radio.SelectedItem.Text; else Control Te = FindControl(TextBox + (i - 9); if (Te != null) TextBox Text = (TextBox)Te; if (Text.Text = ) Response.Write(alert(有未做的题!);); return; else daani = Text.T

24、ext; SqlConnection con = new SqlConnection(); con.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStringsSQL.ToString(); con.Open(); SqlCommand com = null; int x ; for (int i = 0; i daan.Length; i+) com = new SqlCommand(update 试卷 set 学生答案 = + daani + where 题号 = + THi +

25、and ID = + ID + and 类型 = + LXi + and 课程 = + KC + , con); x = com.ExecuteNonQuery(); if (x = 0) Response.Write(alert(提交失败!); return; con.Close(); Response.Write(alert(提交成功,点击返回登陆页面!);location.href=/ksxt/index.aspx;);6.3、评阅页面评阅页面功能:教师用户页面,主要是两个功能,评阅和查询。评阅,当用户点击评阅后,参加考试的所有学生的学号会出现在DropDownList中,选择学号后会弹

26、出该生的试卷,用户可对该生进行打分。当用户点击全部提交后会自动删除该生以前的打分平后添加新的分数。查询,当用户点击查询后,可查看单个学生的成绩,也可查看全部学生的成绩。评阅页面特点:页面标题可以在数据库中修改,选择题和填空题课可自动和手动进行判卷,采用Panel控件的Visible属性对页面控件进行影藏和现实,没有采用MultiView控件;在GridView空间中添加CheckBox和DropDownList进行打分,避免了手动输入的错误。核心代码:protected void Page_Load(object sender, EventArgs e) /略 和考试页面相同protected

27、 void xzxh_SelectedIndexChanged(object sender, EventArgs e)/点击前已从数据源控件获得以考学号 if (xzxh.SelectedIndex = 0) Label4.Text = null; Panel1.Visible = false; return; Label5.Text = null; Label6.Text = null; Label7.Text = null; Label8.Text = null; SqlConnection con = new SqlConnection(); con.ConnectionString =

28、 System.Web.Configuration.WebConfigurationManager.ConnectionStringsloc. ToString(); con.Open(); SqlCommand com = new SqlCommand(select 姓名 from ksxt_student where 学号= + xzxh.SelectedItem. Text + ,con); SqlDataReader dr = com.ExecuteReader(); if (dr.Read() Label4.Text = 学生姓名: + dr姓名.ToString(); con.Cl

29、ose(); if (xzgn.SelectedIndex = 0)/如果现在了阅卷功能 Panel1.Visible = true; else/如果是查询 SqlConnection con1 = new SqlConnection(); con1.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStringsloc. ToString(); con1.Open(); SqlCommand com1 = new SqlCommand(select 总分 from 成绩 where 学号

30、= + xzxh.SelectedItem. Text + , con1); SqlDataReader dr1 = com1.ExecuteReader(); if (dr1.Read() Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(一共得到 + dr1总分.ToString() + 分! );); Label8.Text = 总分: + dr1总分.ToString(); con1.Close(); protected void sdpdxzt_Click(object sender, EventArgs

31、e)/判断选择题分数 if (RadioButtonList1.SelectedIndex = 0)/自动打分 sumxzt = 0;/保存选择总数 SqlConnection con = new SqlConnection(); con.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStringsloc.ToString(); con.Open(); SqlCommand com = new SqlCommand(select 答案,学生答案 from 试卷 where 学号= +

32、xzxh. SelectedItem.Text + and (类型 =选择1 or 类型 = 选择2), con); SqlDataReader dr = com.ExecuteReader(); while (dr.Read() if (dr答案.ToString () = dr学生答案.ToString() sumxzt+; con.Close(); Label5.Text = 共对 + sumxzt + 个,共得 + sumxzt * 5 + 分!; else/手动打分 sumxzt = 0;/保存选择总数 int i = 0; foreach (GridViewRow dvr in GridView1.Rows) CheckBox chkSelect = (CheckBox)(dvr.FindContr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922