河北联大教务管理系统
河北联合大学 软件实训
题 目:教务管理系统
学 院: 继续教育学院 专 业: 计算机科学与技术 班 级: 姓 名: 学 号: 指导教师: 完成日期:
目录 一、绪论
1、引言„„„„„„„„„„„„„„„„„„„„„„„„1 1.1编写目的„„„„„„„„„„„„„„„„„„„„1 1.2项目背景„„„„„„„„„„„„„„„„„„„„1 2、任务描述
2.1目标„„„„„„„„„„„„„„„„„„„„„„„1 2.2运行环境„„„„„„„„„„„„„„„„„„„„„1 3、数据描述
3.1输入数据„„„„„„„„„„„„„„„„„„„„„1 3.2输出数据„„„„„„„„„„„„„„„„„„„„„1 4、功能要求„„„„„„„„„„„„„„„„„„„„„„1
二、需求分析
1、需求调查
1.1组织机构调查„„„„„„„„„„„„„„„„„„2 1.2 业务需求调查„„„„„„„„„„„„„„„„„„2 1.3对新系统的要求调查„„„„„„„„„„„„„„„3 2、功能需求
2.1功能划分 „„„„„„„„„„„„„„„„„„„„3 2.2功能描述„„„„„„„„„„„„„„„„„„„„3 3、数据描述
3.1数据描述„„„„„„„„„„„„„„„„„„„„4 3.2数据库描述„„„„„„„„„„„„„„„„„„„4 3.3数据词典„„„„„„„„„„„„„„„„„„„„5 4、性能需求
4.1 数据精确度 „„„„„„„„„„„„„„„„„„6 4.2时间特性„„„„„„„„„„„„„„„„„„„„6 4.3适应性 „„„„„„„„„„„„„„„„„„„„7 5、运行需求
5.1 用户界面„„„„„„„„„„„„„„„„„„„„7
5.2 硬件接口„„„„„„„„„„„„„„„„„„„„ 7 5.3 软件接口„„„„„„„„„„„„„„„„„„„„ 7 5.4 故障处理„„„„„„„„„„„„„„„„„„„„ 7 5.5基本要求„„„„„„„„„„„„„„„„„„„„7 6、其他需求 „„„„„„„„„„„„„„„„„„„„„„ 7
三、总体设计
1、总体结构和模块外部设计
1.1功能结构„„„„„„„„„„„„„„„„„„„„8 1.2模块设计„„„„„„„„„„„„„„„„„„„„8 1.3总体结构设计„„„„„„„„„„„„„„„„„„10 2、数据结构设计 „„„„„„„„„„„„„„„„„„„„10 3、数据库设计
3.1逻辑设计„„„„„„„„„„„„„„„„„„„„11 3.2物理设计„„„„„„„„„„„„„„„„„„„„11 4、外部接口设计
4.1用户界面„„„„„„„„„„„„„„„„„„„„12 4.2软件接口„„„„„„„„„„„„„„„„„„„„12 4.3硬件接口„„„„„„„„„„„„„„„„„„„„12 5、出错处理设计
5.1 出错输出信息 „„„„„„„„„„„„„„„„„12 5.2出错处理对策„„„„„„„„„„„„„„„„„„12 6、维护设计 „„„„„„„„„„„„„„„„„„„„„„12
四、详细设计
1、代码设计„„„„„„„„„„„„„„„„„„„„„„13 2、程序设计
2.1、功能模块性能„„„„„„„„„„„„„„„„„13 2.2、算法„„„„„„„„„„„„„„„„„„„„„15 2.3、程序逻辑„„„„„„„„„„„„„„„„„„„15 2.4、接口 „„„„„„„„„„„„„„„„„„„„„15 2.5、测试要点„„„„„„„„„„„„„„„„„„„15 五、系统实现„„„„„„„„„„„„„„„„„„„„„16
六、系统测试
1、测试方案„„„„„„„„„„„„„„„„„„„„„„26 2、测试项目说明 „„„„„„„„„„„„„„„„„„„„26 2.1测试项目名称及测试内容„„„„„„„„„„„„„26 2.2 测试用例 „„„„„„„„„„„„„„„„„„„26 2.3步骤及操作„„„„„„„„„„„„„„„„„„„28 2.4允许偏差„„„„„„„„„„„„„„„„„„„„28 3、评价 „„„„„„„„„„„„„„„„„„„„„„„„28 七、设计总结„„„„„„„„„„„„„„„„„„„„„29 参考文献„„„„„„„„„„„„„„„„„„„„„„„30
一、绪论
1、引言
随着计算机的发展和教育改革的不断深入,计算机网络技术的不断成熟,综合教学网络
已广泛应用于学校教学、管理的各个领域,特别是教务排课系统的应用。它代表着学校教学管理的水平,目前大多数学校采用教学任务的指派,然后将教务任务单提交教务科,由教务人员进行计算机排课、打印课表等工作。这种系统还是一定程度上依赖于人工处理。
近年来,我国高等教育事业的快速发展,新生的扩招力度加大,各高校都面临着教师资源紧张的问题。现在的本科院校包括研究生在内,一般都有上万人的规模。要在每个学期前的一个短时间内拿出一份涉及到全校教室统调的课表来,对高校来说确实是一个艰巨的任务。
如何更有效的利用人力、物力资源,充分发挥计算机的辅助作用,减轻教务人员的工作强度,在对需求进行详细的分析后,本文提出了基于教学大纲的教务排课设计思想,并对算法进行了描述。
1.1编写目的
教务管理系统为学院机构提供电子化解决方案,致力于构建电子化领域中统一、规范、服务完善的技术平台。在电子化教学中界和人力资源管理的理念,以人为本,由教学管理,学生信息,排课表等,贯彻教学的整体流程。在电子化教学中将网络技术与传统教学相结合,为学院提供优化教育技术解决方案。本系统正是为了实现教学管理电子化这一需求而开发。
1.2项目背景
自动化的教务管理,相对手工管理,有着很多优点:信息管理更容易、信息存储更方便、信息修改更简单、信息查找更迅捷。因此,教务管理系统的制作很有必要。
2、任务描述 2.1目标
教务管理系统的开发意图是为了方便学生、老师资料的管理及教务资料的查询。系统目标:人力与设备费用减少,处理速度的提高,管理信息服务的改进,人员利用率的改进。
2.2运行环境
运行环境:windows2000 / windows XP; 硬件条件:服务器IIS工作站,终端为PC机.
3、数据描述 3.1输入数据
通过本系统教务人员可以编排课程、安排学生班级,教师可以录入学生信息以及考试成绩等。
3.2输出数据
外来用户比如家长通过本系统查询学生成绩,学生通过系统查询课程、成绩以及选修等。
4、功能要求
本系统可以实现用户查询学生信息,教务人员排课,教师对学生信息的增删改查,学生对成绩查询以及选修课等
二、需求分析
1、需求调查
1.1组织机构调查
随着计算机技术的发展,一些新的计算机技术相继问世,在当前比较流行的WEB开发技术中,微软公司.NET技术以其较高的性能、可靠的安全性、跨平台运行以及易上手而受到广大开发人员的喜爱;在服务器方面选用的是IIS,数据库方面SQL2000能够满足商业环境要求不同类型的数据库解决方案。现在它是一种技术成熟的、广泛应用的数据库管理系统,对于本系统来说,有着良好的性价比。因此在技术方面完全可以达到切实可行的效果。
1.3对新系统的要求调查
需求是用户对系统提出的要求,这些要求可能是原始的、笼统的或是抽象的、细节化的,但是一个软件系统的开发必须以一组需求化为出发点。需求分析过程,分析现有的系统,总结出新的系统功能。
2、功能需求
2.1功能划分
教务管理系统分为前台教务信息查询和后台教务信息管理两部分。后台管理包括用户管理模块、课程管理模块、班级管理模块、选课管理模块;前台教务信息查询部分包括教师信息查询模块和学生信息查询模块。
2.2功能描述
由于本系统的数据模块较多,下面仅以学生成绩管理模块为例来进行编制。
学生成绩管理系统0层数据流程图
学生成绩管理系统1层数据流程图
3、数据描述
3.1数据描述
对教务管理系统的设计建立在需求分析和系统分析的基础上。在本系统中,除了有学生、
班级、教师、和课程基本实体分别记录学生、班级、教师、课程的基本信息外,为了便于管理用户设计了用户实体,记录用户登陆系统时的用户名、密码、以及权限。同时由于学生选课和教师教课都应有记录而设计了学生选课和教师课程表的信息。
3.2数据库描述
数据模型设计。首先来做出学生成绩管理系统的E-R图,分析这个问题的实
体,从系统分析可以知道,学生的成绩是由任课教师按照课程给出的,学生、课程、教师组成了这个系统的三个实体。
再分析三个实体之间的联系。首先,这三个实体不是一个统一体,学生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联系,因而先不考虑。课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体“学生”和“成绩”共有的属性,应填在二者的联系“学习”边。因为成绩既不是学生独有的,也不是课程独有的;“学生甲70分”或“英语70分”是不完全的,说“学生甲英语70分”才是正确的,因为70分是学生甲和英语课二者共有的。这个E-R图可画成下图。
学生成绩管理系统中学生与课程的E-R图
教师与课程这两个实体之间,是一对多联系;一位教师可以都多门课程,而一门课程对于学生成绩来说只能有一位教师(英语、高等数学有多位教师教,但对某个固定的学生来说只能有一位教师)。其E-R图,如下所示。
教师与课程的E-R图组合到一起,得到最后的E-R图,有了E-R图,就可以设计数据库。下图为数据模型图。
实体模型
数据模型
3.3数据词典
数据字典是描述数据流图中数据的信息的集合。 它对数据流图上每一个成分:数据项、
文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
从上面数据流图可知,本系统包含以下数据流、数据存储、数据加工。 1、 数据流:
数据流名称:教务员登陆口令 数据流去向:核实信息 组成:登录帐号+密码
数据流名称:有效口令 数据流去向:管理信息操作 组成:登录帐号+密码+有效操作
数据流名称:有效操作 数据流去向:管理信息模块 组成:增+删+改+查
2、 数据存储:
数据存储名称:老师信息
简述:对老师的信息进行存储管理 组成:教师姓名+密码+教师基本信息 组织方式:索引文件,教师姓名为关键字 查询要求:要求能立即查询
数据存储名称:学生信息
简述:对学生的信息进行存储管理 组成:学号+密码+选课信息+成绩信息
组织方式:索引文件,学号为关键字 查询要求:要求能立即查询 数据存储名称:选课信息
简述:对学生所选择的课程信息进行存储管理 组成:课程+上课时间+上课地点 查询要求:要求能立即查询
数据存储名称:成绩信息
简述:对学生的考试信息进行存储管理 组成:考试地点+考试时间+监考老师 查询要求:要求能立即查询
数据存储名称:教务管理信息 简述:对学生的信息进行存储管理 组成:学号+密码+选课信息+成绩信息 查询要求:要求能立即查询
3、 数据加工
加工名:录入信息 编号:1.1
激发条件:接收到教师、学生的信息时 优先级:普通
输入:教师、学生信息 输出:无
加工逻辑:无
加工名:登录 编号:1.2
激发条件:进入本系统 优先级:普通 输入:用户信息
输出:登录成功或失败
加工逻辑:无
4、性能需求
4.1 数据精确度
由于采用数据库技术并且用户的应用领域对数据库精确度的要求不是太高,所以这点在系统中表现的比较少,但是用户数据的安全性与正确性是完全保证的,所以对用户的使用没有多大障碍。
4.2时间特性:
本系统的数据库较小,所以程序的响应时间,数据更新处理时间上性能是比较突出的。而且 也正由于数据量较少,故在数据传输时间和系统运行时间上的表现令人满意。
4.3适应性:
该软件是使用ASP.NET在WIN7系统下完成的,所以只要是兼容Windows的软件或操作系统都能正常运行,有较高的兼容性。
5、运行需求
5.1 用户界面
界面风格要统一,不需要华丽的页面设计,实现功能为第一 5.2 硬件接口 需要网卡连接互联网络。 5.3 软件接口
需要微软公司推出的WINDOWS系统
5.4 故障处理
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。调试中遇到的问题及解决的方案:
1) 遇到跳出“数据库已经关闭“提示信息阻止程序运行时,可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况下又一次运用打开语句打开此表。
2) 关于空记录带来的麻烦,有些空记录往往会使程序无法运行。此时你可用“if not is null”语句先判断一下是否为空记录,再操作。
5.5基本要求
服务器端硬件:CPU: P4 主频2.4GHZ以上;内存1GB以上;硬盘100GB以上
客户端硬件:CPU:Celeron 主频1.5GHZ以上;内存256MB以上;硬盘40GB以上 服务器端软件:操作系统WIN2000,数据库SQL2000,开发软件VS2005或以上版本。 客户端软件:操作系统WINXP,WIN7或以上版本,IE浏览器6或以上版本。
6、其他需求
正确性:按照需求正确执行任务,完成各个模块的相应要求。
健壮性:具有较高的容错能力和恢复能力。 可靠性:故障发生率每运行1000小时低于3次。
易用性:软件研制过程中形成的所有文档语言简练,前后一致,易理解无语句歧义。 安全性:软件数据应集中存放于总部的数据库服务器,客户端不保存任何业务数据。
三、总体设计
1、总体结构和模块外部设计 1.1功能结构
教务管理系统所必备的功能归纳为如图所示,其中每个功能都由若干相关联的子功能模块组成。
1.2模块设计
教师信息模块查询图:
学生信息模块查询图:
1.3总体结构设计
2、数据结构设计
3、数据库设计 3.1逻辑设计
用户表(用户名称,密码)主码为用户名称,符合三范式。
班级表(班级号,班级全称,所在系、所在学院、班主任号)主码为班级号,符合三范式。
学生信息基本表(学号,姓名,性别,学院名称,班号 ,入校日期 ,家庭住址),主码为学号,符合三范式。
课程信息表(课程编号 ,课程类型 ,分数)主码为课程编号,符合三范式。 教师信息表(教师编号,姓名,所在科室,联系电话)主码为教师编号,符合三范式。
成绩信息表(学号,课程编号)主码为学号,课程编号,符合BCNF。 教课信息表(教师编号,课程编号)主码为教师编号,课程编号,符合BCNF。
3.2物理设计
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。
4、外部接口设计 4.1用户界面
1)登陆界面:登陆界面具有自动导航功能,不同用户登陆将进入不同的系统功能界面,系统利用SESSION变量记录其用户号和身份,并伴随用户对系统进行操作的整个过程。
4.2软件接口
运行于WindowsXP及更高版本具有WIN32 API的操作系统之上。
4.3硬件接口
本软件不需要特定的硬件或硬件接口进行支撑。486以上PC机均可运行此软件。
5、出错处理设计
5.1 出错输出信息 5.2出错处理对策
正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。调试中遇到的问题及解决的方案:
1) 遇到跳出“数据库已经关闭“提示信息阻止程序运行时
可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况下又一次运用打开语句打开此表。 2) 关于空记录带来的麻烦
有些空记录往往会使程序无法运行。此时你可用“if not is null”语句先判断一下是否为空记录,再操作。
1. 联机事务处理(OLAP)是建立在TCP/IP 协议上,有多阶段事务处理响应控制,保证事务处理前后台一致性。
2. 数据库处理事务失败自动回滚技术,保证数据库表的数据一致性和完整性。 3. 重要数据的校验检查。
4. 各个子系统的操作监控,异常情况报告;并提供报表等跟踪记录。
5. 提供友好的用户界面和帮助信息及配合严格的检查,减少用户出错机会。)
6、维护设计
定期的对系统进行检查,定时进行数据库备份
四、详细设计
1、代码设计
学号是系统中一个基本数据项,也是一个重要的数据项。它是固定8位数字的数据项,它的一般格式是“AABBCDEE”,其意义是“AA”为年份编码,如98,99,用来表示学生的学级;“BB”为学院编码,表示学生所在学院;“C”为专业编号,表示学生所学专业,“D”为班级编码,“EE”为学生在班级的学号。学号是系统中学生的唯一标示。
其它代码如学院代码,专业代码和班级代码没有特殊的规定,教务人员可以自行使用一套可以唯一标示学院,专业和个班级的编码。教师代码及课程代码系统也没有做规定,但建议使用老师工号和学校的课程号
2、程序设计
2.1、功能模块说明:
1)学生信息管理界面:此页面主要负责所有学生的信息浏览,以及其他管理页面的链接
2)课程信息页面:教务员在此页面对课程信息进行编辑,教师进行课程安排任务
3)教师信息管理页面:可以对学生的信息进行修改
4)学生信息查询页面:学生进入系统才此页面操作
5)管理员页面:对整个系统进行管理
6)选课页面:学生根据课表进行选课操作
2.2、 算法:
在排课系统中,关键在于算法的选择,好的算法可以节省时间,提高效率。 本系统采用的是动态加权算法即贪婪算法,贪婪算法是一种不追求最优解,只希望得到较为满意的答案的方法。贪婪算法以当前情况为基础做最优选择,在解决排课冲突时,为减少贪婪算法缺点特在自动排课功能后加入手动排课,使用者客队不满意的课程再次调节。
2.3、程序逻辑
算法过程:
1初始化排课数组,课程申请数组 2赋初始权值并对课程申请数组排序
3将课程申请码按需排课,结果存储在排课数组中 4若全排完,则转6,否则计算并重新附相应权值 5对申请数组重新排序转3 6结束
2.4、 接口
本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面(如:输入界面、输出界面)。用户对程序的维护,最好要有备份。
2.5、测试要点:
鉴于本系统规模不是很大,因此系统的测试主要集中在4个封装基本功能的对象的代码测试和最后系统的总体测试。
代码测试主要是测试对象提供的接口运行是否正常,测试运行结果是否与期望相同。以及对象的接口的容错性。
总体测试主要是测试整个系统的运行正确性、可靠性和稳定性,其中正确性最主要。总体测试的内容包括使用本系统进行大量数据的录入,特别是边缘数据的录入测试。其次测试系统的查询和打印功能,测试其结果是否与预期相符。
五、系统实现
1)登陆界面代码:
protected void Btn_enter_Click(object sender, System.EventArgs e)
{
sms.user User = new sms.user();
bool isOk = User.Login(Tbx_userid.Text.Trim(),
Tbx_userpwd.Text.Trim());
if(isOk) {
string strconn =
System.Configuration.ConfigurationManager.AppSettings[
string strsql =
Session[
if((int)Session[
else if((int)Session[
Response.Redirect(
{
Response.Redirect(
}
else {
Response.Redirect(
} else {
Lbl_note.Text=
}
}
2)教务员界面代码:
public partial class userlist : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e) {
// 在此处放置用户代码以初始化页面 if(!IsPostBack) {
private DataAccess DataAs;
if (Request.QueryString[
Lbl_show.Text =
string strsql =
values('
DataAs = new DataAccess();
bool Result = DataAs.ExecSql(strsql); if (!Result) {
Lbl_show.Text =
}
}
Bindgrid();
override protected void OnInit(EventArgs e) { }
private void InitializeComponent() { }
public void Bindgrid()
//
// CODEGEN:该调用是ASP.NET Web 窗体设计器所必需的。 //
InitializeComponent(); base.OnInit(e);
{
string strsql=
DataTable DT = DataAs.CreateDatatable(strsql);
}
GridView1.DataSource=DT;
GridView1.DataBind();
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) {
GridView1.PageIndex = e.NewPageIndex; Bindgrid(); }
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) {
GridView1.EditIndex = -1; Bindgrid(); }
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) {
string strsql =
bool Result = DataAs.ExecSql(strsql); if (Result) {
Lbl_show.Text =
} else {
Lbl_show.Text =
Lbl_show.Style[
Bindgrid(); }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) {
GridView1.EditIndex = e.NewEditIndex; Bindgrid();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {
GridViewRow gvr = GridView1.Rows[e.RowIndex]; string strsql =
bool Result = DataAs.ExecSql(strsql); if (Result) {
Lbl_show.Text =
Lbl_show.Text =
Bindgrid(); }
3)成绩录入界面代码:
protected void Btn_add_Click(object sender, System.EventArgs e)
{
string strsql =
Student_id='
Ddl_course.SelectedItem.Value +
DataAccess DataAs = new DataAccess(); bool Result = DataAs.ExecSql(strsql); if (!Result)
}
protected void Btn_exit_Click(object sender, System.EventArgs e) { }
//Response.Redirect(
Lbl_note.Text=
Lbl_note.Style[
}
{
string strsql=
System.Web.UI.WebControls.ServerValidateEventArgs args)
Student_id='
DataAccess DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(strsql);
}
protected void Tbx_studentid_TextChanged(object sender, {
if(DT.Rows.Count>0) { } else {
args.IsValid=false; }
args.IsValid=true;
System.EventArgs e)
//课程名称下拉列表框绑定 string mysql1=
DataAccess DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(mysql1); for (int i = 0; i
Ddl_course.Items.Add(new
ListItem(DT.Rows[i][1].ToString(),DT.Rows[i][0].ToString())); } }
4)添加课程信息界面代码:
private void Cv_id_ServerValidate(object source,
System.Web.UI.WebControls.ServerValidateEventArgs args)
{
string strsql =
Course_id='
DataAccess DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(strsql);
if( DT.Rows.Count != 0) { } else
args.IsValid=false;
}
protected void Btn_ok_Click(object sender, System.EventArgs e) {
}
args.IsValid=true;
string strsql =
course(Course_id,Course_name,Course_period,Course_credit,Course_kind,Course_describe) values('
Tbx_id.Text +
Ddl_kind.SelectedItem.Value +
DataAccess DataAs = new DataAccess();
bool Result = DataAs.ExecSql(strsql); if (Result)
}
protected void Btn_reset_Click(object sender, System.EventArgs e) { }
Response.Redirect(
}
Lbl_remind.Text=
5)添加学生信息界面代码:
public partial class addstudent : System.Web.UI.Page
{
protected void Page_Load(object sender, System.EventArgs e) {//班级名称下拉列表框绑定 if(!IsPostBack) {
string mysql=
private DataAccess DataAs;
DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(mysql); for (int i = 0; i
Ddl_class.Items.Add(new
ListItem(DT.Rows[i][2].ToString(),DT.Rows[i][0].ToString())); }
}
override protected void OnInit(EventArgs e) { }
private void InitializeComponent() {
this.Cv_id.ServerValidate += new //
// CODEGEN:该调用是ASP.NET Web 窗体设计器所必需的。 //
InitializeComponent(); base.OnInit(e); }
System.Web.UI.WebControls.ServerValidateEventHandler(this.Cv_id_ServerValidate);
}
protected void Btn_ok_Click(object sender, System.EventArgs e) {
string mysql =
student(Student_id,Student_name,Student_sex,Student_nation,Student_birthday,Sturdent_time,Student_classid,Student_home,Student_else) values('
Tbx_id.Text +
Ddl_class.SelectedItem.Value +
DataAs = new DataAccess();
}
public void insert() {
bool Result = DataAs.ExecSql(mysql); {
insert(); } else { }
Lbl_note.Text=
if (Result)
string strsql=
users(User_id,User_password,User_power)
values('
DataAs = new DataAccess();
bool Result = DataAs.ExecSql(strsql); if (Result)
{ } else { }
Lbl_note.Text=
Lbl_note.Style[
}
protected void Btn_reset_Click(object sender, System.EventArgs e) { }
private void Cv_id_ServerValidate(object source, {
Response.Redirect(
System.Web.UI.WebControls.ServerValidateEventArgs args)
string strsql =
DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(strsql);
}
if(DT.Rows.Count>0) { } else { }
args.IsValid=true; args.IsValid=false;
protected void Cv_id_ServerValidate1(object source, ServerValidateEventArgs args) {
}
6)课程分配界面代码:
public partial class assigncourse : System.Web.UI.Page
{
private DataAccess DataAs;
protected void Page_Load(object sender, System.EventArgs e) {
//教师名称下拉列表框绑定 if(!IsPostBack)
{
string mysql=
DataAs = new DataAccess();
DataTable DT = DataAs.CreateDatatable(mysql); for (int i = 0; i
Ddl_teacher.Items.Add(new
ListItem(DT.Rows[i][1].ToString(), DT.Rows[i][0].ToString())); }
//课程名称下拉列表框绑定
string mysql1=
DataTable DT2 = DataAs.CreateDatatable(mysql1); for (int i = 0; i
Ddl_course.Items.Add(new
ListItem(DT2.Rows[i][1].ToString(), DT2.Rows[i][0].ToString())); }
//班级名称下拉列表框绑定
string mysql2=
Ddl_class.Items .Add (new ListItem(
DataTable DT3 = DataAs.CreateDatatable(mysql2); for (int i = 0; i
Ddl_class.Items.Add(new
ListItem(DT3.Rows[i][1].ToString(), DT3.Rows[i][0].ToString())); }
}
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { }
private void InitializeComponent() { }
protected void Btn_ok_Click(object sender, System.EventArgs e) {
InitializeComponent(); base.OnInit(e); }
string strsql =
teacher_course(Record_id,Teacher_id,Course_id,Class_id,Course_year) values(
DataAs = new DataAccess();
bool Result = DataAs.ExecSql(strsql);
}
if (Result) { } else {
Lbl_note.Text=
Lbl_note.Style[
}
protected void TextBox1_TextChanged(object sender, EventArgs e) {
六、系统测试
1、测试方案
白盒测试技术(White Box Testing) 深入到代码一级的测试,使用这种技术发现问题最早,效果也是最好的。该技术主要的特征是测试对象进入了代码内部,根据开发人员对代码和对程序的熟悉程度,对有需要的部分进行在软件编码阶段,开发人员根据自己对代码的理解和接触所进行的软件测试。
黑盒测试技术(Black Box Testing)黑盒测试的内容主要有以下几个方面,但是主要还是功能部分。主要是覆盖全部的功能,可以结合兼容,性能测试等方面进行,根据软件需求,设计文档,模拟客户场景随系统进行实际的测试,这种测试技术是使用最多的测试技术涵盖了测试的方方面面,可以考虑以下方面:正确性 (Correctness)、可用性 (Usability)、边界条件 (Boundary Condition)。
2、测试项目说明
教务管理系统是学生网上自主选课以及教师的课程发布,教务管理员安排教学计划,实现学生的在线信息查询、选课功能以及教师对课程信息发布的管理等。使用教学计划管理系统,我们不需要浪费的大量的人力、物力资源和浪费时间以及在人为的统计过程中不可避免出现的差错等情况。随着高校人数的增多,这种弊端会越来越多的暴露出来。因此,使用教务管理系统,使学生只要在计算机前输入自己的个人选课信息即可完成原来几倍的作业量。从教师的角度来说,同样是节省了大量的工作量,由于教师提出代课申请完成课程发布的工作较学生选课而言更加的复杂,因此通过网上进行课程发布能大幅度的减少教师的工作量,减少错误的发生几率。作为教师,也只要使用教务管理系统进行操作即可,不用再奔波于教务处和办公室之间。
2.1测试项目名称及测试内容
1、对《教务管理系统》开发的代码分别进行单元测试,集成测试,系统测试,验收测试;
2、列出测试对象中可将接受测试或将不可接受测试的那些特性和功能; 3、对需求分析文档的测试,使撰写的需求文档尽量不会影响测试的设计、开发和实施。
2.2 测试用例
我们系统分为四个模块,每个模块有各自的功能,包括:管理员模块,教师模块,学生模块。下面就对学生管理模块部分用例进行测试
学生登录测试表
2.3步骤及操作
对整个系统得质量测试,使该系统的功能和性能能够达到正常,则必须做到以下: 1. 对系统每个功能的测试,单元测试,集成测试
2. 在各个模块集成之后对系统的测试,集成测试,系统测试 3. 所以得测试案例都已执行过 4. 所以得自动测试脚本已经执行通过
5. 所以得重要等级的Bug已经解决并由测试验证 6. 每一部分的测试等级被确认完成 7. 重要的功能没有Bug个 8. 进行回归测试
2.4允许偏差: 3、评价
通过测试,本系统完美的进行各类考验,并与设计时没有误差。
经过功能测试,我们对系统的功能未能全部实现,其中还生成了许多的Bug。出现以上的Bug,是因为sql2000里面的数据库连接错误导致数据丢失,需重新建立数据库,导入到数据库中去,问题解决,程序能够正常运行。
28
七、设计总结
教务管理系统开发完成后,由于开发设计的时间较短,所以说本系统的存在的问题
之一是作为一个学生管理能够运行的系统可能功能不够完善;存在的问题之二,学生成绩管理系统中的数据的不够安全。
本次实验设计使我深刻理解了在《教务管理系统》中所学的软件开发方法与开发技术,也使我懂得了一些软件文档资料写法的规范性。开发一个系统首先进行用户的调查、进行可行性研究,然后对系统进行的分析、进行系统设计、系统的实现,最后进行系统的测试并形成各种文档。
在本次毕业设计中遇到了许多的问题,带着这些问题,自己去寻找相应的资料,与同学相互讨论,最终问题得以解决,为自己以后进一步开发系统做了很好的示范。在这次实验设计和文档的写作过程中得到了指导老师大力帮助,在此深表谢意。
在以后的学习或工作的道路中,我会以最好的状态去面对每一个问题,以毕业设计的态度及方式来分析及解决相应的问题,把每件事都做到最好,同时也给自己留下宝贵的经验。
29
参考文献
[1]网络应用开发详解 江广顺等 人民邮电出版社 2007 [2]WEB程序设计 韩海雯等 人民邮电出版社 2011 [3]实用软件工程 殷人昆等 清华大学出版社 2011 [4] ASP.NET开发实战宝典 张跃廷 清华大学出版社 2010 [5]C#.NET程序设计案例集锦 周峰等 中国水力水电出版社 2009 [6] ASP.NET程序设计教程 田原 北方交通大学出版社 2004 [7] ASP.NET项目开发实战 陈娴 中国铁道出版社 2005 [8] ASP.NET实用教程 [9]数据库系统概论 [10] ASP.NET应用与开发
郑阿奇 王珊等 徐立 30
电子工业出版社 高等教育出版社 清华大学出版社 2005 2006 2005