《Jsp课程设计实验报告(共20页).doc》由会员分享,可在线阅读,更多相关《Jsp课程设计实验报告(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 jsp程序设计 Jsp课程设计实验报告 题 目学生成绩管理系统专 业班 级姓 名指导教师 2011年6月28日目 录一、绪论1、系统开发背景 一直以来学生的成绩管理是学校工作中的一项重要内容,许多学校的学生成绩管理系统做得都相当的完善,但是随着办学规模的扩大和扩招,有些系统就会逐渐出现一些漏斗或者是不完善的地方。普通的成绩管理系统已经不能适应时代的发展,因为它浪费了许多的人力和物力,在当今信息时代这种传统的管理方法必然被以计算机为基础的管理系统所代替。为了提高成绩管理的效率,我选择了学生成绩管理系统作为jsp的课程设计。2、项目开发的目标 希望能做出一个完善的系统,
2、实现分类别的管理。能实现管理员、教师和学生三种身份的登录,同时也能实现各登陆身份的相关操作。3、系统开发所用的技术设备(1) 、数据库技术的现状与发展 数据库是在现在的无论大型系统还是小型系统中都频繁出现的一门计算机软件技术,数据库技术是信息系统的核心和基础,它的出现极大的促进了计算机应用向各行各业的渗透。(2) 、JSP 当前所做的系统无非都采用.net和jsp两种技术进行设计,它有很多的技术特征,如:跨平台、分离静态内容和动态内容、可重复使用的组建、沿用了Java Servlet的所有功能及能预编译。二、需求分析1、系统需求分析学生信息管理系统是对学生的基本信息和成绩信息进行管理,主要包括
3、添加、修改和删除学生的基本信息及课程的基本信息;录入、修改和删除学生的成绩信息,对基本信息、成绩信息进行查询、排序及统计等操作,从而实现学生信息管理的自动化与计算机化。本课题将实现一个简化的学生信息管理系统。IE等浏览器用户浏览器 web服务器 数据库服务器Tomcat返回操作结果使用数据库操作语言返回查询结果操作请求2、用户需求(1) 、学生的需求 、查询自己的基本资料查询自己的所有成绩,包括自己的平均成绩和总成绩。 、查询自己的所有成绩,包括自己的平均成绩和总成绩。 查询某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩。 、学生可以添加自己的基本信息。 (2) 、老师需求、查询某一学
4、生的所有成绩,平均成绩和总成绩。、查询某一学生某一科成绩,该科平均成绩,所在名次,最高成绩,最低成绩。 、录入成绩(自己所教授的那一科成绩) (3) 、管理员的需求、查询某一学生的所有成绩,平均成绩和总成绩。 、 查询某一学生某一科的成绩,该科平均成绩,所在名次,最高成绩,最低成绩)。 、查询某一班级的成绩(所有成绩,某一学期的所有成绩,某一学期的某一科目的所有成绩)。 、录入信息、修改信息和删除信息。3、系统框架图如下:查询信息查询信息添加信息管理员登陆信修改息查询信息学生登陆教师登陆学生成绩管理系统添加信息删除信息添加信息4、系统设计思想(1) 、采用现有的资源以及充分利用学校的现有资源,
5、减少开发中的财力以及无力和时间,提高系统开发的水平。(2) 、系统就满足学校的需求,例如成绩的录入、查询、更新、删除以及学生成绩的排名等操作。(3) 、系统具备数据库维护功能,及时根据用户需求进行数据跟新、删除、添加等操作。5、系统设计分析 该系统适用于各个学校,其功能主要为:成绩管理:用于对成绩的录入、修改、添加、汇总、排名以及查询等操作。三、数据库的设计1、本系统将数据存储在七个表中,这七个表分别是: (1)、 学生表(见下表):保存学生的基本信息,包括学生的姓名,登录系统时的密码,学生的学号,出生年月以及性别。学生表字段名称中文解释保存类型默认值长度可否为空主键sno学号varchar无
6、12否是name姓名varchar无24否否password密码varchar无24否否sex性别char(男或女)2否否Birthdate出生年月datetime无否否 (2)、 教师表(见下表):保存教师的信息,包括教师的教师编号,登录系统系统时的用户名和密码。教师表字段名称中文解释保存类型默认值长度可否为空主键Tno教师编号varchar无12否是name登录名varchar无24否否password密码varchar无24否否(3)、班级表(见下表):保存班级的编号及班级的名称。班级表字段名称中文解释保存类型默认值长度可否为空主键classesnum班级编号varchar无12否是cl
7、asses 班级名称varchar无24否否 (4)、 教师所担任课程的表(见下表):保存教师编号,所教科目和班级名称。教师所担任课程的表字段名称中文解释保存类型默认值长度可否为空主键Tno教师编号varchar无12否是subject所教科目varchar无24否否classes班级名称varchar无24否否 (5)、 管理员表(见下表):保存管理员的编号,登录系统时的用户名和密码。管理员表字段名称中文解释保存类型默认值长度可否为空主键Mno管理员编号varchar无12否是name用户名varchar无24否否password密码varchar无24否否 (6)、成绩表(见下表):保存有
8、关学生的成绩的一些信息,本系统主要是对于该表的操作。成绩表字段名称中文解释保存类型默认值长度可否为空主键sno学号varchar否12否是name 课程名称varchar否24否否classes班级varchar否24否否property科目性质varchar否24否否term学期varchar否24否否terchar教师名称varchar否14否否grade成绩int否否否(7)、课程表(见下表):保存有关学生的课程的一些信息。课程表字段名称中文解释保存类型默认值长度可否为空主键cno课程号varchar无12否是cname课程名varchar无24否否Tname教师姓名varchar无24
9、否否score学分varchar无4否否2、建立数据库的命令如下:Create database Studentmange3、建立数据表的命令如下:(1)、建立学生表-create table Student(-sno varchar(12) primary key not null,-name varchar(24) not null,-password varchar(24) not null,-Sex char(2) check(Sex in(男,女),-Birthdate datetime not null,-);(2)、建立教师表-create table teacher(-Tno
10、varchar(12) primary key not null,-name varchar(24) not null,-password varchar(24) not null,-);(3)、建立班级表-create table classes(-classesnum varchar(12) primary key not null,-classes varchar(24) not null,-);(4)、建立教师所教科目表-create table teacher_subject(-Tno varchar(12) primary key not null,-subject varchar
11、(24) not null,-classes varchar(24) not null,-foreign key(Tno)references teacher(Tno),-);(5)、建立管理员表-create table manage(-Mno varchar(12) primary key not null,-name varchar(24) unique not null,-password varchar(24) not null,-);(6) 、建立成绩表-create table score1(-sno varchar(12),-cno varchar(12),-classes v
12、archar(24) not null,-term varchar(24) not null,-grade int check(grade between 0 and 100),-primary key(sno,cno),-foreign key(sno)references Student(sno),-foreign key(cno)references course(cno),-);(7) 、建立课程表-create table course(-cno varchar(12) primary key,-Tname varchar(24) not null ,-cname varchar(2
13、4) not null,-score varchar(4) not null,补充:因为在建立数据表当中的成绩表的时候,没有考虑周到那个成绩应该是只能在0-100之间取值,所以对成绩表(score)修改了约束条件,语句如下:alter table scoreadd constraint grade check(grade between 0 and 100);四、关键技术及代码 本系统在连接数据库的地方用了javabean,在留言板的那一部分应用了serverlet和dreamweave的一些相关知识,以及jsp的相关知识。 1、管理员登录代码 学生成绩管理系统body background-
14、color: #000;background-image: url(./images/%5B1%5D.jpg);body,td,th color: #F0C;学生成绩管理系统现在时间:用户名或密码错误,请重新登录!用户名:密 码:2、从数据库中获取用户名和密码的代码。 学生成绩管理系统 3、留言板的相关代码。(1) 、登录留言板的相关代码body,td,th color: #F0F;body background-color: #000;background-image: url(images/denglubeijing2.jpg); &nbs
15、p; 留言者: 留言标题: 留言内容: 查看留言 (2) 、编译的三个java程序 、serverletpackage liuyanban.servlet;import java.io.IOException;import java.util.ArrayList;import java.util.Date;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServ
16、letRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.yxq.toolbean.MyTools;import com.yxq.valuebean.WordSingle;public class WordServlet extends HttpServlet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Servle
17、tException, IOException doPost(request,response);protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /以下代码用来获取表单中字段内容并进行转码String author=MyTools.toChinese(request.getParameter(author);String title=MyTools.toChinese(request.getParameter(
18、title);String content=MyTools.toChinese(request.getParameter(content);/获取当前时间并格式化时间为指定格式String today=MyTools.changeTime(new Date();WordSingle single=new WordSingle();single.setAuthor(MyTools.changeHTML(author);single.setTitle(MyTools.changeHTML(title);single.setContent(content);single.setTime(today)
19、;HttpSession session=request.getSession();ServletContext scx=session.getServletContext();ArrayList wordlist=(ArrayList)scx.getAttribute(wordlist);if(wordlist=null)wordlist=new ArrayList();wordlist.add(single);scx.setAttribute(wordlist,wordlist);response.sendRedirect(show.jsp); 、toolbeanpackage liuya
20、nban.toolbean;import java.io.UnsupportedEncodingException;import java.text.SimpleDateFormat;import java.util.Date;public class MyTools /* * 功能 转换字符串中属于HTML语言中的特殊字符 * 参数 source为要转换的字符串 * 返回值 String型值 */public static String changeHTML(String source)String changeStr=;changeStr=source.replace(&,&);/
21、转换字符串中的“&”符号changeStr=changeStr.replace( , );/转换字符串中的空格changeStr=changeStr.replace(,<);/转换字符串中的“,>);/转换字符串中的“”符号changeStr=changeStr.replace(rn,);/转换字符串中的回车换行return changeStr; /* * 功能 将Date型日期转换成指定格式的字符串形式,如“yyyy-MM-dd HH:mm:ss” * 参数 date为要被转换的Date型日期* 返回值 String型值 */public static String c
22、hangeTime(Date date) SimpleDateFormat format=new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);return format.format(date);/调用format()方法格式化日期 public static String toChinese(String str) if(str=null)str=;try str=new String(str.getBytes(ISO-8859-1),gb2312); catch (UnsupportedEncodingException e) str=;e.printSta
23、ckTrace();return str; 、valuebeanpackage liuyanban.valuebean;public class WordSingle private String author;private String title;private String content;private String time;public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getContent() retur
24、n content;public void setContent(String content) this.content = content;public String getTime() return time;public void setTime(String time) this.time = time;public String getTitle() return title;public void setTitle(String title) this.title = title;五、测试1、登录界面的测试:如果用户名个密码正确就跳转到下面的页面:如果用户名和密码错误,则跳到如下
25、页面:2、查询页面:3、添加页面: 4、删除页面:5、修改页面六、总结在我的设计中遇到了很多以前没有遇到过的东西,可以说对我是很大的挑战,但是我通过努力,克服了不少难题,很多的问题都是要靠我们的教材来解决的,所以说课本还是要好好努力学的。从开始设计,到目前为止功能基本上都已经实现了。首先说一下需求分析,这一部很重要,一定要想好数据库需要的数据,及其功能。数据字典要准备充分。刚开始做第一个系统的时候就是需求分析没做好,导致最后无法实现相关数据库的查询,不得不从新分析在做数据库,这是以后概念设计等的重要依据。在设计过程中常常会遇到建立表与表之间关系时考虑的不完善而引起重复字段、索引约束等无法实现自己想要实现的设计在这样的情况下,只有一个办法,那就是不断的修改,不断的尝试,但也不是所有的错误都可以更改的了。但是由不得不提的是,有时候真的很奇怪,明明前一天晚上做出来修改了,第二天却又不可以了。但在开始serlvte总是把servlet的配置弄错,由于文件很多很难弄懂。在我的设计程序中,还有很欠缺的地方,这也是我还要努力的方向。七、参考文献 Jsp程序设计教程,Sql server,web课程设计。专心-专注-专业
限制150内