网上考试系统设计说明书.doc_第1页
网上考试系统设计说明书.doc_第2页
网上考试系统设计说明书.doc_第3页
网上考试系统设计说明书.doc_第4页
网上考试系统设计说明书.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在线考试系统网上考试系统总体详细设计说明书黄河水院信息工程系软件人才培训基地 软件1002班软件开发小组文档信息项目名称学生信息网上考试系统文档名称详细设计说明书存储位置版本作者/修改者日期描述V1.0王圣玺2011-5-15学生信息网上考试系统详细设计说明书1.引言1.1 编写目的学生信息网上考试系统详细设计是设计的第二个阶段,这个阶段的主要任务是在学生信息网上考试系统概要设计说明书的基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体的说,模块设计就是要为已经产生的学生信息网上考试各子系统设计详细的算法。但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言书写的程序。详细设计说明书是进行系统编码的依据,编写本文档的目的在于为程序员的编码提供详细的说明,使程序员能根据详细设计说明书进行正确的编码。本文档的读者对象为程序员,系统设计人员,测试人员以及参加评审的专家们。1.2 项目背景由于电脑时代的到来以及internet的迅速发展,电脑无出不在,各种工作效率也大幅提高,同时也对教育的发展形成新的推动力。远程教育成为现代教育技术未来发展的重要方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。与传统考试模式相比,网上考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。鉴此,开发一个好的网上考试系统势在必行。传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师信息出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。网上考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化维护,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、维护服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师信息的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。网上考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生信息进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。1.3参考资料 编号文档名称作者出版社01网上考试系统需求分析王圣玺02C#程序设计03sqlsever 数据库技术04软件分析建模与PowerDesigner白尚旺,党伟超等清华大学出版社1.4定义缩写、术语解 释概念模型数据库设计阶段的概念模型关系图等物理模型实际生成数据库的对象,包括表,主外键关系等SQL结构化查询语言Powerdesigner从概念模型设计到生成物理模型的工具MSS2008(Microsoft SQL Server2008)数据库设计平台MVS2008(Microsoft Visual Studio2008)程序设计语言Pk主键Fk外键SQLHelper数据库访问类2.总体设计2.1需求概述角色需求名称需求说明学生学生信息登录学生信息通过学号和密码进行登录修改密码学生信息在登录成功后进入相对应的操作界面修改自身密码学生信息考试学生信息登录系统后进入学生信息操作界面选择考试科目点击考试按钮进行考试查询成绩自己和班级对考试成绩的查询教师教师信息登录教师信息通过教师信息编号和密码进行登录修改密码教师信息在登录成功后进入相对应的操作界面修改自身密码查询成绩对所教课程所教班级进行成绩查询题库维护教师信息对所教课程的题库进行填充、修改、删除和查询教师信息选课教师信息选择所教的课程教师信息选班级教师信息选择所教的班级管理员登录管理员通过管理员编号和密码进行登录学生信息信息维护管理员对学生信息的信息进行增、删、改、查教师信息信息维护管理员对教师信息的信息进行增、删、改、查修改密码管理员在登录成功后进入相对应的操作界面修改密码课程信息维护管理员对课程信息进行增、删、改、查班级信息维护管理员对班级信息进行增、删、改、查2.2基本设计概念和处理流程本系统的基本设计概念是:以数据库、实体类、操作类、网页形成的层结构。2.3软件结构(软件系统结构图)2.3.1 学生信息考试系统功能模块学生信息首先进入登陆界面,系统判断登陆信息的正确性,若正确,则进入学生信息登录成功界面,可以查询基本信息,修改密码,可以选择考试,可以查询成绩包括个人和班级成绩。学生信息考试系统功能模块划分如下图:2.3.2 教师信息系统功能模块教师信息首先进入登陆界面,选择教师信息登陆的角色然后输入信息系统判断登陆信息的正确性,若正确,则进入学生信息登录成功界面,可以查询基本信息,修改密码,在管理员允许下对题库中题目的增加、删除、修改和对试卷生成规格的设定,对班级的增加、删除、修改以及对班级中课程的选择,还可以查询成绩,可以按科目查询班级成绩,按姓名查找个人成绩。未满足一定规定学生信息成绩的查询,和有些同学的补考成绩。教师信息系统功能模块划分如下图:2.3.3 管理员系统功能模块管理员系统功能模块划分如图: 2.3.4 题库模块题库维护功能模块划分如图:2.3.5 试卷结构模块 根据课程,各种题型的数量等方面对某份试卷提出一定的要求生成试卷规则。同时还可以对库中已有的试卷进行修改和删除,添加新试卷等试卷结构维护模块划分如图:3程序描述3.1数据库操作类SQLHelper类3.1.1 SQLHelper(class DBHelper)类图 SQLHelper类实现:public class SQLHelper public static int ExecuteNonQuery(string sqlsentence, params SqlParameter parameters) string connstr = ConfigurationManager.ConnectionStringsConnStr.ConnectionString; using (SqlConnection conn = new SqlConnection(connstr) conn.Open(); using (SqlCommand comd = conn.CreateCommand() comd.CommandText = sqlsentence; comd.Parameters.Clear(); foreach (SqlParameter parameter in parameters) comd.Parameters.Add(parameter); System.Threading.Thread.Sleep(1); return comd.ExecuteNonQuery(); public static Object ExecuteScalar(string sqlsentence, params SqlParameter parameters) string connstr = ConfigurationManager.ConnectionStringsConnStr.ConnectionString; using (SqlConnection conn = new SqlConnection(connstr) conn.Open(); using (SqlCommand comd = conn.CreateCommand() comd.CommandText = sqlsentence; comd.Parameters.Clear(); foreach (SqlParameter parameter in parameters) comd.Parameters.Add(parameter); return comd.ExecuteScalar(); public static DataTable ExecuteDataTable(string sqlsentence, params SqlParameter parameters) string connstr = ConfigurationManager.ConnectionStringsConnStr.ConnectionString; using (SqlConnection conn = new SqlConnection(connstr) conn.Open(); using (SqlCommand comd = conn.CreateCommand() comd.CommandText = sqlsentence; comd.Parameters.Clear(); foreach (SqlParameter parameter in parameters) comd.Parameters.Add(parameter); DataSet ds = new DataSet(); SqlDataAdapter adpter = new SqlDataAdapter(comd); adpter.Fill(ds); return ds.Tables0; public SqlDataReader ExecuteReader(string sqlsentence, params SqlParameter parameters) string connstr = ConfigurationManager.ConnectionStringsConnStr.ConnectionString; SqlConnection conn = new SqlConnection(connstr); conn.Open(); string abc = conn.State.ToString(); SqlCommand comd = conn.CreateCommand(); comd.CommandText = sqlsentence; comd.Parameters.Clear(); foreach (SqlParameter parameter in parameters) comd.Parameters.Add(parameter); SqlDataReader reader = comd.ExecuteReader(); return reader; 3.1.2 方法设计3.2登陆模块3.2.1登陆流程图3.2.2关联类图3.2.3方法设计登陆相关类方法设计说明该方法用于实现查找用户名和密码并返回purview。使用接口AccountService 算法:namespace DAL interface AccountService public bool verifyUsers(string userName,string password); public bool modifyPassword(string userName,string oldPsd,string newPsd); public bool verifyRoles(string userName,string password); 使用接口 InfoService算法:namespace DAL interface InfoService public bool add(Object obj); public bool modify(Object obj); public bool delete(string id); 继承自该接口的三个类TeacherService、StudentService、AdminSerice ;AdminService 类的设计:namespace DAL public class AdminService:AccountService,InfoService #region AccountService 成员 public bool verifyUsers(string userName, string password) throw new NotImplementedException(); public bool modifyPassword(string userName, string oldPsd, string newPsd) throw new NotImplementedException(); public bool verifyRoles(string userName, string password) throw new NotImplementedException(); #endregion #region InfoService 成员 public bool add(object obj) throw new NotImplementedException(); public bool modify(object obj) throw new NotImplementedException(); public bool delete(string id) throw new NotImplementedException(); #endregion StudentService 类的设计:namespace DAL public class StudentService:AccountService,InfoService / / get stuid by stuName ; / / / public string getStuId(string stuName) string stuId=; return stuId; / / get student classid by stuid; / / / public string getStuClassId(string stuId) string stuClass=; return stuClass; #region AccountService 成员 / / this method is verifyusers to login system; / / / / public bool verifyUsers(string userName, string password) return false; throw new NotImplementedException(); public bool modifyPassword(string userName, string oldPsd, string newPsd) throw new NotImplementedException(); public bool verifyRoles(string userName, string password) throw new NotImplementedException(); #endregion #region InfoService 成员 public bool add(object obj) throw new NotImplementedException(); public bool modify(object obj) throw new NotImplementedException(); public bool delete(string id) throw new NotImplementedException(); #endregion TeacherService类的设计:namespace DAL public class TeacherService:AccountService,InfoService #region AccountService 成员 public bool verifyUsers(string userName, string password) throw new NotImplementedException(); public bool modifyPassword(string userName, string oldPsd, string newPsd) throw new NotImplementedException(); public bool verifyRoles(string userName, string password) throw new NotImplementedException(); #endregion #region InfoService 成员 public bool add(object obj) throw new NotImplementedException(); public bool modify(object obj) throw new NotImplementedException(); public bool delete(string id) throw new NotImplementedException(); #endregion 本程序通过访问连接类SQLHelper、admin(studentTeacher)、LoginDAO和RolDAO类实现对数据库中admin(studentTeacher)表信息的检索。功能根据返回的权限purview来登陆不同职务的页面,实现分支操作。输入输出项Method Summarypublic int public bool verifyUsers(string userName, string password) throw new NotImplementedException(); 输入:名称标识数据类型和格式数据值的有效范围输入的方式管理员(教师信息、学生信息)编号Adminid(stuidteachid)string密码passwordString输出:名称标识数据类型和格式数据值的有效范围输出的方式用户权限rolePurviewstring流程逻辑: 图1 系统登录程序流程图 图2获得权限程序流程图算法:1.根据输入的用户id和password查找用户权限:创建公共查找用户类3.3管理员模块3.3.1管理员模块简单程序模块图3.3.2班级维护班级类图方法设计.1增加班级方法方法的设计说明public boolean addClass (classes cs)该方法用于实现班级的增加。程序描述本方法通过访问连接类SQLHelper和class类实现对数据库中class表中记录的增加,是非常驻内存的。功能该程序通过传递的记录的主键对数据库中class表进行增加记录。输入项classid:班级编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式班级对象classClass对象输出项名称标识数据类型和格式数据值的有效范围输出的方式增加是否成功的状态insertclassboolean算法实现: public static bool addClass(Classes class) .2删除指定班级方法方法的设计说明public boolean del (String classid)该方法用于实现指定班级信息的删除。程序描述本方法通过访问连接类SQLHelper和class类实现对数据库中class表中符合条件的班级记录进行删除,是非常驻内存的。功能该程序通过传递的记录的主键的值删除符合条件的记录。输入项classid:班级编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式班级对象classClass输出项名称标识数据类型和格式数据值的有效范围输出的方式删除是否成功的状态deleterateboolean算法 public bool deleteClass (String classid) /删除班级表中记录 流程逻辑顺序结构。注释设计在本程序中安排的注释,如:加在模块首部的注释:角色信息的分页查询;对各变量的功能、范围、缺省条件等加注释;.3修改(更新)指定班级方法的设计说明public boolean updateClass (Classes class)该方法用于指定班级信息的修改。1. 程序描述本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行修改,是非常驻内存的。2 功能该程序修改相关记录的信息,主键不能修改。3 输人项class:班级对象,class类型名称标识数据类型和格式数据值的有效范围输入的方式班级对象classclass4 输出项名称标识数据类型和格式数据值的有效范围输出的方式修改是否成功的状态updateClassboolean5 流程逻辑顺序结构。6 注释设计在本程序中安排的注释,如:对各变量的功能、范围、缺省条件等加注释;.4查询指定班级方法的设计说明public string selectClass (string classid)该方法用于指定班级信息的获取。1. 程序描述本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行查询,是非常驻内存的。2 功能该程序查询相关记录的信息。3 输人项Classid:班级编号,string类型名称标识数据类型和格式数据值的有效范围输入的方式班级对象ClassidString4 输出项名称标识数据类型和格式数据值的有效范围输出的方式若该班级存在ClassClass对象若该班级不存在输出错误信息5 方法public static bool getclass(string classid).5查询所有班级方法的设计说明3.3.3学生信息维护关系类图方法设计.1查询学生信息1. 方法的设计说明public string selectstu (String stuid)该方法用于实现指定学生信息信息的获取。2. 输人项Classid:班级编号,string类型名称标识数据类型和格式数据值的有效范围输入的方式学号stuidString3. 输出项名称标识数据类型和格式数据值的有效范围输出的方式若该学生信息存在StudentStudent对象若该学生信息不存在输出错误信息.2删除学生信息方法1. 方法的设计说明public boolean deletestu (String stuid)该方法用于实现指定学生信息信息的删除。2. 程序描述本方法通过访问连接类SQLHelper和student类实现对数据库中student表中符合条件的班级记录进行删除,是非常驻内存的。3. 功能该程序通过传递的记录的主键的值删除符合条件的记录。4. 输入项stuid:学生信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式学生信息编号StuidString5. 输出项名称标识数据类型和格式数据值的有效范围输出的方式删除是否成功的状态Deletestuboolean6. 流程逻辑顺序结构。7. 注释设计在本程序中安排的注释,如:对各变量的功能、范围、缺省条件等加注释;3.3.4教师信息维护关系类图方法设计.1删除教师信息方法1 方法的设计说明public boolean deletetea (String teaid)该方法用于实现指定教师信息信息的删除。2 程序描述本方法通过访问连接类SQLHelper和taecherDAO类实现对数据库中Teacher表中符合条件的教师信息记录进行删除,是非常驻内存的。3 功能该程序通过传递的记录的主键的值删除符合条件的记录。4 输入项Teacherid:教师信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式教师信息编号Teacheridstring5 输出项名称标识数据类型和格式数据值的有效范围输出的方式删除是否成功的状态deleteteaboolean6 流程逻辑顺序结构。7 注释设计在本程序中安排的注释,如:对各变量的功能、范围、缺省条件等加注释;.2修改教师信息方法的设计说明public boolean modify (Teacher te)该方法用于指定班级信息的修改。1 程序描述本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行修改,是非常驻内存的。2 功能该程序修改相关记录的信息,主键不能修改。3 输人项class:班级对象,class类型名称标识数据类型和格式数据值的有效范围输入的方式班级对象classclass4 输出项名称标识数据类型和格式数据值的有效范围输出的方式修改是否成功的状态updateClassboolean5 方法public static bool modifycher(Teacher te,string teachid)6 流程逻辑顺序结构. 7 注释设计在本程序中安排的注释,如:加在模块首部的注释:角色信息的分页查询;对各变量的功能、范围、缺省条件等加注释;查询所有教师信息方法的设计说明public static IList CheckTeacher() .3查询教师信息方法的设计说明 public static Teacher getTeacher(string teachid) 3.4学生信息模块3.4.1学生信息登录考试时序图3.4.2学生信息网上考试类图3.4.3方法设计 getclassid(string stuid)方法设计 方法的设计说明public string getclassid(string stuid)通过该学生信息学号获得所在班级编号。程序描述本方法通过访问连接类SQLHelper和class类实现对数据库中class表中符合条件的科目记录进行查询显示,是非常驻内存的。功能该程序通过传递的记录的主键的值查询符合条件的记录。输入项stuid:学生信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式学生信息编号Stuidstring输出项名称标识数据类型和格式数据值的有效范围输出的方式班级编号ClassidString算法注:流程逻辑顺序结构。 getSelectivecourse(string classid)方法设计方法的设计说明public string getSelectCourse(string classid)该方法是通过班级编号获得选课编号。程序描述本方法通过访问连接类SQLHelper和eselectcourse类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是非常驻内存的。功能该程序通过传递的记录的主键的值查询符合条件的记录。输入项calssid:学生信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式班级编号classidstring输出项名称标识数据类型和格式数据值的有效范围输出的方式选课编号SelectCourseString算法 /通过班级得到选课程编号 public static int GetselectBycourseid(string classid) 流程逻辑。getcourseid(string classid)方法设计方法的设计说明public DataTable getSelectCourse(string classid)该方法用于实现考试科目信息的查询。通过该班级编号获得课程编号。程序描述本方法通过访问连接类SQLHelper和course和slectivecourse类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是常驻内存的。功能该程序通过传递的记录的主键的值查询符合条件的记录。输入项calssid:学生信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式班级编号classidstring输出项名称标识数据类型和格式数据值的有效范围输出的方式课程编号courseidString算法public DataTable getcourseid (string classid) /通过班级得到课程编号 流程逻辑.selectcourse(string courseid) 方法设计方法的设计说明public string selectcourse(string courseid)通过课程编号得到课程名字。程序描述本方法通过访问连接类SQLHelper和testDAO和course类实现对数据库中course表中符合条件的科目记录进行查询显示,是非常驻内存的。功能该程序通过传递的记录的主键的值查询符合条件的记录。输入项courseid:学生信息编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式课程编号courseidstring输出项名称标识数据类型和格式数据值的有效范围输出的方式科目cNameString算法/通过课程编号得到课程名称 public static course Getcourseid(string cname) 流程逻辑. TestConstitue(string SelectCourse)方法设计方法的设计说明public DataSet TestConstitue(string SelectCourse)该方法用于实现考试科目试卷结构信息的查询。程序描述本方法通过访问连接类SQLHelper和CourseService类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是常驻内存的。功能该程序通过传递的记录的主键的值查询符合条件的记录。输入项SelectCourse:选课编号,String类型名称标识数据类型和格式数据值的有效范围输入的方式选课编号SelectCoursestring输出项名称标识数据类型和格式数据值的有效范围输出的方式结构信息TestConstituesTestConstitues对象对象算法public static TestConstitues GetTestConstituesById(int id)注: public SqlDataReader ExecuteReader(strin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论