《基于ASP.NET网络考试系统的设计与实现(共19页).doc》由会员分享,可在线阅读,更多相关《基于ASP.NET网络考试系统的设计与实现(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上网络考试系统的设计与实现摘要:随着网络技术的不断进步和信息的广泛普及,网络教学与考试系统已经遍布于Internet网络的每个角落。本文将编写一个完整的在线考试系统向用户展示系统的开发过程以及软件设计的思路与技巧。网络考试系统实现了在线考试平台,功能包括教师出题、添加试卷、自动阅卷、学生在线考试和添加用户等功能,该平台的有2种身份的用户:教师和学生,根据用户的身份不同,登录系统后进入不同的页面。关键字:ASP.NET、网络考试系统、SQL Server1. 引言随着信息技术的飞速发展,以及向教育领域的逐步扩展,校园信息化建设的步伐日益加快。“利用信息技术来推动教学改革”
2、是当前学校教育改革的一条重要思想,是提高教学质量的具体措施,特别是随着各高校不断的扩大招生,教学资源的投入相对不足,这就对高校的教学工作和教学管理提出了新的要求。如何充分利用有限的资源,运用更加科学的管理方法和教学手段,提高工作效率,保证教学质量,提高办学效益,已成为各高校研究的一个重要课题。其中很重要的一个环节就是在线考试系统,同时,传统的考试方式已经不能适应职业学院学生自测的需要。本文按照软件工程的思想,对基于抽题式的在线考试系统进行了深入的研究,详细阐述了在线考试系统的体系结构,介绍了在线考试系统方案设计的步骤。2. 系统设计与分析2.1 需求分析根据网络考试系统的基本要求,本系统需要完
3、成以下任务。 能够判断用户的身份,并根据身份的不同进入不同的页面。 能够实现在线添加试卷和试题的功能。 能够实现在线考试成绩。 能够实现查询考试分数的功能。 能够实现在线答题的功能。 能够实现添加用户的功能。2.2 总体设计网络考试系统分为教师模块和学生模块。教师模块包括了成绩列表、添加试卷和添加试题模块。学生考试模块包括成绩列表和在线考试模块。该系统的功能模块如图1所示。2.3 功能设计网络考试系统主要是实现试卷的添加、试题的添加、在线考试和成绩统计等功能。具体来说有: 系统登录感觉用户身份的不同进入不同的页面,这里管理员、教师和学生登录后分别进入不同的页面。 教师首页 教师首页为教师展示了
4、所有的成绩信息,教师可以选择不同的科目查看学生的成绩,该页面还包括了添加试题模块的入口。 学生首页包括了登录考生的所有分数以及所有准备考试的试卷,单击所要考试试卷相应的“进入考试”的链接就可进入到考试页面。 在线考试学生单击“开始答题”按钮就可以显示试卷的内容,单击“交卷”就可以提交试题,此时试卷评阅功能已经完成,并进行记录。再次登记后可以看到本次考试的学生成绩。 添加试题和试卷实现在线的添加试卷和试题的功能。网络考试系统登录教师功能模块学生功能模块成绩查询添加试卷添加试卷成绩查询考试管理员功能模块添加用户教师身份学生身份管理员身份图1 系统功能模块3. 数据库设计与实现3.1 数据库需求分析
5、网络考试系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、试卷信息、学生成绩信息和试题库信息,各部分的数据内容又有着内在的联系,针对该系统的数据特点,可以总结出如下的需求。 系统用户分为管理员、教师和学生。 用户信息记录用户的名称、密码和身份。 成绩信息记录了学生的成绩信息。 试卷信息记录了所有已经存在的试卷信息。 试题库信息记录了试卷的内容。3.2 数据库概念结构设计经过数据库的需求分析,就可以设计出满足需求的各种实体以及相互关系,再用实体-关系图,即E-R图将这些内容表达出来。本系统的E-R图包括用户信息实体E-R图如图2.1所示,学生成绩信息实体E-R图如
6、图2.2所示,试卷信息实体E-R图如图2.3所示,试题库信息实体E-R图如图2.4所示。用户编号用户名密码身份图2.1 用户信息实体E-R图学生成绩编号学生姓名试卷名称成绩图2.2 学生成绩信息实体E-R图试卷编号名称总分考试时间图2.3 试卷信息实体E-R图试题库编号试卷名称试卷分数类型图2.4 试题库信息实体E-R图3.3 数据库的逻辑设计网络考试系统数据库TMS包括4张表,分别是用户信息表、学生成绩信息表试卷信息表和试题库信息表。试题库信息表在系统中动态创建。 用户信息表用户信息表(Users)记录了用户的详细信息,结构如表1所示。表1 用户信息表列名数据类型长度允许空UserIDInt
7、4否UserNamenvarchar16否UserPwdnvarchar12否UserTypenvarchar50否 学生成绩信息表学生成绩信息表(Scores)记录了学生的成绩信息,结构如表2所示。表2 学生成绩信息表列名数据类型长度允许空ScoreIDInt4否StuNamenvarchar16否PaperNamenvarchar50否TotalScoreint4否StuScoreint4否TestTimeDatetime8否 试卷信息表试卷信息表(Papers)记录了试卷的主要信息,结构如表3所示。表3试卷信息表列名数据类型长度允许空说明PaperIDInt4否PaperNamenvar
8、char16否PaperScoreInt4否默认值为0,开展用ScoreAutoInt4否默认值为0,开展用ScoreTeacherInt4否Teachernvarchar16否TotalTimenvarchar50否 试题库信息表试题库信息表动态创建,记录了试卷中试题的信息,结构如表4所示。 表4 试题库信息表列名数据类型长度允许空UserIDInt4否UserNamenvarchar16否UserPwdnvarchar12否UserTypenvarchar50否4. 网络考试系统的设计与实现4.1 登陆页面的设计与实现登陆页面实现用户的身份认证。管理员用户进入用户添加页面,教师登录后进入教
9、师首页,学生登录后进入学生的首页,页面效果如图3所示。图3 登录页面登录页面主要是使用TextBox输入控件来让用户输入登录信息。该模块主要实现验证用户身份的功能,因此主要响应用户提交输入信息的事件,即“登录系统”按钮的单击事件。用户登录页面后台支持类(default.aspx.cs)主要代码如下所示。代码中使用Session对象记录了登录用户名,便于在以后protected void Page_Load(object sender, EventArgs e) lblerr.Text = ; protected void btnlogin_Click(object sender, EventA
10、rgs e) if (tbxusername.Text != | tbxuserpwd.Text != ) /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); objconn.Open(); /创建命令对象 SqlCommand objcmd = new SqlCommand(UserLogin, objconn); /设定命令
11、类型为存储过程 objcmd.CommandType = CommandType.StoredProcedure; /添加参数 /用户名 SqlParameter paramUserName = new SqlParameter(UserName, SqlDbType.NVarChar, 16); paramUserName.Value = tbxusername.Text; objcmd.Parameters.Add(paramUserName); SqlParameter paramUserPwd = new SqlParameter(UserPwd, SqlDbType.NVarChar
12、, 12); paramUserPwd.Value = tbxuserpwd.Text; objcmd.Parameters.Add(paramUserPwd); SqlDataReader dr = objcmd.ExecuteReader(); if (dr.Read() Sessionusername = drUserName.ToString(); string usertype = drUserType.ToString(); if (usertype = student) Response.Redirect(students.aspx); else if (usertype = t
13、eacher) Response.Redirect(teachers.aspx); else if (usertype = system) Response.Redirect(admin_user.aspx); else lblerr.Text = 没有权限进入系统; else lblerr.Text = 请输入正确的用户名和密码; 4.2 添加用户页面添加用户是管理员用户的功能,可以实现查看用户信息和添加用户的功能。添加用户页面主要使用了TextBox控件、DropDownList控件、RequiredFieldValidator控件、Button控件、Label控件和GridView控件。
14、添加用户页面首先将用户信息列表绑定到GridView控件上,当管理员输入用户信息时需要单击“添加用户”按钮实现添加用户的功能。添加用户页面的效果图如图4所示。图4 添加用户页面效果图添加用户页面的后台关键代码如下所示。protected void btnlogin_Click(object sender, EventArgs e) if (tbxusername.Text != | tbxuserpwd.Text != ) /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsS
15、qlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); objconn.Open(); /创建命令对象 SqlCommand objcmd = new SqlCommand(UserLogin, objconn); /设定命令类型为存储过程 objcmd.CommandType = CommandType.StoredProcedure; /添加参数 /用户名 SqlParameter paramUserName = new SqlParameter(UserName, SqlDbType.NVarC
16、har, 16); paramUserName.Value = tbxusername.Text; objcmd.Parameters.Add(paramUserName); SqlParameter paramUserPwd = new SqlParameter(UserPwd, SqlDbType.NVarChar, 12); paramUserPwd.Value = tbxuserpwd.Text; objcmd.Parameters.Add(paramUserPwd); SqlDataReader dr = objcmd.ExecuteReader(); if (dr.Read() S
17、essionusername = drUserName.ToString(); string usertype = drUserType.ToString(); if (usertype = student) Response.Redirect(students.aspx); else if (usertype = teacher) Response.Redirect(teachers.aspx); else if (usertype = system) Response.Redirect(admin_user.aspx); else lblerr.Text = 没有权限进入系统; else
18、lblerr.Text = 请输入正确的用户名和密码; 4.3 教师功能首页教师功能首页提供教师添加考试试卷和试题以及成绩统计分析的入口,并显示考试成绩列表。教师功能页面的首页效果图如图5所示。图5 教师功能首页教师功能首页的后台主要代码如下所示。void Bind_PaperName() /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(sett
19、ings); objconn.Open(); String objsql = Select PaperName from Papers; SqlDataAdapter da = new SqlDataAdapter(objsql, objconn); /创建并填充DataSet DataSet ds = new DataSet(); da.Fill(ds, Papers); dplpapername.DataSource = ds; dplpapername.DataMember = Papers; dplpapername.DataTextField = PaperName; dplpape
20、rname.DataBind(); objconn.Close(); void Bind_Grid() /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); SqlCommand objcmd = new SqlCommand(TScore, objconn); /设定命令类型 objcmd.CommandType = Comma
21、ndType.StoredProcedure; /打开数据库连接 objconn.Open(); SqlDataReader result = objcmd.ExecuteReader(CommandBehavior.CloseConnection); dgdscore.DataSource = result; dgdscore.DataBind(); protected void btnanalysis_Click(object sender, System.EventArgs e) Response.Redirect(score_analysis.aspx); protected void
22、 btnsearch_Click(object sender, System.EventArgs e) dgdscore.Visible = false; dgdpaper.Visible = true; /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); String papername = dplpapername.Sele
23、ctedValue.ToString(); SqlCommand objcmd = new SqlCommand(TScore1, objconn); /设定命令类型 objcmd.CommandType = CommandType.StoredProcedure; /打开数据库连接 objconn.Open(); SqlParameter paramPaperName = new SqlParameter(PaperName, SqlDbType.NVarChar, 50); paramPaperName.Value = papername; objcmd.Parameters.Add(pa
24、ramPaperName); SqlDataReader result = objcmd.ExecuteReader(CommandBehavior.CloseConnection); dgdpaper.DataSource = result; dgdpaper.DataBind(); 4.4 添加试卷页面添加试卷页面实现向数据库中添加一个新的以试卷名称命名的表,并提供向该试卷添加试题的入口。添加试卷页面主要是以了TextBox控件、RequireFieldValidator控件、Label控件和Button控件,页面效果图如图6所示。图6 添加试题页面效果图添加试卷的后台关键代码如下所示。p
25、rotected void btnsave_Click(object sender, System.EventArgs e) try /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings);/打开数据库连接 objconn.Open(); /创建命令对象 SqlCommand objcmd = new SqlCommand(AddPa
26、per, objconn); objcmd.CommandType = CommandType.StoredProcedure; /试卷名称 SqlParameter paramPaperName = new SqlParameter(PaperName, SqlDbType.NVarChar, 50); paramPaperName.Value = tbxpaper.Text; objcmd.Parameters.Add(paramPaperName); /试卷名称 SqlParameter paramPaperScore = new SqlParameter(PaperScore, Sql
27、DbType.Int); paramPaperScore.Value = tbxscore.Text; objcmd.Parameters.Add(paramPaperScore); /试卷名称 SqlParameter paramTeacher = new SqlParameter(Teacher, SqlDbType.NVarChar, 16); paramTeacher.Value = Sessionusername; objcmd.Parameters.Add(paramTeacher); /试卷名称 SqlParameter paramTotalTime = new SqlParam
28、eter(TotalTime, SqlDbType.NVarChar, 50); paramTotalTime.Value = tbxtime.Text; objcmd.Parameters.Add(paramTotalTime); objcmd.ExecuteNonQuery(); objconn.Close(); /创建表 CreateTable(); catch message.Text = 数据库可能已经存在,请单击【添加试题】按钮后进行操作; void CreateTable() /读取数据库连接字符串 string settings = Convert.ToString(Confi
29、gurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings);/打开数据库连接 objconn.Open(); String papername = tbxpaper.Text; String objsql; objsql = Create Table + papername; objsql = objsql + (QuestionID int Primary Key,; objsql = objsql + QuestionType nvar
30、char(50),; objsql = objsql + Question nvarchar(4000),; objsql = objsql + Answer nvarchar(4000),; objsql = objsql + Score int,; objsql = objsql + AutoFlag int Default 0); /创建命令对象 SqlCommand objcmd = new SqlCommand(objsql, objconn); objcmd.ExecuteNonQuery(); objconn.Close(); 4.5 添加试题页面添加试题页面主要功能是将教师输入
31、的试题内容添加到由Session“papername”对象传递过来的试卷表中。添加试题页面的效果图如图7所示。图7 添加试题页面效果图添加试题后台关键代码如下所示。protected void btnsave_Click(object sender, System.EventArgs e) /获取问题的最大编号 /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConn
32、ection(settings); string getInsertID; string papername; papername = Sessionpapername.ToString(); getInsertID = select Max(QuestionID) from ; getInsertID = getInsertID + papername; SqlCommand cmd0 = new SqlCommand(getInsertID, objconn); objconn.Open(); SqlDataReader objdr = cmd0.ExecuteReader(); objd
33、r.Read(); int Varid; if (objdr0.ToString() = ) Varid = 1; else Varid = Convert.ToInt32(objdr0.ToString() + 1; cmd0.Connection.Close(); string objsql; string qtype = dplqt.SelectedIndex.ToString(); string qcontent = tbxquestion.Text.ToString(); string qanswer = tbxanswer.Text.ToString(); int qscore =
34、 Convert.ToInt32(tbxscore.Text); objsql = Insert into + papername; objsql = objsql + (QuestionID,QuestionType,Question,Answer,Score) values(; objsql = objsql + Varid + ,; objsql = objsql + qtype + ,; objsql = objsql + +qcontent + ,; objsql = objsql + qanswer + ,; objsql = objsql + qscore + ); /Respo
35、nse.Write(objsql); /Response.End(); objconn.Open(); /创建命令对象 SqlCommand objcmd = new SqlCommand(objsql, objconn); /执行数据库操作 objcmd.ExecuteNonQuery(); objconn.Close(); 4.6学生首页面学生首页为登录后的学生用户提供成绩查询以及查询所有考试试卷功能。学生首页采用DataGrid数据绑定控件来绑定学生成绩信息和试卷信息,设计好的页面如图8所示。图8 学生首页效果图DataGrid控件的HTML代码如下所示。 asp:BoundColumn Data