资源描述
软 件 学 院
课程设计报告书
课程名称 Java EE 与中间件课程设计
设计题目 社团管理系统
专业班级 软件125班
学 号 1220010518
姓 名 王义武
指导教师 常戬
2015 年 1 月
目录
1 设计时间 3
2 设计目得 3
3 设计任务 3
4 设计内容 3
4、1 需求分析、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、3
4、1、1 总体目标 3
4、1、2具体目标、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、4
4、1、3 系统数据建模 4
4、1、4 系统功能建模 4
4、1、5 数据字典 5
4、2 总体设计 6
4、3详细设计 9
4、3、1模块详细设计 9
4、3、2流程设计 10
4、4运行与测试 11
5 总结与展望 14
附录 15
参考文献 29
成绩评定 29
1 设计时间
2015年1月19日—2015年1月23日
2 设计目得
Java EE 与中间件课程设计就是对所学 Java EE 与中间件课程得小结,就是提高 学生对所学知识综合应用能力得一种方式,就是集中实践性环节之一。要求同学们 对课程中所学习到得知识综合运用,开发有一定规模得 Java Web 程序。利用所 学 Java Web 程序设计知识,开发设计一套基于 Java EE 平台得小型管理系统, 掌握 Struts2、Spring 及 Hibernate 三大框架得配置与使用,巩固数据库基本操 作,培养学生分析问题、解决实际问题能力。
3 设计任务
社团管理系统:
(一)必备功能说明:
(1)功能描述:用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限与普通用户权限。管理员用户可以查瞧所有学生得社团信息 ,以及对所有社团进行管理;可以添加、查瞧与删除相应得社团信息。
(2)添加社团:包括社团名称,性质,学院,负责人等等信息;
(3)查瞧社团:管理员可以查瞧及删除社团信息,其她只能查瞧社团得信息;
(4)删除社团:管理员与负责人可以删除;
(5)对社团管理:每年社团举行得活动记录,每次活动可以进行打分并进行统计排名。
(二)开发语言与开发环境:
Java、MyEclipse、MySQL。
4 设计内容
4、1需求分析
4、1、1 总体目标
用户以合法身份登录系统后,才能进行所有操作;登录系统 时,有两种权限:管理员权限与普通用户权限。管理员用户可以查瞧所 有学生得社团信息 ,以及对所有社团进行管理;可以添加、查瞧与删 除相应得社团信息。
4、1、2 具体目标
1)添加社团:包括社团名称,性质,学院,负责人等等信息;
2)瞧社团:管理员可以查瞧及删除社团信息,其她只能查瞧社团得信息;
3)删除社团:管理员与负责人可以删除;
4)对社团管理:每年社团举行得活动记录,每次活动可以进行打分并进 行统计排名。
密码
社团ID
学生用户
ID
姓名
参加社团名
学院
参加
社团
社团名
性质
参加
活动
活动ID
时间
地点
分数
4、1、3 系统数据建模
M
1
M
N
图4、1、3、1 系统ER图
4、1、4 系统功能建模
数据流图(DFD),它用来描述目标系统得逻辑结构,它就是由实体部分,处理部分,数据存储部分与数据流四部分组成。
返回登录信息
查瞧信息
用户登录
用户
社团
管理
系统
图4、1、4、1 顶层数据流图
成功
删除
合法
添加成功
登录信息
错误结果
添加信息
查瞧信息
社团号
存储文件
1
登录
界面
2
删除
社团
信息
5
查瞧
成员
信息
3
添加
社团
信息
管理员登陆
图4、1、4、2 一层数据流图
4、1、5 数据字典
名称:查瞧社团信息
别名:
定义:查瞧学校所有社团信息
描述:将数据库中社团信息表得内容显示出来
位置:系统数据库
图4、1、5、1 社团信息数据流图
名称:添加社团信息
别名:
定义:增加新成立得社团信息
描述:将输入得学生信息插入到数据库社团信息表中
位置:数据库
图4、1、5、2 添加社团信息数据流图
名称:查瞧活动信息
别名:
定义:查瞧社团得活动信息
描述:将数据库中社团信息表得内容显示出来
位置:数据库,打印机
图4、1、5、3 查瞧活动信息数据字典
名称:添加活动信息
别名:
定义:向系统添加活动详细信息
描述:将输入得活动信息插入到数据库活动信息表中
位置:系统数据库
图4、1、5、4 添加活动数据字典
4、2 总体设计
一、系统层次图
社团管理系统
查瞧社团信息
查瞧活动信息
查瞧学生信息
添加活动
添加删除社团
查瞧活动信息
查瞧社团信息
查瞧学生信息
普通用户登录
管理员登陆
图4、2、1 系统层次图
二、数据库设计
本系统包含三个数据库表,分别就是users、shetuan与activity。下面就是三个数据库表得设计内容得截图:
1) users表
表一 users表
列名 数据类型 长度 允许空 文字描述
id int 4 用户编号
username varchar 20 Y 用户姓名
password varchar 20 Y 密码
sname varchar 20 Y 所在社团
xueyuan varchar 20 Y 所在学院
isadmin varchar 4 Y 就是否为管理员
图4、2、2 数据库表users
2)shetuan表
表二 社团表
列名 数据类型 长度 允许空 文字描述
sid int 5 社团编号
sname varchar 20 Y 社团名称
type varchar 20 Y 社团性质
图4、2、3 数据库表shetuan
3)activity表
表三 activity表
列名 数据类型 长度 允许空 文字描述
aid int 5 活动编号
aname varchar 20 Y 活动名称
score int 10 Y 获得分数
sname varchar 20 Y 参与社团
place varchar 20 Y 举办地点
time date 0 Y 活动时间
图4、2、4 就是数据库表activity
4、3详细设计
4、3、1模块详细设计
本系统具有以下几个功能模块:用户登录模块、查瞧信息模块、添加社团与活动信息模块、删除社团信息模块。
1) 用户登录模块流程图:开始
输入用户名与密码
判断用户名与密码
选择操作功能
结束
Y
N
图4、3、1、1 系统程序流程图
4、3、2流程设计
本系统采用struts2+Hibernate框架,用到了与数据库有关得最基本得方法定义,包括增、删、改、查等。主要Action类与页面得设计如下:
1)类与方法得说明:
表4、3、2、1 类与方法得相关说明
包名 类名/方法名 功能说明
、action LoginAction、java 包含登陆与用户信息得查瞧等方法
、action Register、java 注册新用户得方法
、action StuanAction、java 包含对社团各种操作得方法
、action ActivityAction、java 包含对活动各种操作得方法
2)页面设计得说明:
表4、3、2、2 页面设计
页面名 功能说明
index、jsp 用户登录页面
activityadd、jsp 添加活动界面
activitydetail、jsp 查瞧活动信息
error,jsp 登陆信息错误
register、jsp 注册新用户
shetuanadd、jsp 添加社团信息
shetuandetail、jsp 查瞧社团信息
ssucess、jsp 管理员登陆成功界面
success1、jsp 普通用户登录成功界面
userdetail、jsp 查瞧用户信息
4、4运行与测试
1)登陆测试
图4、4、1 登陆界面
图4、4、2 管理员登陆成功界面
图4、4、3 普通用户登录界面
2)操作测试
图4、4、4 查瞧用户信息
图4、4、5 查瞧活动信息
图4、4、6 查瞧社团信息
图4、4、7 添加社团
图4、4、8 删除社团
图4、4、9 添加活动
5 总结与展望
通过本次得程序设计本次得课程设计让我对,对struts与hibernate框架得操作使用也进一步熟练,了解了项目开发得相关步骤,但也有问题如对数据得操作问题,通过muyclpse自动生成dao包,相关配置文件得配置还不熟练,最大得问题还就是类间得调用不清楚与明确。通过此次得实验相信对web开发会有更加深刻得认识与理解。
附录
LoginAction、java
public class LoginAction extends ActionSupport{
private String username;
private String password;
public String getUsername {
return username;
}
public void setUsername(String username) {
this、username = username;
}
public String getPassword {
return password;
}
public void setPassword(String password) {
this、password = password;
}
public String execute{
userDAO userdao=new userDAOImpl;
if(userdao、check(username, password))
{
String is=null;
Session session=HibernateSessionFactory、getSession;
Query query=session、createQuery("select isadmin from Users where username='"
+username+"' and password='"+password+"'");
List list=query、list;
if(list、toString、equals("[Y]"))
return "success";
else return "success1";
}
else return "error";
}
public String userd
{
userDAO userdao=new userDAOImpl;
List<Users> users=userdao、findAll;
ActionContext req=ActionContext、getContext;
Map request=(Map)req、get("request");
request、put("userd",users);
return "userd";
}
}
Register、java
public class Register extends ActionSupport{
private String username;
private String password;
private String xueyuan;
private String shetuan;
public String getXueyuan {
return xueyuan;
}
public void setXueyuan(String xueyuan) {
this、xueyuan = xueyuan;
}
public String getShetuan {
return shetuan;
}
public void setShetuan(String shetuan) {
this、shetuan = shetuan;
}
public String getUsername {
return username;
}
public void setUsername(String username) {
this、username = username;
}
public String getPassword {
return password;
}
public void setPassword(String password) {
this、password = password;
}
public String execute
{
userDAOImpl userdao=new userDAOImpl;
Users u = new Users;
u、setIsadmin("N");
u、setPassword(password);
u、setUsername(username);
u、setXueyuan(xueyuan);
u、setSname(shetuan);
userdao、save(u);
return null;
}
}
ActivityAction、java
public class ActivityAction {
private String aname;
private String sname;
private int score;
private String place;
Date time=new Date;
public String getAname {
return aname;
}
public void setAname(String aname) {
this、aname = aname;
}
public String getSname {
return sname;
}
public void setSname(String sname) {
this、sname = sname;
}
public int getScore {
return score;
}
public void setScore(int score) {
this、score = score;
}
public String getPlace {
return place;
}
public void setPlace(String place) {
this、place = place;
}
public String execute
{
return null;
}
public String d
{
activityDAO adao=new activityDAOImpl;
List<Activity> acts=adao、findAll;
ActionContext req=ActionContext、getContext;
Map request=(Map)req、get("request");
request、put("activityd",acts);
return "activityd";
}
public String add
{
activityDAO adao=new activityDAOImpl;
Activity a=new Activity;
a、setAname(aname);
a、setSname(sname);
a、setScore(score);
a、setPlace(place);
a、setTime(time);
adao、save(a);
return "activitya";
}
}
StuanAction、java
public class StuanAction {
private String sname;
private String type;
private int sid;
public int getSid {
return sid;
}
public void setSid(int sid) {
this、sid = sid;
}
public String getSname {
return sname;
}
public void setSname(String sname) {
this、sname = sname;
}
public String getType {
return type;
}
public void setType(String type) {
this、type = type;
}
public String execute
{
return null;
}
public String d
{
shetuanDAO sdao=new shetuanDAOImpl;
List<Shetuan> sts=sdao、findAll;
ActionContext req=ActionContext、getContext;
Map request=(Map)req、get("request");
request、put("shetuand",sts);
return "shetuand";
}
public String dd
{
shetuanDAO sdao=new shetuanDAOImpl;
List<Shetuan> sts=sdao、findAll;
ActionContext req=ActionContext、getContext;
Map request=(Map)req、get("request");
request、put("shetuand",sts);
return "shetuandd";
}
public String add
{
shetuanDAO sdao=new shetuanDAOImpl;
Shetuan s=new Shetuan;
s、setType(type);
s、setSname(sname);
sdao、save(s);
return "shetuana";
}
public String delete
{
shetuanDAO sdao=new shetuanDAOImpl;
sdao、delete(sid);
return "shetuandelete";
}
}
userDAOImpl、java
public class userDAOImpl implements userDAO {
private String username;
private String password;
public String getUsername {
return username;
}
public void setUsername(String username) {
this、username = username;
}
public String getPassword {
return password;
}
public void setPassword(String password) {
this、password = password;
}
public Session getSession {
return HibernateSessionFactory、getSession;
}
public boolean save(Users users)
{
Session session=HibernateSessionFactory、getSession;
Transaction ts=session、beginTransaction;
try
{
session、save(users);
ts、mit;
}
catch(Exception e)
{
ts、rollback;
e、printStackTrace;
}
session、close;
return true;
}
public boolean update(Users users) {
// TODO Autogenerated method stub
Session session=HibernateSessionFactory、getSession;
Transaction ts=session、beginTransaction;
try
{
session、saveOrUpdate(users);
ts、mit;
}
catch(Exception e)
{
ts、rollback;
}
session、close;
return true;
}
public boolean check(String username, String password) {
Session session = HibernateSessionFactory、getSession;
Query query=session
、createQuery("from Users where username=? and password=?")、setString(0, username)、setString(1, password);
List<Users> list=(List)query、list;
if (list、size<1)
return false;
else
return true;
}
public List<Users> findAll {
// TODO Autogenerated method stub
Session session=HibernateSessionFactory、getSession;
Query query=session、createQuery("from Users");
List<Users> list=query、list;
return list;
}
}
activityDAOImpl、java
public class activityDAOImpl implements activityDAO{
public Session getSession {
return HibernateSessionFactory、getSession;
}
public boolean save(Activity activity)
{
Session session=HibernateSessionFactory、getSession;
Transaction ts=session、beginTransaction;
try
{
session、save(activity);
ts、mit;
}
catch(Exception e)
{
ts、rollback;
e、printStackTrace;
}
session、close;
return true;
}
public List<Activity> findAll {
// TODO Autogenerated method stub
Session session=HibernateSessionFactory、getSession;
Query query=session、createQuery("from Activity");
List<Activity> list=query、list;
return list;
}
}
shetuanDAOImpl、java
public class shetuanDAOImpl implements shetuanDAO{
private int sid;
public int getSid {
return sid;
}
public void setSid(int sid) {
this、sid = sid;
}
public Session getSession {
return HibernateSessionFactory、getSession;
}
public boolean save(Shetuan shetuan)
{
Session session=HibernateSessionFactory、getSession;
Transaction ts=session、beginTransaction;
try
{
session、save(shetuan);
ts、mit;
}
catch(Exception e)
{
ts、rollback;
e、printStackTrace;
}
session、close;
return true;
}
public boolean delete(int sid)
{
Session session=HibernateSessionFactory、getSession;
Transaction ts=session、beginTransaction;
try
{
Shetuan shetuan= (Shetuan)session、get(Shetuan、class,sid);
session、delete(shetuan);
ts、mit;
}
catch(Exception e)
{
ts、rollback;
e、printStackTrace;
}
session、close;
return true;
}
public List<Shetuan> findAll {
// TODO Autogenerated method stub
Session session=HibernateSessionFactory、getSession;
Query query=session、createQuery("from Shetuan");
List<Shetuan> list=query、list;
return list;
}
}
参考文献
[1] 屈辉立,陈可明,石武信、JSP网站编程教程[M]、第1版, 北京:北京希望电子出版社,2005
[2] Jiang Guo,Yuehong Liao,Behzad Parviz、A Survey of J2EE Application Performance Management Systems[J],Proceedings of the IEEE International Conference on Web Services (ICWS'04),2004、6(5):17~32、
[3] VB数据库管理范例:[EB/OL]
成绩评定
成绩 教师签字
软 件 学 院
课程设计报告书
课程名称 Java EE 与中间件课程设计
设计题目 社团管理系统
专业班级 软件1205
学 号 1220010518
姓 名 王义武
指导教师 常戬
2015 年 1 月
展开阅读全文