分 类:
项目编号: S0202-JMCLWZ-BOS
酒店管理系统
(Hotel Management System )
项目开发总结报告
Version: 1.0
项 目 承 担 部 门:
撰 写 人(签名):
完 成 日 期:2008-9-13
本文档 使 用部门: ■主管领导 ■项目组
□客户(市场) □维护人员 □用户
评审负责人(签名):
评 审 日 期:
酒店管理系统项目开发计划总结报告
酒店管理系统
目 录
项 目 承 担 部 门:....................................................................................................................... 0 撰 写 人(签名):居耀勇 陈伟 ............................................................................................... 0 评审负责人(签名):....................................................................................................................... 0
目 录 .............................................................................................................................................. 1
1.1 编写目的......................................................................................................................... 2
1.2 项目简介......................................................................................................................... 2
1.2.1 项目名称......................................................................................................................... 2
1.2.2 产品标识......................................................................................................................... 2
1.3 定义 ................................................................................................................................ 2
1.4 参考资料......................................................................................................................... 2
2. 项目概述 ................................................................................................................................ 3
2.1 工作内容......................................................................................................................... 3
2.2 酒店管理系统的功能结构 ............................................................................................. 4
2.2.1 客房预订系统 ................................................................................................................. 4
2.2.2 前台接待系统 ................................................................................................................. 5
2.2.3 前台收银系统 ................................................................................................................. 6
2.2.4 管家系统......................................................................................................................... 7
2.2.5 密码管理系统 ................................................................................................................. 8
2.2.6 夜审系统......................................................................................................................... 9
3. 项目组织和资源................................................................................................................... 10
3.1 项目组织....................................................................................................................... 10
3.2 项目资源....................................................................................................................... 10
3.2.1 人力资源....................................................................................................................... 10
4. 实际开发结果....................................................................................................................... 10
4.1 软件产品描述 ............................................................................................................... 10
4.2 主要功能和性能 ........................................................................................................... 11
4.3 进度 .............................................................................................................................. 11
5. 实施计划 .............................................................................................................................. 11
5.1 项目工作任务分解 ....................................................................................................... 11
5.2 关键问题....................................................................................................................... 11
6. 经验与教训 .......................................................................................................................... 11
1
酒店管理系统项目开发计划总结报告
酒店管理系统
引言
1.1 编写目的
编写此计划的目的是为了对项目的完成情况进行总结,方便软件下一步的进展。
它说明了本项目软件开发的方法,是一个高级计划,可以为本项目的相关专题计划的制定提供指导与参考,供项目组全体人员阅读从而更好地进入下一阶段的工作。
1.2 项目简介
1.2.1 项目名称
项目编号:S0202-JMCLWZ-BOS
项目名称:酒店管理系统(HMS)
英文名称:Hotel Management System
1.2.2 产品标识
产品名称:酒店管理系统(HMS)
版本号:1.0
1.3 定义
HMS(Hotel Management System)
酒店管理系统
PM (Project Manager)
项目经理
CM (Configuration Manager)
配置经理
SQA(Software Quality Assurance)
软件质量保证
RUP(Rational Unified Process)
Rational统一过程
1.4 参考资料
《酒店管理系统需求分析说明书》
《酒店管理系统概要设计说明书》
《RUP工程规范》
《软件工程开发讲义》
《系统分析与设计》
《项目过程规范》
2
酒店管理系统项目开发计划总结报告
酒店管理系统
2. 项目概述
随着旅游业的民展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日益流行。传统的酒店管理往往令管理者花费大量时间来处理顾客投诉,例如错误查询、繁琐的登记和结账手续、旅客费用结算错误、空域客房资料不能及时提供等,从而影响出租效率,使管理人员不得不集中精力规划管理运行策略和进行决策。本项目开发的目的,就是为了使酒店管理从传统的模式中解脱出来,进入先进的酒店管理模式,避免传统管理模式中出现的问题。
2.1 工作内容
项目名称定为:酒店管理系统。
本系统分为以下几个模块:
1、 客房预订系统:能处理散客预定、团体预定、客房预定,还可以进行预定未到处理,和预
售查询。
2、 前台接待系统:散客入住登记、合约入住登记、团体自动入住和手动入住、补填客单、修
改客人信息、转房、调房、设置房态、预定客房查询、可售客房查询。
3、前台收银系统:能实现转帐、加入押金、限制客人消费、埋单、退房等功能。
4、管家系统:设置净房、脏房、坏房、及取消坏房,设置SKIP、SLEEP房,查询净房、脏房、坏房表,房间状态,新入住查询。
5、密码管理系统:密码系统,员工使用该系统的密码管理机制。
3
酒店管理系统项目开发计划总结报告
酒店管理系统
6、夜审系统:过房租:每天一次地将在住客的账目加上当天的房租费用日营业报表.
将当天的收分类统计,产生客人余额表,查询客人明细账。
2.2 酒店管理系统的功能结构
酒店管理系统中,分为6个下属模块,模块分解如下图所示:
图2.2 酒店管理系统模块分解图
2.2.1 客房预订系统
客房预订系统包括客房预订、预售查询、预订未到处理三个子功能模块,实现了快速处理预定客房的目的,同时可以自动处理预定到时间没有入住的情况。
客房预订系统的功能分解图如下:
4
酒店管理系统项目开发计划总结报告
酒店管理系统
图2.2.1 客房预订系统功能分解图
2.2.2 前台接待系统
前台接待系统的主要功能是在客户入住的时候进行入住登记,同时还可以在客人入住之后按照客人的需求给客人调换房间。功能分解如下:
5
酒店管理系统项目开发计划总结报告
酒店管理系统
图2.2.2 前台接待系统功能分解图
2.2.3 前台收银系统
前台收银系统主要包括退房、查帐、埋单、限制客人消费、转帐、押金加入等功能。功能分解如下:
6
酒店管理系统项目开发计划总结报告
酒店管理系统
图2.2.3 前台收银系统功能分解图
2.2.4 管家系统
管家系统的主要功能模块式查询房间状态以及设置房间状态,使一个管理系统,实现对客房的实时管理。功能分解如下:
7
酒店管理系统项目开发计划总结报告
酒店管理系统
图2.2.4 管家系统功能分解图
2.2.5 密码管理系统
密码管理系统主要是针对使用该酒店管理系统的员工设计的,登陆酒店管理系统需要有帐户和密码,防止闲杂人员胡乱操作系统、更改数据库内数据,实现系统的安全性。功能模块分解如下:
8
酒店管理系统项目开发计划总结报告
酒店管理系统
图2.2.5 密码管理系统功能分解图
2.2.6 夜审系统
夜审系统是在每天结束对当天的营业进行汇总,主要模块包括过房租、当天收入分类统计、产生客人余额表和客人明细账目。功能分解如下:
图2.2.6 夜审系统功能分解图
9
酒店管理系统项目开发计划总结报告
酒店管理系统
3. 项目组织和资源
3.1 项目组织
3.2 项目资源
3.2.1
人力资源
4. 实际开发结果
4.1 软件产品描述
版本:1.0
模块清单:见模块分解图
10
酒店管理系统项目开发计划总结报告
酒店管理系统
4.2 主要功能和性能
软件主要功能见演示,开发目标基本达到。
4.3 进度
总体进度基本按照项目开发计划进行。
5. 实施计划
5.1 项目工作任务分解
5.2 关键问题
6. 经验与教训
1、 通过对做这个项目,对软件的开发流程,开发过程有了比较深刻的了解,也加深了对所学
知识的应用。
11
酒店管理系统项目开发计划总结报告
酒店管理系统
2、 缺乏对需求分析的正确认识,在需求分析阶段走了不少弯路,导致了项目的时间比较紧张。
3、 所用技术的确定比较晚,所以学习新技术占据了大量做项目的时间,经验不足。
12
第二篇:JAVAWeb开发酒店管理系统总结报告
课程设计报告书
班级 软件1201 学号 02240120112 姓名 李明坤
学号 02240120109 姓名 顾敬程
学号 02240120102 姓名 曹笑诚
目录
一 设计内容
1 设计课题 2 设计目的 3 小组分工 4 程序代码 5 效果截图 6 总结感受
二 设计步骤
1.设计课题:红酒公司管理系统
2.设计目的:管理员的登录,然后实现酒店管理员对本酒店VIP客户,酒品及员
工的增删改查功能,以及分页功能。酒品的模糊搜索和备注功能。
以及有一个Filter。
3.小组分工:顾敬程:管理员的登录,然后实现酒店管理员对本酒店酒品的增删
改查功能,以及分页功能,酒品的模糊搜索和备注功能,能够在当
前取得管理员名字与备注内容一起显示,和一个Filter。
李明坤:实现酒店管理员对本酒店VIP客户的增删改查功能,以及
分页功能,图片的查找,JSP美化。
曹笑诚:实现酒店管理员对本酒店员工的增删改查功能,以及分页
功能,首页的设计。
4.程序部分主要代码:
Jsp页面: (1) 欢迎界面:
<body>
<center>
<img height="500" width="1300" src="images/huanyin.jpg"> <a href="managerLogin.jsp" class="STYLE1">登录</a>
</center> </body>
(2)登录页面
<div>
<span style="color: red">${requestScope.msg }</span> <form action="ManagerServlet?flag=6" method="post"> <span class="STYLE10"><strong><font face="楷体" size="5">管 <center> 理 员 登 录 页 面 </font>
</strong>
<br> </span><br> <span class="STYLE10"><font size="4" face="楷体">管理员</font></span>:
<input type="text" name="managername">
<br /> <span class="STYLE10"> <font size="4" face="楷体">密码</font></span>: <input type="password" name="password"> <br>
<br />
<input type="submit" value="登录">
<input type="reset" value="重置"> <br /> </center> </form> </div>
(3)首页面
<div id="top">
<ul class="topNav">
<li><a href="ListUser.jsp" class="hover">vip管理</a></li>
<li><a href="ListProduct.jsp">酒品管理</a></li>
<li><a href="ListMessage.jsp">员工管理</a></li>
<li class="noImg"><a href="../managerLogin.jsp">返回登录</a></li> </ul>
<label>Search</label>
<input type="submit" name="signup" value="" class="signup" /> <h1></h1>
</div>
(4)vip管理
①进入页面
<div id="topMain">
<div id="top"> <a href="index.html"><img src="images/red_juice.gif" alt="red juice" width="202" height="81" border="0" class="logo" /></a> <a href="#"><img src="images/login.gif" alt="login" width="106" height="80" border="0" class="login" /></a>
<ul class="topNav">
<li><a href="../Userservlet?flag=5" class="topNav">查看所有VIP信息</a></li>
<li><a href="manager.jsp">返回首页</a></li>
②显示页面
<body> <span class="STYLE22">显示vip信息</span>
<table border="1">
<tr>
<td> 用户ID </td>
<td> 用户名 </td>
<td> vip卡号 </td>
<td> 修改操作 </td>
<td> 删除操作 </td>
</tr>
<c:forEach items="${requestScope.pageBean.data}"
var="u">
<tr>
<td> ${u.id } </td>
<td> ${u.username} </td>
<td> ${u.password} </td>
<td><a
href="updateUser.jsp?userid=${u.id }&username=${u.username}&password=${u.password}">修改</a> </td>
<td><a href="../Userservlet?flag=4&userid=${u.id }">删除</a> </td>
当前页: <input id="pageNo" type="text" name="pageNo" value="${pageBean.pageNo}" />
总记录数:${pageBean.totalCount}条
共有 ${pageBean.totalPage}页
</center>
<c:if test="${pageBean.previous}"> <center> <a
href="../Userservlet?flag=5&pageNo=${pageBean.pageNo - 1}">上一页</a> </center>
</c:if> <c:if test="${pageBean.next}"> <center> <a
href="../Userservlet?flag=5&pageNo=${pageBean.pageNo + 1}">下一页</a> </center>
</c:if> <center> <a
href="../Userservlet?flag=5&pageNo=${pageBean.totalPage}">最后一页</a> </center>
</td> </tr> </table> </div> </div> ③修改页面
<div>
<p><span class="STYLE19">修改卡号</span> <p><br> </p> <form action="../Userservlet" method="post"> </p>
<p> <input type="hidden" name="flag" value="3"> vipID: <input type="text" name="userid" value="${param.userid }" readonly="readonly" /> <br> Vip名: <input type="text" name="username" readonly="readonly" /> value="${param.username }" <br> vip原卡号: <input type="text" name="oldpwd" value="${param.password }" readonly="readonly" /> <br> vip新卡号: <input type="text" name="newpwd" /> </p> <p><br>
<input type="submit" value="修改">
<input type="reset" value="重填">
</p> </form> </div>
④增添页面
<form action="../Userservlet?flag=2" method="post">
<p>请输入vip名: <input type="text" name="username" /> <br /> 请输入您卡号: <input type="text" name="password"> </p> <p><br />
<input type="submit" value="添加">
<input type="reset" value="重填"> <br/>
(4)酒品管理
①进入页面
<li><a href="../ProductServlet?flag=5" class="topNav">查看所有酒品信息
</a></li>
<li><a href="manager.jsp">返回主页</a></li>
②显示页面
<span class="STYLE21"> </center>
<table border="1">
<tr>
<td> 酒品ID <td> 酒名 <td>
</td>
显示酒品信息</span>
<br>
</td>
</td> </td> </td>
</td>
酒品图片 <td>
酒品介绍 <td> 酒品价格 <td>
酒品本周得分
<td> 修改操作 <td>
</td> </td>
删除操作 </tr>
<tr>
<td>
<c:forEach items="${requestScope.pageBean.data}" var="u">
${u.id}
</td>
</td>
<td>
${u.cpname} <td>
<img width="200" height="200"
</td>
</td>
<td>
${u.cpintroduce} ${u.cpprice} ${u.cpflid} <a
src="${u.cppicture}"></img>
<td>
</td> </td>
<td> <td>
href="updateproduct.jsp?cpid=${u.id}&cpname=${u.cpname}&cppicture
=${u.cppicture}&cpprice=${u.cpprice}&cpflid=${u.cpflid}">修改</a> </td>
<td> <a href="ProductServlet?flag=4&cpid=${u.id}">删除<p align="center">当前页: <input id="pageNo" type="text" name="pageNo" value="${pageBean.pageNo}" /> 总记录数:${pageBean.totalCount}条${pageBean.totalPage}页</p> <p align="center"> <c:if test="${pageBean.previous}"> <a </a> 共有
href="ProductServlet?flag=5&pageNo=${pageBean.pageNo - 1}">上一页</a> </c:if>
<c:if test="${pageBean.next}"> <a
href="ProductServlet?flag=5&pageNo=${pageBean.pageNo + 1}">下一页</a> </c:if>
<a
href="ProductServlet?flag=5&pageNo=${pageBean.totalPage}">最后一页</a> </p></td>
</tr> </table> </div> ③修改页面
<p class="STYLE17"> <font face="楷体">修 改 酒
品 </font> <p><br> </p> <form action="../ProductServlet?flag=3" method="post"> <font size="4" face="楷体"> <p><span class="STYLE18">酒品ID: <input type="text" name="cpid" value="${param.cpid}" </p> readonly="readonly" /> </span></p> <p class="STYLE18"> <input type="text" <br> 酒品新介绍:: <input type="text" 酒品新名: name="newcpname" />
name="newcpintroduce" /> <br /> 酒品新图片路径: <input type="text" name="newcppicture"> <br /> 酒品原价格: <input type="text" name="oldcpprice" value="${param.cpprice }" readonly="readonly" /> <br> 酒品新价格: <input type="text" name="newcpprice" /> <br> 酒品原得分 <input type="text" name="oldcpflid" value="${param.cpflid }" readonly="readonly" /> <br> 酒品新得分: <input type="text" name="newcpflid" /> </p> <p><br>
<input type="submit" value="修改">
<input type="reset" value="重填"> <br /> </p> </form> </div> </center>
span class="STYLE13"
font face="楷体">添 加 一 个
酒品</font> </ <p><br> </p>
<p><font size="4" face="楷体"><span class="STYLE14"> <input type="text" name="cpname" /> <br /> 请输入酒介绍: <input type="text" name="cpintroduce" /> <form action="../ProductServlet?flag=2" method="post"> 请输入酒品名:
<br /> 请输入酒图片: <input type="text" name="cppicture" /> <br /> 请输入酒价格: <input type="text" name="cpprice"> <br /> 请输酒品得分: <input type="text" name="cpflid"> </font></p> <p><font size="4" face="楷体"><br /> <input
type="submit" value="添加">
<input type="reset" value="重填">
⑤搜索显示+备注功能+备注显示
<font size="4" face="楷体" color="#ff8040">图片</font>:<img width="200" height="200" src="${u.cppicture}"></img><br/>
<font size="4" face="楷体" color="#ffff00">价格</font>:${u.cpprice}<br/> <font size="4" face="楷体" color="#ff8040">简介</font>:
${u.cpintroduce}<br/>
id:${u.id }
<form action="CpServlet?flag=12&cpid=${u.id}" method="post">
<input type="hidden" name="cpplid" value="${u.id }">
<table border="1" rules="rows"> <tr> <td><font size="4" face="楷体" color="#ffff00">备注内容</font>:</td>
<td><textarea name="cpplcontent" rows="8"
cols="34"></textarea></td>
</tr> <tr align="center" height="30"> <td colspan="2"> <font size="4" face="楷体" color="#ff8040"><input type="submit" value="确认"></font> <font size="4"><input type="reset" value="重置"></font> </td> </table>
</form>
</c:forEach>
<c:forEach items="${requestScope.cppllist}" var="c">
<font face="楷体" size="4" color="#ff8000">备注内容</font>:
${c.cpplcontent} <font size="4" face="楷体" color="#ffff00">管理员</font>${c.cpplusername}<br/>
</c:forEach>
</div>
<br />
(5)员工管理
①进入页面
<li><a href="../MessageServlet?flag=5" class="topNav">查看所有员工信息</a></li>
<li><a href="manager.jsp">返回主页</a></li> ②显示页面
<span class="STYLE20">显示员工信息
<table border="1">
<tr> <td> 员工ID </td> <td> 用户名 </td> <td> 员工电话 </td> <td> 修改操作 </td> <td> 删除操作 </td> </span><br> </tr> <c:forEach items="${requestScope.pageBean.data}" var="u"> <tr> <td> ${u.id } </td> <td> ${u.username} </td> <td> ${u.password} </td> <td> <a
href="updateMessage.jsp?userid=${u.id }&username=${u.username}&password=${u.password}">修改</a>
</td>
<td> <a
href="../MessageServlet?flag=4&userid=${u.id }">删除</a>
</td>
</tr> </c:forEach> </table> <p> </p>
<p><a href="registerMessage.jsp">添加新员工</a>
<a href="manager.jsp">返回主页</a> </p> <p> <p align="center">当前页: <input id="pageNo" type="text" name="pageNo" value="${pageBean.pageNo}" /> </p> <p align="center">总记录数:${pageBean.totalCount} </p> <p align="center">共有 ${pageBean.totalPage}页 <c:if test="${pageBean.previous}"> 条 <a 上一页</a> </c:if> <c:if test="${pageBean.next}"> href="../MessageServlet?flag=5&pageNo=${pageBean.pageNo - 1}"><br> <a
href="../MessageServlet?flag=5&pageNo=${pageBean.pageNo + 1}">下一页</a> </c:if>
<a
href="../MessageServlet?flag=5&pageNo=${pageBean.totalPage}">最后一页</a> </p></td>
</tr> </div> </p> ③修改页面 <p class="STYLE16">修改员工信息
<p><br>
</p> <form action="../MessageServlet?flag=3" method="post"> <p>用户ID: <input type="text" name="userid" value="${param.userid }" readonly="readonly" />
<br> 用户名: <input type="text" name="username" readonly="readonly" /> value="${param.username }" <br> 员工原电话: <input type="text" name="oldpwd" value="${param.password }" readonly="readonly" /> <br> 员工新电话: <input type="text" name="newpwd" /> </p> <p><br>
<input type="submit" value="修改">
<input type="reset" value="重填"> </p> </form>
④增添页面
<p class="STYLE12">添加一个新员工 </p>
<form action="../MessageServlet?flag=2" method="post">
<p>请输入员工名: <input type="text" name="username" /> <p>请输入您电话: <input type="text" name="password"> </p> <p><br /> <input type="submit" value="添加">
后台:
(1) Filter
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; HttpSession session = request.getSession();
if (null != session.getAttribute("manager")) {
chain.doFilter(request, response);
} else { request.setAttribute("msg", "您没有权限访问!");
request.getRequestDispatcher("../index.jsp").forward(request,resp } public void init(FilterConfig arg0) throws ServletException { System.out.println("log-init"); } onse);
(2) Servlet
① vip
//增添vip
private void inserttwo(HttpServletRequest request,
//分页
private void listPage(HttpServletRequest request,
request.getRequestDispatcher("xsUser.jsp").forward(request, request.setAttribute("pageBean", pageBean); HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String pageNoStr = request.getParameter("pageNo"); if (pageNoStr != null) { } PageBean<User> pageBean = new PageBean<User>(); List<User> list = us.listPage(null, pageNo, pageSize); pageBean.setData(list); pageBean.setPageNo(pageNo); pageBean.setPageSize(pageSize); pageBean.setTotalCount(us.count()); pageNo = Integer.valueOf(pageNoStr); } HttpServletResponse response)throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password"); User user=new User(); user.setUsername(username); user.setPassword(password); int b=us.inserttwo(user); listPage(request, response);
response);
// 查询全部vip信息 private void findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, } us.updateOne(user, id); // findAll(request, response); listPage(request, response); // 修改一个vip的密码 private void updateOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, } // 删除一个vip信息 private void deleteOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, } IOException { // TODO Auto-generated method stub int id = Integer.parseInt(request.getParameter("userid")); us.deleteOne(id); // findAll(request, response); listPage(request, response); IOException { // TODO Auto-generated method stub int id = // Integer.parseInt(request.getParameter("userid")); int id = Integer.parseInt(request.getParameter("userid")); String username = request.getParameter("username"); // String oldpwd=request.getParameter("oldpwd"); String newpwd = request.getParameter("newpwd"); User user = new User(); user.setPassword(newpwd); user.setUsername(username); IOException { // TODO Auto-generated method stub List<User> list = us.findAll(); request.setAttribute("list", list); request.getRequestDispatcher("xsUser.jsp").forward(request,
response);
}
② 酒品
//分页
private void listPage(HttpServletRequest request,
// 修改一个酒品信息 private void updateOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, // 删除一个酒品信息 private void deleteOne(HttpServletRequest request, } HttpServletResponse response) throws ServletException, } request.getRequestDispatcher("xsProduct.jsp").forward(request, response); request.setAttribute("pageBean", pageBean); HttpServletResponse response) throws ServletException, IOException { String pageNoStr = request.getParameter("pageNo"); if (pageNoStr != null) { } PageBean<Product> pageBean = new PageBean<Product>(); List<Product> list = us.listPage(null, pageNo, pageSize); pageBean.setData(list); pageBean.setPageNo(pageNo); pageBean.setPageSize(pageSize); pageBean.setTotalCount(us.count()); pageNo = Integer.valueOf(pageNoStr); IOException { int id = Integer.parseInt(request.getParameter("cpid")); us.deleteOne(id); // findAll(request, response); listPage(request, response); IOException { // TODO Auto-generated method stub int id = Integer.parseInt(request.getParameter("cpid")); String newcpname = request.getParameter("newcpname"); String newcpintroduce = request.getParameter("newcpintroduce");
} String newcppicture = request.getParameter("newcppicture"); String newcpflid = request.getParameter("newcpflid"); String newcpprice = request.getParameter("newcpprice"); Product cp = new Product(); cp.setCpintroduce(newcpintroduce); cp.setCppicture(newcppicture); cp.setCpprice(newcpprice); cp.setCpflid(newcpflid); cp.setCpname(newcpname); us.updateOne(cp,id); // findAll(request, response); listPage(request, response); // 添加一个酒品信息 private void insertOne(HttpServletRequest request, } // 查询全部酒品信息 public void findAll(HttpServletRequest request, HttpServletResponse throws ServletException, IOException { HttpServletResponse response) throws ServletException, IOException { String cpname = request.getParameter("cpname"); String cpintroduce = request.getParameter("cpintroduce"); String cppicture = request.getParameter("cppicture"); String cpprice = request.getParameter("cpprice"); String cpflid = request.getParameter("cpflid"); Product cp = new Product(); cp.setCpintroduce(cpintroduce); cp.setCpname(cpname); cp.setCppicture(cppicture); cp.setCpprice(cpprice); cp.setCpflid(cpflid); int b = us.insertOne(cp); // findAll(request, response); listPage(request, response); response) List<Product> list = us.findAll(); request.setAttribute("list", list);
} request.getRequestDispatcher("xsProduct.jsp").forward(request, response);
//搜索菜品信息
public void findAll10(HttpServletRequest request, HttpServletResponse response)
//搜索后提取备注和菜品信息
private void findOne(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
}
//添加一个备注信息并获取管理员名字
Private void insertOne(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); String cpplcontent = request.getParameter("cpplcontent"); if (null != session.getAttribute("user")) { String cpplusername = } else { } int int id=Integer.parseInt(request.getParameter("cpid")); List<Cp> list=us.findOne(id); request.setAttribute("list", list); List<Cppl> cppllist= cs.findOne(id); request.setAttribute("cppllist", cppllist); request.getRequestDispatcher("cp3.jsp").forward(request, throws ServletException, IOException { } String sscpname =request.getParameter("sscpname"); List<Cp> list=us.findAll10(sscpname); request.setAttribute("list", list); request.getRequestDispatcher("cp3.jsp").forward(request, response); response); ((Manager)session.getAttribute("manager")).getManagername();
cpplflid=Integer.parseInt(request.getParameter("cpplid"));
}} Cppl cppl = new Cppl(); cppl.setCpplcontent(cpplcontent); cppl.setCpplusername(cpplusername); cppl.setCpplflid(cpplflid); findOne(request, response); int b = us.insertOne(cppl);
③ 员工
//增加员工
private void inserttwo(HttpServletRequest request,
request.getRequestDispatcher("xsMessage.jsp").forward(request, response); request.setAttribute("pageBean", pageBean); private void listPage(HttpServletRequest request, HttpServletResponse response) throws ServletException, } HttpServletResponse response)throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password"); Message message=new Message(); message.setUsername(username); message.setPassword(password); int b=us.inserttwo(message); listPage(request, response); IOException { // TODO Auto-generated method stub String pageNoStr = request.getParameter("pageNo"); if (pageNoStr != null) { } PageBean<Message> pageBean = new PageBean<Message>(); List<Message> list = us.listPage(null, pageNo, pageSize); pageBean.setData(list); pageBean.setPageNo(pageNo); pageBean.setPageSize(pageSize); pageBean.setTotalCount(us.count()); pageNo = Integer.valueOf(pageNoStr);
} } // 查询全部员工信息 private void findAll(HttpServletRequest request, } HttpServletResponse response) throws ServletException, us.updateOne(message, id); // findAll(request, response); listPage(request, response); // 修改一个员工的密码 private void updateOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, } // 删除一个员工信息 private void deleteOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, } IOException { // TODO Auto-generated method stub int id = Integer.parseInt(request.getParameter("userid")); us.deleteOne(id); // findAll(request, response); listPage(request, response); IOException { // TODO Auto-generated method stub int id = // Integer.parseInt(request.getParameter("userid")); int id = Integer.parseInt(request.getParameter("userid")); String username = request.getParameter("username"); // String oldpwd=request.getParameter("oldpwd"); String newpwd = request.getParameter("newpwd"); Message message = new Message(); message.setPassword(newpwd); message.setUsername(username); IOException { // TODO Auto-generated method stub List<Message> list = us.findAll(); request.setAttribute("list", list); request.getRequestDispatcher("xsMessage.jsp").forward(request, response);
④管理员
private void managerLogin(HttpServletRequest request,
request.getRequestDispatcher("manager/manager.jsp").forward(reque } else { request.setAttribute("msg", "用户名和密码不正确!请输入用户名与密 HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); String managerName = request.getParameter("managername"); String passWord = request.getParameter("password"); Manager manager = us.managerLogin(managerName, passWord); if (manager != null) { session.setAttribute("manager", manager); st, response); 码!");
request.getRequestDispatcher("managerLogin.jsp").forward(request, } response);
(3) Dao.Impl
① Vip
//查询
public List<User> findAll() {
Connection conn=JdbcUti.getInstance().getConn(); String sql="select * from usertab11"; List<User> list=new ArrayList<User>(); Statement stmt=null; ResultSet rs=null; try { stmt=conn.createStatement(); rs=stmt.executeQuery(sql); while(rs.next()){ } // TODO Auto-generated catch block User user=new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); list.add(user); } catch (SQLException e) {
} } e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); }finally{ return list; // 删除一个vip public int deleteOne(int id) { } // 修改一个vip public int updateOne(User user, int id) { Connection conn=JdbcUti.getInstance().getConn(); String sql="update usertab11 set password=? where id=?"; PreparedStatement pstmt=null; ResultSet rs=null; int b=0; try { pstmt=conn.prepareStatement(sql); pstmt.setString(1, user.getPassword()); pstmt.setInt(2, id); b=pstmt.executeUpdate(); Connection conn=JdbcUti.getInstance().getConn(); String sql="delete from usertab11 where id=?"; PreparedStatement pstmt=null; ResultSet rs=null; int b=0; try { } return b; pstmt=conn.prepareStatement(sql); pstmt.setInt(1, id); b=pstmt.executeUpdate(); // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); } catch (SQLException e) { }finally{ } catch (SQLException e) {
} } // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); }finally{ return b;
//分页总数
public int count() {
//分页
public List<User> listPage(String sql, int pageNo, int pageSize) {
Connection conn = JdbcUti.getInstance().getConn(); List<User> list = new ArrayList<User>(); Statement stmt = null; ResultSet rs = null; int pagePos = (pageNo - 1) * pageSize; if (sql == null) { } try { stmt = conn.createStatement(); sql = "select * from usertab11 order by id limit " + pagePos + pageSize; } } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); Connection conn = JdbcUti.getInstance().getConn(); String sql = "select count(*) from usertab11"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if (rs.next()) { } b = rs.getInt(1); } finally { + ","
} rs = stmt.executeQuery(sql); while (rs.next()) { } User user = new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); list.add(user); } catch (SQLException e) { } return list; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); } finally {
//增加vip
public int inserttwo(User user) {
}
} return b; b=pstmt.executeUpdate(); // TODO Auto-generated catch block e.printStackTrace(); JdbcUtil.getInstance().free(conn, pstmt, rs); } catch (SQLException e) { Connection conn=JdbcUti.getInstance().getConn(); String sql="insert into usertab11 (username,password) values(?,?)"; PreparedStatement pstmt=null; ResultSet rs=null; int b=0; try { pstmt=conn.prepareStatement(sql); pstmt.setString(1, user.getUsername()); pstmt.setString(2, user.getPassword()); }finally{
② 酒品
//查询
public List<Product> findAll() {
// 添加酒品 public int insertOne(Product cp) { Connection conn = JdbcUti.getInstance().getConn(); String sql = "insert into } } return list; while (rs.next()) { } // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); Product cp = new Product(); cp.setId(rs.getInt("id")); cp.setCpname(rs.getString("cpname")); cp.setCppicture(rs.getString("cppicture")); cp.setCpprice(rs.getString("cpprice")); cp.setCpflid(rs.getString("cpflid")); cp.setCpintroduce(rs.getString("cpintroduce")); list.add(cp); Connection conn = JdbcUti.getInstance().getConn(); String sql = "select * from usertab1"; List<Product> list = new ArrayList<Product>(); Statement stmt = null; ResultSet rs = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); } catch (SQLException e) { } finally {
usertab1(cpname,cpintroduce,cppicture,cpprice,cpflid) values (?,?,?,?,?)";
PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); pstmt.setString(1, cp.getCpname()); pstmt.setString(2, cp.getCpintroduce()); pstmt.setString(3, cp.getCppicture()); pstmt.setString(4, cp.getCpprice());
} pstmt.setString(5, cp.getCpflid()); b = pstmt.executeUpdate(); } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); } finally { // 删除一个酒品 public int deleteOne(int id) { } // 修改一个酒品 public int updateOne(Product cp, int id) { Connection conn = JdbcUti.getInstance().getConn(); String sql = "update usertab1 set PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { Connection conn = JdbcUti.getInstance().getConn(); String sql = "delete from usertab1 where id=?"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); b = pstmt.executeUpdate(); } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); } finally { cpname=?,cpintroduce=?,cppicture=?,cpprice=?,cpflid=? where id=?";
} pstmt = conn.prepareStatement(sql); pstmt.setString(1, cp.getCpname()); pstmt.setString(2, cp.getCpintroduce()); pstmt.setString(3, cp.getCppicture()); pstmt.setString(4, cp.getCpprice()); pstmt.setString(5, cp.getCpflid()); pstmt.setInt(6, id); b = pstmt.executeUpdate(); } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); } finally {
//总数
public int count() {
//分页
public List<Product> listPage(String sql, int pageNo, int pageSize) } } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); Connection conn = JdbcUti.getInstance().getConn(); String sql = "select count(*) from usertab1"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if (rs.next()) { } b = rs.getInt(1); } finally {
{
return list; } } catch (SQLException e) { } // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); } list.add(cp); while (rs.next()) { Product cp = new Product(); cp.setId(rs.getInt("id")); cp.setCpname(rs.getString("cpname")); cp.setCppicture(rs.getString("cppicture")); cp.setCpprice(rs.getString("cpprice")); cp.setCpflid(rs.getString("cpflid")); cp.setCpintroduce(rs.getString("cpintroduce")); Connection conn = JdbcUti.getInstance().getConn(); List<Product> list = new ArrayList<Product>(); Statement stmt = null; ResultSet rs = null; int pagePos = (pageNo - 1) * pageSize; if (sql == null) { } try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); sql = "select * from usertab1 order by id limit " + pagePos + pageSize; + "," } finally {
//搜索
public List<Cp> findAll10(String sscpname) {
Connection conn = JdbcUtil.getInstance().getConn(); String sql = "select * from usertab1 where cpname like List<Cp> list = new ArrayList<Cp>(); PreparedStatement stmt = null; '%"+sscpname+"%'";
} ResultSet rs = null; try { } return list; //stmt = conn.createStatement(); stmt=conn.prepareStatement(sql); rs = stmt.executeQuery(); while (rs.next()) { } // TODO Auto-generated catch block e.printStackTrace(); JdbcUtil.getInstance().free(conn, stmt, rs); Cp cp = new Cp(); cp.setId(rs.getInt("id")); cp.setCpname(rs.getString("cpname")); cp.setCpintroduce(rs.getString("cpintroduce")); cp.setCppicture(rs.getString("cppicture")); cp.setCpprice(rs.getInt("cpprice")); cp.setCpflid(rs.getInt("cpflid")); list.add(cp); } catch (SQLException e) { } finally {
//取得备注和酒品的信息
public List<Cp> findOne(int id) {
Connection conn = JdbcUtil.getInstance().getConn(); String sql = "select * from usertab1 where id=?"; List<Cp> list = new ArrayList<Cp>(); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); rs = pstmt.executeQuery(); while (rs.next()) { Cp cp = new Cp(); cp.setId(rs.getInt("id")); cp.setCpname(rs.getString("cpname")); cp.setCpintroduce(rs.getString("cpintroduce"));
} } cp.setCppicture(rs.getString("cppicture")); cp.setCpprice(rs.getInt("cpprice")); cp.setCpflid(rs.getInt("cpflid")); list.add(cp); } catch (SQLException e) { } return list; // TODO Auto-generated catch block e.printStackTrace(); JdbcUtil.getInstance().free(conn, pstmt, rs); } finally {
//增加一个能获得管理员名字的备注到酒品上 public int insertOne(Cppl cppl) {
} Connection conn=JdbcUtil.getInstance().getConn(); String sql="insert into PreparedStatement pstmt=null; ResultSet rs=null; int b=0; try { } return b; pstmt=conn.prepareStatement(sql); pstmt.setString(1, cppl.getCpplcontent()); pstmt.setString(2, cppl.getCpplusername()); pstmt.setInt(3, cppl.getCpplflid()); b=pstmt.executeUpdate(); // TODO Auto-generated catch block e.printStackTrace(); JdbcUtil.getInstance().free(conn, pstmt, rs); usertab10(cpplcontent,cpplusername,cpplflid) values (?,?,?)"; } catch (SQLException e) { }finally{
③ 员工
//查询
public List<Message> findAll() {
Connection conn = JdbcUti.getInstance().getConn(); String sql = "select * from messagetab";
} List<Message> list = new ArrayList<Message>(); Statement stmt = null; ResultSet rs = null; try { } return list; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { } // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); Message message = new Message(); message.setId(rs.getInt("id")); message.setUsername(rs.getString("usernam")); message.setPassword(rs.getString("password")); list.add(message); } catch (SQLException e) { } finally { // 添加员工 public int inserttwo(Message message) { Connection conn = JdbcUti.getInstance().getConn(); String sql = "insert into messagetab(username,password) values PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); pstmt.setString(1, message.getUsername()); pstmt.setString(2, message.getPassword()); b = pstmt.executeUpdate(); (?,?)"; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally {
} } JdbcUti.getInstance().free(conn, pstmt, rs); return b; // 删除一个员工 public int deleteOne(int id) { } // 修改一个员工信息 public int updateOne(Message message, int id) { Connection conn = JdbcUti.getInstance().getConn(); String sql = "update messagetab set password=? where id=?"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); pstmt.setString(1, message.getPassword()); pstmt.setInt(2,id); b = pstmt.executeUpdate(); Connection conn = JdbcUti.getInstance().getConn(); String sql = "delete from messagetab where id=?"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); b = pstmt.executeUpdate(); } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); } finally { } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace();
} } finally { } return b; JdbcUti.getInstance().free(conn, pstmt, rs);
//总数
public int count() {
} } catch (SQLException e) { } return b; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, pstmt, rs); Connection conn = JdbcUti.getInstance().getConn(); String sql = "select count(*) from messagetab"; PreparedStatement pstmt = null; ResultSet rs = null; int b = 0; try { pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if (rs.next()) { } b = rs.getInt(1); } finally {
//分页
public List<Message> listPage(String sql, int pageNo, int pageSize) {
Connection conn = JdbcUti.getInstance().getConn(); List<Message> list = new ArrayList<Message>(); Statement stmt = null; ResultSet rs = null; int pagePos = (pageNo - 1) * pageSize; if (sql == null) { } try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); sql = "select * from messagetab order by id limit " + pagePos + pageSize; + ","
} } while (rs.next()) { } Message message = new Message(); message.setId(rs.getInt("id")); message.setUsername(rs.getString("username")); message.setPassword(rs.getString("password")); list.add(message); } catch (SQLException e) { } return list; // TODO Auto-generated catch block e.printStackTrace(); JdbcUti.getInstance().free(conn, stmt, rs); } finally {
④ 管理员
//登录
public Manager findOne(String managername, String password) {
Connection conn=JdbcUti.getInstance().getConn(); String sql="select * from managertab where managername=? and PreparedStatement pstmt=null; ResultSet rs=null; Manager manager=null; try { pstmt=conn.prepareStatement(sql); pstmt.setString(1, managername); pstmt.setString(2, password); rs=pstmt.executeQuery(); if(rs.next()){ } // TODO Auto-generated catch block e.printStackTrace(); manager=new Manager(); manager.setId(rs.getInt("id")); manager.setManagername(rs.getString("managername")); manager.setPassword(rs.getString("password")); password=?"; } catch (SQLException e) { }finally{
} JdbcUti.getInstance().free(conn, pstmt, rs); } return manager;
4效果截图
经过一个星期的课程设计,我们小组基本完成了红酒公司管理系统,在过程当中,我们小组的同学互帮互组,一起合力完成了这个程序。在其中我们更加深刻的体会了团队合作的重要性,我们能够在一些问题上进行探讨,一起解决。在分工合作上,我们能例如在一些如何赋值、如何进行语句判断和数据库的连接等方面,我受益颇多。在进行美化的时候,端口的不符合以及在浏览器中查看时servlet产生的问题和突然多出的manager让我很费解,但最后经过组内同学的探讨和自己的调试,终于完成了管理员对VIP用户的管理需求,并能够和同组同学的工程合在一起,感到了本次课程设计的快乐。
5总结感受
经过一个星期的课程设计,我们小组基本完成了红酒公司管理系统。,在过程当中们小组的同学互帮互组,一起合力完成了这个程序。
在合作过程中的感受:
我们更加深刻的体会了团队合作的重要性,我们能够在一些问题上进行探讨,一起解决。在分工合作上,我们能够尽量的去让每一个人的特性和擅长的优势发挥出来。
学习上的总结:
首先,我们在自己亲自设计一个程序的时候,就能够切实的深入的去了解一个程序的真正构架和内容的组成。并且在设计的时候要考虑到实用者需要的功能。比如一个管理系统的Filter就是必不可少的。在做这个程序的时候,我们也出现了很多的问题,有一些的功能不能够被实现,然后在不断的检查过程中发现有些竟然是多出空格,这让我们更加的体会到了做程序的严谨性。还有在做两个表的关联的时候,采用了外键的形式,然后能够内容分开却获取时能够紧密相连。在做模糊搜索的时候,是先参考了查询的功能,然后自己进行了一次次的实验和上网查找资料最后才能够得以完成。最后,在真正做出一个程序的时候,不仅是有一种成就感,而且回首在过程中,特别是在修改一些错误的时候,我们就是真正的去了解了这些程序的意思,才能够最后完成。