目 录
摘 要 I
Abstract II
1 绪论 1
1.1 选题背景及意义 1
1.1.1 选题背景 1
1.1.2 选题意义 1
1.2 国内外研究现状及发展趋势 2
1.2.1 国内研究现状 2
1.2.2 国外研究现状 2
1.2.3 发展趋势 2
1.3 论文研究主要内容 3
1.3.1 技术应用 3
1.3.2 功能实现 3
1.3.3 系统优化与扩展 4
1.4 论文结构安排 4
2 相关技术概述 6
2.1 Java语言简介 6
2.2 B/S结构 6
2.3 MySQL数据库 7
2.4 SSM框架 8
3 系统分析 10
3.1 系统需求分析 10
3.1.1功能需求 10
3.1.2性能需求 10
3.1.3数据需求 10
3.1.4扩展性需求 11
3.2系统流程分析 11
3.2.1 操作流程分析 11
3.2.2 登录流程分析 12
3.2.3 信息添加流程分析 13
3.2.4 信息删除流程分析 13
3.3 系统可行性分析 14
3.1.1 技术可行性分析 14
3.1.2 经济可行性分析 14
3.1.3 运行可行性分析 15
4 系统设计 16
4.1 系统概要设计 16
4.2 系统功能结构设计 16
4.3 数据库设计 17
4.3.1 数据库E-R图设计 17
4.3.2 数据库表结构设计 18
5 系统实现 22
5.1家庭成员管理 22
5.2 通知信息管理 22
5.3家庭信息管理 23
5.4家庭账本管理 24
6 系统测试 25
6.1系统测试的目的 25
6.2系统测试方法 26
6.3 测试结果 27
结 论 28
致 谢 29
参考文献 30
1.3 论文研究主要内容
本研究旨在基于JavaWeb技术、SSM框架和MySQL数据库,开发一款功能全面、操作便捷的家庭财务管理系统。该系统不仅满足家庭对财务管理的基本需求,还融入了先进的信息技术,以提升家庭财务管理的效率和精度。
1.3.1 技术应用
本研究将采用JavaWeb作为开发平台,利用其跨平台性、开放性和可扩展性的优势,为系统的稳定运行提供坚实基础。SSM框架(Spring、SpringMVC、MyBatis)将作为后端开发的核心技术,通过整合各组件,实现系统的业务逻辑处理和数据交互。MySQL数据库将负责存储和管理系统的数据,确保数据的完整性、安全性和高效性。
1.3.2 功能实现
在功能实现方面,系统将包括以下几个主要模块:
用户权限管理模块:实现用户的注册、登录和权限分配功能,确保不同用户只能访问其权限范围内的功能和数据。
家庭成员与账户管理模块:允许用户添加、编辑和删除家庭成员信息,并为每个成员设置独立的账户,方便进行财务记录和统计。
日常收支管理模块:提供录入、修改和查询日常收入和支出的功能,支持多种收支类型的分类管理,便于用户了解家庭的经济流动情况。
借款与还款管理模块:实现借款和还款记录的录入、查询和统计分析功能,帮助用户追踪和管理家庭或成员间的借贷行为。
预算设置与提醒模块:允许用户设置家庭或个人的预算,并根据实际收支情况进行预算执行情况的分析和提醒,辅助用户进行财务规划。
统计与报表模块:通过丰富的图表和报表形式,展示家庭的收支情况、预算执行情况等统计数据,为用户提供直观的财务概览和决策支持。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>家庭财务管理系统</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/xznstatic/css/bootstrap4.2.1.min.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/resources/xznstatic/css/style.default.css" id="theme-stylesheet">
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/assets2/js/jquery.min.js"></script>
</head>
<body>
<div class="page login-page">
<div class="container d-flex align-items-center">
<div class="form-holder has-shadow">
<div class="row">
<div class="col-lg-6">
<div class="info d-flex align-items-center">
<div class="content">
<div class="logo">
<h1>欢迎登录</h1>
</div>
<p>家庭财务管理系统</p>
</div>
</div>
</div>
<div class="col-lg-6 bg-white">
<div class="form d-flex align-items-center">
<div class="content">
<form id="loginForm" action="" method="post" class="form-validate">
<input type="text" required placeholder="用户名" id="username" name="username" class="input-material">
<input type="password" name="password" required placeholder="密码" class="input-material">
<div style="margin: 10px 0;" id="submitBtn"></div>
<button type="submit" class="btn btn-primary" οnclick="login()">登录</button>
</form>
<br />
<a href="modules/yonghu/register.jsp" class="signup">用户注册</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/bootstrap4.2.1.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/jquery.validate.min.js"></script>
<script src="${pageContext.request.contextPath}/resources/xznstatic/js/front.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/js/jquery.form.js"></script>
<script type="text/javascript">
<%@ include file="utils/menu.jsp"%>
<%@ include file="utils/baseUrl.jsp"%>
var role = "";
var accountTableName = "";
//渲染角色选择
function setRoleOption() {
for (var i = 0; i < menus.length; i++) {
var divRoot = '<div class="custom-control custom-checkbox "><input type="radio" name="chk" class="custom-control-input" id="check' + i + '" value="' + menus[i].roleName + '" οnclick="checkRole(\'' + menus[i].roleName + '\', \'' + menus[i].tableName + '\')"><label class="custom-control-label" for="check' + i + '">' + menus[i].roleName + '</label></div>';
$('#submitBtn').append(divRoot);
}
}
function checkRole(roleName, tableName) {
role = roleName;
$('#loginForm').attr('action', baseUrl + tableName + '/login');
accountTableName = tableName;
}
function login() {
$("#loginForm").ajaxForm(function(res) {
if (role == "" || role == null) {
alert("请选择角色后再登录");
} else {
if (res.code == 0) {
alert("登录成功");
var username = $('#username').val();
window.sessionStorage.setItem('accountTableName',accountTableName)
window.sessionStorage.setItem('username',username);
window.sessionStorage.setItem('token', res.token);
window.sessionStorage.setItem('role', role);
window.location.href = "${pageContext.request.contextPath}/index.jsp";
} else {
alert(res.msg);
}
}
});
}
function ready() {
setRoleOption();
}
document.addEventListener("DOMContentLoaded", ready);
</script>
</body>
</html>