目 录
摘要 I
Abstract II
第1章 绪论 1
1.1 课题背景 1
1.2 目的和意义 1
1.3 系统设计思想 2
第2章 可行性分析 3
2.1 管理可行性 3
2.2 经济可行性 4
2.2.1 系统初期投资 4
2.2.2 系统货币的时间价值 4
2.2.3 投资回收期 5
2.2.4 纯收入 5
2.3 技术可行性 5
2.4 运行可行性 6
2.5 本章小结 6
第3章 需求分析 7
3.1 MIS系统的产生和发展情况 7
3.2 基于Web的在线选课系统的需求分析 7
3.2.1 业务流程图 8
3.2.2 数据流图 8
3.2.3 数据字典 9
3.3 本章小结 14
第4章 总体设计 15
4.1 系统模块总体设计 15
4.1.1 系统各模块具体功能设计 15
4.1.2 系统功能模块图 16
4.2 数据库设计 17
4.2.1 数据库设计概述 17
4.2.2 数据库设计注意事项 17
4.2.3 关系范式的设计 17
4.2.4 系统E-R图 18
4.2.5 数据库表的设计 19
4.3 本章小结 21
第5章 详细设计与实现 22
5.1 系统开发工具及简介 22
5.2 系统运行环境 23
5.3 详细设计的任务与原则 23
5.4 代码设计 24
5.5 系统界面设计与实现 25
5.5.1 输出设计 25
5.5.2 输入设计 30
5.6 本章小结 37
第6章 软件测试与性能分析 38
6.1 为什么要进行软件测试 38
6.2 软件测试 38
6.3 系统测试 40
6.4 本章小结 41
第7章 系统主要功能使用说明 42
7.1 系统登录 42
7.2 学生选课 42
7.3 课表打印 43
7.4 设置选课时间段 44
7.5 本章小结 45
结论 46
致谢 47
参考文献 48
附录1 49
附录2 54
第3章 需求分析
3.1 MIS系统的产生和发展情况
管理信息系统也就是我们常说的MIS其英文全称为(Management Information System),是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统,是一门新兴的科学,其主要任务是最大限度利用现代计算机及网络通讯技术加强企业信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。
无论采用何种方法开发管理信息系统,系统分析工作都是十分重要的环节。软件的需求分析是软件生存周期中重要的一步,只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础。
软件需求分析工作是软件计划阶段完成之前开始的,其主要目的是:要综合分析用户对系统提出的需求(功能、性能、数据等方面)的基础上,构造一个从抽象到具体的逻辑模型表达软件将要实现的需求,并以“软件需求规格说明书”的形式作为本阶段工作的结果,为下一阶段的软件设计提供设计基础。
3.2 基于Web的在线选课系统的需求分析
需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程。从广义上理解:需求分析包括需求的获取、分析、规格说明、变更、验证、管理的一系列需求工程。狭义上理解:需求分析是指系统的分析、定义过程。
简言之,需求分析的任务就是解决“做什么”的问题,就是要全面地理解用户各项要求,并准确地表达所接受的用户需求。需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审。
用户需求分析的编写是软件工程中的非常关键的一个环节,用户需求分析也是软件工程中的非常重要的一个文档。一个好的用户需求分析不但能够提高软件开发的效率、保障软件开发的质量,而且有利于系统的验收和以后软件的维护及扩充。
软件需求分析分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段需求分析人员需要确定整个产品的功能要求,并且将现实事务抽象成对象并建模。
3.2.1 业务流程图
在线选课系统业务流程图描述为:学生将选课信息传送给课程安排负责人,教师将课程信息传送给课程安排负责人,教务处将课程信息表、学生信息表、教师信息表、课程安排信息表、学生选课表一系列信息传送给课程安排负责人,然后课程安排负责人汇总后再将学生选课表送到教务处。
在线选课系统业务流程图如图3-1所示。
图3-1 在线选课系统业务流程图
1.课程删除主要实现代码(触发器):
ALTER TRIGGER [dele]
ON [dbo].[course]
instead of DELETE
AS
BEGIN
delete from stucourse where c_no=(select c_no from deleted )
delete from courseTime where c_no=(select c_no from deleted)
delete from course where c_no=(select c_no from deleted)
END
2.学生选课模块主要实现代码:
protected void Linkadd_Click(object sender, EventArgs e)
{
string sql = "select count(s_no) from stucourse where s_no like'" + Session["userID"].ToString().Trim() + "' and c_no in(select c_no from course where course_lx='选修课')";
DataSet ds = Db.ExecuteSelectSql(sql);
int ncourse = 0;
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
ncourse = (int)ds.Tables[0].Rows[0][0];
}
if (ncourse >= 3)
{
Response.Write("<script language='javascript'>alert('您已选选修了3门课程,不能再选修了!')</script>");
return;
}
else
{
string cid = cno.Text.ToString();
string sqll = "select * from stucourse where c_no='" + cid + "' and s_no='" + Session["userID"].ToString() + "'";
DataSet dss = Db.ExecuteSelectSql(sqll);
bool bj = false;
if (dss != null && dss.Tables.Count > 0 && dss.Tables[0].Rows.Count > 0)
bj = true;
if (bj)
{
Response.Write("<script language=javascript>alert('您已经选了该门课程了!!')</script>");
return;
}
else
{
Insertclass();
}
}
}