目 录
第一章 绪论 1
1.1 项目名称 1
1.2 为什么要选择这个题目 1
1.3 项目目的 1
1.4 项目范围 2
1.5 项目分析 2
1.5.1 观摩方法 2
1.5.2 问卷调查方法 X 3
1.5.3 会议讨论方法 X 4
1.6 项目的可行性研究 5
1.7 项目的需求说明 5
1.8 功能需求 6
1.9 非功能需求 X 6
1.10 用户界面设计 7
1.11 开发方法 7
1.12 项目计划 8
第二章 系统综述 9
引言 9
2.1 系统分析 9
2.1.1 开发环境 9
2.1.2 数据流图 9
2.1.3 范式分析 X 10
2.1.4 ER图 10
2.1.5 数据模型图 10
2.1.6 数据字典 11
2.1.7 类的定义 X 14
2.1.8 输入输出设计 14
2.1.9 基本过程分析 15
2.1.10 用例图 15
2.1.11 关系图 16
2.1.11 类图 16
2.1.12 时序图 16
2.2 系统设计 17
2.2.1 UI详细设计 17
2.2.2 代码设计 X 20
2.2.3 功能设计 整合进功能分析 20
2.3 系统实施 21
2.3.1计算机系统平台 X 21
2.3.2 编程环境与工具 X 21
2.3.3 数据准备 X 22
2.3.4 关键代码 篇幅够,就删除 22
2.4 系统测试 25
2.4.1 测试流程 25
2.4.2 测试计划与测试记录 26
第三章 系统评估 28
2.1 项目评估报告 X 28
2.2 项目总结 28
2.3 设计项目时遇到的问题和解决方案 29
2.4 项目实施遇到的问题和解决方案 29
参考文献 30
致 谢 31
1.7 项目的需求说明
健身房管理系统将登录本系统的身份定为二种:一是操作员用户,二是管理员,只有被授权的用户才可以使用本系统的功能。
管理员可以管理所有用户的注册信息并有管理系统内所有资源的权限。
用户的身份不同,使用的系统资源也不同。会员用户只可以查看信息和选课以及修改个人信息。管理员的权限在普通用户之上,他拥有整个系统的全部使用权
用户管理:对会员用户及管理员用户,进行注册、登录、输入用户名、密码、E-MAIL、电话及其他说明等。
数据处理:管理员手动添加健身房(新闻、通知、课程、课程安排)等数据的输入、编辑、修改、删除等功能。
1.8 功能需求
通过分析健身房管理系统的需求分析,得出系统的功能需求如下:
1、健身房有各种不同种类的课程若干,不同的课程计费方式不同,如健身房通常都是收费使用,允许多个用户同时进入课程,而个别课程通常都是独占使用。
2、健身房提供体育器械租赁,体育器械有免费提供的,但入馆要登记,出馆要归还,但不收费;也有计时收费的体育器械,同样要登记和归还。
3、健身房的客户有散客和会员两种。
4、健身房有会员管理,会员可以给会员账号中充值,消费时可以直接从会员账户中扣除,散客进入课程则需要交纳一定的现金作为押金。
5、客户入馆时,创建账单记录记录下课程和时间以及租赁的器械,租赁的器械通过账单附加记录。
6、客户出馆时,根据账单记录和账单附加,自动计算费用。
7、会员能够登陆系统,能够预约课程、查看预约记录、修改密码和修改基本信息。
1.9 非功能需求 X
为了达成系统的总体目标,我们提出本系统的非功能需求如下:
(1)系统的实用性和经济性相结合
建设健身房管理系统的价值在于为健身房提供应用,而应用就必须切合实际。所以系统的设计要深入研究分析健身房现有管理流程和特点,结合实际情况,提供一个高性价比的方案。
(2)系统的先进性和成熟性相结合
计算机技术发展是日新月异,系统的更新换代非常快,为此,要求在方案设计过程中,尽量选用先进并且相对成熟的技术,本文转载自http://www.biyezuopin.vip/onews.asp?id=14737确保系统不但易于开发和使用,也很容易的升级换代。
(3)系统的可靠性和稳定性相结合
运用先进的计算机程序开发技术和网络技术,并根据健身房管理的特点,要求将系统的可靠性设计亦视为一个重点,以保证数据的安全和系统的稳定运行。
(4)系统的可扩展性和易维护性相结合
为了适应系统变化的要求,在方案设计过程尽量选用扩充性强的软硬件系统,同时要求开发的应用系统,可扩展、易维护,以便系统建成后,用户可以用最简便的方法、最低的投资,实现系统的扩展和维护。
(5)系统的用户积极参与原则
用户是系统功能要求的提出者,同时也是系统的最终使用和管理者,用户的积极参与是项目得以成功实施的前提。
package com.milotnt.controller;
import com.milotnt.pojo.Admin;
import com.milotnt.pojo.Member;
import com.milotnt.service.AdminService;
import com.milotnt.service.EmployeeService;
import com.milotnt.service.EquipmentService;
import com.milotnt.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpSession;
/**
* @author ZhangMing [1157038410@qq.com]
* @date 2021/8/20
*/
@Controller
public class LoginController {
@Autowired
private MemberService memberService;
@Autowired
private AdminService adminService;
@Autowired
private EmployeeService employeeService;
@Autowired
private EquipmentService equipmentService;
//主页、跳转管理员登录页面
@RequestMapping("/")
public String toAdminLogin() {
return "adminLogin";
}
//跳转会员登录页面
@RequestMapping("/toUserLogin")
public String toUserLogin() {
return "userLogin";
}
//管理员登录
@RequestMapping("/adminLogin")
public String adminLogin(Admin admin, Model model, HttpSession session) {
Admin admin1 = adminService.adminLogin(admin);
if (admin1 != null) {
//会员人数
Integer memberTotal = memberService.selectTotalCount();
model.addAttribute("memberTotal", memberTotal);
session.setAttribute("memberTotal", memberTotal);
//员工人数
Integer employeeTotal = employeeService.selectTotalCount();
model.addAttribute("employeeTotal", employeeTotal);
session.setAttribute("employeeTotal", employeeTotal);
//健身房总人数
Integer humanTotal = memberTotal + employeeTotal;
model.addAttribute("humanTotal", humanTotal);
session.setAttribute("humanTotal", humanTotal);
//器材数
Integer equipmentTotal = equipmentService.selectTotalCount();
model.addAttribute("equipmentTotal", equipmentTotal);
session.setAttribute("equipmentTotal", equipmentTotal);
return "adminMain";
}
model.addAttribute("msg", "您输入的账号或密码有误,请重新输入!");
return "adminLogin";
}
//会员登录
@RequestMapping("/userLogin")
public String userLogin(Member member, Model model, HttpSession session) {
Member member1 = memberService.userLogin(member);
if (member1 != null) {
model.addAttribute("member", member1);
session.setAttribute("user", member1);
return "userMain";
}
model.addAttribute("msg", "您输入的账号或密码有误,请重新输入!");
return "userLogin";
}
//跳转管理员主页
@RequestMapping("/toAdminMain")
public String toAdminMain(Model model, HttpSession session) {
Integer memberTotal = (Integer) session.getAttribute("memberTotal");
Integer employeeTotal = (Integer) session.getAttribute("employeeTotal");
Integer humanTotal = (Integer) session.getAttribute("humanTotal");
Integer equipmentTotal = (Integer) session.getAttribute("equipmentTotal");
model.addAttribute("memberTotal", memberTotal);
model.addAttribute("employeeTotal", employeeTotal);
model.addAttribute("humanTotal", humanTotal);
model.addAttribute("equipmentTotal", equipmentTotal);
return "adminMain";
}
//跳转会员主页
@RequestMapping("/toUserMain")
public String toUserMain(Model model, HttpSession session) {
Member member = (Member) session.getAttribute("user");
model.addAttribute("member", member);
return "userMain";
}
}