软件
课程设计
题目:燕山大学计算机系监考管理系统
组号第27组
组长姓名:张皓楠学号:120104010084
组员姓名:朱禹铭学号:
组员姓名:王思佳学号:
组员姓名:田凯红学号:120104010095
摘要
随着计算机技术和网络技术的不断发展,传统的手工监考安排方式已不能适应发展的需要。运用计算机技术,以其运作成本低、高效、灵活的突出优势,正在走进我们的工作和生活。
高校监考安排是高校教务管理中一项非常重要的工作。信息时代飞速发展,人们对信息的需求越来越大,在以往的高校教务管理工作中,监考安排工作通常使用的是全手工操作模式下的监考安排工作方式,它存在管理方式落后、处理数据的能力有限、工作效率低等弊端,极大影响了监考安排工作在高校教务管理中的效率。因此,开发此类软件,成为当前十分迫切的任务。
本系统的设计思想,包括系统体系结构设计、系统功能设计、性能设计、数据库设计、系统组成等。根据软件实现及监考安排工作的特点,阐述了系统实现过程中的详细步骤。
关键词:监考系统、数据库、C/S模式
1课题研究的目的
1.1课题研究背景
监考安排是高校教务管理工作的重要组成部分,随着高校规模的不断扩大,效率低下、容易出错的手工安排监考的方式也越来越不适应实际工作开展的需要,利用计算机技术设计开发高校监考安排系统、实现考试安排的自动化也成为目前高校教务管理部门的迫切需要。现在计算机与各个行业结合得越来越紧密,但是用于监考安排方面却相对比较少,更没有充分发挥出计算机办公自动化的优势。传统的监考安排方式己明显不能适应时代和高校教学改革的发展,在当前21世纪的信息高速时代,这种方式必然会被以计算机为基础的信息管理所取代,这也是高校管理科学化、正规化和与社会接轨的必要条件。
1.2监考安排系统的发展现状
当前,国内高校竞争激烈,出于高等教育发展的需要,不少高校提出要进行自上而下的改革,以适应新时代的发展。不仅要对高校的教育教学质量进行改革,还要对原有不合理和效率低下的工作模式进行改革。教学管理工作中的监考安排工作就是最为突出的问题之一,负责安排监考的工作人员往往需要花费大量的时间和精力来调查考试班级、监考老师、考场等监考安排的基本信息和数据,一旦信息来源有误或不准确,将会使最终的监考安排工作出现纸漏。另外,负责监考安排的工作人员如果还是采用传
统的手工模式来安排监考,则无法从根本上避免因一时的疏忽大意而造成的监考安排信息错误。再次,各监考教师、考试班级学生想要得到考试信息(如考试时间、地点等),往往只能通过教学管理部门工作人员的口头通知或自行前往教学办公室查询,这样一来,不仅考务工作效率低下,同时也给教学管理部门工作人员增加了不必要的工作负担。
凡是在监考安排工作中出现的失误,都将给监考安排人员、监考教师、考生带来各种问题,也会给教学管理工作带来无法想象的困难,进而影响到高等学校的发展,这是任何有责任心的教学工作者都不愿意见到的情况。如果在工作中采用先进的手段,摒弃传统落后的工作模式,必将会提高工作效率,给教学管理工作注入新鲜的元素,使得教学管理工作更加科学化、人性化,从而为高等院校的发展创造更好的条件,使高等院校得到更大的发展空间。
1.3进度安排
表1-1进度安排
ID 任务名称
开始时间
完成
持续时间
2015年 03月
18
19
20
21
22
23
24
25
1
1天2015/3/18
2015/3/18
小组会议(分配)22天2015/3/202015/3/19需求
32天
2015/3/222015/3/21总体设计
4
2天2015/3/24
2015/3/23
详细设计52天2015/3/262015/3/25文档撰写61天2015/3/272015/3/27PPT 制作7
1天
2015/3/28
2015/3/28
小组会议(审核)
26
27
28
2系统需求分析
2.1需求分析目标
监考安排管理系统是针对高等学校考试的特点而开发的实现考试安排的自动化应用软件。本系统能帮助各教务管理部门工作人员利用计算机,快速而方便的进行考试的监考安排、管理,数据的输入、输出、查找等所需操作,使监考安排工作具体化,直观化、合理化。本监考安排管理系统可以说是一个专为高校考试监考安排而设计的系统,它同时具备教务管理人员安排考试、教师和学生查询考试安排等多种功能,突破了传统的手工监考安排工作模式,因而具有较强的经济性、实用性和先进性。
2.2数据流图
教务管理人员
教师信息处理
班级信息处理教务管理人员
班级信息
合理的班级信
息
合理的教师信
息
合理的教师信息合理的教师信息
合理的班级信息合理的班级信息课程信息处理
合理的课程信
息
合理的课程信息合理的课程信息
课程信息
教师信息
温馨推荐
您可前往百度文库小程序
享受更优阅读体验
不去了
立即体验
教务管理人员
监考安排信息
生成
监考安排信息
监考安排信息
查询
监考教师合理的信息
监考安排信息监考安排信息
监考安排信息
图2-1主流程图
2.3数据字典
表2-1合理的信息
名称:合理的信息
简要说明:
数据流来源:教务管理人员
数据流去向:监考安排信息生成
包含的数据元素:教师编号,教师姓名,所属部门,联系电话1,联系电话2,监考次数,登录密码,使用权限,课程编号,课程名,任课教师,授课班级,班级编号,班级名称,所属专业,班干部1,班干部电话1,班干部2,班干部电话2
表2-2监考安排信息
名称:监考安排信息
简要说明:
数据流来源:监考安排信息生成
数据流去向:监考教师
包含的数据元素:考试编号,考试科目,监考教师,任课教师,考试班级,考试时间,考试地点
2.4功能模块图
燕山大学计算机系监考管理系统
基本数据的录入与维护
1.0监考安排
信息生成
2.0
监考安排
信息查询
3.0
数据库维
护
4.0
帮助
5.0
注销
6.0
退出
7.0
教师信息录入与维护1. 1班
级
信
息
录
入
与
维
护
1.
2
课
程
信
息
录
入
与
维
护
1.
3
部
门
信
息
录
入
与
维
护
1.
4
按
监
考
教
师
查
询
3.
1
按
考
试
课
程
查
询
3.
2
按
考
试
班
级
查
询
3.
3
数
据
库
备
份
4.
1
数
据
库
恢
复
4.
2
关
于
5.
1
帮
助
手
册
5.
2
图2-2系统功能模块图
2.5 E-R 图
课程信息
班级信息
教师信息
安排M P
N
监考教师考试编号考试地点考试科目考试时间考试班级
任课教师
图2-3监考安排系统E-R 图
3设计过程
3.1对象模型
面向对象分析首要的工作,是建立问题域的对象模型。这个模型描述了现实世界中的“类与对象”以及它们之间的关系,表达了目标系统的静态数据结构。需求分析,应用领域的专业知识以及关于客观世界的客观常识,是建立对象模型是的主要信息来源。对象模型描述系统数据结构,使用UML 提供的类图来建立对象模型。
图3-1对象模型
3.2用例图
一幅用例图包含的模型元素有系统、行为者、用例及用例之间的关系。
图3-2是监考安排系统的用例图。图中的方框代表系统,椭
圆代表用例,线条人代表行为者,他们之间的连线表示关系。
管理员
教师
录入数据
维护数据
查询生成信息
自动生成监考信息
教师信息录入
班级信息录入课程信息录入
<<;包含>>
<<;包含>>
<<;包含>>
备份
恢复
<<;包含>><<;包含>>
按班级查询按监考教师查询按考试科目查询
<<;包含>>
<<;包含>>
<<;包含>>
图3-2监考安排系统用例图
3.3状态图
状态图描绘事件与对象状态的关系。当对象接受了一个事件以后,它的下个状态取决于但前状态及所接受的事件。由事件引起的状态改变称为“转换”,如果一个事件并不引起当前状态发生转换,则可忽略这个事件。
3.4基本表
教师
字段名称类型说明
teacher-id INT(4)主键
teacher-name char(10)
teacher-num1char(15)联系电话1 teacher-num1char(15)联系电话2 count int(4)监考次数自增password int(4)登陆密码purview int(4)使用权限
班级
字段名称字段类型说明
class-ID int(4)主键班级编号class-name char(20)班级名称cadre-name1char(10)班干部1 cadre-num1char(15)班干部电话1 cadre-name2char(10)班干部2 cadre-num2char(15)班干部电话2
课程
字段名称字段类型说明
course-id int(4)主键课程编号course-name char(20)课程名称
监考安排
字段名称字段类型说明invigilate-id int(4)主键监考编号invigilate-courseid int(4)监考课程invigilate-teacherid int(4)监考老师course-teacherid int(4)任课老师course-classid int(4)考试班级exam-date smalldatetime(4)考试时间exam-place char(20)考试地点
4实现过程
4.1关键代码
1.登录按钮代码
protected void loginButton_Click(object sender, EventArgs e)
{
user user = new user();
user.UserLogin = loginText.Text;
user.UserPwd = pwdText.Text;
UserManager manager = new UserManager();
bool result = manager.Login(user);
if (result)
{
Response.Redirect("teacherview.ashx");
}
else
{
if(user.UserLogin == "001"&& user.UserPwd == "123456") {
Response.Redirect("TeacherList.ashx");
}
else
{
int count = 0;
if(ViewState["login_num"].ToString().Trim() != "") {
count =
Convert.ToInt32(ViewState["login_num"]);
}
else
{
count = 0;
}
count++;
ViewState["login_num"] = count.ToString().Trim();
if (count >= 3)
{
Response.Write(""); Response.Redirect("false.aspx");
}
else
{
Response.Write("");
}
}
}
}
显示数据库原有数据TeacherList.ashx
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
DataTable dt=
SqlHelper.ExecuteDataTable("select * from T_Teachers");
DataTable dt1 =
SqlHelper.ExecuteDataTable("select * from T_Class");
DataTable dt2 =
SqlHelper.ExecuteDataTable("select * from T_Course");
DataTable dt3 =
SqlHelper.ExecuteDataTable("select * from T_Classroom");
var newdata=new
{ data1=dt.Rows,data2=dt1.Rows,data3=dt2.Rows,data4=dt3.Rows};
string html1 = CommonHelper.RenderHtml("TeacherList.htm", newdata);
context.Response.Write(html1);
}
保存编辑完成的教师信息代码
else if (action == "Edit")
{
string save =context.Request["save"];
if (save == "true")
{
long id = Convert.ToInt64(context.Request["Id"]);
string Name = context.Request["Name"];
string num1 = context.Request["num1"];
string num2 = context.Request["num2"];
int count =
Convert.ToInt32(context.Request["count"]);
string password = context.Request["password"];
SqlHelper.ExecuteNonQuery("update T_Teachers set Name=@Name ,num1=@num1 ,num2=@num2 ,count=@count, password=@password where Id=@Id",
new SqlParameter("@Name", Name),
new SqlParameter("@num1", num1),
new SqlParameter("@num2", num2),
new SqlParameter("@count", count),
new SqlParameter("@password", password),
new SqlParameter("@Id",id));
context.Response.Redirect("TeacherList.ashx");
}
监考编排算法Arrange.ashx
foreach (DataRow a in dt.Rows)
{
Flag1.Clear();
Flag2.Clear();
DataRow e = dt5.Rows[i];
i++;
foreach (DataRow b in dt1.Rows)
{
string Course0 = (string)a["CourseName"];
string Time0 = (string)e["Time"];
string CName0 = (string)b["CName"];
int n = dt2.Rows.Count;
Random ran = new Random();
int index = ran.Next(0, n);
while (Flag1.Contains(index))
{
index++;
index %= n-1;
} DataRow c = dt2.Rows[index];
string ClassroomNo0 = (string)c["ClassroomNo"]; Flag1.Add(index);
int m = dt3.Rows.Count;
index = ran.Next(0, m);
while (Flag2.Contains(index))
{
index++;
index %= m-1;
} DataRow d = dt3.Rows[index];
string Teacher01 = (string)d["Name"];
Flag2.Add(index);
index = ran.Next(0, m);
while (Flag2.Contains(index))
{
index++;
index %= m-1;
}
d = dt3.Rows[index];
string Teacher02 = (string)d["Name"];
Flag2.Add(index);
string sql = "insert into
T_Arrangement(Course0,Time0,CName0,ClassroomNo0,Teacher01,Teacher02) values(@Course0,@Time0,@CName0,@ClassroomNo0,@Teacher01,@Teacher02)";
SqlHelper.ExecuteNonQuery(sql, new
SqlParameter("@Course0", Course0),
new SqlParameter("@CName0", CName0),
new SqlParameter("@ClassroomNo0", ClassroomNo0),
new SqlParameter("@Teacher01", Teacher01),
new SqlParameter("@Teacher02", Teacher02),
new SqlParameter("@Time0",Time0));
}
4.2界面截图管理员登录
原始信息展示
新增页面
编辑页面
自动生成考试信息
新增考试信息
编辑已有考试信息
以教师身份查看监考信息
登陆三次失败锁定功能
5测试用例
表5-1用户登录模块测试
测试功能测试数据预期结果实际结果结论
登录(错误用户名) 用户名:abc
密码:abc
系统无此用户,
提示错误信息
您的登录尝试
不成功,请重试
测试正确
登录(错误密码) 用户名:admin
密码:123 有该用户,但密
码错误,提示错
误信息
您的登录尝试
不成功,请重试
测试正确
登录(以管理员用户密码用户名:admin
密码:abc
登录成功,并进
入管理员页面
系统提示admin
登录成功,并进
入管理员页面
测试正确
登录(以普通用户密码用户名:zxw
密码:zxw
登录成功,并进
入用户页面
系统提示zxw
登录成功,并进
入用户页面
测试正确
表5-2教师信息管理模块测试
测试功能测试数据预期结果实际结果结论
教师列表显示(按条件查询) 输入教师姓
名:X
列表显示所有
姓名中含有X
的教师
列表显示X两
条记录
测试正确
教师列表显示(列出所有) 不填写教师姓
名,直接点击查
询
列表显示所有
教师记录
列表显示所有
教师记录
测试正确
添加教师输入教师姓
名:XX 存在该教师姓
名,应给出提示
提示该教师姓
名已存在,是否
确定增加,点击
确定,录入成功
测试正确
添加教师输入教师姓
名:YY,填写其他
信息录入成功系统显示录入
成功,YY已录入
数据库
测试正确
删除教师选择XXX记录
条删除该教师系统显示XXX
已成功删除
测试正确
更新教师信息选择XXX记录
条,并重新填写更新该教师属
性
系统显示更新
成功
测试正确
相关信息
表5-3监考安排模块测试
测试功能测试数据预期结果实际结果结论
列出可选教师姓名时间:
2015-01-14
14:30:00
列出该时间无
监考的教师姓
名
下拉菜单中可
选教师AA,BB
等8位
测试正确
安排成功选择考试课程
的相关信息,选
择教师姓名AA 提示安排成功提示安排成功,
并增加一条监
考记录
测试正确
6结论
我们小组此次课程设计在前两次讨论课的基础上完成了监考安排系统的设计和实现。监考系统主要完成了监考信息的安排的查询,实现了创新,更好的为教学管理部门服务,此次课设期间我们小组遇到了许多问题,通过上网查阅资料,询问老师及同学及时解决了遇到的一系列问题完成了本系统的制作。
此次课设期间我们小组使用的是C#的编程语言,学到了课堂之外的知识,掌握了许多软件的使用方法,如:Visio、VS,SQLserver、Dreamweaver等,提高了我们的动手能力及实践能力。此次课设的#工作
#如下:
(1)完成了对系统的需求分析了解了所要做的系统的具体要求。
(2)对本系统进行过程设计(主要是面向对象)
(3)对本系统的具体实现,编写代码、设计界面、连接数据库等,进行具体的操作设计及完善。
(4)对所设计的系统进行测试。
7参考文献
1张海藩.软件工程导论.清华大学出版社,2008:1-201
2覃征.软件体系结构.西安交通大学出版社,2004:1-20
3 马晓丹,关海鸥.基于WEB技术的高校监考安排系统的设计与应用.佳木斯大学学报,2009,27(3):363
4 李丹.培训学校考试管理系统:[硕士学位
],吉林:吉林大学,2009,2-3