Java程序设计-基于Java高校社团管理系统

news2024/11/25 2:53:59

    • 摘 要
    • 功能需求
    • 系统的功能实现

摘 要

当前,大多数高校的社团信息管理都是采用纸质档案的方式来管理的,这样不仅不能长期的保存信息,而且在数据的查找上带来很大的不方便。在目前的网络技术和计算机技术的普及和信息管理的迅速发展,使用计算机,但总的趋势来实现。校园社区管理也可以支持用料计算机信息管理等,利用网络实现信息共享。这样不仅符合现代的管理要求,而且有助于将信息管理推向科学化、规范化。同时,用计算机去管理信息拥有各种优势,比如稳定性高、使用年限长、检索迅速、保密性好、存储量大、开销低等。这些优点能够减少相关人员工作量,极大地提高社团信息管理的效率。社区管理系统是基于Java作为开发语言,使用MySQL数据库作为后端数据存储,使用Dreamweaver,Myeclipise作为研发开发的工具,信息化管理已经在信息社会为目标来实现的。本文分析了现有的大学社区管理为出发点的现状,已经研究制定方案,详细的社区管理体制分析和功能分析,总结了系统,数据库设计和展示的最终控制系统的结果数据结构的设计框架的功能需要的可行性社区项目,介绍了该系统用实验来验证结果表明,所有有关的各种功能ESS发展,以及经验和发展不足。

关键词*:*** 社团管理系统; Java; B/S; mySQL

在这里插入图片描述

功能需求

社团管理系统的用户大致分为三类普通用户、社团管理员、系统管理员
各类用户的具体功能介绍如下:
a.普通用户:只能登陆网站的前台
1、注册登录:可以在前台注册和登录
2、信息浏览:可以浏览网站前台的新闻信息、活动信息、社团信息等
3、在线交流:登录系统后可以在留言板进行交流
4、在线申请:可以申请加入自己喜欢的社团和申请创建社团,可以在线查看申请结果和记录
B.社团管理员:、包括了普通用户的功能外,还具有以下功能:
1、后台登陆:社团管理员可以登录网站后台对一些信息进行处理
2、个人中心:修改个人的信息和密码
3、社团信息管理:对自己所创建的社团信息进行管理
4、社团成员管理:对社团成员信息进行管理,审核前台的入社申请
5、社团活动管理:对社团需要举行的活动内容邮件向系统管理员提出申请,对活动的内容信息可以做出修改。
6、社团新闻管理:可以对本社团的新闻信息进行增删改查的操作,但是增加的操作需要得到系统管理员的同意才能生效。
c.系统管理员:
1、后台登陆:系统管理员可以登录网站后台对一些信息进行处理
2、个人中心:修改个人的信息和密码
3、用户信息管理:对注册的用户信息进行管理,有增删改查权限
4、社团创建审批:对收到的社团创建信息进行审核
5、社团简介管理:对申请通过的社团信息进行管理,有删除、修改、查询权限
6、学校器材管理:对学校的现有活动器材进行管理,有增删改查权限
7、图片新闻管理:可以对前台的图片新闻进行编辑修改
8、活动消息管理:对所有社团的活动申请就是审核,对活动的信息进行增删
9、新闻资讯管理:对所有社团申请发布的新闻信息就是审核批准,对新闻信息进行增删
10、留言信息管理:可以对前台的留言信息进行审核,拥有搜索和删除权限
根据系统需求中系统管理员对用户信息管理的实现流程,

系统的功能实现

前台介绍
首页具有登录注册、导航栏、消息展示、友情链接等部分组成,用户在未登录的情况下可以浏览社团新闻,登录后可以选择加入社团等一系列活动。首页界面如图5-1所示:

在这里插入图片描述
前台的社团简介界面主要是介绍每个社团的基本情况,点进进入各个社团的向信息后,页面右上角会有申请加入社团的提示,登录的用户可以在这里申请加入。申请发出后,后台该社团的负责人将会收到,并对用户的申请作出审核,通过后用户就将成为该社团一员了。创建社团的功能与申请加入社团功能类似,只是创建社团的申请会直接发送到系统管理员那里,在这里插入图片描述

	/**
	 * @Title: joinMember
	 * @Description: 申请加入社团
	 * @return String
	 */
	public String joinMember(){
		try {
			//检查社团是否已经加入
			Member member = indexManager.getMember(paramsMember); 
			if (member!=null) {
				if (member.getMember_flag()==1) {
					setErrorReason("您的申请正在审批中,请等待!");
					return "error2";
				}else {
					setErrorReason("您已经是该社团成员,无需再次申请!");
					return "error2";
				}
			}
			//申请加入社团
			indexManager.joinMember(paramsMember);
			
		} catch (Exception e) {
			e.printStackTrace();
			setErrorReason("申请失败!后台服务器繁忙!");
			return "error2";
		}
		return "success";
	}
	/**
	 * @Title: joinMember
	 * @Description:申请加入社团
	 * @param Member
	 * @return void
	 */
	public void  joinMember(Member member){
		Connection conn = BaseDao.getConnection();
		//申请时间
		member.setReg_date(DateUtil.dateToDateString(new Date()));
		//审批标志
		member.setMember_flag(1);
		memberDao.addMember(member, conn);
		BaseDao.closeDB(null, null, conn);

在这里插入图片描述

	/**
	 * @Title: sblogs
	 * @Description: 留言板
	 * @return String
	 */
	public String listSblogs(){
		try {
			//查询留言板
			if (paramsSblog==null) {
				paramsSblog = new Sblog();
			}
			paramsSblog.setSblog_flag(2);
			setPagination(paramsSblog);
			int[] sum={0};
			List<Sblog> sblogs = indexManager.listSblogs(paramsSblog,sum); 
			
			Param.setAttribute("sblogs", sblogs);
			setTotalCount(sum[0]);
		} catch (Exception e) {
			e.printStackTrace();
			return "error";
		}
		
		return "sblog";
	}
	
	/**
	 * @Title: addSblog
	 * @Description: 新增留言
	 * @return String
	 */
	public String addSblog(){
		try {
			//验证码验证
			String random = (String)Param.getSession("random");
			if (!random.equals(paramsSblog.getRandom())) {
				setErrorReason("验证码错误!");
				return "error2";
			}
			
			//新增留言
			indexManager.addSblog(paramsSblog);
			
		} catch (Exception e) {
			e.printStackTrace();
			return "error";
		}
		
		return "success";
	}
	/**
	 * @Title: addSblog
	 * @Description: 新增留言
	 * @param sblog
	 * @return void
	 */
	public void  addSblog(Sblog sblog){
		Connection conn = BaseDao.getConnection();
		sblog.setSblog_date(DateUtil.dateToDateString(new Date(), "yyyy-MM-dd HH:mm:ss"));//留言时间
		sblog.setSblog_flag(1);//待审核
		sblogDao.addSblog(sblog, conn);
		BaseDao.closeDB(null, null, conn);
	}

在这里插入图片描述

/**
	 * @Title: RegSystem
	 * @Description: 用户注册
	 * @return String
	 */
	public String RegSystem(){
		try {
			//查询验证码
			String random = (String)Param.getSession("random");
			if (!random.equals(params.getRandom())) {
				setErrorReason("验证码不正确");
				return "error";
			}
			
			//查询用户名是否被占用
			User user = new User();
			user.setUser_name(params.getUser_name());
			User user_temp = loginManager.getUser(user);
			if (user_temp!=null) {
				setErrorReason("注册失败,用户名已被注册:"+params.getUser_name());
				return "error";
			}
			
			//添加用户入库
			loginManager.addUser(params);
			
		} catch (Exception e) {
			setErrorReason("注册异常,请稍后重试");
			return "error";
		}
		
		return "success";
	}

后台介绍
在这里插入图片描述
在这里插入图片描述

/**
	 * @Title: saveAdminPass
	 * @Description: 保存修改个人密码
	 * @return String
	 */
	public String saveAdminPass(){
		try {
			//验证用户会话是否失效
			if (!validateAdmin()) {
				return "loginTip";
			}
			 //保存修改个人密码
			adminManager.updateUser(paramsUser);
			//更新session
			User admin = (User)Param.getSession("admin");
			if (admin!=null) {
				admin.setUser_pass(paramsUser.getUser_pass());
				Param.setSession("admin", admin);
			}
			
		} catch (Exception e) {
			setErrorTip("修改异常", "modifyPwd.jsp");
		}
		setSuccessTip("修改成功", "modifyPwd.jsp");
		return "infoTip";

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/336857.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】你知道的MySQL中的集合函数有哪些呢?

集合函数排名AVG&#xff08;&#xff09;函数COUNT()函数SUM&#xff08;&#xff09;函数MAX&#xff08;&#xff09;函数 和 MIN&#xff08;&#xff09;函数总结大家好&#xff0c;我是小冷。 上一篇写了 看看ChatGPT是如何回答面试官的问题的&#xff1f; 地址是&#x…

MySQL数据库06——条件查询(WHERE)

MySQL条件查询&#xff0c;主要是对数据库里面的数据按照一定条件进行筛选&#xff0c;主要依靠的是WHERE语句进行。 先来了解一下基础的条件运算。 关系运算符 逻辑运算符 逻辑运算符优先级&#xff1a;NOT>AND>OR&#xff0c;关系运算符>逻辑运算符 SQL特殊运算符…

公司常用的Project管理工具

目录 1.svn 2.reviewBoard 3.禅道 4.瘦终端 1.svn svn主要是对代码的管理&#xff0c;保证代码的同步开发。 svn的搭建方法https://www.cnblogs.com/ftx3q/p/15340160.html 2.reviewBoard reviewBoard代码审查工具&#xff0c;所有工程师写的代码上传到reviewBoard&#x…

前端将本地代码项目上传到gitee上

文章目录前言一、gitee建立仓库&#xff1f;1.登入并新建账号2.填写仓库信息3.传项目前言 因为以前跟B站做了一些项目&#xff0c;想上传到gitee仓库保留。所以写下此文章。前端项目 一、gitee建立仓库&#xff1f; 1.登入并新建账号 2.填写仓库信息 readme文件是否选择&#…

C++类基础(十)

运算符重载 struct Str {int val 3; }; Str Add(Str x, Str y) {Str z;z.val x.val y.val;return z; } int main() {int val1 2;int val2 3;int val3 val1 val2; //分别对val1和val2求值然后相加Str x;Str y;Str z Add(x, y); //同样的功能&#xff0c;但是写法冗杂St…

【GPLT 二阶题目集】L2-004 这是二叉搜索树吗?

参考文章&#xff1a;L2-004. 这是二叉搜索树吗&#xff1f;-PAT团体程序设计天梯赛GPLT 作者&#xff1a;柳婼&#xff08;非常感谢!!!&#xff09; 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树&#xff1a;对于任一结点&#xff0c; 其左子树中所有结点的键值小于…

基于时间序列的 基-2 FFT算法程序

gitee链接 &#xff1a;基于时间序列的 基-2 FFT算法程序 我的 gitee 程序目前没有公开&#xff0c;目前仅是给自己的程序做一个备份的目的。 但是大家可以使用我博客贴出来的程序&#xff0c;二者是一样的。 文章目录1.程序使用方法2.代码3.验证1.程序使用方法 1.先补零至2的…

html(二)基础标签

一 HTML中的注释 重点&#xff1a; 在哪写注释? 注释的形式? vs code和webstorm都可以通过 ctrl / 进行单行注释和取消注释 ① html中注释的形式 1) html文档中单行和多行注释是"<!-- -->" -->html2) 在html文档中,script标签…

volatile 关键字

1.volatile 能保证内存可见性 volatile 修饰的变量, 能够保证 "内存可见性". 代码在写入 volatile 修饰的变量的时候, 改变线程工作内存中volatile变量副本的值将改变后的副本的值从工作内存刷新到主内存 代码在读取 volatile 修饰的变量的时候 从主内存中读取vol…

为什么B站中的弹幕可以不遮挡人物

上班逛B站时摸鱼时&#xff0c;看到了满屏的弹幕&#xff0c;而且还不挡脸&#xff0c;突然心血来潮来看看它是怎么实现的&#xff1f; 不难发现弹幕其实它就是有一个蒙版层div&#xff0c;遮挡在视频组件的上方&#xff0c;z-index层级设置的比较高&#xff08;这里是11&…

史上最全最详细的Instagram 欢迎消息引流及示例

史上最全最详细的Instagram 欢迎消息引流及示例&#xff01;关键词&#xff1a; Instagram 欢迎消息SaleSmartly&#xff08;ss客服&#xff09; 寻找 Instagram 欢迎消息示例&#xff0c;您可以用于您的业务。在本文中&#xff0c;我们将介绍Instagram欢迎消息的基础知识和好处…

window11安装node、nvm、nrm

一、安装nvm 下载nvm安装包&#xff0c;window11建议使用exe安装包 Releases coreybutler/nvm-windows GitHub 下载后双击安装 切记&#xff01;切记&#xff01;切记&#xff01; 安装nvm和nodejs的目录设置一定不要有特殊符号或者空格&#xff0c;设置一个连续的只有英文…

UMI 创建react目录介绍及配置

UMI 生成react项目目录介绍及配置 react项目目录介绍umi多种配置方案运行时配置app.ts 的使用 1、umi创建的项目目录大致如下 ├─package.json 配置依赖以及启动打包所需的命令 ├─.umirc.ts 配置文件&#xff0c;包含 umi 内置功能和插件的配置 ├── dist 打包后生成的…

情人节送什么礼物?四款情人节潮流数码好物推荐

情人节是一个特别的日子&#xff0c;是表达爱意和祝福的机会&#xff0c;如果您正在寻找一件特别的礼物&#xff0c;下面这篇文章不容错过。 推荐1&#xff1a;南卡小音舱蓝牙耳机&#xff08;299元&#xff09; 作为最能表达仪式感和诚意的礼物&#xff0c;精致和实用是很重要…

Spring中Bean的作用域问题

文章目录一、通过案例来简单体会一下Bean的作用域问题二、作用域定义三、Bean的作用域分类singletonprototyperequestsessionapplication&#xff08;了解&#xff09;singleton&#xff08;单例作用域&#xff09; 和 application &#xff08;全局作用域&#xff09;的区别we…

马尔科夫预测

一、模型介绍 天气有以下几种状态&#xff1a;晴天、雨天、阴天若已知天气当前处于某种状态&#xff0c;则天气未来的状态只与现在有关&#xff0c;与过去无关注意&#xff0c;天气的状态是随机的&#xff0c;只能求明天处于某一种状态的概率描述这种随机现象的模型&#xff0…

Visual Commonsense R-CNN 实现和代码

这篇文章比较早&#xff0c;但是对于因果介绍的比较详细&#xff0c;很值得学习。 代码&#xff1a;https://github.com/Wangt-CN/VC-R-CNN 代码花了挺长时间总算跑通了&#xff0c;在 3080 上调真是错误不断&#xff0c;后来换到 2080 又是一顿调才好。这里跑通的主要环境为 u…

代理模式详解

本文首更于《从零开始手把手教你实现一个简单的RPC框架》 。 1. 代理模式2. 静态代理3. 动态代理 3.1. JDK 动态代理机制 3.1.1. 介绍3.1.2. JDK 动态代理类使用步骤3.1.3. 代码示例 3.2. CGLIB 动态代理机制 3.2.1. 介绍3.2.2. CGLIB 动态代理类使用步骤3.2.3. 代码示例 3.3. …

win10系统安装Nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。 Nginx可以进行反向代理、负载均衡、HTTP服务器&#xff08;动静分离&#xff09;、正向代理等操作。因为最近在公司使用到了Nginx 第一步&#xff1a;下载Nginx …

想找大数据工作需要学些什么

大数据开发做什么&#xff1f; 大数据开发分两类&#xff0c;编写Hadoop、Spark的应用程序和对大数据处理系统本身进行开发。大数据开发工程师主要负责公司大数据平台的开发和维护、相关工具平台的架构设计与产品开发、网络日志大数据分析、实时计算和流式计算以及数据可视化等…