毕设论文xx_第1页
毕设论文xx_第2页
毕设论文xx_第3页
毕设论文xx_第4页
毕设论文xx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Xx大学论文 编号:2010242099论文题目 基于JSP技术的iFun网上酒店预订管理系统姓 名: 院系、专业: 计算机与信息技术学院、软件工程 学习年限: 2010 年 9 月至 2014 年 7 月指导教师: 学位级别: 2013年10月28日 基于JSP技术的iFun网上酒店预订管理系统学生姓名:闫璐 指导教师:郝传政内容提要 随着信息技术在商业领域的广泛应用,利用计算机技术、网络通信技术和Internet来实现商务活动的国际化、信息化和无纸化,已成为全球商务发展的大趋势。毋庸置疑,网络已经深入渗透到人们生活中的各个角落;另一方面,采用相关的酒店客房管理系统,实现信息自动化操作,同时全面、有效地掌握酒店基本情况,及时获取最新的准确资料和信息反馈给用户,实现管理的科学化、规范化,同样也迎合了众多酒店管理者的需求。毕业设计中应用到Java、SQL Server,采用JSP应用开发技术,实现预订、查询、退订等功能,稳定性,可扩展性,安全性,健壮性,都是该系统的优势所在。关键词 酒店管理系统 Java SQL Server JSP 引言 伴随着Internet的蓬勃发展,电子商务正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。顾客足不出户便可以方便快捷轻松地挑选预定酒店已经是一种需求。而酒店管理者必需要适应这种发展趋势。因此,采用先进的计算机网络通信技术改变酒店业务模式,实现业务管理的自动化,以提高酒店的工作质量和效率已是必然。1.项目背景互联网信息平台的兴起,通过网络进行购物、交易、支付等的电子商务模式发展迅速,带来了极大的便利条件,随着计算机网络规模的日益庞大,已经成为人们日常生活中不可缺少的重要部分。酒店业是一个前景广阔而又竞争激烈的行业。改革开放以来,我国旅游业的迅速发展,通过调查,我国在2020年将成为世界上第四大旅游国家,随着人员流动规模的不断扩大,我国的酒店服务业也面临着前所未有的机遇和挑战。面对庞大的信息量,依靠传统手工的客房信息管理,管理过程繁琐而复杂,执行效率低,并且易于出错。而通过采用相关的酒店客房管理系统,发挥计算机具有手工管理无法比拟的优点,实施信息化建设以实现信息化管理无疑是必由之路和明智之举。2.项目业务原理 本系统是用JSP在网络上架构一个动态的电子预订网站,它是在Windows 7下,采用B/S三层架构的模式,客户端使用浏览器进行访问,服务器端使用JDK6.0+Tomcat6.0的访问形式,以提高系统的安全性;在系统开发时,使用Eclipse作为网页开发工具,以MVC作为系统开发框架,以SQL Server作为系统的数据库,Tomcat6.0作为Web服务器,Dreamweaver作为静态网页开发工具,以提高系统整体的美观度。 该系统从功能上分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,用户登录,客房信息查询,订单管理,个人资料管理等功能;后台部分由管理员使用,管理员即为商家,管理后台并且发布商品。主要包括客房信息管理,客房信息分类管理,订单管理,用户信息管理等功能。 建立后的网站系统是一个动态、交互式、具有酒店查询、酒店预定、用户登陆注册、订单管理、个人资料管理等功能的网站。3.可行性分析3.1经济上的可行性分析对于酒店管理系统的开发,所需要的硬件环境(一台装有Windows操作系统的普通个人PC机)和软件环境(安装JDK软件开发包和SQL Server数据库以及Eclipse软件)并不复杂。对于开发者来说,不会造成过重的经济负担。且目标系统开发周期短,人员经济支出不大,而一旦此系统投入使用,定能减少酒店的工作量,提高效率,方便管理,产生的效益奖远大于系统的开发成本,经济上十分可行。3.2技术上的可行性分析酒店管理系统从功能上来讲主要分为前台和后台两部分,是用JSP在网络上架构一个动态的网站。用到的技术主要是java,JDBC,SQL Server等并不复杂的计算机知识,因此,从技术层面上来说,也是可行的。3.3操作上的可行性分析 本系统具有强大的客房搜索、订单统计、会员管理等功能,具备完整的酒店信息管理功能、结构简单、容易使用、操作简单并且界面美观, 不需懂得太多的计算机知识,也无需制作复杂网页,具有很强的操作可行性。4.需求分析4.1功能概述该系统是基于B/S架构来实现的。该系统主要分为前台和后台,前台又分为:网站首页、酒店搜索、酒店预订、新用户注册、用户登陆、个人信息管理、我的订单。后台系统包括三大模块:用户信息管理、客房信息管理、订单管理。系统功能性需求分类如下表所示。表1 系统功能性需求分类功能类别子功能用户信息管理用户注册用户登录用户删除客房信息管理添加客房信息删除客房信息查看客房信息列表添加客房信息分类删除客房信息分类订单管理添加订单删除订单查看订单修改订单购物车4.2用例描述(1)用户注册用例,是对普通用户需要免费注册,具体用例描述如表2所示。表2 用户注册用例描述用例名称用户注册用例编号U001用例简介用户点击注册,输入账号密码,注册成功后并成功登录优先级高前置条件用户注册成功后置条件用户登录成功操作流程步骤触发者描述1用户点击注册2用户输入账号,密码(2a)3用户提示注册成功4用户返回登录界面5用户登录成功(5Ea)扩展流程2a 输入账号,密码 2a1 提示用户已存在。 2a2 重新输入账号,密码。 2a3 返回步骤3。例外流程5Ea 登陆失败5Ea1 提示密码错误。5Ea2 重新登录。6Ea2 返回步骤4.包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(2)用户登录用例,是实现用户登录功能,具体用例描述如表3所示。表3 用户登录用例描述用例名称用户登录用例编号U002用例简介用户在登录界面,输入账号密码,显示成功登录优先级高前置条件用户注册成功后置条件进入网站主界面操作流程步骤触发者描述1用户进入登录界面2用户输入账号,密码(2a)3用户登录成功(3Ea)扩展流程2a 输入账号,密码 2a1 提示密码错误。 2a2 返回登录界面,重新输入账号,密码。 2a3 返回步骤3。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(3)用户删除用例,是实现对用户的删除功能,具体用例描述如表4所示。表4 用户删除用例描述用例名称用户删除用例编号U003用例简介删除某个用户优先级高前置条件管理员登录成功后置条件删除成功操作流程步骤触发者描述1管理员管理员登录2管理员成功登录3管理员查看在线用户4管理员删除用户5管理员删除成功扩展流程无包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(4)客房预订用例,是实现对客房的预订功能,具体用例描述如表5所示。表5 用户购买用例描述用例名称预订客房用例编号U004用例简介用户登录成功后,查看自己想要预订的客房,并预订优先级高前置条件用户登录成功后置条件商品成功添加至购物车操作流程步骤触发者描述1用户注册用户2用户成功登陆3用户查看客房信息分类(3a)4用户将商品添加至购物车5用户成功预订扩展流程3a 查看客房信息分类 3a1 查看分类管理。 3a2 查看客房信息管理,找到客房信息。 3a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(5)添加客房信息用例,是实现对管理员添加客房信息的功能,具体用例描述如表6所示。表6 添加客房信息用例描述用例名称添加客房信息用例编号U005用例简介管理员登录成功后,添加新客房信息优先级高前置条件管理员登录成功后置条件添加成功操作流程步骤触发者描述1管理员管理员登录2管理员成功登录3管理员查看客房信息分类4管理员点击添加(4a)5管理员添加成功扩展流程4a 添加商品 4a1 选择图片路径。 4a2 点击添加。 4a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(6)删除客房信息用例,是实现对管理员删除客房信息的功能,具体用例描述如表7所示。表7 删除客房信息用例描述用例名称删除客房信息用例编号U006用例简介管理员登录成功后,删除下架客房信息优先级高前置条件管理员登录成功后置条件删除成功操作流程步骤触发者描述1用户管理员登录2用户成功登录3用户查看客房信息分类4用户删除客房信息(4a)5用户删除成功扩展流程4a 查看客房信息 4a1查看客房信息管理,找到客房信息。 4a2 点击删除客房信息 4a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(7)查看客房信息分类用例,是实现查看客房信息分类的功能,具体用例描述如表8所示。表8 查看客房信息分类用例描述用例名称查看客房信息分类用例编号U007用例简介用户登录成功后,查看自己想要的客房信息所在分类优先级高前置条件用户登录成功后置条件找到所需客房信息操作流程步骤触发者描述1用户注册用户2用户成功登录3用户查看客房信息分类(3a)4用户将客房信息添加至购物车5用户成功预订扩展流程3a 查看客房信息分类 3a1 查看分类管理。 3a2 查看客房信息管理,找到客房信息。 3a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(8)删除客房信息分类用例,是实现删除客房信息分类的功能,具体用例描述如表9所示。表9 删除客房信息用例描述用例名称删除客房信息分类用例编号U008用例简介管理员登录成功后,删除已不用的客房信息分类优先级高前置条件管理员登录成功后置条件客房成功添加至购物车操作流程步骤触发者描述1用户管理员登录2用户成功登陆3用户查看客房信息分类(3a)4用户删除客房信息分类5用户删除成功扩展流程3a 查看客房信息分类 3a1 查看分类管理。 3a2 查看客房信息管理,找到客房信息。 3a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(9)添加客房信息分类用例,是实现添加客房信息分类的功能,具体用例描述如表10所示。表10 添加客房信息分类用例描述用例名称添加客房信息分类用例编号U009用例简介管理员登录成功后,添加所需添加的客房信息分类优先级高前置条件管理员登录成功后置条件分类添加成功操作流程步骤触发者描述1用户管理员登录2用户成功登录3用户查看客房信息分类(3a)4用户添加客房信息分类名称5用户成功添加扩展流程3a 查看商品分类 3a1 查看分类管理。 3a2 添加分类。 3a3 返回步骤4。包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。(10)购物车添加商品用例,是实现购物车添加商品的功能,具体用例描述如表11所示。表11 购物车添加商品用例描述用例名称购物车商品用例编号U010用例简介用户购买下商品后,查看自己已购买的商品优先级高前置条件用户购买成功后置条件购物车中存在所需商品操作流程步骤触发者描述1用户已成功购买商品2用户查看购物车5用户购物车存在已购商品扩展流程包含假设约束条件输入及约束账号:字符串,长度1-20,直接输入,注册必填。密码:字符串,长度1-20,直接输入,注册必填。4.3数据库设计4.3.1 E-R图(1) 用户实体E-R图用户实体E-R图如图2所示图1 用户实体E-R图(2) 商品实体E-R图 商品实体E-R图 如图3所示图2 商品实体E-R图4.3.2用户表数据字典User表数据字典如表12所示。表1 用户表数据字典Idvarchar(32)用户IDAgevarchar(32)用户年龄Sessionint(10)用户权限namenvarchar(50)用户名passwdnvarchar(50)密码4.3.3客房信息表数据字典客房信息表数据字典如表13所示。表2客房信息表数据字典Namevarchar(32)客房名称Idint(10)客房编号parentedvarchar(32)客房上一级编号Numvarchar(32)客房数量Pricevarchar(32)客房价格imgPathvarchar(32)客房图片5.概要设计5.1 系统层次图系统层次图如图7所示。图3 系统层次图6.详细设计6.1模块汇总表按软件风格的层次划分,模块汇总表如表15所示Action控制器模块名称功能简述BaseAction用户管理控制类RegisterAction用户管理控制类,从页面活动数据调用业务逻辑实现用户注册LoginAction用户管理控制类,从页面活动数据调用业务逻辑实现用户登录MenuAction从页面活动数据调用业务逻辑实现客房信息查询、添加、修改等AdminAction从页面活动数据调用业务逻辑实现管理员登录UserAction从页面活动数据调用业务逻辑实现用户登录RoomAction从页面活动数据调用业务逻辑实现客房信息查询、添加、修改等业务逻辑层模块名称功能简述Menu描述客房类型的增删改查以及根据客房类别获取详细信息等方法。Room描述客房的增删改查以及根据客房获取详细信息等方法。User描述用户的增删改查以及根据用户获取详细信息等方法。数据访问层模块名称功能简述BaseDao用户处理数据访问接口UserDao用户处理数据访问接口,描述用户的增删改查相关方法。MenuDao用户处理数据访问接口,描述客房类别的增删改查相关方法。RoomDao用户处理数据访问接口,描述客房信息的增删改查相关方法。6.2可复用模块列表u adminPermissionInterceptor模块:管理员权限的访问控制过滤器类。u userPermissionInterceptor模块:普通用户权限的访问控制过滤器类。6.3模块关系图(1)用户各模块之间的关系如图4所示图4 User各模块之间的关系(2)客房各模块之间的关系如图5所示图5 Room各模块之间的关系7. 编码与设计实现7.1系统界面设计7.1.1登录前主界面和用户登录主界面(1) 登录界面设计图 5 登录界面图(2)登录界面相关代码7.1.2 注册界面(1) 注册界面设计图 6 注册界面图(2)注册界面相关代码手机昵称设置密码 确认密码 注册%switch(login.login() case 1: out.println(注册成功!);break; case -1: out.println(注册重复);break; %返回登陆界面7.1.3 前台主界面(1)前台主界面设计图 7 前台界面图(2)前台界面相关代码登陆界面7.1.4 查看用户主界面(1)用户主界面设计图 8 用户界面图(2)用户界面相关代码public String login2()ArrayList rj=null;try rj=jd.findJiaDianNextList(id);sb.append();sb.append();sb.append();sb.append( );sb.append(名称);sb.append( );sb.append();sb.append();sb.append( );sb.append(数量);sb.append( );sb.append();sb.append();sb.append( );sb.append(价格);sb.append( );sb.append();sb.append();sb.append( );sb.append(图片);sb.append( );sb.append();sb.append();sb.append( );sb.append();sb.append();sb.append( );sb.append();sb.append();sb.append();for(int i=0;irj.size();i+)JiaDian jj=rj.get(i);sb.append();sb.append();sb.append( );sb.append(jj.getName();sb.append( );sb.append();sb.append();sb.append( );sb.append(jj.getNum();sb.append( );sb.append();sb.append();sb.append( );sb.append(jj.getPrice();sb.append( );sb.append();sb.append();sb.append( );sb.append();sb.append( );sb.append();sb.append();sb.append();sb.append(编辑);sb.append();sb.append();sb.append();sb.append(删除);sb.append();sb.append();sb.append();sb.append();s2=sb.toString(); catch (SQLException e) e.printStackTrace(); finallyjd.closeConn(); return s2; 7.1.5 客房分类信息管理主界面(1)客房分类主界面设计图 9 商品分类界面图(2)客房分类界面相关代码Insert title herepublic String login()ArrayList li=null;try li=jd.findNormalList();for(int i=0;ili.size();i+)JiaDian jj=li.get(i);sb.append(jj.getName();sb.append(); s1=sb.toString(); catch (SQLException e) e.printStackTrace(); finallyjd.closeConn();return s1;7.1.6 查看某一类下属所有客房主界面(1)界面设计图 10 下一分类界面图(2)界面相关代码public String login5()ArrayList li=null;try li=jd.findNormalList();for(int i=0;ili.size();i+)JiaDian jj=li.get(i);sb.append();sb.append(jj.getName();sb.append();sb.append(); s1=sb.toString(); catch (SQLException e) e.printStackTrace(); finallyjd.closeConn();return s1;7.1.7 添加客房主界面(1)添加客房主界面设计图 11 添加客房界面图(2)添加客房界面相关代码public void addProduct()/采用apache工具包进行文件上传操作DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload= new ServletFileUpload(factory);try List fileItems = upload.parseRequest(request);HashMap map = new HashMap();for(FileItem item : fileItems)if(item.isFormField()String name = item.getFieldName();String value = item.getString();value = new String(value.getBytes(iso-8859-1),UTF-8);map.put(name, value);elseString dir = request.getServletContext().getRealPath(/)+admin/images/product;System.out.println(dir:+dir);SimpleDateFormat df = new SimpleDateFormat(yyyyMMddHHmmss);String timeImg = df.format(new Date()+.jpg;System.out.println(imageName:+timeImg);this.setImgPath(timeImg);File file = new File(dir,timeImg);file.createNewFile();/获得流,读取数据写入文件InputStream in = item.getInputStream();FileOutputStream fos = new FileOutputStream(file);int len;byte buffer = new byte1024;while(len=in.read(buffer)0)fos.write(buffer,0,len);fos.close();in.close();item.delete();Iterator it = map.keySet().iterator();while(it.hasNext()String key = it.next();System.out.println(key:+key);System.out.println(value:+map.get(key);JiaDian p = new JiaDian();p.setName(map.get(name);p.setNum(map.get(num);/p.setParentId(map.get(parentId);/p.setParentId(Integer.parseInt(map.get(parentId);p.setPrice(map.get(price);p.setId(Integer.parseInt(map.get(id);/System.out.println(id:+p.getId();System.out.println(name:+p.getName();System.out.println(price:+p.getPrice();System.out.println(num:+p.getNum();System.out.println(imgPath:+this.getImgPath();System.out.println(id:+p.getId();try jd.insertNextJiaDianList(null,p.getName(),p.getId(),p.getName(),p.getPrice(),imgPath); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (FileUploadException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (UnsupportedEncodingException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); finallyjd.closeConn();7.1.8 添加客房分类主界面(1)添加客房分类主界面设计图 12 添加客房分类界面图(2)添加客房分类界面相关代码添加名称7.2核心代码7.2.1连接数据库package com.qst.shop.dao;import java.sql.Connection;import java.sql.SQLException;public class BaseDao private Connection conn;public BaseDao()try this.conn=DbUtil.getConnection(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public Connection getConn()return conn;public void closeConn()if(this.conn!=null)try this.conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();8.测试8.1测试目的测试是为了发现程序中的错误而执行程序的过程,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案成功的测试是发现了至今为止尚未发现的错误的测试。8.2测试方法软件测试方法分为两种形式:白盒测试和黑盒测试。对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又成为功能测试。与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。白盒测试又称结构测试。8.3 测试准则为了能设计出有效的测试方案,软件工程师需要充分理解并且正确的运用指导软件测试的基本准则。主要的测试准则如下: 所有的测试都应该能追溯到用户需求。 应该在测试开始之前的相当长时间,就制定出测试计划。实际上,当完成了需求模型就可以开始制定测试计划,在建立了设计模型之后就可以开始设计详细的测试方案。因此,在编码之前就可以对所有测试工作进行计划和测试。 把Pareto原理应用到软件测试中。Pareto原理说明,测试发现错误中的80%,很可能是由于程序中20%的模块造成的。 测试应该从“小规模”开始,并逐步进行“大规模”测试。通常,首先重点测试单个程序模块,然后把测试重点转向集成的模块簇中寻找错误,最后在整个系统中寻找错误。穷举测试是不可能的。所谓穷举测试是把程序所有可能执行的路径都检查一遍的测试。即使是一个中等规模的程序,其执行路径的排列数也十分庞大,由于受时间,人力和资源等的限制,在测试过程中不可能执行每个可能的路径,因此测试只能证明程序中有错误,不能证明程序中没有错误。但是,精心设计测试方案,有可能充分覆盖程序逻辑并使程序达到所要求的可靠性。 为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。8.4白盒测试1.用户登录系统的测试如图21所示。图13 用户登录测试流程图8.5测试结果 经过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论