《JAVA WEB程序设计》报告材料.docx
《《JAVA WEB程序设计》报告材料.docx》由会员分享,可在线阅读,更多相关《《JAVA WEB程序设计》报告材料.docx(17页珍藏版)》请在冰豆网上搜索。
《JAVAWEB程序设计》报告材料
南京晓庄学院
《JAVAWEB程序设计》
课程报告
题 目:
《学生成绩管理系统》
姓名:
戴佳伟
学号:
14552019
班级:
14软件工程3班
完成时间
成绩:
数学与信息技术学院
2016年5月
1.系统需求分析
本系统模拟学校对日常教务信息管理过程,开发学生信息管理系统。
该系统可实现对教务资源中的学生信息、教师信息、课表信息、课程信息四个模块进行查询及处理操作。
系统面向的用户分为:
管理员、教师、学生。
根据访问角色的不同,在系统中应体现出对教务资源的访问的权限的不同,其中管理员权限最大,拥有增、删、改、查的权限,而教师和学生角色仅拥有查及限制性的增、改权限,因此在这里需要对系统进行需求分析。
系统功能模块分为六大模块,它们包括:
1.登录模块
该模块实现用户登录、密码修改功能。
用户可选择管理员、教师或学生身份进行登录,并可修改登录密码。
2.学生信息管理
该模块实现学生信息查询、学生信息添加、学生信息修改、学生信息删除功能。
3.教师信息管理
该模块实现教师信息查询、教师信息添加、教师信息修改、教师信息删除。
4.课程信息管理
该模块实现课程信息查询、课程信息添加、课程信息修改、课程信息删除。
5.选课信息管理
该模块实现学生选课查询、学生选课添加、学生选课删除、学生选课修改。
6.成绩信息管理
该模块实现学生成绩查询、学生成绩修改、学生成绩录入、学生成绩删除。
1.管理员功能需求:
学生信息管理:
包括学生信息查询、学生信息添加、学生信息修改、学生信息删除
教师信息管理:
包括教师信息查询、教师信息添加、教师信息修改、教师信息删除
课程信息管理:
包括课程信息查询、课程信息添加、课程信息修改、课程信息删除
选课信息管理:
包括学生选课查询、学生选课添加、学生选课删除
成绩信息管理:
包括学生成绩查询、学生成绩修改、学生成绩录入
2.教师功能需求:
教师信息管理:
教师信息查询
课程信息管理:
教师任课信息查询
成绩信息管理:
学生成绩查询、学生成绩修改、学生成绩录入
3.学生功能需求:
学生信息管理:
学生信息查询
选课信息管理:
学生选课信息查询
成绩信息管理:
学生成绩查询
2.相关技术与原理介绍
(对Tomcat、MySQL、JSP、JDBC、JAVABEAN等技术进行简要介绍)
1.Tomcat:
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
2.MySQL:
MySQL是一个关系型数据库,由瑞典 MySQLAB公司开发,目前属于 Oracle 旗下公司。
MySQL最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。
MySQL软件采用了双授权政策(本词条"授权政策"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。
3.JSP:
JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
4.JDBC:
JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
5.JAVABEAN:
JavaBean是一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。
JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。
众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现和操作这些JavaBean的属性。
3.系统分析与设计
3.1系统功能分析
(分析系统功能并给出系统功能结构图)
一:
系统功能:
1.管理员功能需求:
学生信息管理:
包括学生信息查询、学生信息添加、学生信息修改、学生信息删除
查询可以查询到学生的学号,姓名,性别,年龄,分页显示内容;删除可以根据学生的学号进行删除,选择一个学号然后删除整条记录。
教师信息管理:
包括教师信息查询、教师信息添加、教师信息修改、教师信息删除
查询可以查到教师的教师号,姓名,性别,职位,分页显示内容;修改和删除都是根据教师号,修改和删除整条教师记录。
课程信息管理:
包括课程信息查询、课程信息添加、课程信息修改、课程信息删除
查询可以查到课程号,课程名,学分和教师编号;删除和修改都是根据课程号进行删除和修改。
选课信息管理:
包括学生选课查询、学生选课添加、学生选课删除
查询可以根据学生学号来进行查看学生的序号,学号,姓名,课程号,课程名,学期;删除也是根据学生学号进行逐条删除。
成绩信息管理:
包括学生成绩查询、学生成绩修改、学生成绩录入
成绩查询可以查询到学生的序号,学号,课程号,成绩。
2.教师功能需求:
教师信息管理:
教师信息查询
课程信息管理:
教师任课信息查询
成绩信息管理:
学生成绩查询、学生成绩修改、学生成绩录入
3.学生功能需求:
学生信息管理:
学生信息查询
选课信息管理:
学生选课信息查询
成绩信息管理:
学生成绩查询
二:
系统功能结构图
3.2系统结构分析
(对系统的目录结构及分层结构进行分析与说明)
项目总体结构设计
Java类存放于src目录,样式文件、图片资源、Jsp文件存放于WebRoot目录,目录结构如下图:
2.包结构设计
包名称
作用
bean
DBConnectionManager获取并返回数据库连接
vo
包括Student学生、Teacher教师、Course课程、Score分数的JAVABEAN类,可实现各自的set与get方法
dao
包括LoginDao、StudentDao、TeacherDao、CourseDao、ScoreDao的JAVABEAN组件,实现对数据库的访问操作
servlet
包含各业务的控制器组件
3.项目结构设计
文件及目录名称
作用
css
系统样式文件目录
image
系统图片目录
studentEntry
学生权限访问资源目录
studentManage
管理员权限访问资源目录
TeacherEntry
学生教师权限访问资源目录
Index.jsp
系统入口,提供登录界面
loginAction.jsp
登录处理程序
Logout.jsp
登录注销处理
3.3数据库设计
(对数据库进行逻辑设计,对各表结构进行说明)
学生表:
学号,姓名,性别,年龄
教师表:
教师编号,姓名,性别,职称
课程表:
课程编号,课程名,学分,教师编号
选课表:
编号,学号,课程号,学期,分数
成绩表:
编号,学号,课程号,类型,分数
学生表:
教师表:
课程表:
选课表:
成绩表:
4.系统实现
4.1教师信息管理模块实现
(分析各模块设计思路及实现流程,给出关键代码并对代码进行说明,并给出实现效果截图显示)
教师信息管理模块包括对教师信息的增删改查,查询部分显示教师的教师号,姓名,性别,职称;删除部分根据教师编号来进行删除;修改部分也通过选择相应的教师编号进行修改。
关键代码:
intintPageSize;//一页显示的记录数
intintRowCount;//记录总数
intintPageCount;//总页数
intintPage;//待显示页码
StringstrPage;
inti;
intPageSize=5;
这部分代码是对分页显示内容的展现,查询的时候可以分页显示查询的内容;
ArrayListal=tdao.getAllTeachers();
inti=0;
while(itea=(Teacher)al.get(i);
StringTNo=tea.getTeano();
这是通过选择一个教师号来删除整条教师记录;
<%StringTNo=null;
StringTname=null;
StringSex=null;
StringTitle=null;
Stringsql="select*fromt_teacher";
//ResultSetrs=stmt.executeQuery(sql);
ArrayListal=tdao.getAllTeachers();
inti=0;
while(itea=(Teacher)al.get(i);
TNo=tea.getTeano();
这部分代码,先选择一个编号,然后对空初值进行添加,因为其关联了数据库,所以能把信息添加进数据库;
functioncheck(){
if(addform.teano.value==""){
alert("教师号不能为空!
");
addform.teano.focus();
returnfalse;
}
if(addform.teaname.value==""){
alert("教师姓名不能为空!
");
addform.teaname.focus();
returnfalse;
教师号 |
|
姓名 | |
这部分代码给出判断,如果教师号为空,则显示“教师号不能为空!
”然后定义了教师号等的类型,输入相应的教师号等就能添加进数据库。
4.2成绩信息管理模块实现
<%=sco.getId()%> | <%=sco.getStuno()%> | <%=sco.getCourseno()%> | <%=sco.getScore()%> | 这段代码对成绩查询的编号,学号,课程号和成绩进行定义,显示结果如下图:
<%StringId=null;
StringStuno=null;
StringCourseno=null;
StringType=null;
StringScore=null;
Stringsql="select*fromt_score";
//ResultSetrs=stmt.executeQuery(sql);
ArrayListal=sdao.getAllScores();
inti=0;
while(isco=(Score)al.get(i);
Id=sco.getId();
这段代码先让用户选择一个id号,然后分别定义学号,课程号,类型,分数,并给定初值为0,然后关联数据库,使得输入进去的数据能添加进数据库;具体实现如下图:
if(parseInt(addform.score.value)<0){
alert("成绩不能小于0!
");
addform.score.focus();
returnfalse;
}
if(parseInt(addform.score.value)>100){
alert("成绩不能大于100!
");
addform.score.focus();
returnfalse;
这段代码对学生成绩的范围进行限制,一旦输入的成绩不在定义的范围内,就会出现报错提示,如下图:
若成绩在定义的范围内,就会添加成功,如下图:
5.总结与体会
5.1工作总结
(总结本次工作内容,收集开发过程中异常错误,对遇到的异常错误进行总结并说明是如何解决)
本次课程设计,我选择的是老师上课做过的学生信息管理系统,在上课做完的以管理员方式登录的学生信息登录的基础上,再增加了以管理员方式登录的教师信息管理,课程信息管理,选课信息管理,成绩信息管理,以及做了以教师方式登录的教师信息管理,课程信息管理,成绩信息管理。
虽说老师上课给了样板,但真正做起来的时候要自己修改的地方还是很多,在做课程设计的过程中遇到了很多问题,有的自己花了大量时间去解决,有的通过询问同学,有的通过询问老师来解决,最终完成了本次设计,
异常错误:
1.问题:
学生信息删除的时候下拉框中都是0001
解决方法:
在代码中加一个while型循环
2.问题:
在添加课程信息时添加不进去
解决办法:
使用js页面跳转的方法使页面跳转过去
3.问题:
一开始以为lookcourse是课程查询,结果出现了好多错误
解决办法:
再建一个查询课程的jsp,并添加Dao包和Vo包
4.问题:
教师信息删除的时候选择完之后删除不掉,出现500的错误
5.2改进设想
(分析系统存在不足,提出改进设想)
1.添加操作无需密码;删掉密码这一段代码。
2.修改成绩时根据学生学号来修改,而不是序号;可以把下拉框的代码运用到学号上,而不是序号上。
3.成绩查询时也可以根据学号,点击相应的学号查询相对应的学生的成绩;
4.删除课程信息时只显示删除成功,最好能把删除掉的具体的课程和其他信息显示出来。
5.系统中最好给出批量删除的功能;可以提供选择按钮,对选择的选项可以进行批量删除。
6.增加条件检索功能,例如可输入学生姓名或学号来检索该学生信息。
查询课程及成绩信息时可选择学号或学期来检索。
7.成绩查询时显示分页内容,但由于记录较多,一页显示5行记录显得有点少,要查找起来有点麻烦;可以在代码中设置一页显示多一点的记录,减少检索时间。