第七次全国人口普查登记(20分)
1、项目需求:
开展第七次全国人口普查,将为编制“十四五”规划提供重要信息支持;推动实现人口与经济社会、资源环境协调发展,为深化供给侧结构性改革,推动经济高质量发展,建设现代化经济体系提供强有力的支持;人口普查还将为完善人口发展战略和政策体系,促进人口长期均衡发展提供重要信息支持。
2.系统要求与功能设计
2.1 页面功能要求
(1)能够在Tomcat服务器中正确部署,并通过浏览器查看;(1分)
(2)网站页面整体风格统一;
图1 人口普查系统功能结构图
(3)主页面:要求显示人口登记、修改人口信息、删除人口信息、查询人口信息,人口信息浏览五个子菜单。(1分)
(4)人口登记页面:(6分)
①完成添加人口信息登记,基本信息和填报限制如下表所示
户 别 |
家庭户 集体户(单选框) |
住房类型 |
家庭住宅、集体住所、工作地住所、其他住宅、无住宅(单选框) |
本户现住房面积 |
XXXXX平方米(文本框,只能输入这个整数) |
本户现住房间数 |
XXXXX间(文本框,只能输入这个整数) |
户主姓名 |
XXXXX(文本框) |
身份证号码 |
XXXXXXXXXXXXXXXXXX(判断身份证位数13位并且只能录入数字、最后一位可以录入X) |
性别 |
男/女(单选框) |
民族 |
(文本框) |
受教育程度 |
研究生、大学本科、大学专科、高中、初中、小学、未上过学(下拉框实现) |
②点击“提交”按钮,保存成功则跳转到人口基本信息浏览界面,新录入的信息置顶显示。失败则提示错误信息,返回当前页面
评分标准:
①完成人口登记页面(未完成0分,完成1分)
②保存人口信息入库(未完成0分,完成1分)
③户别、住房类别、性别实现一个单选框录入0.5分,全部实现1分。(未完成0分,完成一个0.5,全部完成1分)
④本户现住房面积或本户现住房间数实现整数判断(未完成0分,完成0.5分)
⑤判断身份证按照要求录入,实现位数和数字录入判断0.5分,实现最后一位可以输入数字或X判断0.5分。(1分)
⑥受教育程度下拉框录入(未完成0分,完成0.5分)
⑦提交后页面跳转功能;(未完成0分,完成1分)
(5)修改人口信息页面:(3分)
输入户主姓名,显示其余信息,可对身份证号码、性别、民族、受教育程度进行修改。(身份证号码、性别、受教育程度必须符合录入要求);如果该名户主信息数据库不存在,则提示“该户主信息不存在”。(3分)
评分标准:
①完成修改户主个人信息页面(未完成0分,完成0.5分)
② 实现数据库中信息更新(未完成0分,完成1分)
③修改信息判断是否符合要求。(未完成0分,完成0.5分)
④输入姓名,显示其余信息,若该信息不存在,提示错误信息;(未完成0分,完成1分)
(6)删除人口信息页面:录入户主姓名,显示详细信息后,点击“删除”按钮,弹出提示框,提示“是否确认删除该户主信息”,确认后删除该信息。(1分)
评分标准:
①输入户主姓名可显示其余信息。(未完成0分,完成0.5分)
②对应删除数据库中信息(未完成0分,完成0.5分)
(7)浏览人口信息页面:(2分)
以列表形式显示人口基本信息,结果列表中显示姓名、性别,民族、受教育程度基本信息,点击姓名,可以跳转到个人详细信息。
①实现以列表形式显示人口基本信息,结果列表中显示姓名、性别,民族、受教育程度基本信息(未完成0分,完成1分)
②实现跳转个人详细信息页面。(未完成0分,完成1分)
(8)查询人口信息页面:(3分)
要求可以根据人口姓名、性别、民族、受教育程度四种条件实现模糊查询,输出结果以列表形式显示,显示人口姓名、性别、民族、受教育程度基本信息,点击列表中的姓名,跳转到人口个人详细信息页面。
评分标准:
①缺少一种查询条件扣除1分。(未完成0分,完成3分)
2.2 功能要求
(1)设计出合理的数据库和数据表,要求使用mysql、sqlserver、oracle三种数据库中一种(1分)
(2)使用Serverlet实现页面交互(1分)。
(3)使用Java Bean封装数据库连接操作(1分。)
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>人口普查系统</title> <body background="BACKGROUNG/1.jpg"> </head> <p style="text-align:center;color:black;font-family:宋体,serif; font-size:20px"> <br> <input type="button" value="人口登记" onclick="location.href='add.jsp'" /> <br><br> <input type="button" value="修改人口信息" onclick="location.href='revise.jsp'" /> <br><br> <input type="button" value="删除人口信息" onclick="location.href='delete.jsp'" /> <br><br> <input type="button" value="查询人口信息" onclick="location.href='search.jsp'" /> <br><br> <input type="button" value="人口信息浏览" onclick="location.href='watch.jsp'" /> </p> </html> add <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>录入</title> </head> <form id="1" action ="add-backstage.jsp" method="get"> <p style="text-align:center;color:black;font-family:楷体; font-size:20px"> <br> 户别: <input type="radio" name="hb" value="家庭户" />家庭户 <input type="radio" name="hb" value="集体户" />集体户 <br><br> 住房类型: <input type="radio" name="zflx" value="家庭住宅" />家庭住宅 <input type="radio" name="zflx" value="集体住所" />集体住所 <input type="radio" name="zflx" value="工作地住所" />工作地住所 <input type="radio" name="zflx" value="其他住宅" />其他住宅 <input type="radio" name="zflx" value="无住宅" />无住宅 <br><br> 本户现住房面积: <input type="text" name="humj"size="1"/>平方米 <br><br> 本户现住房间数: <input type="text" name="hunum"size="1"/>间 <br><br> 户主姓名: <input type="text" name="name"size="3"/> <br><br> 身份证号码: <input type="text" name="sfnum"size="15"/> <br><br> 性别: <input type="radio" name="sex" value="男" />男 <input type="radio" name="sex" value="女" />女 <br><br> 民族: <input type="text" name="minzhu"size="2"/> <br><br> 受教育程度: <select size ="1"name="lrean"> <option value ="研究生" selected>研究生</option> <option value ="大学本科" >大学本科</option> <option value ="大学专科" >大学专科</option> <option value ="高中" >高中</option> <option value ="初中" >初中</option> <option value ="小学" >小学</option> <option value ="未上过学" >未上过学</option> <select> <br><br> <input type="submit" value="登记"/> <input type="reset" value="重置"/> </p> </form> </body> </html> add-backstage <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>处理</title> </head> <body> <jsp:useBean id="util" class="jd.AddC"/> <% String hb= request.getParameter("hb"); String zflx= request.getParameter("zflx"); String humj= request.getParameter("humj"); String hunum= request.getParameter("hunum"); String name= request.getParameter("name"); String sfnum= request.getParameter("sfnum"); String sex= request.getParameter("sex"); String minzhu= request.getParameter("minzhu"); String lrean= request.getParameter("lrean"); if(util.sfzhm(sfnum)){ out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>"); }else if(util.pinji(humj, hunum)){ out.print("<script language ='javaScript'> alert('住房平方米和间数必须是整数');window.history.back(-1); </script>"); }else if(util.chachong(sfnum)){ out.print("<script language ='javaScript'> alert('身份证必须为18位,且只能最后一位为X或数字');window.history.back(-1); </script>"); }else if(util.queryEmpty(hb,zflx,humj,hunum,name,sfnum,sex,minzhu,lrean)){ out.print("<script language ='javaScript'> alert('录入身份证号码重复');window.history.back(-1); </script>"); }else{ util.input(hb, zflx, humj, hunum, name, sfnum, sex, minzhu, lrean); out.print("<script language='javaScript'> alert('录入成功');</script>"); response.setHeader("refresh", "0;url=main.jsp"); } %> </body> </html> delete <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>删除</title> </head> <form id="1" action ="delete-back.jsp" method="get"> <p style="text-align:center;color:black;font-family:楷体; font-size:20px"> <br> 需要删除户主姓名: <input type="text" name="name"size="3"/> <br><br> <input type="submit" value="确认"/> <input type="reset" value="重置"/> </p> </form> </body> </html> delete-back <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <html> <head> <title>删除</title> </head> <body> <script> function del(){ var r = confirm("是否确定删除?") if (r == true) { return true; } else { return false; } } </script> <table border="1"style="text-align:center"> <caption>人口信息</caption> <tr> <td align="center" width=2%>户别</td> <td align="center" width=2%>住房类型</td> <td align="center" width=1%>本户现住房面积</td> <td align="center" width=1%>本户现住房间数</td> <td align="center" width=3%>住户姓名</td> <td align="center" width=2%>删除</td> <td align="center" width=6%>身份证号码</td> <td align="center" width=2%>性别</td> <td align="center" width=2%>民族</td> <td align="center" width=3%>受教育程度</td> </tr> <% String name=(String)request.getParameter("name"); int bv=0; try{ %> <jsp:useBean id="util" class="jd.AddC"/> <% Connection connect = util.sjk(); Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from qz"); while(rs.next()){ bv++; %> <tr> <td width=2% align="center"><%=rs.getObject(1) %></td> <td width=2% align="center"><%=rs.getObject(2) %></td> <td width=1% align="center"><%=rs.getObject(3) %></td> <td width=1% align="center"><%=rs.getObject(4) %></td> <td width=3% align="center"><%=rs.getObject(5) %></td> <td width=2% align="center"><a style="color:blue" href='delete-backstage.jsp?id=<%=rs.getObject(6) %>'onclick="javascript:return del()">点击删除</a> </td> <td width=6% align="center"><%=rs.getObject(6) %></td> <td width=2% align="center"><%=rs.getObject(7) %></td> <td width=2% align="center"><%=rs.getObject(8) %></td> <td width=3% align="center"><%=rs.getObject(9) %></td> </tr> <% } rs.close(); stmt.close(); connect.close(); }catch (SQLException e) { e.printStackTrace(); } if(bv==0) out.print("<script language ='javaScript'> alert('未查询到');window.history.back(-1); </script>"); %> </table> <p style="text-align:center;color:black;font-family:宋体; font-size:20px"> <br> <input type="button" value="主页面" onclick="location.href='main.jsp'" /> </p> </body> </html> delete-backback <%@page import="jd.AddC"%> <%@ page language="java" contentType="textml; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>处理</title> </head> <body> <jsp:useBean id="util" class="jd.AddC" scope="page" /> <% String sfnum=request.getParameter("id"); if(util.queryEmpty1(sfnum)){ out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>"); }else{ util.deletedata(sfnum); out.print("<script language='javaScript'> alert('删除成功');</script>"); response.setHeader("refresh", "0;url=main.jsp"); } %> </body> </html> revise <%@page import="jd.AddC"%> <%@ page language="java" contentType="textml; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>处理</title> </head> <body> <jsp:useBean id="util" class="jd.AddC" scope="page" /> <% String sfnum=request.getParameter("id"); if(util.queryEmpty1(sfnum)){ out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>"); }else{ util.deletedata(sfnum); out.print("<script language='javaScript'> alert('删除成功');</script>"); response.setHeader("refresh", "0;url=main.jsp"); } %> </body> </html> revise-back <%@page import="jd.AddC"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>处理</title> </head> <body> <jsp:useBean id="util" class="jd.AddC" scope="page" /> <% String sfnum=request.getParameter("id"); if(util.queryEmpty1(sfnum)){ out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>"); }else{ util.deletedata(sfnum); out.print("<script language='javaScript'> alert('删除成功');</script>"); response.setHeader("refresh", "0;url=main.jsp"); } %> </body> </html> revise-back-back <%@page import="jd.AddC"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>处理</title> </head> <body> <jsp:useBean id="util" class="jd.AddC" scope="page" /> <% String sfnum=request.getParameter("id"); if(util.queryEmpty1(sfnum)){ out.print("<script language ='javaScript'> alert('输入不能为空,请完成填写');window.history.back(-1); </script>"); }else{ util.deletedata(sfnum); out.print("<script language='javaScript'> alert('删除成功');</script>"); response.setHeader("refresh", "0;url=main.jsp"); } %> </body> </html> search <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>查询</title> </head> <form id="1" action ="search-back.jsp" method="get"> <p style="text-align:center;color:black;font-family:楷体; font-size:20px"> <br> 需要查询户主相关信息: <input type="text" name="name"size="3"/> <br><br> <input type="submit" value="确认"/> <input type="reset" value="重置"/> </p> </form> </body> </html> search-back <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <html> <head> <title>查询</title> </head> <body> <table border="1"style="text-align:center"> <caption>人口信息</caption> <tr> <td align="center" width=3%>住户姓名</td> <td align="center" width=2%>性别</td> <td align="center" width=2%>民族</td> <td align="center" width=3%>受教育程度</td> </tr> <% String name=(String)request.getParameter("name"); int bv=0; try{ %> <jsp:useBean id="util" class="jd.AddC"/> <% Connection connect = util.sjk(); PreparedStatement preparedStatement=null; ResultSet rs = null; preparedStatement=connect.prepareStatement("select * from qz where name like ? or sex like ? or minzhu like ? or lrean like ? "); preparedStatement.setString(1,"%"+name+"%"); preparedStatement.setString(2,"%"+name+"%"); preparedStatement.setString(3,"%"+name+"%"); preparedStatement.setString(4,"%"+name+"%"); rs=preparedStatement.executeQuery(); while(rs.next()){ bv++; %> <tr> <td width=3% align="center"><a style="color:blue" href='search-back-back.jsp?id=<%=rs.getObject(6) %>'><%=rs.getObject(5) %></a> </td> <td width=2% align="center"><%=rs.getObject(7) %></td> <td width=2% align="center"><%=rs.getObject(8) %></td> <td width=3% align="center"><%=rs.getObject(9) %></td> </tr> <% } rs.close(); preparedStatement.close(); connect.close(); }catch (SQLException e) { e.printStackTrace(); } if(bv==0) out.print("<script language ='javaScript'> alert('未查询到');window.history.back(-1); </script>"); %> </table> <p style="text-align:center;color:black;font-family:宋体; font-size:20px"> <br> <input type="button" value="主页面" onclick="location.href='main.jsp'" /> </p> </body> </html> search-backstage <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <html> <head> <title>查询</title> </head> <body> <table border="1"style="text-align:center"> <caption>人口信息</caption> <tr> <td align="center" width=3%>住户姓名</td> <td align="center" width=2%>性别</td> <td align="center" width=2%>民族</td> <td align="center" width=3%>受教育程度</td> </tr> <% String name=(String)request.getParameter("name"); int bv=0; try{ %> <jsp:useBean id="util" class="jd.AddC"/> <% Connection connect = util.sjk(); PreparedStatement preparedStatement=null; ResultSet rs = null; preparedStatement=connect.prepareStatement("select * from qz where name like ? or sex like ? or minzhu like ? or lrean like ? "); preparedStatement.setString(1,"%"+name+"%"); preparedStatement.setString(2,"%"+name+"%"); preparedStatement.setString(3,"%"+name+"%"); preparedStatement.setString(4,"%"+name+"%"); rs=preparedStatement.executeQuery(); while(rs.next()){ bv++; %> <tr> <td width=3% align="center"><a style="color:blue" href='search-back-back.jsp?id=<%=rs.getObject(6) %>'><%=rs.getObject(5) %></a> </td> <td width=2% align="center"><%=rs.getObject(7) %></td> <td width=2% align="center"><%=rs.getObject(8) %></td> <td width=3% align="center"><%=rs.getObject(9) %></td> </tr> <% } rs.close(); preparedStatement.close(); connect.close(); }catch (SQLException e) { e.printStackTrace(); } if(bv==0) out.print("<script language ='javaScript'> alert('未查询到');window.history.back(-1); </script>"); %> </table> <p style="text-align:center;color:black;font-family:宋体; font-size:20px"> <br> <input type="button" value="主页面" onclick="location.href='main.jsp'" /> </p> </body> </html> watch <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <html> <head> <title>浏览</title> </head> <body> <table border="1"style="text-align:center"> <caption>人口信息</caption> <tr> <td align="center" width=3%>住户姓名</td> <td align="center" width=2%>性别</td> <td align="center" width=2%>民族</td> <td align="center" width=3%>受教育程度</td> </tr> <% try{ %> <jsp:useBean id="util" class="jd.AddC"/> <% Connection connect = util.sjk(); Statement stmt = connect.createStatement(); ResultSet rs = stmt.executeQuery("select * from qz"); while(rs.next()){ %> <tr> <td width=3% align="center"><a style="color:blue" href='search-back-back.jsp?id=<%=rs.getObject(6) %>'><%=rs.getObject(5) %></a></td> <td width=2% align="center"><%=rs.getObject(7) %></td> <td width=2% align="center"><%=rs.getObject(8) %></td> <td width=3% align="center"><%=rs.getObject(9) %></td> </tr> <% } rs.close(); connect.close(); stmt.close(); }catch (SQLException e) { e.printStackTrace(); } %> </table> <p style="text-align:center;color:black;font-family:宋体; font-size:20px"> <br> <input type="button" value="主页面" onclick="location.href='main.jsp'" /> </p> </body> </html>