JAVAEE课程设计学生个人学分统计系统.docx
- 文档编号:12647951
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:28
- 大小:216.44KB
JAVAEE课程设计学生个人学分统计系统.docx
《JAVAEE课程设计学生个人学分统计系统.docx》由会员分享,可在线阅读,更多相关《JAVAEE课程设计学生个人学分统计系统.docx(28页珍藏版)》请在冰点文库上搜索。
JAVAEE课程设计学生个人学分统计系统
软件学院
课程设计报告书
课程名称JavaEE课程设计
设计题目学生个人学分统计系统
专业班级
学号
姓名
指导教师
2014年1月
目录
1设计时间1
2设计目的1
3设计任务1
4设计内容1
4.1数据库分析1
4.1.1E-R图1
4.1.2逻辑设计1
4.2程序流程的实现2
4.2.1程序流程图2
4.2.2程序关系层次图2
4.3系统代码实现2
4.3.1工程目录结构4
4.3.2实体类的实现4
4.3.3Action类的实现4
4.3.4JSP页面的实现4
4.3.5配置信息的实现4
4.3.6JAR包4
5程序测试20
5.1登录测试20
5.2查询测试20
5.3增加测试20
5.4删除测试20
6总结与展望23
参考文献24
1设计时间
2014年1月19号—2014年1月22号
2设计目的
JavaEE与中间件课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。
要求同学们对课程中所学习到的知识综合运用,开发有一定规模的JavaWeb程序。
利用所学JavaWeb程序设计知识,开发设计一套基于JavaEE平台的小型管理系统,掌握Struts2、Spring及Hibernate三大框架的配置和使用,巩固数据库基本操作,培养学生分析问题、解决实际问题能力。
3设计任务
(一)必备功能说明:
(1)功能描述:
用户以合法身份登录系统后,才能进行所有操作;用户可以添加、查看和删除课程信息(课程编码、课程名称、课程类别(选修和必修)、学分数);统计出自己添加的必修课的学分和选修课的学分。
(2)添加课程信息
(3)查看课程信息
(4)删除课程信息
(5)分别统计必修课和选修课的总学分
(二)开发语言与开发环境:
MyEclipse6.0、Java、数据库(mysql)、后台交互语言为Java。
采用Struts2和Hibernate组合框架设计。
4设计内容
4.1数据库分析
4.1.1E-R图
图4-1用户表E-R图
图4-2课程表E-R图
4.1.2逻辑设计
1.关系模式
user(username,password);
course(cid,cname,ctype,credit);
2.系统表
表4-1数据表course
列名
数据类型
长度
是否为空
含义
username
varchar
50
N
主键,用户名
password
varchar
50
Y
用户密码
表4-2数据表course
列名
数据类型
长度
是否为空
含义
cid
int
8
N
课程编码,主键,
cname
varchar
50
Y
课程名称
ctype
varchar
50
Y
课程类别
credit
int
8
Y
学分数
4.2程序流程的实现
4.2.1程序流程图
图4-3程序流程图
4.2.2程序层次关系图
图4-4层次关系图
4.3系统代码实现
4.3.1工程目录结构
图4-5工程目录结构
如图4-5,其中src目录下有Hibernate配置文件“hibernate.cfg.xml”和Struts2配置文件“struts.xml”;在com.hjg.action包下有数据库表user和course的实体类及其映射文件;在com.hjg.action包下有实现登录验证、查询、插入、删除的action方法;WebRoot目录下是实现程序的登录、插入等功能及返回页面。
4.3.2实体类的实现
1.本程序有两个实体类,代表用户信息的实体类的类名为“User”,它的实现代码如下:
publicclassUser{
privateStringusername;
privateStringpassword;
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
类User的映射文件为“User.hbm.xml”,它的关键代码如下:
xmlversion="1.0"encoding="utf-8"?
>
DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"忽略:
//
--
MappingfileautogeneratedbyMyEclipsePersistenceTools
-->
2.代表课程信息的实体类的类名为“Course”,它的实现代码如下:
publicclassCourse{
privateintcid;
privateStringcname;
privateStringctype;
privateintcredit;
publicintgetCid(){
returncid;
}
publicvoidsetCid(intcid){
this.cid=cid;
}
publicStringgetCname(){
returncname;
}
publicvoidsetCname(Stringcname){
ame=cname;
}
publicStringgetCtype(){
returnctype;
}
publicvoidsetCtype(Stringctype){
this.ctype=ctype;
}
publicintgetCredit(){
returncredit;
}
publicvoidsetCredit(intcredit){
this.credit=credit;
}
}
类Course的映射文件为“course.hbm.xml”,它的关键代码如下:
xmlversion="1.0"encoding="utf-8"?
>
DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"
"忽略:
//
--
MappingfileautogeneratedbyMyEclipsePersistenceTools
-->
4.3.3Action类的实现
1.验证登录信息的Action类的类名为“LoginAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中验证登录,它的实现代码如下:
publicclassLoginActionextendsActionSupport{
privateStringusername;
privateStringpassword;
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicStringexecute()throwsException{
Configurationcfg=newConfiguration();
SessionFactorysf=cfg.configure().buildSessionFactory();
Sessionsession=sf.openSession();
session.beginTransaction();
Queryquery=session.createQuery("fromUserasuwhereu.username='"+this.username+"'andu.password='"+this.password+"'");
Listlist=query.list();
if(list.size()==0)
{
return"error";
}
else
{
return"success";
}
}
}
2.查询课程信息的Action类的类名为“SelectAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中进行查询并返回结果,它的实现代码如下:
publicclassSelectActionextendsActionSupport{
publicStringexecute()throwsException{
calculate1();
calculate2();
return"select";
}
publicList
Configurationcfg=newConfiguration();
SessionFactorysf=cfg.configure().buildSessionFactory();
Sessionsession=session=sf.openSession();
Transactiontransaction=session.beginTransaction();
Queryquery=session.createQuery("fromCourse");
List
for(Courses:
list){
System.out.print(s.getCid()+"");
System.out.print(s.getCname()+"");
System.out.print(s.getCredit()+"");
System.out.println(s.getCtype());
}
mit();
session.close();
returnlist;
}
publicintcalculate1(){
intsum1=0;
Configurationconfiguration=newConfiguration().configure();
SessionFactorysessionFactory=configuration.buildSessionFactory();
Sessionsession=sessionFactory.openSession();
Transactiontransaction=session.beginTransaction();
Queryquery=session.createQuery("fromCourse");
List
for(Courses:
list){
System.out.println(s.getCtype());
if(s.getCtype().equals("必修")){
sum1+=s.getCredit();
}
}
mit();
session.close();
returnsum1;
}
publicintcalculate2(){
intsum2=1;
Configurationconfiguration=newConfiguration().configure();
SessionFactorysessionFactory=configuration.buildSessionFactory();
Sessionsession=sessionFactory.openSession();
Transactiontransaction=session.beginTransaction();
Queryquery=session.createQuery("fromCourse");
List
for(Courses:
list){
System.out.println(s.getCtype());
if(s.getCtype().equals("选修")){
sum2+=s.getCredit();
}
}
mit();
session.close();
returnsum2;
}
}
3.删除课程信息的Action类的类名为“DeleteAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中删除和输入id相同的项,它的实现代码如下:
publicclassDeleteActionextendsActionSupport{
privateStringcid;
publicStringgetCid(){
returncid;
}
publicvoidsetCid(Stringcid){
this.cid=cid;
}
publicStringexecute()throwsException{
intci=Integer.parseInt(cid);
Stringhql="deletefromCoursewherecid="+String.valueOf(ci);
Configurationcfg=newConfiguration();
SessionFactorysf=cfg.configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontransaction=session.beginTransaction();
Queryquery=session.createQuery(hql);
query.executeUpdate();
mit();
session.close();
return"delete";
}
}
4.增加课程信息的Action类的类名为“InsertAction”,它继承了Struts2提供的ActionSupport类,并在execute()方法中增加输入的项,它的实现代码如下:
publicclassInsertActionextendsActionSupport{
privateStringcid;
privateStringcname;
privateStringctype;
privateStringcredit;
privateCoursec=newCourse();
publicStringgetCid(){
returncid;
}
publicvoidsetCid(Stringcid){
this.cid=cid;
}
publicStringgetCname(){
returncname;
}
publicvoidsetCname(Stringcname){
ame=cname;
}
publicStringgetCtype(){
returnctype;
}
publicvoidsetCtype(Stringctype){
this.ctype=ctype;
}
publicStringgetCredit(){
returncredit;
}
publicvoidsetCredit(Stringcredit){
this.credit=credit;
}
publicStringexecute()throwsException{
Coursec=newCourse();
intci=Integer.parseInt(cid);
Stringca=cname;
Stringct=ctype;
intcr=Integer.parseInt(credit);
c.setCid(ci);
c.setCname(ca);
c.setCredit(cr);
c.setCtype(ct);
Configurationcfg=newConfiguration();
SessionFactorysf=cfg.configure().buildSessionFactory();
Sessionsession=sf.openSession();
Transactiontransaction=session.beginTransaction();
session.save(c);
mit();
session.close();
return"insert";
}
}
4.3.4JSP页面的实现
1.登录页面login.jsp代码,用于填写用户名和密码并提交:
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
<%@taglibprefix="s"uri="/struts-tags"%>
formaction="login"> textfieldname="username"label="用户名: "value=""required="true"/> passwordname="password"label="密码: "value=""required="true"/> submitvalue="登录"/> form> 2.登录成功页面success.jsp代码,登陆成功后可选择下一步操作: <%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
登录成功,请选择操作
3.登录失败页面error.jsp代码,登录失败后必须返回登录页面重新登录:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
用户名或密码错误,请返回重新登录!
3.查询页面select.jsp代码,查询数据库course表的内容及选修课和必修课的总学分:
<%@pagelanguage="java"
import="java.util.*,com.hjg.action.*,com.hjg.domain.*"
pageEncoding="utf-8"%>
所有课程
<%
SelectAction
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVAEE 课程设计 学生 个人 学分 统计 系统