1 简介1.1 基本原则选课注册系统设计的明确目的是开发一个学生选课注册系统来模拟校园选课系统的运作,通过这一过程让学生了解与熟悉软件设计的基本过程,熟练掌握dreamweaver、rational rose、Java编程和数据库的运用。
1.2 简单的操作本软件面向的是选课的学生和注册课程的教师以及管理员,可能涉及到大量用户的使用,故而软件操作应尽量简单,以方便用户的使用。
1.3 合理的数据库设计如以上所说,本软件可能有大量用户同时使用,所以要求数据库应合理设计,如此才能安全、快速地读取或存放数据。
1.4 严谨的软件架构虽然本软件的最终目的仅仅只是为了让软件开发者熟悉软件开发过程和相关软件的使用,但既然是要开发一个软件,那么就必须要严谨地设计软件的架构。
1.5.1 假设用户能熟练使用教务网的选课系统本软件模拟教务网的选课系统操作过程,若是用户能熟练使用教务网的选课系统,则对于本软件的使用将能直接上手。
1.5.2 假设用户未曾使用过教务网的选课系统操作过程请参见附录:《软件操作手册》2系统需求分析2.1引言本次编写选课注册软件旨在熟悉Java、Jsp、Dreamweaver、Rational Rose、MySQL等软件的使用,同时体验软件工程项目的实施过程。
2.1.1 编写目的该文档讲述关于选课注册系统的功能和性能的需求,将作为该软件工程的系统设计阶段的设计依据。
本文档的预期读者是:●设计人员●开发人员●项目管理人员●测试人员●用户说明:a.软件名称:选课注册系统;b.本项目的任务提出者:石秀金;c.项目开发者:周青、陈效铭、余实、高祥、王永德。
2.1.3 引用标准《软件需求说明书》国家计算机标准和文件模版。
2.1.4 参考资料《UML系统建模基础教程》清华大学出版社《数据库系统原理》电子工业出版社以及网络资源。
2.2 任务概述2.2.1目标学生和老师可以方便选择课程,学生和教师可以查询各自的基本信息,管理员可以方便地管理系统的信息和运行。
●系统能够提供友爱的用户界面,使操作人员的工作量最大限度地减少;●系统具有良好的运行效率,能够达到提高效率的目的;●系统应有良好的可扩充性,可以容易地加入其他系统的应用;通过这个项目可以锻炼队伍,提高团队的开发能力和项目管理能力。
2.2.2用户特点本软件的最终用户将是学生、教师、教职工等教育机构的成员,只要能熟练使用Windows操作系统,便可轻松地使用本软件,若仍有困难,可参考附件:《操作手册》。
2.2.3假定和约束1.对于项目开发时间约束:项目实施时间为2012/6/11到2012/6/17日。
2.对于数据库的约束:每门课程的注册学生人数不能超过10人;每门课程的最终注册学生人数若少于3人,管理员应取消这门课程;……3.对于用户的约束:教师可以查看学生的公有信息;学生只能查看本人信息;管理员可以查看学生和教师的所有信息。
4.对于经费的约束:无经费支持。
2.3需求规定2.3.1对功能的规定1)学生⏹登录系统;⏹查看选课信息;⏹学生选定课程;⏹查看课程成绩;⏹查看课程目录;2)教师⏹登录系统;⏹查看任教课程信息;⏹查看学生选课信息;⏹管理成绩信息;⏹选择教授课程;3)管理员⏹登录系统;⏹学生信息管理;⏹教师信息管理;⏹课程信息管理;⏹修改登录密码;⏹选课系统管理;表1 学生、教师、课程注册员三类用户的基本功能2.3.2对性能的规定根据用户对本系统的要求,确定系统在响应时间、可靠性、安全等方面有较高的性能要求。
图1 选课注册系统主过程流程图1)精度本软件对输入精度无特殊要求,只要是标准键盘输入数据即可进行处理。
2)时间特性要求该软件必须在2012/6/17日前完成。
图2 软件开发任务时间分配3)灵活性a.简单的即时操作;b.可在Windows系列操作系统上正常运行;c.根据数据库信息自动更新软件界面;2.3.3输入输出要求表2 用户登录数据输入要求2.3.4故障处理要求a. 系统无法登录:重启系统,从新登陆;或向管理员求助;b. 课程注册人数未满,却无法选课:从新选课;或向管理员求助;c. 教师无法注册课程:检查课程是否已存在;重新注册课程;或向管理员求助。
2.3.5其他专门要求a. 安全保密要求:低。
b. 操作要求:易操作。
c. 运行环境要求:Windows系列操作系统,MySQL数据库,Myeclipse Java开发工具包, IE 8.0以上版本的浏览器。
3 系统设计3.1界面风格设计学生界面模仿东华大学教务网的选课注册系统,教师界面和管理员界面则在学生界面上进行细微调整,具体界面信息见系统实现部分。
3.2 数据库设计3.2.1 表的设计根据需求分析及文档“软件工程课程设计指导书2012.doc”进行数据库表单设计。
表3-1 学生用户表表3-2 教师用户表表3-3 管理员用户表表3-4 课程表表3-5 成绩单表表3-6 学生表数据其他表单及表单数据设计不再详述,见附件“选课系统.xls”。
3.2.2 ER图图3-1 ER图aER图a大致描述选课注册系统中教师、学生、课程表、成绩单之间的关系。
图3-2 ER图bER图b大致描述学生、管理员、教师之间的关系。
3.2.3 MySQL软件中的数据库设计3.3 UML建模3.3.1 用例图选课系统用例图用户登录维护学生信息管理员维护教师信息查看教师信息提交成绩教师查看学生信息查看课表学生查看成绩课程注册选择授课课程课程目录系统关闭注册收费系统图4-1 用例图图4-2 类图a图4-2 类图b图4-3 序列图3.3.4 活动图图4-4 活动图图4-5状态机图3.3.6 构建图University DB图4-6 构建图Client:BrowserStudent Administration<<Application>>NewProcessorStuden tSemin arSched uledbserver:AIXPresistence<<Infrastruct ...>>University DB<<database>>部署图图4-7 部署图附件文件“选课注册系统Rose 图.mdl ”中7张Rose 图都有画出。
3.4 数据结构图5-1 修改学生信息类public class changetechinfo extends HttpServlet;public class index2 extends HttpServlet;public class regadmin extends HttpServlet;public class regstu extends HttpServlet;……在文件中的每一个Java类都继承HttpServlet。
图5-2用户界面类这里是实现用户界面的类:public class User {private String id;private String bianhao;private String mingcheng;private String xuefen;public String getId() {return id;}public void setId(String string) {this.id =string ;} public String getbianhao() {return bianhao;}public void setbianhao(String bianhao) {this.bianhao = bianhao;}public String getmingcheng() {return mingcheng;}public void setmingcheng(String mingcheng) {this.mingcheng = mingcheng;}public String getxuefen() {return xuefen;}public void setxuefen(String string) {this.xuefen = string;}}图5-3a 数据库链接类这是链接数据库的类。
图5-3b 数据库操作类对数据库的操作。
4 系统实现4.1 重点和难点4.1.1 数据库链接public class ConnectToDb{private Connection conn = null;private String dburl = "jdbc:mysql://localhost:3306/tsys";private String dbdriver = "com.mysql.jdbc.Driver";public ConnectToDb(){try {Class.forName(dbdriver);} catch (ClassNotFoundException cnfe) {System.out.println(cnfe.getMessage());}}protected Connection getConn(){try {conn = DriverManager.getConnection(dburl, "root", "root123");} catch (SQLException sqle) {System.out.println(sqle.getMessage());}return conn;}}以上代码实现了与MySQL的链接。
4.1.2页面风格设计本软件模仿东华大学教务网系统界面。
图6 index主界面其他界面都与教务网系统类似,在此不作赘述。
以上jsp文件便是整个软件系统的功能界面。
4.1.3S ervlet编程图7 Servlet包Index2.java文件是Servlet包的主要代码部分,实现了index界面中用户注册或登录时的页面跳转功能。
4.1.4页面跳转功能图8-1 主页点击学生注册按钮跳转到注册界面:图8-2 学生注册界面注册完毕自动跳转到学生界面:图8-3 学生界面点击查看学生信息按钮,查看信息。
图8-4 学生个人信息界面界面跳转成功,但信息有冗余以及错误,这将在系统测试阶段得到修正。
4.1.5具体功能实现如4.1.4中所展示的学生用户注册与登陆界面便是具体功能实现。
图9-1 学生用户登陆用4.1.4中建立的用户登陆系统。
图9-2 学生界面以下是stu.jsp中对学生界面的设置:<td width="174" valign="top" bgcolor="D3E8FD"><br><div align="center"><table width="90%" border="0" cellspacing="12" cellpadding="0"><tbody><tr><td width="16"><img src="./d_files/icon1.gif" width="16" height="16"></td><td><a href=" viewinfo.jsp " >查看学生信息</a></td></tr><tr><td width="16"><img src="./d_files/icon1.gif" width="16" height="16"></td><td><a href=" viewkebiao.jsp ">查看课表</a></td></tr><tr><td width="16"><img src="./d_files/icon1.gif" width="16" height="16"></td><td><a href=" stusel.jsp " >选课</a></td> </tr><tr><td width="16"><img src="./d_files/icon5.gif" width="16" height="16"></td><td><a href=" viewscore.jsp " >查看成绩</a></td></tr><tr><td width="16"><img src="./d_files/icon5.gif" width="16" height="16"></td><td><a href=" stusel.jsp " >查看课程目录</a></td></tr></tbody></table></div></td>成功进入学生界面。