基于jsp的学生信息管理系统的开发与测试(含源文件)


获取项目源文件,联系Q:1225467431,可指导毕设,课设



武汉理工大学华夏学院
课程设计报告书
课程名称: 软件测试综合设计
题 目:基于jsp的学生信息管理系统的开发与测试
系 名: 信息工程系
专业班级: 软件工程1121
姓 名:
学 号:
指导教师: 钱小红
2015 年 9 月 9 日
课程设计任务书
学生姓名: 王定宏 专业班级: 软件1121
指导教师: 钱小红 工作单位: 信息工程系
设计题目:基于jsp的学生信息管理系统的开发与测试
初始条件:
要求有编程基础、数据库基础、界面设计基础、软件测试理论基础
要求完成的主要任务
主要任务:
选用一种自己熟悉的语言开发一个小型管理系统,要求系统必须实现用户登录模块、主要功能的增、删、改、查。实现后给出测试计划、至少给出两个主要模块的测试用例设计说明书,要求按照设计的测试用例进行测试,并给出测试总结报告。
提示:各类文档的格式要按照IEEE标准测试文档模板来写。IEEE标准测试文档模板可以参阅人民邮电出版社佟伟光主编的教材《软件测试》
设计报告撰写格式要求:
1设计题目与要求
2 设计思想
3系统结构
4 数据结构的说明和模块的算法流程图
5 使用说明书(即用户手册)、运行结果、关键界面截图
6 测试计划说明书、测试用例规格说明、测试总结报告
7 自我评价与总结
8 附录:程序清单,注意加注释(包括关键字、方法、变量等),在每个模块前加注释;
课程设计的步骤及时间进度、场地安排
本课程设计将安排在第一、二周, 教育技术中心211。时间进度具体安排如下:
11月9日:下发任务、找资料;
11月10日:完成系统的分析和设计工作;
11月11日~11月18日:完成系统开发及测试工作;
11月19日~11月20日:报告的写作及答辩验收,并将以上工作整理成为课程设计报告,于11月20日下午前提交课程设计报告。
时间、场地具体安排见下面表格:
9号上午 9号下午 10号上午 10号下午 11号上午 11号下午 12号上午 12号下午 13号上午 13号下午 16号上午 16号下午 17号上午 17号下午 18号上午 18号下午 19号上午 20号上午
现教 自习 现教 自习 自习 现教 现教 自习 现教 自习 现教 自习 现教 自习 现教 自习 现教 现教
设计报告撰写格式要求
要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于0.2万字(不包括附录)。第1级(章)题序和题名用黑体三号字;第2级(目)题序和题名用黑体小四号字;第3级(条)题序和题名用黑体小四号字;正文内容用宋体五号字(英文用新罗马体),多倍行距1.25。报告内容一律使用A4打印纸计算机打印,页码在页下居中标明。必须使用国家公布的规范字。页面设置:上空2.5 cm,下空2.0 cm,左空2.5 cm,右空2.0cm(左装订)。插图图面要整齐、美观,插图应与正文呼应,不能脱节。每幅插图应有图序与图题,图序编号要连续,图序与图题间空一格且要放在插图下方居中处。
课程设计考核及评分标准
课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。总分按五级记分法记载最后成绩:优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分),不及格(0~59分)
指 导 教 师 签 字: 钱小红 2015年 9月 11日
系 主 任 签 字: 邱珊 2015年 9月 11日
目录
TOC 1-3
HYPERLINK l _Toc20883 1设计目的 5
HYPERLINK l _Toc32285 2 开发环境和开发技术 5
HYPERLINK l _Toc2415 2.1开发环境: 5
HYPERLINK l _Toc12538 2.2开发技术 5
HYPERLINK l _Toc8647 3 需求分析 5
HYPERLINK l _Toc3395 4 总体设计 6
HYPERLINK l _Toc29847 4.1 系统功能 6
HYPERLINK l _Toc22255 4.2系统体系结构设计 6
HYPERLINK l _Toc26078 4.3数据库分析设计 7
HYPERLINK l _Toc23132 4.3.1实体属性定义 7
HYPERLINK l _Toc3952 4.3.2数据库逻辑结构设计 7
HYPERLINK l _Toc5431 4.4系统结构E-R图 10
HYPERLINK l _Toc13402 5 详细设计与实现 10
HYPERLINK l _Toc15709 5.1数据库的建立和连接 10
HYPERLINK l _Toc13201 5.2页面的设计 11
HYPERLINK l _Toc6120 5.2.1欢迎界面 11
HYPERLINK l _Toc26107 5.2.2登陆界面 11
HYPERLINK l _Toc23214 5.2.3新用户注册界面 12
HYPERLINK l _Toc12093 5.2.4主页面 13
HYPERLINK l _Toc27463 5.2.5更新页面 15
HYPERLINK l _Toc21751 6 系统功能测试 15
HYPERLINK l _Toc7598 6.1白盒测试 15
HYPERLINK l _Toc21671 6.1.1 程序流程图 16
HYPERLINK l _Toc21776 6.1.2 控制流程图 16
HYPERLINK l _Toc6600 6.1.3 程序环路复杂性 17
HYPERLINK l _Toc6137 6.1.4 独立路径集合 17
HYPERLINK l _Toc7624 6.1.5 测试用例 18
HYPERLINK l _Toc6890 6.2黑盒测试 18
HYPERLINK l _Toc2244 7 总结 19
1设计目的
本系统是针对学生信息管理进行设计的。主要采用的开发工具是Myeclipse10和oracle数据库。在开发过程中利用面向对象的程序思想和严格按照软件工程的开发过程来进行分析和设计。本系统所要完成以下几个主要功能,其中有学生基本信息管理,实现对学生基本信息进行录入、修改、删除等操作。
2 开发环境和开发技术
2.1开发环境:
Myeclipse10、oracle 11g、tomcat
2.2开发技术:
本系统采用的是Myeclipse作为前台开发工具,oracle作为后台数据库。学生信息管理系统以java、html的语言作为前台的开发环境,服务器选用tomcat,后台数据库选用oracle数据库,实现了注册,登录,学生管理等。采用了jsp的相关知识,例如:动态网页基础知识、JSP基础、JSP指令和脚本元素、JDBC、JSP处理客户端请求、会话和访问控制等。
3 需求分析
运用Java Web MVC多层架构技术(JSP+Servlet+JavaBean)和JDBC数据访问技术设计和开发一个学生信息管理系统,实现注册、登录以及学生信息的浏览、查询、添加、更新、删除等基本功能。
具体要求如下:
(1)界面简单实用,美观大方。要求使用CSS+DIV进行页面布局和样式控制。具体要求如下:
a. 系统首先进入欢迎页面。在欢迎页面中,要有系统名称,学生姓名,学号和班级。从欢迎页面点击链接进行登陆界面。
b. 进入登陆界面后的流程自行设计。
(2)所采用的数据库管理系统课自行决定。
(3)系统必须实现注册、登录和信息的查询、添加、修改和删除等基本功能。
(4)信息查询必须实现分页功能。
4 总体设计
4.1 系统功能
本系统主要完成对学信息的管理:添加、修改、删除、查询等方面,系统可以完成对信息的浏览、查询、添加、删除、修改等功能。根据需求分析的结果,将学生信息管理系统分为:注册信息、登录信息、增删信息等几个模块,在此基础上建立各自所需要的数据表,构成整个系统的基本框架。该数据库具有数据维护、查询、输出等功能。具体如下:
(1)学生查询功能:将所有信息输出并按学号排列。
(2)添加功能:添加学生信息并录入数据库中。
(3)修改功能:可以对数据库中的信息进行修改。
(4)删除功能:可以对数据库中信息进行删除操作。
4.2系统体系结构设计
4.3数据库分析设计
得出数据表的各个关系模式后,需要给出是各数据表结构。考虑系统的兼容性及编写程序的方便性,可将关系模式的属性对应为表字段的英文名。同时,考虑到数据依赖关系和数据完整性,需要指出表的主码和外码,以及字段的值域约束和数据类型。
4.3.1实体属性定义
用户信息(姓名,密码,性别,邮箱,基本信息)
user_name nvarchar2(15),
user_password nvarchar2(15),
user_sex char(2),
user_email varchar2(50),
user_basicinfo varchar2(50)
4.3.2数据库逻辑结构设计
用户信息表
create table User_Table(
user_name nvarchar2(15) primary key,
user_password nvarchar2(15),
user_sex char(2),
user_email varchar2(50),
user_basicinfo varchar2(50)
);
学生信息表
create table Student_Table(
student_id number(6) primary key,
student_name varchar2(18),
student_sex char(2),
student_birthday varchar2(10),
student_dept varchar2(18),
student_major varchar2(18),
student_classid varchar2(10)
);
记录修改内容表
create table record(
content vaechar2(50),
rtime timestamp
);
触发器设计(记录修改数据修改之前的内容)
create trigger update_Student_Table_trigger
after update
on Student_Table
for each row
begin
insert into record values
(执行了update操作。执行该操作前的数据为:student_id= || :OLD.student_id|| , student_name = || :OLD.student_name || ,student_sex= || :OLD.student_sex
|| ,student_birthday = || :OLD.student_birthday|| ,student_dept = || :OLD.student_dept|| ,student_major = || :OLD.student_major|| ,student_classid = || :OLD.student_classid,
sysdate
);
end update_Student_Table_trigger;
/
通过学号查询姓名(函数)
create function get_sname(sid number)
return varchar2 as
sname Student_Table.student_name%type;
begin
select student_name into sname from Student_Table where student_id=sid;
return sname;
end get_sname;
/
4.4系统结构E-R图
5 详细设计与实现
5.1数据库的建立和连接
conn / as sysdba
//创建表空间(表名:studentinfo):
create tablespace studentinfo
datafile f:studentinfo size 100m
autoextend on next 5m maxsize unlimited;
//创建用户(用户名:zhangsan;密码:123456):
create user zhangsan identified by 123456
default tablespace studentinfo
temporary tablespace temp
quota 20m on studentinfo;
//为用户授予DBA权限
grant DBA to user3;
//让用户连接数据库
conn zhangsan /123456;
5.2页面的设计
5.2.1欢迎界面
用户进入首先看到的界面,点击跳转到登陆界面。
5.2.2登陆界面
用户输入用户名和密码进行登陆的界面,通过zhangsan/123456连接oracle数据库并判断用户名密码是否在数据库内。
部分代码如下:
Connection con = null;
final String driverClass = oracle.jdbc.OracleDriver;
final String connStr = jdbc:oracle:thin:@//localhost:1521/orcl;
try {
Class.forName(driverClass);
System.out.println(数据库驱动程序加载成功!);
con = DriverManager.getConnection(connStr,zhangsan,123456);
System.out.println(数据库连接成功!);
5.2.3新用户注册界面
注册新用户的界面,注册时要判断用户名密码是否符合要求以及其他信息是否符合设定的格式。
邮箱验证代码如下:
function checkEmail() {
var email = document.register.userEmail.value;
var reg2=/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/;
if(reg2.test(email)){
flag4 = true;
document.getElementById(errEmail).style.display = none;
}
else {
flag4 = false;
document.getElementById(errEmail).style.display = block;
}
}
5.2.4主页面
显示学生信息的界面。要求有更新删除信息功能和添加信息功能。
更新代码如下:
String studentID = request.getParameter(studentID);
String studentName = request.getParameter(studentName);
String studentSex = request.getParameter(studentSex);
String studentBirthday= request.getParameter(studentBirthday);
String studentDept = request.getParameter(studentDept);
String studentMajor = request.getParameter(studentMajor);
String studentClassID = request.getParameter(studentClassID);
StudentDTO student = new StudentDTO();
student.setStudent_id(studentID);
student.setStudent_name(studentName);
student.setStudent_sex(studentSex);
student.setStudent_birthday(studentBirthday);
student.setStudent_dept(studentDept);
student.setStudent_major(studentMajor);
student.setStudent_classid(studentClassID);
//定义转发页面
String forward = null;

// 创建模型对象
UserDAO udao = new UserDAO();
//调用模型对象的业务方法来判断登录的用户是否有效
boolean b = udao.updateStudent(student);

HttpSession s = request.getSession();
if (b) {
s.setAttribute(info, 更新成功);
forward = information;
}
else {
s.setAttribute(info, 更新失败);
forward = main.jsp;
}

5.2.5更新页面
对学生信息进行更新的页面
6 系统功能测试
6.1白盒测试
用基本路径测试法测试注册账户信息时判断两次密码是否一致的功能。
//判断密码是否一致
function checkPwd1()
1) {
//判断密码是否一致,首先要获取到密码的值
2) var p = document.register.userPwd.value;
3) var p1 = document.register.userPwd1.value;
4) if(p == p1)
5) {
6) alert(密码一致);
flag3 = true;
7) }
8) else{
9) alert(两次密码不一致);
flag3 = false;
10) }
11) }
6.1.1 程序流程图
6.1.2 控制流程图
6.1.3 程序环路复杂性
其环路复杂性为2。
6.1.4 独立路径集合
根据上面的计算方法,可得出2个独立的路径。V(G)值正好等于该程序的独立路径的条数。
1)路径1:1-2-3-4-5-6-7-11
2)路径2:1-2-3-4-8-9-10-11
6.1.5 测试用例
序号 路径 输入密码 输入确认密码 预期结果 实际结果
1 路径1 123456 123456 密码一致 密码一致
2 路径2 123456 123 两次密码不一致 两次密码不一致
6.2黑盒测试
用等价类划分法测试用户名的注册。本系统注册时对用户名长度的要求为2到6位。其有效等价类和无效等价类如图所示。
2 6
无效等价类 有效等价类 无效等价类
用户名长度 < 2 2=<用户名长度 =< 6 6<用户名长度
等价表
输入条件 有效等价类 无效等价类
用户名 2<=用户名长度<=6 用户名长度<2或长度>6
测试用例
测试值 预期结果 实际结果
1 无效用户名 无效用户名
123 有效用户名 有效用户名
7 总结
这次课程的主要内容是设计一个简单的信息系统。在开发过程中,我认识到:要制作一个独具一格的网站一定方法与技巧是必要的;以前老是觉得自己什么东西都会,什么东西都懂,一到实践应用中,什么技巧也没用上,常因为一点小错误而前功尽弃,这才发现,原来是自己眼高手低了。虽然系统的基本功能都已实现,但还是存在系统不稳定等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助。我正在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,之所以能够顺利实现基本功功能,离不开老师和同学的大力相助。通过本次系统设计与开发,让我学到了很多,不仅加深了我在大学四年所学的理论知识的理解和对语言开发的各项技术的应用,更让我学到了很多深层次的软件开发技术,事实证明,只靠自己是不能顺利完成一套功能完整的系统的,必须充分利用团队的力量。学校安排了实训,我利用机会给自己巩固知识、加深开发经验,使理论与实践相结合。另外,这次课设也让我明白了学习是一个长时间慢慢积累的过程,我想在以后的工作、生活中都应该不断的学习,努力提高自己的知识与综合素质。
设计过程中现场提问(或答辩)记载:插入一条记录的命令是什么?答:insert into 表名 values(值1,值2,…….);2.触发器的作用,什么时候用触发器?答:触发器是可以由事件来启动运行的,存在于数据库服务器中的一个过程。它的作用:可以实现一般的约束无法完成的复杂约束,从而实现更为复杂的完整性要求。3.白盒测试中基本路径测试法共有几步?答:1)画出程序控制流图2)计算程序环路复杂性 3)确定独立路径集合4)准备测试用例
指导教师评语: 成绩评定: 指导教师(签名): 年 月 日
学生信息管理系统
用户登录
登陆成功
注册新用户
删除学生信息
添加学生信息
修改学生信息
信息查询
性别
邮箱
密码
姓名
备注
用户
学号
班级
管理
姓名
系别
学生
专业
性别
生日
1
2
4
11
10
9
8
7
6
5
3
1
2
3
4
5
8
6
7
9
10
11
18
19
获取项目源文件,联系Q:1225467431,可指导其它毕设,课设

猜你喜欢

转载自blog.csdn.net/u010783228/article/details/86438968