您的当前位置:首页正文

网上考试系统设计说明书

来源:画鸵萌宠网
网上考试系统

网上考试系统

黄河水院总 体 详 细 设 计 说 明 书

黄河水院信息工程系软件人才培训基地 软件1002班软件开发小组 第 1 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

文档信息 项目名称 文档名称 存储位置 版本 V1.0

作者/修改者 王圣玺 日期 2011-5-15 描述 学生信息网上考试系统 详细设计说明书 学生信息网上考试系统 详细设计说明书 1.引言

1.1 编写目的

学生信息网上考试系统详细设计是设计的第二个阶段,这个阶段的主要任务是在学生信息网上考试系统概要设计说明书的基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。 概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体的说,模块设计就是要为已经产生的学生信息网上考试各子系统设计详细的算法。但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言书写的程序。

详细设计说明书是进行系统编码的依据,编写本文档的目的在于为程序员的编码提供详细的说明,使程序员能根据详细设计说明书进行正确的编码。本文档的读者对象为程序员,系统设计人员,测试人员以及参加评审的专家们。

第 2 页 共 38 页

网上考试系统

1.2 项目背景

由于电脑时代的到来以及internet的迅速发展,电脑无出不在,各种工作效率也大幅提高,同时也对教育的发展形成新的推动力。远程教育成为现代教育技术未来发展的重要方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。与传统考试模式相比,网上考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。鉴此,开发一个好的网上考试系统势在必行。

传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师信息出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。网上考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化维护,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、维护服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师信息的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。网上考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生信息进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。

1.3参考资料

编号 01 02 03 04

文档名称 《网上考试系统需求分析》 《C#程序设计》 《sqlsever 数据库技术》 《软件分析建模与PowerDesigner》 作者 王圣玺 白尚旺,党伟超等 出版社 清华大学出版社 1.4定义

缩写、术语 概念模型 物理模型 SQL Powerdesigner 解 释 数据库设计阶段的概念模型关系图等 实际生成数据库的对象,包括表,主外键关系等 结构化查询语言 从概念模型设计到生成物理模型的工具 黄河水院 第 3 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

MSS2008 MVS2008 Pk Fk SQLHelper

(Microsoft SQL Server2008)数据库设计平台 (Microsoft Visual Studio2008)程序设计语言 主键 外键 数据库访问类 2.总体设计

2.1需求概述

角色 学 生

教 师

需求名称 学生信息登录

修改密码

学生信息考试

查询成绩 教师信息登录

修改密码

需求说明

学生信息通过学号和密码进行登录

学生信息在登录成功后进入相对应的操作界面修改自身密码

学生信息登录系统后进入学生信息操作界面选择考试科目点击考试按钮进行考试

自己和班级对考试成绩的查询

教师信息通过教师信息编号和密码进行登录

教师信息在登录成功后进入相对应的操作界面修改自身密码

第 4 页 共 38 页

网上考试系统

查询成绩

题库维护

教师信息选课 教师信息选班级

管 理 员

登录

学生信息信息维护

教师信息信息维护

修改密码

课程信息维护

班级信息维护

对所教课程所教班级进行成绩查询

教师信息对所教课程的题库进行填充、修改、删除和查询 教师信息选择所教的课程 教师信息选择所教的班级

管理员通过管理员编号和密码进行登录 管理员对学生信息的信息进行增、删、改、查 管理员对教师信息的信息进行增、删、改、查 管理员在登录成功后进入相对应的操作界面修改密码 管理员对课程信息进行增、删、改、查 管理员对班级信息进行增、删、改、查

2.2基本设计概念和处理流程

本系统的基本设计概念是:以数据库、实体类、操作类、网页形成的4层结构。

webIE页面操作类实体库操作类数据库 2.3软件结构(软件系统结构图) 2.3.1 学生信息考试系统功能模块

学生信息首先进入登陆界面,系统判断登陆信息的正确性,若正确,则进入学生信息登录成功界面,可以查询基本信息,修改密码,可以选择考试,可以查询成绩包括个人和班级成绩。

学生信息考试系统功能模块划分如下图:

黄河水院 第 5 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

学生退出系统参加考试登陆系统查看成绩考试系统主界面选择考试科目开始考试第几次考试是否不及格生成试卷 2.3.2 教师信息系统功能模块

教师信息首先进入登陆界面,选择教师信息登陆的角色然后输入信息系统判断登陆信息的正确性,若正确,则进入学生信息登录成功界面,可以查询基本信息,修改密码,在管理员允许下对题库中题目的增加、删除、修改和对试卷生成规格的设定,对班级的增加、删除、修改以及对班级中课程的选择,还可以查询成绩,可以按科目查询班级成绩,按姓名查找个人成绩。未满足一定规定学生信息成绩的查询,和有些同学的补考成绩。

教师信息系统功能模块划分如下图:

第 6 页 共 38 页

网上考试系统

教师子系统登陆查询基本信息对题库的管理选课选班级学生成绩查询修改自身部分信息对试卷的管理退出系统选择题判断题答案按班级查询查找答案按学号查询按名次查询不及格查询按科目查询增删改查修改试卷结构单选多选增加题删除题修查改找题题增删改答案增删修查加除改找题题题题

2.3.3 管理员系统功能模块

管理员系统功能模块划分如图:

黄河水院 第 7 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

管理员登陆学生信息的管理对题库的管理对试卷结构的管理教师信息的管理班级管理课程的管理退出系统学生成绩的导入学生学生学生学生学生信息信息信息信息成绩的注的修的删的查查询改除册询教师信息的增加和删除教师信息的查询和修改班级的 增删 改查课程的增加课程的修改课程的删除课程的查询

2.3.4 题库模块

题库维护功能模块划分如图:

题库管理选择题填空题判断题答案单选多选增加题删除题修改题查找题增加题删除题修改题查找题增删改答案查找答案增加题删除题修改题查找题

第 8 页 共 38 页

网上考试系统

2.3.5 试卷结构模块

根据课程,各种题型的数量等方面对某份试卷提出一定的要求生成试卷规则。同时还可以对库中已有的试卷进行修改和删除,添加新试卷等 试卷结构维护模块划分如图:

试卷结构管理增、删、改、查修改试卷结构

3程序描述

3.1数据库操作类SQLHelper类 3.1.1 SQLHelper(class DBHelper)类图

SQLHelper++++ExecuteNonQuery (string stuid)ExecuteReader ()ExecuteDataTable ()ExecuteScalar (): int: object: DataTable: int

SQLHelper类实现: public class SQLHelper {

public static int ExecuteNonQuery(string sqlsentence, params SqlParameter[] parameters) {

string connstr =

ConfigurationManager.ConnectionStrings[\"ConnStr\"].ConnectionString;

黄河水院 第 9 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

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.ConnectionStrings[\"ConnStr\"].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);

第 10 页 共 38 页

网上考试系统

}

return comd.ExecuteScalar(); }

}

}

public static DataTable ExecuteDataTable(string sqlsentence, params SqlParameter[] parameters) {

string connstr =

ConfigurationManager.ConnectionStrings[\"ConnStr\"].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.Tables[0]; }

}

}

public SqlDataReader ExecuteReader(string sqlsentence, params SqlParameter[] parameters)

黄河水院 第 11 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

{

string connstr =

ConfigurationManager.ConnectionStrings[\"ConnStr\"].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登陆流程图

第 12 页 共 38 页

网上考试系统

3.2.2关联类图

黄河水院 第 13 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

admin+++++adminIdsingleCountsingleGradeadminSexadminTel: string: int: int: string: stringstudentloginDAODBConn-adminid: char-pwd: char+getconnection ()+getRs (): String+update (): String++++++stuidstunamestusexcardidstuqwdphone: string: string: string: string: string: string+finduser(string adminid,string pwd) (): intteacher+++++teachIdteachNameteachSexteachpTelteachPwd: string: string: string: string: string 3.2.3方法设计

3.2.3.1登陆相关类方法设计说明

该方法用于实现查找用户名和密码并返回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); } }

第 14 页 共 38 页

网上考试系统

使用接口 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(); }

黄河水院 第 15 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

#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; }

///

第 16 页 共 38 页

网上考试系统

/// 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(); }

黄河水院 第 17 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

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

第 18 页 共 38 页

网上考试系统

#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(student\\Teacher)、LoginDAO和RolDAO类实现对数据库中admin(student\\Teacher)表信息的检索。 功能

根据返回的权限purview来登陆不同职务的页面,实现分支操作。 输入输出项 Method Summary public int public bool verifyUsers(string userName, string password) { throw new NotImplementedException(); } 输入: 名称

管理员(教师信息、学生信息)编号 密码 输出: 名称 用户权限 流程逻辑:

标识

Adminid(stuid\eachid) password 标识

rolePurview

数据类型和格式 string

数据值的有效范围

输入的方式

String 输出的方式

数据类型和格式 数据值的有效范围 string

黄河水院 第 19 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

登陆页面输入权限号输入用户id、密码N查询数据库权限的全称验证用户id密码是否正确并返回用户权限Y返回权限名称返回权限全称

图1 系统登录程序流程图 图2获得权限程序流程图 算法:

1.根据输入的用户id和password查找用户权限: 创建公共查找用户类

跳转到成员页面定义登陆跳转页面

3.3管理员模块

3.3.1管理员模块简单程序模块图

管理员系统管理员信息维护课程信息维护学生信息维护班级信息维护第 20 页 共 38 页

教师信息维护 网上考试系统

3.3.2班级维护

3.3.2.1班级类图

classesService+classid: string+classname: string+dept: string++++getScIdbyClassId (string classId)addStu ()modify ()del (): int: int: int: int 3.3.2.2方法设计 3.3.2.2.1增加班级方法

方法的设计说明

public boolean addClass (classes cs) 该方法用于实现班级的增加。 程序描述

本方法通过访问连接类SQLHelper和class类实现对数据库中class表中记录的增加,是非常驻内存的。 功能

该程序通过传递的记录的主键对数据库中class表进行增加记录。 输入项

classid:班级编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

class 班级对象 Class对象

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

insertclass boolean 增加是否成功的状态

算法实现:

public static bool addClass(Classes class)

3.3.2.2.2删除指定班级方法

方法的设计说明

public boolean del (String classid)

黄河水院 第 21 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

该方法用于实现指定班级信息的删除。 程序描述

本方法通过访问连接类SQLHelper和class类实现对数据库中class表中符合条件的班级记录进行删除,是非常驻内存的。 功能

该程序通过传递的记录的主键的值删除符合条件的记录。 输入项

classid:班级编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

class Class 班级对象

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

deleterate boolean 删除是否成功的状态

算法

public bool deleteClass (String classid) //删除班级表中记录 { } 流程逻辑 顺序结构。 注释设计

在本程序中安排的注释,如:

加在模块首部的注释:角色信息的分页查询; 对各变量的功能、范围、缺省条件等加注释;

3.3.2.2.3修改(更新)指定班级方法的设计说明

public boolean updateClass (Classes class)

该方法用于指定班级信息的修改。 1. 程序描述

本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行修改,是非常驻内存的。 2 功能

该程序修改相关记录的信息,主键不能修改。 3 输人项

class:班级对象,class类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

class class 班级对象

4 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

修改是否成功的状态 updateClass boolean

5 流程逻辑 顺序结构。 6 注释设计

第 22 页 共 38 页

网上考试系统

在本程序中安排的注释,如:

对各变量的功能、范围、缺省条件等加注释;

3.3.2.2.4查询指定班级方法的设计说明

public string selectClass (string classid)

该方法用于指定班级信息的获取。 1. 程序描述

本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行查询,是非常驻内存的。 2 功能

该程序查询相关记录的信息。 3 输人项

Classid:班级编号,string类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

Classid String 班级对象

4 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

Class 若该班级存在 Class对象 若该班级不存在 输出错误信息

5 方法

public static bool getclass(string classid)

3.3.2.2.5查询所有班级方法的设计说明

3.3.3学生信息维护

3.3.3.4关系类图

studentDAO+++++DBconn++++++student学号姓名性别身份证密码联系方式: string: string: string: string: string: string++++StuLogin ()insertstu ()de;etestu ()updatestu (): bool: bool: bool: bool连接数据库 ()getSqlDataReader ()getDataSet ()getDataTable ()update (): String: Array: Array: bool 黄河水院 第 23 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

3.3.3.5方法设计 3.3.3.5.1查询学生信息

1. 方法的设计说明

public string selectstu (String stuid)

该方法用于实现指定学生信息信息的获取。 2. 输人项

Classid:班级编号,string类型 名称 标识 数据类型和格式

stuid String 学号

3. 输出项 名称 标识 数据类型和格式

Student 若该学生信息存在 Student对象 若该学生信息不存在

数据值的有效范围

数据值的有效范围

输入的方式

输出的方式

输出错误信息

3.3.3.5.2删除学生信息方法

1. 方法的设计说明

public boolean deletestu (String stuid)

该方法用于实现指定学生信息信息的删除。 2. 程序描述

本方法通过访问连接类SQLHelper和student类实现对数据库中student表中符合条件的班级记录进行删除,是非常驻内存的。 3. 功能

该程序通过传递的记录的主键的值删除符合条件的记录。 4. 输入项

stuid:学生信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

String 学生信息编号 Stuid

5. 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

Deletestu boolean 删除是否成功的状态

6. 流程逻辑 顺序结构。 7. 注释设计

在本程序中安排的注释,如:

对各变量的功能、范围、缺省条件等加注释;

第 24 页 共 38 页

网上考试系统

3.3.4教师信息维护

3.3.4.1关系类图

teacherDAODBconn+++++teacher教师编号姓名性别电话密码: string: string: string: string: string++++tLogin ()inserttea ()de;etetea ()updatetea (): bool: bool: bool: bool+++++连接数据库 ()getSqlDataReader ()getDataSet ()getDataTable ()update (): String: Array: Array: bool 3.3.4.2方法设计

3.3.4.2.1删除教师信息方法

1 方法的设计说明

public boolean deletetea (String teaid)

该方法用于实现指定教师信息信息的删除。 2 程序描述

本方法通过访问连接类SQLHelper和taecherDAO类实现对数据库中Teacher表中符合条件的教师信息记录进行删除,是非常驻内存的。 3 功能

该程序通过传递的记录的主键的值删除符合条件的记录。 4 输入项

Teacherid:教师信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

string 教师信息编号 Teacherid

5 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

boolean 删除是否成功的状态 deletetea

6 流程逻辑 顺序结构。 7 注释设计

在本程序中安排的注释,如:

对各变量的功能、范围、缺省条件等加注释;

3.3.4.2.2修改教师信息方法的设计说明

public boolean modify (Teacher te)

黄河水院 第 25 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

该方法用于指定班级信息的修改。 1 程序描述

本方法通过访问连接类SQLHelper和classDAO类实现对数据库中class表中符合条件的班级记录进行修改,是非常驻内存的。 2 功能

该程序修改相关记录的信息,主键不能修改。 3 输人项

class:班级对象,class类型 名称 标识 数据类型和格式 数据值的有效范围 班级对象

class class 4 输出项 名称 标识 数据类型和格式 数据值的有效范围 修改是否成功的状态 updateClass boolean

5 方法

public static bool modifycher(Teacher te,string teachid) 6 流程逻辑 顺序结构. 7 注释设计

在本程序中安排的注释,如:

加在模块首部的注释:角色信息的分页查询; 对各变量的功能、范围、缺省条件等加注释; 查询所有教师信息方法的设计说明

public static IList CheckTeacher()

3.3.4.2.3查询教师信息方法的设计说明

public static Teacher getTeacher(string teachid)

{}

第 26 页 共 38 页

输入的方式

输出的方式

网上考试系统

3.4学生信息模块

3.4.1学生信息登录考试时序图

登录界面学生学生信息1,login1.1selectstudent数据bool2.考试选择getclassidMessage_15classidselectscid班级开设课程testcourseid()可以参加的考试信息Message_6Message_7选择考试界面试卷:student:testconstitue:qusetions:texpage:sc:scoreDBConn数据库3.参加考试getlistMessage_16listselectquestionquestionlistcreatetestpage试题数据集Message_24提交试卷updatebool阅卷(countscore)bool 3.4.2学生信息网上考试类图

黄河水院 第 27 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

student++++0..1stuidstunameidcardclassid: string: string: string: string: string: int: int: int++++++++0..1classesService0..1sc+++++scidtermsclassidcourseidteacherid: string: string: string: string: string0..*0..1+classid: string+classname: string+dept: string++++0..1testconstitue0..10..*++++++++++qscorenumtestconstitueidtypeidscid: int: int: string: string: string: List: TestConstitue: int: int: intgetScIdbyClassId (string classId)addStu ()modify ()del (): int: int: int: intteacheridteanamesexbrithdaymodify ()del ()add ()getall ()teacher: string: string: string: DateTime: bool: bool: bool: intscore+++++-++++sscoretermsidcourseidstuidnum: int: int: string: string: string: int+getClassByStuId (string stuId)+<>Student ()0..*+add ()+modify ()+del ()getShouldTestCourses (int terms, string courseId, string stuId)add ()modify ()del (): int: int: int: int0..*0..*course+courseid: string+coursename: string+getCourseNameById (string courseId): string0..10..*0..10..10..*+getCourseIdListByClassId (string classId): List+getScIdByTeachId (string teachId): List0..*0..*textpage++++idanswerquestionidcourseid: int: string: string: string++0..1+0..1++++++++questionidtextansweraanswerbanswercanswerdanswereanswerfcorrectanswercourseidid: int: string: string: string: string: string: string: string: string: string: intqusetionsgetTestConstitueByScId (string scId)RandomChoiceTestConsitue (List testconstitues)add ()modify ()del ()0..*0..1questiontype0..10..*+add (): int+modify (): int+del (): int+typeid: string+typename: string+getTypeIdByName (string typeName): strin+getQuestionsByTestConstitueAndCourseId (TestConstitues testConstitues, string courseId)+getQuestionsByRandom (string courseId, TestConstitues testConstitues)

3.4.3方法设计

3.4.3.1 getclassid(string stuid)方法设计

方法的设计说明

public string getclassid(string stuid)

通过该学生信息学号获得所在班级编号。 程序描述

本方法通过访问连接类SQLHelper和class类实现对数据库中class表中符合条件的科目记录进行查询显示,是非常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项

stuid:学生信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

string 学生信息编号 Stuid

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

Classid String 班级编号

算法 注: 流程逻辑

第 28 页 共 38 页

网上考试系统

顺序结构。

3.4.3.2 getSelectivecourse(string classid)方法设计

方法的设计说明

public string getSelectCourse(string classid) 该方法是通过班级编号获得选课编号。 程序描述

本方法通过访问连接类SQLHelper和eselectcourse类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是非常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项

calssid:学生信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

classid string 班级编号

输出项 名称 标识 数据类型和格式 数据值的有效范输出的方式

SelectCourse String 选课编号

算法

//通过班级得到选课程编号

public static int GetselectBycourseid(string classid) { } 流程逻辑。

3.4.3.3getcourseid(string classid)方法设计

方法的设计说明

public DataTable getSelectCourse(string classid)

该方法用于实现考试科目信息的查询。通过该班级编号获得课程编号。 程序描述

本方法通过访问连接类SQLHelper和course和slectivecourse类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项

calssid:学生信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式 黄河水院 第 29 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

班级编号 输出项 名称 课程编号 算法

classid

标识 courseid

string

输出的方式

数据类型和格式 数据值的有效范围 String

public DataTable getcourseid (string classid)

//通过班级得到课程编号

{ } 流程逻辑.

3.4.3.4selectcourse(string courseid) 方法设计

方法的设计说明

public string selectcourse(string courseid) 通过课程编号得到课程名字。 程序描述

本方法通过访问连接类SQLHelper和testDAO和course类实现对数据库中course表中符合条件的科目记录进行查询显示,是非常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项

courseid:学生信息编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

courseid string 课程编号

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

cName String 科目

算法

//通过课程编号得到课程名称

public static course Getcourseid(string cname) { } 流程逻辑.

3.4.3.5 TestConstitue(string SelectCourse)方法设计

方法的设计说明

public DataSet TestConstitue(string SelectCourse) 该方法用于实现考试科目试卷结构信息的查询。 程序描述

第 30 页 共 38 页

网上考试系统

本方法通过访问连接类SQLHelper和CourseService类实现对数据库中selectcourse表中符合条件的科目记录进行查询显示,是常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项

SelectCourse:选课编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

SelectCourse string 选课编号

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

TestConstitues TestConstitues对 结构信息 对象

算法

public static TestConstitues GetTestConstituesById(int id) 注:

public SqlDataReader ExecuteReader(string sqlsentence, params SqlParameter[] parameters) {

string connstr =

ConfigurationManager.ConnectionStrings[\"ConnStr\"].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; //int purview = 0; //if (reader.Read()) //{

// purview = reader.GetInt32(reader.GetOrdinal(\"purview\")); // return purview; //} //else { // return 0; //}

黄河水院 第 31 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

}

3.4.3.6 gradeCompute()方法设计

方法的设计说明

public int gradeCompute (TestPage tt)

该方法用于计算学生信息每一道题的考试成绩。 程序描述

本方法通过访问连接类SQLHelper类和testDAO类和TestPage类实现对数据库中TestPage表中符合条件的记录进行查询显示并且让学生信息答案与实际答案进行对比,然后根据每道题的分数进行加分。 功能

该程序通过传递的对象记录进行对符合条件的记录进行加运算。 输入项

SelectCourse:选课编号,String类型 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

TestPage对象 tt TestPage对象

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

tt. thisGrade int 分数

算法

public int gradeCompute (TestPage tt) {}

流程逻辑

3.4.3.7学生信息查询成绩时序图

第 32 页 共 38 页

网上考试系统

登录界面学生1 登录成绩查询界面登录操作类loginDAO查询班级 或个人成绩界面成绩查询操作类数据库访问类1数据库11.1提供登陆信息(编号,密码)loginDAL.CheckTeacher(编号,密码)DBHelper.GetScalar(sql)返回:true 或false2 查询成绩返回:true 或false2.1选择查询的班级成绩或个人成绩(以个人成绩位例提供学号:stuid)返回:true 或false2.3调用IList Checkgrade(string stuid)返回:true 或false2.2提供查询条件信息(提供学号:stuid)2.4检索数据库DataTable GetDataSet(string sql, params SqlParameter[] values)Message_16返回 DataSet ds返回 DataSet ds返回 DataSet ds返回 DataSet ds

黄河水院 第 33 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

3.5教师信息模块

3.5.1教师信息填充题库时序图

登录界面教师1登录选择填充题库的科目界面填充题库界面选所教班级与课程登陆操作类题库操作类数据库访问类数据库1.1提供登陆信息(编号,密码)loginDAL.CheckTeacher(编号,密码)DBHelper.GetScalar(sql)返回:true 或false返回:true 或false返回:true 或false返回:true 或false2.选择能填充题库返回能填充题库的所有科目3.填充题库2.1获取所教的班级科目提供教师编号(string teachId)IListIList GetCourseteachid(string teachId)IListDBHelper.GetDataSetIListDBHelper.ExecuteCommand(sql, pa)3.1选择要填充题库的题目种类testquestionsBLL.Addquestion(te)实体类testquestions te传递题目信息返回true或false返回true或false填充题库成功返回true或false 第 34 页 共 38 页

网上考试系统

3.5.2关联类图

testquestionscourse+课程编号: string+课程名: string+课时: stringteacher+++++教师编号姓名性别电话密码: string: string: string: string: string+++++++++试题编号试题题干选项A选项B选项C选项D选项E选项F正确答案: string: string: string: string: string: string: string: string: stringelectivecourse+选课编号: string+开课学期: string+updatestructure (): bool+updatetestquestions (): bool+deletetestquestions (): bool++++++++++selectcourse (): String+selectclass (): StringtestpaperStructure试卷结构编号单选数量单选题分数判断题个数判断题分数多选题数量多选题分数设置日期考试限制时间: string: int: int: int: int: int: int: DateTime: TimeSpanclass+班级编号: string+班级名称: string 3.5.3方法设计

3.5.3.1选择课程selectcourse()方法设计

方法的设计说明

public DataTable selectcourse() 查询所有课程编号和名称。 程序描述

本方法通过访问连接类SQLHelper和Teacher、course类实现对数据库中course表中符合条件的科目记录进行查询显示,是非常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项 无。 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

course 课程对象 course对象 对象

算法

public static List GetAllcourse() {}

流程逻辑

黄河水院 第 35 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

顺序结构。

3.5.3.2选择班级selectclass()方法设计

方法的设计说明

public DataTable selectclass()

查询所有班级信息(编号和名称)。 程序描述

本方法通过访问连接类SQLHelper和Teacher类实现对数据库中class表中符合条件的科目记录进行查询显示,是非常驻内存的。 功能

该程序通过传递的记录的主键的值查询符合条件的记录。 输入项 无。 输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

class 班级对象 class对象 对象

算法

public static IList GetAllclass(); 流程逻辑 顺序结构。

3.5.3.3更新试卷结构modifyTestConstitues (TestConstitues ts )方法设计

方法的设计说明

public bool modifyTestConstitues (TestConstitues ts) 更新试卷结构信息。 程序描述

本方法通过访问连接类SQLHelper和CourseService类实现对数据库中TestConstitues表中符合条件的科目记录进行修改。 功能

该程序通过传递的记录的值修改记录。 输入项

ts实例对象 TestConstitues对象 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

ts TestConstitues对象 TestConstitues对象

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

是否操作成功 false或bool 对象

true

第 36 页 共 38 页

网上考试系统

算法

public static int modifyTestConstitues(TestConstitues ts) {}

流程逻辑

3.5.3.4更新题库updateQuestions(testquestions tq)

方法的设计说明

public bool updatequestions(Questions tq) 更新试卷结构信息。 程序描述

本方法通过访问连接类SQLHelper和testquestionsDAO类实现对数据库中testquestions表中符合条件记录进行修改。 功能

该程序通过传递的记录的值修改记录。 输入项

tq 实例对象 testquestions对象 名称 标识 数据类型和格式 数据值的有效范围 输入的方式

tq testquestions对象 testquestions对象

输出项 名称 标识 数据类型和格式 数据值的有效范围 输出的方式

是否操作成功 false或bool 对象

true

算法

public bool updatequestions(testquestions tq//向试卷结构表中修改记录 流程逻辑。

3.5.3.5插入题库insertQuestions(Questions questions)方法设计

方法的设计说明

public boolean insertQuesitons(Questoins quesitons){} 该方法用于实现题库的增加。 程序描述

本方法通过访问连接类SQLHelper和Questoins类实现对数据库中testquestions表中记录的增加,是非常驻内存的。 功能

该程序通过传递的记录的主键对数据库中testquestions表进行增加记录。 输入项

classid:班级编号,String类型

黄河水院 第 37 页 共 38 页 王圣玺QQ:820215725

网上考试系统设计说明书

名称 标识

testquestions 题库对象

输出项 名称 标识

flag 增加是否成功的状态

算法

数据类型和格式 数据值的有效范围 testquestions对象

数据类型和格式 数据值的有效范围 boolean

输入的方式

输出的方式

public boolean insertQuesitons(Questoins quesitons)

{

Return false; }

流程逻辑

第 38 页 共 38 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top