基于ASPNET网络考试系统的设计与实现.docx

上传人:牧羊曲112 文档编号:3384979 上传时间:2023-03-12 格式:DOCX 页数:27 大小:44.16KB
返回 下载 相关 举报
基于ASPNET网络考试系统的设计与实现.docx_第1页
第1页 / 共27页
基于ASPNET网络考试系统的设计与实现.docx_第2页
第2页 / 共27页
基于ASPNET网络考试系统的设计与实现.docx_第3页
第3页 / 共27页
基于ASPNET网络考试系统的设计与实现.docx_第4页
第4页 / 共27页
基于ASPNET网络考试系统的设计与实现.docx_第5页
第5页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于ASPNET网络考试系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于ASPNET网络考试系统的设计与实现.docx(27页珍藏版)》请在三一办公上搜索。

1、基于ASPNET网络考试系统的设计与实现网络考试系统的设计与实现 摘要:随着网络技术的不断进步和信息的广泛普及,网络教学与考试系统已经遍布于Internet网络的每个角落。本文将编写一个完整的在线考试系统向用户展示系统的开发过程以及软件设计的思路与技巧。网络考试系统实现了在线考试平台,功能包括教师出题、添加试卷、自动阅卷、学生在线考试和添加用户等功能,该平台的有2种身份的用户:教师和学生,根据用户的身份不同,登录系统后进入不同的页面。 关键字:ASP.NET、网络考试系统、SQL Server 1. 引言 随着信息技术的飞速发展,以及向教育领域的逐步扩展,校园信息化建设的步伐日益加快。“利用信

2、息技术来推动教学改革”是当前学校教育改革的一条重要思想,是提高教学质量的具体措施,特别是随着各高校不断的扩大招生,教学资源的投入相对不足,这就对高校的教学工作和教学管理提出了新的要求。如何充分利用有限的资源,运用更加科学的管理方法和教学手段,提高工作效率,保证教学质量,提高办学效益,已成为各高校研究的一个重要课题。其中很重要的一个环节就是在线考试系统,同时,传统的考试方式已经不能适应职业学院学生自测的需要。本文按照软件工程的思想,对基于抽题式的在线考试系统进行了深入的研究,详细阐述了在线考试系统的体系结构,介绍了在线考试系统方案设计的步骤。 2. 系统设计与分析 2.1 需求分析 根据网络考试

3、系统的基本要求,本系统需要完成以下任务。 能够判断用户的身份,并根据身份的不同进入不同的页面。 能够实现在线添加试卷和试题的功能。 能够实现在线考试成绩。 能够实现查询考试分数的功能。 能够实现在线答题的功能。 能够实现添加用户的功能。 2.2 总体设计 网络考试系统分为教师模块和学生模块。教师模块包括了成绩列表、添加试卷和添加试题模块。学生考试模块包括成绩列表和在线考试模块。该系统的功能模块如图1所示。 2.3 功能设计 网络考试系统主要是实现试卷的添加、试题的添加、在线考试和成绩统计等功能。具体来说有: 系统登录 感觉用户身份的不同进入不同的页面,这里管理员、教师和学生登录后分别进入不同的

4、页面。 教师首页 教师首页为教师展示了所有的成绩信息,教师可以选择不同的科目查看学生的成绩,该页面还包括了添加试题模块的入口。 学生首页 包括了登录考生的所有分数以及所有准备考试的试卷,单击所要考试试卷相应的“进入考试”的链接就可进入到考试页面。 在线考试 学生单击“开始答题”按钮就可以显示试卷的内容,单击“交卷”就可以提交试题,此时试卷评阅功能已经完成,并进行记录。再次登记后可以看到本次考试的学生成绩。 添加试题和试卷 实现在线的添加试卷和试题的功能。 网络考试系统 登录 教师身份 学生身份 管理员身份 教师功能模块 学生功能模块 管理员功能模块 成绩查询 添加试卷 添加试卷 成绩查询 考试

5、 添加用户 图1 系统功能模块 3. 数据库设计与实现 3.1 数据库需求分析 网络考试系统的数据库功能主要体现在对各种信息的提供、保存、更新和查询操作上,包括用户信息、试卷信息、学生成绩信息和试题库信息,各部分的数据内容又有着内在的联系,针对该系统的数据特点,可以总结出如下的需求。 系统用户分为管理员、教师和学生。 用户信息记录用户的名称、密码和身份。 成绩信息记录了学生的成绩信息。 试卷信息记录了所有已经存在的试卷信息。 试题库信息记录了试卷的内容。 3.2 数据库概念结构设计 经过数据库的需求分析,就可以设计出满足需求的各种实体以及相互关系,再用实体-关系图,即E-R图将这些内容表达出来

6、。本系统的E-R图包括用户信息实体E-R图如图2.1所示,学生成绩信息实体E-R图如图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张表,分别是用户信息表、学生成绩信息表试卷信息表和试题库信息表。试题库信息表在系统中动态

7、创建。 用户信息表 用户信息表记录了用户的详细信息,结构如表1所示。 表1 用户信息表 列名 UserID UserName UserPwd UserType 数据类型 Int nvarchar nvarchar nvarchar 学生成绩信息表 学生成绩信息表记录了学生的成绩信息,结构如表2所示。 表2 学生成绩信息表 列名 ScoreID 数据类型 Int 长度 4 允许空 否 长度 4 16 12 50 允许空 否 否 否 否 StuName PaperName TotalScore StuScore TestTime nvarchar nvarchar int int Datetime

8、 16 50 4 4 8 否 否 否 否 否 试卷信息表 试卷信息表记录了试卷的主要信息,结构如表3所示。 表3试卷信息表 列名 PaperID PaperName PaperScore ScoreAuto ScoreTeacher Teacher TotalTime 试题库信息表 试题库信息表动态创建,记录了试卷中试题的信息,结构如表4所示。 表4 试题库信息表 列名 UserID UserName UserPwd UserType 数据类型 Int nvarchar nvarchar nvarchar 长度 4 16 12 50 允许空 否 否 否 否 数据类型 Int nvarchar

9、Int Int Int nvarchar nvarchar 长度 4 16 4 4 4 16 50 允许空 否 否 否 否 否 否 否 说明 默认值为0,开展用 默认值为0,开展用 4. 网络考试系统的设计与实现 4.1 登陆页面的设计与实现 登陆页面实现用户的身份认证。管理员用户进入用户添加页面,教师登录后进入教师首页,学生登录后进入学生的首页,页面效果如图3所示。 图3 登录页面 登录页面主要是使用TextBox输入控件来让用户输入登录信息。该模块主要实现验证用户身份的功能,因此主要响应用户提交输入信息的事件,即“登录系统”按钮的单击事件。用户登录页面后台支持类主要代码如下所示。代码中使用

10、Session对象记录了登录用户名,便于在以后 protected void Page_Load(object sender, EventArgs e) lblerr.Text = ; protected void btnlogin_Click(object sender, EventArgs e) if (tbxusername.Text != | tbxuserpwd.Text != ) /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建

11、数据库连接 SqlConnection objconn = new SqlConnection(settings); objconn.Open; /创建命令对象 SqlCommand objcmd = new SqlCommand(UserLogin, objconn); /设定命令类型为存储过程 objcmd.CommandType = CommandType.StoredProcedure; /添加参数 /用户名 SqlParameter paramUserName = new SqlParameter(UserName, SqlDbType.NVarChar, 16); paramUse

12、rName.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) Sessionusername = drUs

13、erName.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 lblerr.Text = 请输入正确的用户名和密

14、码; 4.2 添加用户页面 添加用户是管理员用户的功能,可以实现查看用户信息和添加用户的功能。添加用户页面主要使用了TextBox控件、DropDownList控件、RequiredFieldValidator控件、Button控件、Label控件和GridView控件。添加用户页面首先将用户信息列表绑定到GridView控件上,当管理员输入用户信息时需要单击“添加用户”按钮实现添加用户的功能。添加用户页面的效果图如图4所示。 图4 添加用户页面效果图 添加用户页面的后台关键代码如下所示。 protected void btnlogin_Click(object sender, EventAr

15、gs 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); /设定命令类型为

16、存储过程 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, 1

17、2); 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 = teacher) Re

18、sponse.Redirect(teachers.aspx); else if (usertype = system) Response.Redirect(admin_user.aspx); else lblerr.Text = 没有权限进入系统; else lblerr.Text = 请输入正确的用户名和密码; 4.3 教师功能首页 教师功能首页提供教师添加考试试卷和试题以及成绩统计分析的入口,并显示考试成绩列表。教师功能页面的首页效果图如图5所示。 图5 教师功能首页 教师功能首页的后台主要代码如下所示。 void Bind_PaperName /读取数据库连接字符串 string set

19、tings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); objconn.Open; String objsql = Select PaperName from Papers; SqlDataAdapter da = new SqlDataAdapter(objsql, objconn); /创建并填充DataSet DataSet ds = new DataSet; da.F

20、ill(ds, Papers); dplpapername.DataSource = ds; dplpapername.DataMember = Papers; dplpapername.DataTextField = PaperName; dplpapername.DataBind; objconn.Close; void Bind_Grid /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objc

21、onn = new SqlConnection(settings); SqlCommand objcmd = new SqlCommand(TScore, objconn); /设定命令类型 objcmd.CommandType = CommandType.StoredProcedure; /打开数据库连接 objconn.Open; SqlDataReader result = objcmd.ExecuteReader(CommandBehavior.CloseConnection); dgdscore.DataSource = result; dgdscore.DataBind; prot

22、ected void btnanalysis_Click(object sender, System.EventArgs e) Response.Redirect(score_analysis.aspx); protected void btnsearch_Click(object sender, System.EventArgs e) dgdscore.Visible = false; dgdpaper.Visible = true; /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionS

23、tringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); String papername = dplpapername.SelectedValue.ToString; SqlCommand objcmd = new SqlCommand(TScore1, objconn); /设定命令类型 objcmd.CommandType = CommandType.StoredProcedure; /打开数据库连接 objconn.Open; SqlParameter paramPaperName

24、 = new SqlParameter(PaperName, SqlDbType.NVarChar, 50); paramPaperName.Value = papername; objcmd.Parameters.Add(paramPaperName); SqlDataReader result = objcmd.ExecuteReader(CommandBehavior.CloseConnection); dgdpaper.DataSource = result; dgdpaper.DataBind; 4.4 添加试卷页面 添加试卷页面实现向数据库中添加一个新的以试卷名称命名的表,并提供向

25、该试卷添加试题的入口。添加试卷页面主要是以了TextBox控件、RequireFieldValidator控件、Label控件和Button控件,页面效果图如图6所示。 图6 添加试题页面效果图 添加试卷的后台关键代码如下所示。 protected void btnsave_Click(object sender, System.EventArgs e) try /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnec

26、tion objconn = new SqlConnection(settings); 连接 objconn.Open; /创建命令对象 SqlCommand objcmd = new SqlCommand(AddPaper, objconn); objcmd.CommandType = CommandType.StoredProcedure; /试卷名称 SqlParameter paramPaperName = new SqlParameter(PaperName, SqlDbType.NVarChar, 50); paramPaperName.Value = tbxpaper.Text;

27、 objcmd.Parameters.Add(paramPaperName); /试卷名称 SqlParameter paramPaperScore = new SqlParameter(PaperScore, SqlDbType.Int); paramPaperScore.Value = tbxscore.Text; objcmd.Parameters.Add(paramPaperScore); /试卷名称 SqlParameter paramTeacher = new SqlParameter(Teacher, SqlDbType.NVarChar, 16); /打开数据库 paramTe

28、acher.Value = Sessionusername; objcmd.Parameters.Add(paramTeacher); /试卷名称 SqlParameter paramTotalTime = new SqlParameter(TotalTime, SqlDbType.NVarChar, 50); paramTotalTime.Value = tbxtime.Text; objcmd.Parameters.Add(paramTotalTime); objcmd.ExecuteNonQuery; objconn.Close; /创建表 CreateTable; catch mess

29、age.Text = 数据库可能已经存在,请单击按钮后进行操作; void CreateTable /读取数据库连接字符串 string settings = Convert.ToString(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); objconn.Open; String papername = tbxpaper.Text; String objsql; objsql = Create Table + pa

30、pername; objsql = objsql + (QuestionID int Primary Key,; objsql = objsql + QuestionType nvarchar(50),; objsql = objsql + Question nvarchar(4000),; objsql = objsql + Answer nvarchar(4000),; objsql = objsql + Score int,; objsql = objsql + AutoFlag int Default 0); /创建命令对象 SqlCommand objcmd = new SqlCom

31、mand(objsql, objconn); objcmd.ExecuteNonQuery; objconn.Close; /打开数据库连接 4.5 添加试题页面 添加试题页面主要功能是将教师输入的试题内容添加到由Session“papername”对象传递过来的试卷表中。添加试题页面的效果图如图7所示。 图7 添加试题页面效果图 添加试题后台关键代码如下所示。 protected void btnsave_Click(object sender, System.EventArgs e) /获取问题的最大编号 /读取数据库连接字符串 string settings = Convert.ToSt

32、ring(ConfigurationManager.ConnectionStringsSqlServices); /创建数据库连接 SqlConnection objconn = new SqlConnection(settings); string getInsertID; string papername; papername = Sessionpapername.ToString; getInsertID = select Max(QuestionID) from ; getInsertID = getInsertID + papername; SqlCommand cmd0 = new

33、 SqlCommand(getInsertID, objconn); objconn.Open; SqlDataReader objdr = cmd0.ExecuteReader; objdr.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 =

34、 tbxquestion.Text.ToString; string qanswer = tbxanswer.Text.ToString; int qscore = Convert.ToInt32(tbxscore.Text); objsql = Insert into + papername; objsql = objsql + (QuestionID,QuestionType,Question,Answer,Score) values(; objsql = objsql + Varid + ,; objsql = objsql + qtype + ,; objsql = objsql +

35、+qcontent + ,; objsql = objsql + qanswer + ,; objsql = objsql + qscore + ); /Response.Write(objsql); /Response.End; objconn.Open; /创建命令对象 SqlCommand objcmd = new SqlCommand(objsql, objconn); /执行数据库操作 objcmd.ExecuteNonQuery; objconn.Close; 4.6学生首页面 学生首页为登录后的学生用户提供成绩查询以及查询所有考试试卷功能。学生首页采用DataGrid数据绑定控件来绑定学生成绩信息和试卷信息,设计好的页面如图8所示。 图8 学生首页效果图 DataGrid控件的HTML代码如下所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号