课堂7
校园社团活动管理系统(20分)
1、项目需求:
校园社团作为高校课外活动的重要组成部分,发展十分迅速,也受到越来越多学生的欢迎,社团规模、数量等都在日益增长,社团活动也更为多样和丰富。然而,大多数高校还没有一个完整成熟的社团管理系统,仅仅是靠人力来管理,导致效率低下,而学生也只能通过线下或者公众号的方式了解社团,另外,社团活动的通知方式也很杂乱,并没有一个信息聚合、消息发布的平台。
因此,高校有必要建立一个校园社团管理系统,使得社团管理工作规范化、系统化、程序化、科学化,提高管理工作的效率。
2.系统要求与功能设计
2.1 页面功能要求
(1)能够在Tomcat服务器中正确部署,并通过浏览器查看;(1分)
(2)网站页面整体风格统一;
图1 活动普查系统功能结构图
(3)主页面:要求显示发布活动信息、修改活动信息、删除活动信息、查询活动信息,活动信息浏览五个子菜单。(1分)
(4)发布活动信息页面:(6分)
①完成添加活动信息发布,基本信息和填报限制如下表所示
|
活动主题 |
字符串(不超过20个汉字) |
|
活动目的 |
字符串(不超过50个汉字) |
|
活动类型 |
社团竞赛、野外采风、校内集会、社团纳新(单选框) |
|
活动时间 |
文本框 |
|
活动地点 |
文本框 |
|
活动对象 |
社团成员、全体学生(复选框实现) |
|
活动内容 |
(文本框,不超过500个汉字) |
|
活动日程安排 |
(文本框,不超过500个汉字) |
②点击“提交”按钮,保存成功则跳转到活动基本信息浏览界面,新录入的信息置顶显示。失败则提示错误信息,返回当前页面
评分标准:
① 完成活动信息发布页面(未完成0分,完成1分)
② 保存活动信息入库(未完成0分,完成1分)
③ 社团竞赛、野外采风、校内集会、社团纳新实现单选框录入1分。(未完成0分,全部完成1分)
④ 实现活动对象复选框录入1分。(未完成0分,完成1分)
⑤ 实现活动主题、活动目的、活动内容、活动日程安排的字数判断,实现三个以上得1分(未完成0分,完成1分)
⑥提交后页面跳转功能;(未完成0分,完成1分)
(5)修改活动信息页面:(3分)
输入活动主题,显示其余信息,可对活动目的、活动类型、活动时间、活动地点、活动对象、活动内容、活动日程安排进行修改。(活动目的、活动类型、活动时间、活动地点、活动对象、活动内容、活动日程安排必须符合录入要求);如果该活动主题数据库不存在,则提示“该活动不存在”。(3分)
评分标准:
① 完成修改活动信息页面(未完成0分,完成1分)
② 实现数据库中信息更新(未完成0分,完成1分)
③输入活动主题,显示其余信息,若该信息不存在,提示错误信息;(未完成0分,完成1分)
(6)删除活动信息页面:录入活动主题,显示详细信息后,点击“删除”按钮,弹出提示框,提示“是否确认删除该活动信息”,确认后删除该信息。(1分)
评分标准:
① 输入活动主题可显示其余信息。(未完成0分,完成0.5分)
②对应删除数据库中信息(未完成0分,完成0.5分)
(7)浏览活动信息页面:(2分)
以列表形式显示活动基本信息,结果列表中显示活动主题、活动时间,活动类型、活动对象基本信息,点击主题,可以跳转到活动详细信息,显示全部活动信息。
① 实现以列表形式显示活动基本信息,结果列表中显示活动主题、活动时间,活动类型、活动对象基本信息(未完成0分,完成1分)
②实现跳转活动详细信息页面,显示全部活动信息。(未完成0分,完成1分)
(8)查询活动信息页面:(3分)
要求根据活动主题、活动时间、活动类型、活动地点四种条件实现模糊查询,输出结果以列表形式显示,显示显示活动主题、活动时间,活动类型、活动对象基本信息,点击列表中的活动主题,跳转到活动详细信息页面。
评分标准:
①缺少一种查询条件扣除1分。(未完成0分,完成3分)
2.2 功能要求
(1)设计出合理的数据库和数据表,要求使用mysql、sqlserver、oracle三种数据库中一种(1分)
(2)使用Serverlet实现页面交互(1分)。
(3)使用Java Bean封装数据库连接操作(1分。)
Dao
public class Dao {
public int add(Active active) throws Exception {
Connection connection = jdbcUtil.getconnection();
String sql = "insert into active(zhu_ti,mu_di,lei_xing,shi_jian,di_dian,dui_xiang,nei_rong,an_pai) value(?,?,?,?,?,?,?,?)";
PreparedStatement pstmt = null;
pstmt =connection.prepareStatement(sql);
pstmt.setString(1, active.getZhu_ti());
pstmt.setString(2, active.getMu_di());
pstmt.setString(3, active.getLei_xing());
pstmt.setString(4, active.getShi_jian());
pstmt.setString(5, active.getDi_dian());
pstmt.setString(6, active.getDui_xiang());
pstmt.setString(7, active.getNei_rong());
pstmt.setString(8, active.getAn_pai());
int count = pstmt.executeUpdate();
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
return count;
}
public int del(int id) throws Exception {
Connection connection = jdbcUtil.getconnection();
String sql = "delete from active where id = ?";
PreparedStatement pstmt = null;
pstmt = connection.prepareStatement(sql);
pstmt.setInt(1, id);
int count = pstmt.executeUpdate();
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
return count;
}
public int update(Active active) throws Exception {
Connection connection = jdbcUtil.getconnection();
String sql = "update active\n" +
"set zhu_ti = ?,\n" +
"mu_di = ?,\n" +
"lei_xing = ?,\n" +
"shi_jian = ?,\n" +
"di_dian = ?,\n" +
"dui_xiang = ?,\n" +
"nei_rong = ?, \n" +
"an_pai = ?\n" +
"where id = ?";
PreparedStatement pstmt = null;
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, active.getZhu_ti());
pstmt.setString(2, active.getMu_di());
pstmt.setString(3, active.getLei_xing());
pstmt.setString(4, active.getShi_jian());
pstmt.setString(5, active.getDi_dian());
pstmt.setString(6, active.getDui_xiang());
pstmt.setString(7, active.getNei_rong());
pstmt.setString(8, active.getAn_pai());
pstmt.setInt(9, active.getId());
int count = pstmt.executeUpdate();
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
return count;
}
public List<Active> selectall() throws Exception {
Connection connection = jdbcUtil.getconnection();
String sql = "select * from active";
PreparedStatement pstmt = null;
pstmt = connection.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
Active active = null;
List<Active> list = new ArrayList<>();
while (rs.next()) {
int id = Integer.parseInt(rs.getString("id"));
String zhu_ti = rs.getString("zhu_ti");
String mu_di = rs.getString("mu_di");
String lei_xing = rs.getString("lei_xing");
String shi_jian = rs.getString("shi_jian");
String di_dian = rs.getString("di_dian");
String dui_xiang = rs.getString("dui_xiang");
String nei_rong = rs.getString("nei_rong");
String an_pai = rs.getString("an_pai");
active = new Active(id,zhu_ti,mu_di,lei_xing,shi_jian,di_dian,dui_xiang,nei_rong,an_pai);
list.add(active);
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return list;
}
public Active getbyID(int id ) throws Exception {
Connection connection = jdbcUtil.getconnection();
String sql = "select * from active where id= ?";
PreparedStatement pstmt = null;
pstmt = connection.prepareStatement(sql);
Active active= null;
pstmt.setInt(1,id);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
int ID = Integer.parseInt(rs.getString("id"));
String zhu_ti = rs.getString("zhu_ti");
String mu_di = rs.getString("mu_di");
String lei_xing = rs.getString("lei_xing");
String shi_jian = rs.getString("shi_jian");
String di_dian = rs.getString("di_dian");
String dui_xiang = rs.getString("dui_xiang");
String nei_rong = rs.getString("nei_rong");
String an_pai = rs.getString("an_pai");
active = new Active(ID, zhu_ti, mu_di, lei_xing, shi_jian,di_dian, dui_xiang,nei_rong, an_pai);
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return active;
}
//按照姓名,模糊查询
public Active getbyzhu_ti(String zhu_ti ) throws Exception {
Connection connection = jdbcUtil.getconnection();
PreparedStatement pstmt = null;
String sql = "select * from active where zhu_ti like ? ";
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, zhu_ti);
ResultSet rs = pstmt.executeQuery();
Active active = null;
while (rs.next()) {
int ID = Integer.parseInt(rs.getString("id"));
String Zhu_ti = rs.getString("zhu_ti");
String mu_di = rs.getString("mu_di");
String lei_xing = rs.getString("lei_xing");
String shi_jian = rs.getString("shi_jian");
String di_dian = rs.getString("di_dian");
String dui_xiang = rs.getString("dui_xiang");
String nei_rong = rs.getString("nei_rong");
String an_pai = rs.getString("an_pai");
active = new Active(ID,Zhu_ti, mu_di, lei_xing, shi_jian,di_dian, dui_xiang,nei_rong, an_pai);
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return active;
}
//返回模糊查询是否查询成功
public int getbyzhu_ti_if(String zhu_ti) throws Exception {
Connection connection = jdbcUtil.getconnection();
PreparedStatement pstmt = null;
String sql = "select * from active where zhu_ti like ? ";
pstmt = connection.prepareStatement(sql);
pstmt.setString(1, zhu_ti);
ResultSet rs = pstmt.executeQuery();
Active active = null;
int count = 0;
while (rs.next()) {
count++;
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return count;
}
public List<Active> cha_xun(String zhu_ti, String lei_xing, String shi_jian, String di_dian) throws Exception {
Connection connection = jdbcUtil.getconnection();
PreparedStatement pstmt = null;
String sql = "select * from active where ";
int num=0;
if (zhu_ti != "") {
sql += "zhu_ti like '%" +zhu_ti+ "%' ";
num++;
}
if (lei_xing != "") {
if(num != 0)
sql += "and lei_xing like '%" +lei_xing+ "%' ";
else
sql += " lei_xing like '%" +lei_xing+ "%' ";
num++;
}
if (shi_jian != "") {
if( num !=0 )
sql += "and shi_jian like '%" +shi_jian+ "%' ";
else
sql += " shi_jian like '%" +shi_jian+ "%' ";
num++;
}
if (di_dian != "") {
if(num != 0)
sql += "and di_dian like '%" +di_dian+ "%' ";
else
sql += " di_dian like '%" +di_dian+ "%' ";
num++;
}
if(num == 0)
{
sql = "select * from active";
}
Statement state = null;
state = connection.createStatement();
ResultSet rs = state.executeQuery(sql);
Active active = null;
List<Active> list = new ArrayList<>();
while (rs.next()) {
int ID = Integer.parseInt(rs.getString("id"));
String Zhu_ti = rs.getString("zhu_ti");
String mu_di = rs.getString("mu_di");
String lei_xing1 = rs.getString("lei_xing");
String shi_jian1 = rs.getString("shi_jian");
String di_dian1 = rs.getString("di_dian");
String dui_xiang = rs.getString("dui_xiang");
String nei_rong = rs.getString("nei_rong");
String an_pai = rs.getString("an_pai");
active = new Active(ID,Zhu_ti, mu_di, lei_xing1, shi_jian1,di_dian1, dui_xiang,nei_rong, an_pai);
list.add(active);
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return list;
}
public int cha_xun_if(String zhu_ti, String lei_xing, String shi_jian, String di_dian) throws Exception{
Connection connection = jdbcUtil.getconnection();
PreparedStatement pstmt = null;
String sql = "select * from active where ";
int num=0;
if (zhu_ti != "") {
sql += "zhu_ti like '%" +zhu_ti+ "%' ";
num++;
}
if (lei_xing != "") {
if(num != 0)
sql += "and lei_xing like '%" +lei_xing+ "%' ";
else
sql += " lei_xing like '%" +lei_xing+ "%' ";
num++;
}
if (shi_jian != "") {
if( num !=0 )
sql += "and shi_jian like '%" +shi_jian+ "%' ";
else
sql += " shi_jian like '%" +shi_jian+ "%' ";
num++;
}
if (di_dian != "") {
if(num != 0)
sql += "and di_dian like '%" +di_dian+ "%' ";
else
sql += " di_dian like '%" +di_dian+ "%' ";
num++;
}
if(num == 0)
{
sql = "select * from active";
}
Statement state = null;
state = connection.createStatement();
ResultSet rs = state.executeQuery(sql);
Active active = null;
List<Active> list = new ArrayList<>();
int count = 0;
while (rs.next()) {
count++;
}
jdbcUtil.close(connection);
jdbcUtil.close(pstmt);
rs.close();
return count;
}
}
浙公网安备 33010602011771号