java基于ssm框架的校园在线投票系统

该博客详细介绍了基于SSM框架开发的校园在线投票系统,包括用户管理、新闻公告、投票信息、班级信息等多个模块。系统具备独立运行、可移植和可扩展性,代码规范,注解丰富,适合作为毕业设计参考资料。管理员和用户拥有不同权限,如添加、修改和删除信息。同时,系统提供了数据备份功能,并涵盖了登录、注册、退出等基本操作。
摘要由CSDN通过智能技术生成
校园在线投票系统主要包括系统用户管理模块、新闻公告管理模块、投票信息管理、班级信息管理、登录模块、和退出模块等多个模块。系统采用了jsp的mvc框架,SSM(springMvc:spring:Mybatis)框架进行开发,本系统是独立的运行,不依附于其他系统,可移植,可扩展。代码的编写规范,注解较多,同时也是计算机毕业设计中一项重要的参考资料等。本作品包调试安装,并提供所有运行工具及软件下载!

请添加图片描述
管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。
用户的登录模块:用户登录本系统,对个人的信息等进行查询,操作可使用的功能。
用户注册模块:游客用户可以进行用户注册,系统会反馈是否注册成功。
添加管理员模块:向本系统中添加更多的管理人员,管理员包括普通管理员和超级管理员。
新闻公告管理模块:
新闻公告列表:将数据库的新闻公告表以列表的形式呈现给管理员。
添加新闻公告:实现管理员添加新闻公告。
修改新闻公告:实现管理员修改新闻公告。
投票信息管理模块:
投票信息列表:将数据库的投票信息表以列表的形式呈现给管理员。
添加投票信息:实现管理员添加投票信息。
修改投票信息:实现管理员修改投票信息。
学生信息管理模块:
学生信息列表:显示系统的所有学生信息,可以通过关键字查询。
学生信息删除:对输入错误或过期的学生信息删除。
班级信息管理模块:
班级信息列表:显示系统的所有班级信息,可以通过关键字查询。
班级信息删除:对输入错误或过期的班级信息删除。
用户模块:
资料管理:用户登录本系统。可以对自己的个人主页进行查看。
系统信息:用户可以查看自己的系统提示信息。
修改资料:用户可以修改自己的账号密码。
信息搜索:用户可以通过关键字搜索站内信息。
密码修改:用户可以修改个人登录密码。
系统管理模块:包括数据备份。
退出模块:
管理员退出:管理员用来退出系统。
用户退出:用户用来退出系统。

请添加图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

请添加图片描述
3.新闻公告管理模块:用户发布新闻公告,新闻公告存储在新闻公告表中,用户点击新闻公告发布,进入新闻公告发布页面,提交新闻公告后,管理员审核用户添加的新闻公告,并管理。
4.投票信息管理模块:设计系统的投票信息表,管理员对投票信息数据的管理,如增加、删除、修改、查询等,管理员添加投票信息时,输入投票信息后,使用js函数判断输入格式是否正确,判断正确后,则往投票信息表中插入投票信息数据。
5.投票信息管理模块:投票信息管理模块包括投票信息录入、投票信息列表、投票信息搜索、投票信息修改、投票信息删除,都是通过MySQL 语句来实现数据库操作,并将数据放置到html界面中。
请添加图片描述
目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

1、引言 1.1编写目的 在完成了针对《学生信息系统》软件市场的前期调查,同时与多位同学进行了全面深入地探讨和分析的基础上,提出了这份软件需求规格说明书。 此需求规格说明书对《学生信息系统》软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。 1.2项目背景 由于文件多,种类多,文件创建者多,创建时间为不定期,要保护好一些公司重要的文件极为不便,同时由于人员的流动,对原有的文件的再现,显得力不从心,有时查找与重新整理文件要浪费许多的人力、物力。 为了有效的共享文件资源,保护好文件,及促进学生信息系统管理的信息化、规范化和集成化,本人多方听取意见、追加和完善大量实用功能,进而了解文件管理的流程,同时结合各部门、各专业与学科管理的方法,开发出一套适合于学生信息系统多而复杂的管理系统。 1.3定义、缩写词和符号 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足标准,规范或其它正式规定文档所需具有的条件或权能。 1.4参考资料 张海藩:《软件工程导论》,清华大学出版社,2008年2月版 黄德才: 《数据库原理及其应用教程》,科学出版社,2006年2月版 2.任务概述 2.1目标 2.1.1开发目标 在当今世界电脑普及的时刻,人们已经习惯用电脑办公,结果自然会产生大量的电子文件,这些文件有宝贵的历史价值,但我们如果将更多的时间花费在寻找这些文件上,即费时又费力。本软件根据此需求进行开发的。 2.1.2应用目标 让学校能够有效的掌握,有效的共享文件资源,保护好文件,及促进学生信息系统管理的信息化、规范化和集成化,实现计算机的智能化管理,以提高工作效率和经济效益。 2.2运行环境 2.2.1硬件环境 A. 一台.NET系统的微机 B.内存足够大 2.2.2软件环境 A.windows 98 以上的操作系统 B.Microsoft Visual studio 2007 C.Microsoft SqlServer 2000 2.3条件与限制 此学生信息系统管理软件是应用于各个学校的。在功能上还可进一步实现安全防范、与E-Mail和因特网电话集成起来,成为学生信息系统管理软件。 3. 数据描述 3.1静态数据 1)Students表 2)Reports表 3)Courses表 4)Log on表 3.2动态数据 输入数据:菜单选项,添加项,查询项,修改项,删除项。 输出数据:由添加、查询、修改、删除所确定的数据库记录集合。 内部生成的数据:查询结果。 3.3数据库描述 本软件采用SQL数据库。 3.4数据流程图 《学生信息系统》软件的数据流程图是比较清晰的,对各功能模块来说都比较有规律。但完整的图比较繁琐,各个功能模块的基本流程图如下。 3.5数据字典 这里给出一个数据元素的字典卡片与具体数据卡片的含义: 名称:学生信息系统 描述:产生学生信息文件送交学生信息目录表 定义:学生信息系统=学生信息类型+安全级别 4. 功能要求 4.1功能划分 本系统有以下功能模块: 1)学生信息录入模块 2)学生信息查询模块 3)学生信息修改模块 4)学生信息删除模块  4.2功能描述 下面详细描述一下各个功能模块: 1)学生信息录入 (1) 学生信息目录管理:只限于一般用户管理员操作。而且不同的用户级别所操作的信息类型是有限制的。用户可以向里面添加、修改和删除档案类型。也可设置信息类型的级别,以加强它们的保密性。 (2) 学生信息仓库:限于全体操作员工。一般浏览者只能查看学生信息,不能对学生信息做任何的修改。而且不同的用户级别所看到的档案是有限制的。一般用户可向里面添加、修改和删除档案。也可设置学生信息级别,以加强它们的保密性。 2)学生信息查询 (1) 查询单条学生信息记录:主要是适合于全体操作人员的。在窗体上,先可以选择查询的条件,再输入关键字名。按查询即可。查到记录后,也可双击记录即可显示详细信息。 (2) 查询全部学生信息:是给管理员用的,是为了方便管理员查找学生信息,也有按班级查询、按姓名查询和按学号查询。查到记录后,也可双击记录即可显示详细信息。 也有多种查询方法。查到记录后,也可双击记录即可显示详细信息。 3)学生信息修改 (1)修改单条学生信息:主要是适合于全体操作人员的。在窗体上,修改学生信息。修改记录后,也可双击记录即可显示详细信息。 (2)修改全部学生信息:是给管理员用的,是为了方便管理员修改学生信息。修改记录后,也可双击记录即可显示详细信息。 4)学生信息删除 (1)删除单条学生信息:主要是适合于全体操作人员的。在窗体上,删除学生信息。删除记录后,也可双击记录即可显示详细信息。 (2)删除全部学生信息:是给管理员用的,是为了方便管理员删除学生信息。删除记录后,也可双击记录即可显示详细信息。 5.性能需求 5.1数据精确度 A.要按照严格的数据格式输入,否则系统不给予响应进行处理。 B.查询时要保证查全率,所有相应域包含查询关键字的记录都应能查到。因为通常有文件的记录会很多,所以本系统采用了两种方法进行查询:按班级查询、按姓名查询和按学号查询。 5.2时间特性 一般操作的响应时间应在1~2秒内,对软磁盘和打印机的操作也应在可接受的时间内完成。 5.3适应性 满足学校使用的需求(记录量控制在1000项内)。 对前面提到的运行环境要求不应存在困难。 6. 运行需求 6.1用户界面 超越VB的界面,全新感觉,操作简便,一目了然,视图优美等特点。并且采用菜单界面驱动方式,给操作用户带来了极大的便利,对用户友好。对鼠标和键盘单独支持。 6.2硬件接口 本软件不需要特定的硬件或硬件接口进行支撑。 6.3软件接口 运行于Windows 2000及更高版本具有.net的操作系统之上。 6.4故障处理 正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。 调试中遇到的问题及解决的方案: 1)遇到跳出“数据库已经关闭“提示信息阻止程序运行时 可以查看一下进行此项操作时,操作的表是否已经被关闭了或者是在没有关闭此表的情况 下又一次运用打开语句打开此表。 2)关于空记录带来的麻烦 有些空记录往往会使程序无法运行。此时你可用“if not isnull”语句先判断一下是否为 空记录,再操作。 3)有些运行错误也可用如下语句排除 On Error GoTo Erropoint Erropoint : Msgbox Err.Descripton Exit sub 或用On Error resume Next 等语句进行处理。 7.其它要求 1)系统的功能实现情况: 用户可在本系统下实现各种用户要求的功能 2)系统的安全性: 对于系统的重要数据都有密码保护,具有一定的安全性 3)系统的容错性: 用户输错数据都有提示信息,具有较好的容错性能。 4)系统的封闭性: 用户的封闭性较好,用户基本上在提示信息下输数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值