Java基于jsp大学生收支管理系统

news2025/1/11 12:37:28

随着计算机技术的飞速发展,计算机在系统管理中的应用越来越普及,利用计算机实现各个系统的管理显得越来越重要。随着人们消费水平的提高,消费量一直在加大 ,可是如何能够合理的管理和记录自己的消费方向是一个很大的问题,尤其是在校大学生,大学生是一个特殊的群体,他们主要目的是学习,他们的消费来源主要是来源于家庭部分,收入可能来源于自己的勤工俭学。所以如何能够更好的让大学生去管理自己的收支平衡,从而养成勤俭节约的好习惯是一个很重要的社会问题,这不仅关系到一个大学生家庭情况,而且很可能影响未来的社会收支问题。大学生收支管理系统,能够让大学生尽量去平衡自己的收入和支出,从而有计划的去,消费而不是去盲目的随波逐流。所以建立一个高效的,合理的大学生个人收支系统是很有必要的。
请添加图片描述
大学生个人收支管理系统的开发目的是使个人收支综合管理模式从手工记录转变成信息管理,为个人收支综合管理人员提供方便条件。对实际情况进行调研之后,进行详细的需求分析,对现有的管理模式进行改进,开发出一套新型的管理系统,从中领悟系统开发的思想,掌握系统开发的流程和方法。随着个人收支信息管理信息系统的不断完善,个人收支信息管理的管理将越来越依赖于信息化的管理。所以系统开发将围绕大学生收支的实际情况,使之能迅速适应需要并养成良好的收支平衡习惯。

请添加图片描述
本系统分为大学生注册用户和管理员两部分具体功能如下所述
注册用户部分功能描述
1:用户注册:大学生可以通过注册成为本系统的用户,然后可以管理自己的收入支出情况,如果不注册是不能够使用本系统进行收支管理的。注册信息包括用户名,密码,姓名,性别,所在年级,联系电话和地址等信息
2:支出类目管理:为了更加方便的管理支出的类型,用户可以对支出的类目进行管理,例如购物,餐饮,日常用品,还贷等类型,这样方便了解自己对各种类型的支出项目的统计查询,方便自己做的支出的项目去向
3:收入类目管理:为了更加方便的让学生管理自己的收入类型,用户可以管理自己的收入类目信息,包括父母打款,兼职所得,像同学借钱等收入情况的类目管理,这样方便对后面的收入情况根据类目进行管理,方便了解收入的来源分析
4:支出管理:系统用户可以管理自己日程的支出信息,具体支出信息要归属到不同的支出类目中,,例如某年某月某日某个时间购买了一件东西,可以支出管理的购物类目加添加一条对应的信息,这样在以后的统计查询中不仅可以知道具体的消费内容还可以根据类目进行统计查询。
5:收入管理,系统用户可以根据自己日程的收入信息登记到不同类目的收入信息中去,例如某年某月某日父母打款多少钱用于做生活费,这个时候就在收入管理里面添加一条对应的收入记录,该收入的类目就是父母打款,这样以后再查询统计的时候就可以知道具体的收入来源了,而且通过一定时间段的收入和支出统计还可以了解到自己的收支是否平衡,让学生能够更好的把握自己的经济情况。
6:支出查询统计,系统用户可以根据时间段和支出类目对支出信息进行查询统计,例如学生在自己的管理界面中选择了一个时间段,2017-11-01至2017-11-30然后就可以点击查询按钮,这个时候就可以统计出自己在这段时间段的支出情况,另外还可以在加上类目和时间进行综合查询,这样就知道了这个时间段的该类目下的支付情况的集合。
7:收入查询统计,系统用户可以根据时间段和收入类目进行收入信息的查询统计,例如学生在自己的收入查询统计界面中选择了一个时间段,2017-11-01至2017-11-30然后就可以点击查询按钮,这个时候就可以统计出自己在这段时间段的收入情况,另外还可以在加上类目和时间进行综合查询,这样就知道了这个时间段的该类目下的所有收入金额的总和。
8:修改密码,为了保证自己账号的安全,用户可以修改自己的个人密码,这样防止被人盗取自己的密码进行非法操作
管理员部分功能描述
1:注册用户管理,管理员用户可以管理注册用户信息,包括对注册用的查询和删除等操作
2:收入查询统计,因为本系统是一个严谨的收入支出系统,所以管理员不可以直接查看用户的这些收入和支出信息,并可以根据条件统计用户的收入信息
3:支出查询统计,因为本系统是一个严谨的收入支出系统,所以管理员不可以直接查看用户的这些收入和支出信息,并可以根据条件统计用户的支出信息
4:修改密码,管理员用户可以修改自己的个人密码,这样防止被人盗取自己的密码进行非法操作

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

package com.controller;

import java.io.File;
import java.io.IOException;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.entity.Allusers;
//import com.chengxusheji.po.News;
import com.server.AllusersServer;
import com.util.PageBean;
import net.sf.json.JSONObject;

@Controller
public class AllusersController {
	@Resource
	private AllusersServer allusersService;


//	
   @RequestMapping("showAllusers.do")
   public String showAllusers(int id,ModelMap map,HttpSession session){
	 /*  Map<String,Object> bmap=new HashMap<String,Object>();
	   bmap.put("uid", id);*/
	  // map.put("blist", allusersService.getAll(bmap));
	   map.put("allusers", allusersService.getById(id));
	   return "read";
   }
   
	@RequestMapping("addAllusers.do")
	public String addAllusers(HttpServletRequest request,Allusers allusers,HttpSession session){
		Timestamp time=new Timestamp(System.currentTimeMillis());
		//Users u=(Users)session.getAttribute("user");
		/*if(u==null||u.equals("")){
			return "redirect:showIndex.do";
		}else{*/
			//bbs.setUid(u.getId());
			/*bbs.setPubtime(time.toString());
			bbs.setIsdel("1");*/
		    allusers.setAddtime(time.toString().substring(0, 19));
			allusersService.add(allusers);
			return "redirect:allusersList.do";
		/*}*/
		
		
	}
 
//	处理编辑
	@RequestMapping("doUpdateAllusers.do")
	public String doUpdateAllusers(int id,ModelMap map,Allusers allusers){
		allusers=allusersService.getById(id);
		map.put("allusers", allusers);
		return "allusers_updt";
	}
//	
	@RequestMapping("updateAllusers.do")
	public String updateAllusers(int id,ModelMap map,Allusers allusers){
		allusersService.update(allusers);
		return "redirect:allusersList.do";
	}
//	所有List
//	@RequestMapping("allusersList.do")
//	public String allusersList(ModelMap map,HttpSession session){
//		map.put("list", allusersService.getAll(null));
//		map.put("clist", allusersService.getAll(null));
//		return "allusers";
//	}
//	分页查询
	@RequestMapping("allusersList.do")
	public String goodList(@RequestParam(value="page",required=false)String page,
			ModelMap map,HttpSession session,Allusers allusers, String username, String pwd, String cx){
		/*if(session.getAttribute("user")==null){
			return "login";
		}*/
		if(page==null||page.equals("")){
			page="1";
		}
		PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
		Map<String, Object> pmap=new HashMap<String,Object>();
		pmap.put("pageno", pageBean.getStart());
		pmap.put("pageSize", 15);
		Map<String, Object> bmap=new HashMap<String, Object>();
		Map<String,Object> cmap=new HashMap<String,Object>();
		/*pmap.put("uid",  ((Users)session.getAttribute("user")).getId());
		bmap.put("uid", ((Users)session.getAttribute("user")).getId());*/
		if(username==null||username.equals("")){pmap.put("username", null);cmap.put("username", null);}else{pmap.put("username", username);cmap.put("username", username);}
		if(pwd==null||pwd.equals("")){pmap.put("pwd", null);cmap.put("pwd", null);}else{pmap.put("pwd", pwd);cmap.put("pwd", pwd);}
		if(cx==null||cx.equals("")){pmap.put("cx", null);cmap.put("cx", null);}else{pmap.put("cx", cx);cmap.put("cx", cx);}
		
		int total=allusersService.getCount(bmap);
		pageBean.setTotal(total);
		List<Allusers> list=allusersService.getByPage(pmap);
		map.put("page", pageBean);
		map.put("list", list);
		session.setAttribute("p", 1);
		return "allusers_list";
	}
//   分页模糊查询
	@RequestMapping("vagueAllusersList.do")
	public String vagueAllusersList(@RequestParam(value="page",required=false)String page,
			ModelMap map,HttpSession session){
		if(page==null||page.equals("")){
			page="1";
		}
		PageBean pageBean=new PageBean(Integer.parseInt(page),PageBean.PAGESIZE);
		Map<String, Object> pmap=new HashMap<String,Object>();
		pmap.put("pageno", pageBean.getStart());
		pmap.put("pageSize", pageBean.getPageSize());
		Map<String, Object> bmap=new HashMap<String, Object>();
		/*pmap.put("uid",  ((Users)session.getAttribute("user")).getId());
		bmap.put("uid",  ((Users)session.getAttribute("user")).getId());*/
		int total=allusersService.getCount(bmap);
		pageBean.setTotal(total);
		List<Allusers> list=allusersService.getByPage(pmap);
		map.put("page", pageBean);
		map.put("list", list);
		session.setAttribute("p", 2);
		return "queryallusers";
	}
	@RequestMapping("deleteAllusers.do")
	public String deleteAllusers(int id){
		allusersService.delete(id);
		return "redirect:allusersList.do";
	}
	
	@RequestMapping("quchongAllusers.do")
	public void quchongAllusers(Allusers allusers,HttpServletResponse response){
		   Map<String,Object> map=new HashMap<String,Object>();
		   map.put("username", allusers.getUsername());
		   System.out.println("username==="+allusers.getUsername());
		   System.out.println("username222==="+allusersService.quchongAllusers(map));
		   JSONObject obj=new JSONObject();
		   if(allusersService.quchongAllusers(map)!=null){
				 obj.put("info", "ng");
			   }else{
				   obj.put("info", "username可以用!");
				  
			   }
		   response.setContentType("text/html;charset=utf-8");
		   PrintWriter out=null;
		   try {
			out=response.getWriter();
			out.print(obj);
			out.flush();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			out.close();
		}
	}
	
	@RequestMapping("Alluserslogin.do")
	public String checkAllusersLogin(Allusers allusers, HttpSession session) {
		Map<String,Object> u=new HashMap<String,Object>();
		System.out.println("name===" + allusers.getUsername());
		u.put("username",allusers.getUsername());
		//u.put("utype", "用户");
		//Md5.MD5HexEncode(user.getPassword())
		u.put("pwd",allusers.getPwd());
		allusers = allusersService.allusersLogin(u);
		if (allusers != null) {
			session.setAttribute("username", allusers);
			System.out.println("username=" + allusers);
			session.removeAttribute("suc");
			return "redirect:index.do";
		} else {
			System.out.println("usernafwfwwme=");
			session.setAttribute("suc", "登录失败!用户名或密码错误!");
			return "login";
		}

	}
}

目录
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

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

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

相关文章

深度学习炼丹-不平衡样本的处理

前言一&#xff0c;数据层面处理方法 1.1&#xff0c;数据扩充1.2&#xff0c;数据&#xff08;重&#xff09;采样 数据采样方法总结 1.3&#xff0c;类别平衡采样 二&#xff0c;算法&#xff08;损失函数&#xff09;层面处理方法 2.1&#xff0c;Focal Loss2.2&#xff0c;…

Akka 学习(三)Actor的基本使用

目录一 基本案例1.1 Java 版1.2 Scala版二 Actor的创建2.1 ActorRef2.2 Props2.3 ActorSelection三 Promise、Future和事件驱动的编程模型3.1 阻塞与事件驱动3.2 Future进行Actor响应3.2.1 Java版3.2.2 Scala 版3.2.3 总结3.3 成功处理3.4 失败处理3.5 恢复3.6 链式调用3.7 结果…

小程序开发工具怎么使用?

小程序开发工具怎么用&#xff1f; 小程序开发工具分两种: 一种是微信官方提供的微信开发者工具 这个需要从事代码行业&#xff0c;职业是程序员又或者对代码知识有一定程度的人&#xff0c;才能上手使用。 另一种是第三方小程序开发平台&#xff0c;提供的小程序开发工具 …

python环境、基础语法、几种常见的数据类型

文章目录前言一、基本知识介绍二、举例实操以及重要知识再现(列表、元组、集合、字典)前言 一、基本知识介绍 python基础 标准库与扩展库中的对象的导入与使用&#xff1a; import 模块名&#xff08;as别名&#xff09; import numpy as np from 模块名 import 对象名&#x…

程序人生:快来一起学习软件测试,一起月薪过万(测试理论基础学习)

测试基础 为什么要有测试呢&#xff1f;现在软件已经和人的生活息息相关了&#xff0c;所以保证软件的稳定很重要。但是所有开发出来的软件都是有缺陷的。包括代码错误&#xff0c;逻辑错误&#xff0c;设计不合理等。 测试的目的 测试的目的主要有四个点 1找到软件缺陷 2…

Flink SQL增量查询Hudi表

前言 前面总结了Spark SQL增量查询Hudi表和Hive增量查询Hudi表。最近项目上也有Flink SQL增量查询Hudi表的需求&#xff0c;正好学习总结一下。 官网文档 地址&#xff1a;https://hudi.apache.org/cn/docs/querying_data#incremental-query 参数 read.start-commit 增量查…

WWW2022 | 基于领域增强的图对比协同过滤方法+代码实践

嘿&#xff0c;记得给“机器学习与推荐算法”添加星标今天跟大家分享一篇将对比学习应用于图协同过滤方法的文章&#xff0c;该论文发表于WWW2022会议上。其主要思想是在图神经网络协同过滤方法上应用了两种领域类型的对比学习方法&#xff0c;分别是显式的结构领域和隐式的语义…

TGK-Planner-前后端路径规划(基于梯度的后端无约束优化)

高速移动无人机的在线路径规划一直是学界当前研究的难点&#xff0c;引起了大量机器人行业的研究人员与工程师的关注。然而无人机的计算资源有限&#xff0c;要在短时间内规划出一条安全可执行的路径&#xff0c;这就要求无人机的运动规划算法必须轻型而有效。本文将介绍一种无…

electron-vue中报错 Cannot use import statement outside a module解决方案(亲测有效!!!)

错误&#xff1a; Cannot use import statement outside a module(不能在模块之外使用导入语句)。 原因&#xff1a; 安装的某个依赖包里使用了import语法&#xff0c;因为我们打包输出的是commonjs规范&#xff0c;所以不识别import语法而导致报错。 可以从 .electron-vue/w…

PrimoBurnerSDK蓝光刻录工具开发工具包

PrimoBurnerSDK蓝光刻录工具开发工具包 PrimoBurnerSDK是一个CD、DVD和蓝光刻录工具开发工具包。它还提供了一个全面灵活的API&#xff0c;用于快速轻松地实现各种燃烧/翻录替代方案。 PrimoBurner SDK for.NET的强大功能&#xff1a; 自2003年以来一直在发展的广泛使用的老式发…

比机器人还智能的数字孪生地下停车场监管系统!

现在的停车场管理大多采用人工或智能收费系统&#xff0c;两种方式都有一个弊端就是无法直接知晓停车场内部信息。 车驶入停车场只能自行寻找停车位&#xff0c;工作人员也只有走进停车场才能知晓停车场内部情况&#xff0c;无可避免造成很多麻烦。 停车场智慧监管系统结合数…

期货开户交易操作技巧

期货交易的时候需要有一些操作技巧&#xff0c;以及要注意一些操作上常见的错误。 个人建议刚刚开始交易的投资者期货交易的投资者&#xff0c;一定要多看慢做&#xff0c;首先要摒弃做这个会一夜暴富的想法。抱着个想法来的往往都会折戟沉沙&#xff0c;一去不复返了。所以我…

基于springboot+mybatis+mysql+vue中学生成绩管理系统

基于springbootmybatismysqlvue中学生成绩管理系统一、系统介绍二、功能展示1.登陆2.用户管理(管理员)3.班主任信息管理(管理员)4.教师信息管理&#xff08;管理员、班主任&#xff09;5.学生信息管理&#xff08;管理员&#xff09;6.成绩信息管理&#xff08;管理员、班主任、…

一个人,仅30天!开发一款3D竞技足球游戏!他究竟经历了些什么?

今天&#xff0c;晓衡向大家推荐一款Coco Store 优质 3D足球竞技游戏 资源《足球快斗》玩法介绍&#xff1a;游戏为 7V7 足球竞技类玩法。玩家控制本队的一个球员&#xff08;脚下高亮圆圈显示的是玩家&#xff09;&#xff0c;其他球员和守门员为电脑AI控制&#xff0c;期间可…

Jvm上如何运行其他语言?JSR223规范最详细讲解

一 在Java的平台里&#xff0c;其实是可以执行其他的语言的。包括且不仅限于jvm发展出来的语言。 有的同学可能会说&#xff0c;在java项目里执行其他语言&#xff0c;这不吃饱了撑着么&#xff0c;java体系那么庞大&#xff0c;各种工具一应俱全&#xff0c;放着好好的java不…

责任链模式在复杂数据处理场景中的实战

相信大家在日常的开发中都遇到过复杂数据处理和复杂数据校验的场景&#xff0c;本文从一线开发者的角度&#xff0c;分享了责任链模式在这种复杂数据处理场景下的实战案例&#xff0c;此外&#xff0c;作者在普通责任链模式的基础上进行了升级改造&#xff0c;可以适配更加复杂…

34_DAC原理及数模转换实验

目录 数模转换原理 DAC模块框图 事件选择控制数字模拟转换 DAC转换 DAC数据格式 选择DAC触发 DAC输出电压计算 硬件连接 DAC配置步骤 实验源码 数模转换原理 STM32的DAC模块(数字/模拟转换模块)是12位数字输入,电压输出型的DAC。DAC可以配置为8位或12位模式,也可以与…

linux安装nginx

1.nginx官网 http://nginx.org/en/download.html 下载安装包&#xff0c;如图所示下载nginx-1.23.2&#xff0c;并上传到指定目录&#xff1a;/usr/local/src/nginx 2.解压 tar -zxvf nginx-1.23.2.tar.gz3.安装nginx&#xff0c; cd /usr/local/src/nginx/nginx-1.23.2 该目录…

Titanic 泰坦尼克数据集 特诊工程 机器学习建模

以下内容为讲课时使用到的泰坦尼克数据集分析、建模过程&#xff0c;整体比较完整&#xff0c;分享出来&#xff0c;希望能帮助大家。部分内容由于版本问题&#xff0c;可能无法顺利运行。 Table of Contents 1 经典又有趣的Titanic问题1.1 目标1.2 解决方法1.3 项目目的2…

Vector-常用CAN工具 - CANoe入门到精通_03

NetWork Node 前面已经介绍了CANoe的基本情况、硬件环境搭建、CANoe软件环境配置&#xff0c;今天我们就来聊一下NetWork Node&#xff0c;在我们的测试工作中&#xff0c;大部分情况我们默认CANoe作为一个Client端&#xff0c;但是有些情况&#xff0c;我们需要实时监测被测件…