养老院管理系统|基于JavaWeb开发实现养老院管理系统

news2024/11/25 2:52:49

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:BS-XX-170

前言:

新世纪以来,互联网与计算机技术的快速发展,我国也迈进网络化、集成化的信息大数据时代。对于大众而言,单机应用早已成为过去,传统模式早已满足不了当下办公生活等多种领域的需求,在一台电脑上不联网的软件少之又少,取而代之的是相互连通的软件系统,构成信息大数据社会。 快节奏的生活环境,漫天飞舞数据信息,微电子技术也不比从前,办公手段的落后与低效逐步被打中所淘汰,信息管理被时代推向了一个新高潮。但是,信息是看不到摸不到的一种新型资源,却尤为重要。管理和操控信息则成为一种新的学科,信息管理系统就诞生于美国。敬老院管理系统将IT技术为养老院提供一个接口便于管理信息,存储老人个人信息和其他信息,查找和更新信息的养老院档案,节省了员工的劳动时间,大大降低了成本。

本设计中使用的敬老院管理系统是基于JAVA平台开发的,系统使用JSP是编程语言。建立后台数据服务器利用的是MySQL数据库。本文主要对本系统的开发环境(国内外背景,软件简介,需求分析)、功能模块设计思路及开发过程进行介绍。着重阐述开发系统过错中遇到的技术难题及最终解决方案。

一,项目简介

通过调研分析,本系统主要是为了敬老院工作人员而设计的。

站在管理员即敬老院负责人角度来看,他迫切希望,在运用该系统以后,可以更加方便的对敬老院进行管理,包括对员工的管理,对老人入住情况的管理,床位入住信息的查看;可以更加方便的进行人员管理,包括修改老员工信息以及增添新员工信息;可以更加方便的进行财务管理,即根据员工请假记录进行工资管理以及老人入住时的缴费记录。

站在护工角度来看,他们迫切希望,在运用该系统以后,可以更加方便的修改个人详细信息;可以更加方便的查看自己负责的老人信息;可以更加方便的进行床位入住的管理。

根据对以上角色需求的分析,本系统主要的功能包括:登录、用户信息管理、老人信息管理、事故记录、请假记录、床位分配、入住费用,护工薪资和护工请假。

系统的主要功能性需求如下:

(1)登录:用户登录是系统的基础功能,用户只有登录系统之后,才能进行其他操作,这也是从系统的安全性角度充分考虑和认证的。本系统只有一个管理员,他是养老院的负责人,通过他可以增添新员工。管理员、员工输入各自相应的姓名以及密码且选择对应的身份即可登录系统。

(2)老人信息管理:员工在登录系统后,可以在相应的界面进行对老人个人信息的修改,包括个人身份证号,姓名,密码,年龄以及电话号码等。

(3)床位分配管理:主要是管理员对入住状况管理。

(4)用户信息管理:主要是管理员对整个宾馆员工个人信息的增删改查。

(5)事故记录:主要是管理员查看老人出现事故的相关服务的增删改查。

(6)请假记录:主要是管理员查看老人请假的相关服务的增删改查。

(7)护工薪资管理:主要是负责人对护工的薪资信息进行增删改查以及护工对自己薪资信息的查看。

(8)护工请假管理:主要是负责人对护工请假记录的增删改查以及护工对自己薪资信息的查看。

(9)入住费用:主要记录老人入住时缴费记录以及缴费金额。

具体的系统功能图如图3-1所示:

图3-1敬老院管理系统结构图

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:JSP,SERVLET,JDBC

三,系统展示

管理员登陆主界面

护工登陆主界面

四,核心代码展示

package com.action;
/**
 * 管理员登陆 增加 修改 删除  
 */
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.bean.ComBean; 
import com.util.Constant;
import com.util.MD5;

public class AdminServlet extends HttpServlet {

	/**
	 * Constructor of the object.
	 */
	public AdminServlet() {
		super();
	}

	/**
	 * Destruction of the servlet. <br>
	 */
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}

	/**
	 * The doGet method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to get.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request,response);
	}

	/**
	 * The doPost method of the servlet. <br>
	 *
	 * This method is called when a form has its tag value method equals to post.
	 * 
	 * @param request the request send by the client to the server
	 * @param response the response send by the server to the client
	 * @throws ServletException if an error occurred
	 * @throws IOException if an error occurred
	 */
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType(Constant.CONTENTTYPE);
		request.setCharacterEncoding(Constant.CHARACTERENCODING);
		String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
		String date2=new SimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());
		try{
			String method=request.getParameter("method").trim();
			ComBean cBean = new ComBean();
			HttpSession session = request.getSession();   
			if(method.equals("one")){//用户登录
				String username = request.getParameter("username");
				String password = request.getParameter("password");  
				String sf = request.getParameter("sf");  
				String sql="select realname from admin where username='"+username+"' and  password='"+password+"'  and  sf='"+sf+"' ";
				String str=cBean.getString(sql);
				if(str==null){
					request.setAttribute("message", "登录信息错误!");
					request.getRequestDispatcher("index.jsp").forward(request, response); 
				}
				else{
					session.setAttribute("user", username); 
					session.setAttribute("sf", sf); 
					request.getRequestDispatcher("admin/index.jsp").forward(request, response); 
				}  
			}
			else if(method.equals("uppwd")){//修改密码
				String username=(String)session.getAttribute("user"); 
				String oldpwd = request.getParameter("oldpwd"); 
				String newpwd = request.getParameter("newpwd"); 
				String str=cBean.getString("select id from admin where username='"+username+"' and  password='"+oldpwd+"'");
				if(str==null){
					request.setAttribute("message", "原始密码信息错误!");
					request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request, response); 
				}
				else{
					int flag=cBean.comUp("update admin set password='"+newpwd+"' where username='"+username+"'");
					if(flag == Constant.SUCCESS){ 
						request.setAttribute("message", "操作成功!");
						request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request, response); 
					}
					else { 
						request.setAttribute("message", "操作失败!");
						request.getRequestDispatcher("admin/system/editpwd.jsp").forward(request, response); 
					}
				}
			}
			else if(method.equals("adminexit")){//退出登录
				session.removeAttribute("user");  session.removeAttribute("sf");
				request.getRequestDispatcher("index.jsp").forward(request, response); 
			}
			else if(method.equals("addm")){//增加系统用户
				String username = request.getParameter("username"); 
				String password = request.getParameter("password"); 
				String realname = request.getParameter("realname"); 
				String sex = request.getParameter("sex"); 
				String age = request.getParameter("age"); 
				String address = request.getParameter("address"); 
				String tel = request.getParameter("tel"); 
				String str=cBean.getString("select id from admin where username='"+username+"'");
				if(str==null){ 
						int flag=cBean.comUp("insert into admin(username,password,realname,sex,age,address,tel,addtime ) " +
								"values('"+username+"','"+password+"','"+realname+"','"+sex+"','"+age+"','"+address+"','"+tel+"','"+date+"' )");
						if(flag == Constant.SUCCESS){ 
							request.setAttribute("message", "操作成功!");
							request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
						}
						else { 
							request.setAttribute("message", "操作失败!");
							request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
						} 
				}
				else{
					request.setAttribute("message", "该用户名已存在!");
					request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
				} 
			}
			else if(method.equals("upm")){//修改系统用户
				String id = request.getParameter("id");
				String password = request.getParameter("password");
				String realname = request.getParameter("realname"); 
				String sex = request.getParameter("sex"); 
				String age = request.getParameter("age"); 
				String address = request.getParameter("address"); 
				String tel = request.getParameter("tel");  
				int flag=cBean.comUp("update admin set password='"+password+"',realname='"+realname+"',sex='"+sex+"',age='"+age+"'," +
						"address='"+address+"',tel='"+tel+"' where id='"+id+"'");
				if(flag == Constant.SUCCESS){ 
					request.setAttribute("message", "操作成功!");
					request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
				}
				else { 
					request.setAttribute("message", "操作失败!");
					request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
				}
			}
			else if(method.equals("delm")){//删除系统用户
				String id = request.getParameter("id");  
				int flag=cBean.comUp("delete from admin where id='"+id+"'");
				if(flag == Constant.SUCCESS){ 
					request.setAttribute("message", "操作成功!");
					request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
				}
				else { 
					request.setAttribute("message", "操作失败!");
					request.getRequestDispatcher("admin/system/index.jsp").forward(request, response); 
				}
			} 
			else{//无参数传入转到错误页面
				request.getRequestDispatcher("error.jsp").forward(request, response);
			}
		}catch(Exception e){
			e.printStackTrace();
			request.getRequestDispatcher("error.jsp").forward(request, response);
		}
		
	}

	/**
	 * Initialization of the servlet. <br>
	 *
	 * @throws ServletException if an error occure
	 */
	public void init() throws ServletException {
		// Put your code here
	}

}

五,项目总结

随着信息技术的发展,敬老院信息管理也迎来了机遇和挑战,我们积极应战,不能有丝毫松懈。因为,在以后的互联网是一个开放的大环境,而传统的管理运作是以对象的养护和医疗分开的的管理模式,它在当前生活条件不断提升的环境下,存在许多局限性,已难以适应目前敬老院管理,只能称其为护理之家或者社区门诊,可以说,传统的管理模式已经远远不能适应当前人生活水平大幅提升的小康社会。在互联网技术的早期阶段,尚未广泛应用于加工、通讯、家居护理管理信息系统于敬老院之前,信息全都是手工操作,并且需要多道手续,快节奏社会生活已经得不到满足,养老院中的信息管理,如果采用传统模式,造成人力物理财力的大量流失。不同统计方式查询、重复信息问题的出现,这样的过程推动信息技术的实现,急需要一种高效率简单操作的信息系统来改善目前状况,因此在大时代发展的前提下,敬老院管理系统因运而生。因此,作为一个现代化的养老院,有必要建立一个新的信息管理模式,以应对这些新的形式。养老院管理信息系统,是医护结合的代表之作,具有推动劳动力向前发展的功能,具有革新意义。信息系统建设作为强大的动力,不仅仅推动敬老院管理模式的创新和制度创新。同时,在高速信息时代,敬老院管理系统成为了医护结合的现代化敬老院的核心。

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

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

相关文章

ROS用pyqt实现GUI界面控制乌龟运动

#!/usr/bin/env python3 #codingutf-8 from PyQt5.QtWidgets import * import sys from window import MainWindow,TurtleWindow import rospy if __name__ __main__: rospy.init_node(turtle_ctrl_node) appQApplication(sys.argv) #窗口展示 windowTurtleWindow() …

问题排查 - DotNet 6 后台服务Docker部署后部分接口返回值乱码

问题描述 最近有一个DotNetWebApi服务需要使用Docker在服务器部署&#xff0c;部署后部分接口返回内容会出现部分乱码的情况。 一些关键点&#xff1a; 服务本机直接启动&#xff0c;此接口无异常&#xff1b;服务器直接启动&#xff0c;此接口无异常 服务器为Ubuntu20.04安…

rabbitmq加入linux开机自启动脚本

cd /etc/init.d编辑脚本 vi rabbitmq#! /bin/sh # chkconfig: 2345 20 60 # description: rabbitmq server export HOME/root export PATH/usr/local/rabbitmq/erlang/bin:$PATH case "$1" instart)/usr/local/rabbitmq/sbin/rabbitmq-server start;;stop)/usr/loc…

命令模式Command

1.意图&#xff1a;将一个请求封装为一个对象&#xff0c;从而使得可以用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。 2.结构 Command声明执行操作的接口。 ConcreteCommand将一个接收者对象绑定于一个动作&#xff1…

利用nginx 反向代理解决跨域问题

说到nginx&#xff0c;不得不说真的很强大&#xff0c;也带来很多便利用于解决一些头疼的难题。 一般来说可以用来做&#xff1a;静态页面的服务器、静态文件缓存服务器、网站反向代理、负载均衡服务器等等&#xff0c;而且实现这一切&#xff0c;基本只需要改改那万能的配置…

前端插件的应用

像这种页面四个页面下面的展示格式都一样&#xff0c;这个时候就把公共部分代码抽取出来作为组件使用 直接把中间部分代码赋值过来 <template> <div> <div v-for"(items, index) in ford" :key"index"> <div v-if"items.shopC…

P3- 傅里叶变换1-通讯原理

前言&#xff1a;傅里叶变换是Modulation, OFDM 技术的理论基础这里主要介绍连续性随机变量的傅里叶变换,以及对应的性质。https://zhuanlan.zhihu.com/p/339281545https://wenku.baidu.com/view/ab338e55a16925c52cc58bd63186bceb19e8ede4.html?_wkts_1672887094135https://w…

pdf如何防止被他人编辑

好多人一直在寻找研究如何编辑或者修改PDF文件&#xff0c;有需求就会有市场&#xff0c;现在市场上或者网络上有非常多的PDF编辑软件&#xff0c;可以编辑修改PDF文件中的内容。即使PDF文件加了密码保护&#xff0c;我们大部分人依然可以轻易的通过在浏览器中虚拟打印的方式&a…

2023.1.6 学习总结

1.set容器的相关函数 set&#xff0c;顾名思义是“集合”的意思&#xff0c;在set中元素都是唯一的&#xff0c;而且默认情况下会对元素自动进行升序排列。 set容器 包含头文件&#xff1a; #include<set> set中只能用insert函数实现数据的输入。 set<int> s…

32.深度学习模型优化加速方法-1

32.1 模型优化加速方法 模型优化加速能够提升网络的计算效率,具体包括: Op-level的快速算法:FFT Conv2d (7x7, 9x9), Winograd Conv2d (3x3, 5x5) 等;Layer-level的快速算法:Sparse-block net [1] 等;优化工具与库:TensorRT (Nvidia), Tensor Comprehension (Facebook) …

【代码题】栈的应用

目录 1.有效的括号 2.逆波兰表达式求值 1.有效的括号 点击进入该题 https://leetcode.cn/problems/valid-parentheses/description/ 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有…

【黑马】瑞吉外卖-Day01、02笔记

瑞吉外卖 数据库搭建 表结构 Maven项目 创建Maven项目 编写pom文件 编写配置文件application.yml 创建启动类ReggieApplication.java 前端静态资源的配置 将两个前端静态资源包导入到resource目录下方&#xff0c;由于Spring-MVC默认只能访问static和templete下面的文件…

04-GC的常见收集方法:标记清除、标记复制、标记整理算法、分代收集的原理与特点?

1.标记清除算法(Mark-Sweep) 最基础的垃圾回收算法&#xff0c;分为两个阶段&#xff0c;标记和清除。 1.标记阶段标记出所有需要回收的对象 2.清除阶段回收被标记的对象所占用的空间 缺点: 1.容易产生大量的内存碎片,后续可能发生大对象不能找到可利用空间的问题 2.标记和清…

【JavaGuide面试总结】Java基础篇·上

【JavaGuide面试总结】Java基础篇上1.JVM vs JDK vs JRE2.Java 和 C 的区别?3.Java 程序从源代码到运行的过程4.为什么说 Java 语言“编译与解释并存”&#xff1f;5.说说default关键字的几个用法6.静态变量有什么作用&#xff1f;7.字符型常量和字符串常量的区别?8.成员变量…

Verilog语法笔记(夏宇闻第三版)-运算符及表达式

目录 运算符按其功能可分为以下几类: 按其所带操作数的个数运算符可分为三种&#xff1a; 基本的算术运算符&#xff1a; 位运算符&#xff1a; 逻辑运算符&#xff1a; 关系运算符&#xff1a; 等式运算符&#xff1a; 移位运算符&#xff1a; 位拼接运算符(Concatati…

png如何转pdf?这几个方法快收藏起来

现如今&#xff0c;电脑上拥有的图片格式那么多&#xff0c;而每种格式分别都有自己的特点&#xff0c;就例如png格式。它是一种无损压缩算法的图片格式&#xff0c;能够保证在不失真的情况下&#xff0c;压缩图片文件大小。但在我们工作中&#xff0c;难免会需要将png图片转换…

字典树基础与应用

字典树&#xff08;Trie) 字典树&#xff08;Trie&#xff09;也叫前缀树&#xff0c;是一种针对字符串进行维护的树。 其中的键通常是字符串&#xff0c;由节点在树中的位置决定&#xff0c;键保存在边而不是在节点 一个节点的所有子孙具有相同的前缀&#xff0c;也就是这个…

PLGA-MAL/COOH/NH2基团封端聚(D,L-丙交酯-co-乙交酯)共聚物;可以用于制备胶束或者囊泡等新型靶向材料

1. HO-PLGA-Mal 马来酰亚胺封端聚&#xff08;D&#xff0c;L-丙交酯-co-乙交酯&#xff09;共聚物中文名称 马来酰亚胺封端聚&#xff08;D&#xff0c;L-丙交酯-co-乙交酯&#xff09;共聚物英文名称 HO-PLGA-Mal分子量&#xff1a;1000-100000之间选择 比例&#xff08;LA…

Golang UDP IPV6 编程

一、网络通信的步骤 服务端 1.socket() 创建通信的套接字socket:ip:addr 2.bind() 将套接字绑定监听的地址和端口号&#xff0c;作用是&#xff1a;服务器一般有很多网卡&#xff0c;多个IP地址&#xff0c;bind指定具体监听 哪一个IP地址及对应的端口号&#xff08;若服务…

消防应急物资智能仓储管理系统

一&#xff0c;项目背景消防应急物资装备管理系统(智装备 DW-S302)是一套成熟系统&#xff0c;依托互 3D 技术、云计算、大数据、RFID 技术、数据库技术、AI、视频分析技术对 RFID 智能仓库进行统管理、分析的信息化、智能化、规范化的系统。基于物联网技术&#xff0c;实现装备…