订餐系统javaee课程设计(共23页).doc
《订餐系统javaee课程设计(共23页).doc》由会员分享,可在线阅读,更多相关《订餐系统javaee课程设计(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上网上订餐系统1. 课程设计的目的当计算机与互联网飞速的发展和使用,越来越多的公司、单位和个人通过网站提供服务、公布信息、交流知识等使互联网越来越方便我们的生活。在Web开发中,Java语言以其可扩展性、灵活性、可靠性和跨平台等特点,成为进行web编程的首选。更重要的是,开源社区提供了一大批功能强大的框架技术,Structs、Spring、Hibernate等,利用这些技术使我们更高效的维护和建立我们自己的网站同时也让网站的开发更加方便和快捷。在这学期课堂上所学到的Java知识,能够为我们解决一些实际问题的能力。利用一周时间,使用Java框架技术完成网上订餐系统的分析设
2、计和开发。有了网上订餐系统,人们可以在家随意挑选自己喜爱的食物。现在正是经济全球化的时代,利用网络,我们可以浏览不同地区甚至不同国家的商品,这也改变着人们的消费观,网上订餐系统正是符合了这一趋势的发展,越来越多的人能够不出门就能吃上美味可口的饭菜。2.设计方案论证2.1需求分析随着科技的进步、计算机技术的发展,越来越多的人选择用网络来满足自己的需求,网上订餐的出现,正是体现了这一点。不少商家都把眼观放在了网上销售这一方面,把实体销售渐渐转变为网上销售。现在人们越来越重视节省时间,提高效率,不管是消费者还是商家都如此,有了网上订餐系统,可以让订餐者与餐厅进行互动,足不出户,选择自己喜爱的菜品,对
3、与商家而言,这样做节省了成本,不需要为实体店的地址而烦恼,这样做对于商家和消费者来说无疑是双赢的。2.2系统总体设计本系统为了便于各种操作,采用多页面的模式。用户可在不同网页进行相应操作:在管理员信息表中,包括的数据项:帐号,密码,权限,注册时间。在订餐客户信息表中,包括的数据项:用户编号,用户名,密码,姓名,电话,身份证,注册时间等。在菜品信息表中,包括的数据项:菜品编号,菜品名称,菜品价格,内容,类别,添加时间等,每道菜都有它的菜名、介绍、价格等信息,为了让菜品的这些信息在页面有个很好的呈现,我们把这些信息存入菜品信息表中进行维护。在定单列表中,包括的数据项:定单列表编号,用户名,菜品编号
4、,下单时间等。在购物车信息,包括的数据项:购物车信息唯一标识,食品id,订餐用户名,添加时间等。当顾客选购菜品放入购物车时,我们会把这些菜品的id、数量、价格记录存入订单关联表中,通过订单关联表中的信息算出会员将要支付的金额,再通过菜品id这个主健把相应的信息存入个人订单这张表中进行维护。为了有效地管理菜品,在新增菜品时加了一个分类属性,在此需要建张分类表进行维护,系统总体功能图如图1所示。后台菜肴价目信息发布餐厅销售统计用户留言及售后服务前台用户管理菜单浏览订单管理用户反馈网上订餐系统图1 系统功能框图2.3 系统流程设计课程设计信息管理系统,包括用户注册、管理员登录、菜品查询、菜品详单等。
5、任务执行的流程如图2所示。进入系统主界面管理员登录浏览页面用户注册用户登录菜品搜索选购商品用户注册数据库数据库操作页面加入购物车订单查询后台管理系统公告结账注销登录图2 系统流程图2.4 数据库设计该系统是借助MySQL数据库对数据进行统一管理的。在网上订餐系统中需MySQL创建数据库“订餐管理系统”, MySQL数据库中数据的操作可以分为四种不同的类型,分别是添加、删除、查询和修改。该数据库包含的表有菜品信息表、管理员表、订单表等。2.4.1菜品信息表菜品信息表,记录系统中的菜品信息。把汉字转化为汉语拼音,作为字段名。把ID设为主键,且不为空,bianhao、mingcheng、leibie
6、、tupian、jianjie、jiage、faburen、addtime与之相关联,如表1所示。表1菜品信息表字段名类型长度是否为主键是否为空说明idint11是否菜品编号bianhaovarchar20否是菜品编码mingchengvarchar50否是菜品名称leibievarchar20否是菜品类别tupianvarchar50否是菜品图片jianjievarchar50否是菜品简介faburenvarchar30否是发布人2.4.2 管理员信息表管理员信息表,存储系统中的管理员信息。把汉字转化为汉语拼音,作为字段名。其中,ID设置为int型,并设为主键,且不能为空;username、
7、pwd设置为varchar型,如表2所示。表2 管理员信息表字段名类型长度是否为主键是否为空说明IdInt10是否用户编号usernameVarchar30否是用户姓名PwdVarchar30否是用户密码2.4.3用户注册信息表用户注册信息表,记录系统中的注册用户信息。把汉字转化为汉语拼音,作为字段名。把ID设为主键,且不为空,zhanghao、mima、ximgming、diqu、zhaopian、issh与之相关联。表3 用户注册信息表字段名类型长度是否为主键是否为空说明idint11是否编号Zhanghaovarchar30否是账号mimavarchar20否是密码Xingmingvar
8、char30否是姓名Diquvarchar50否是地区Zhaopianvarchar50否是照片Isshvarchar10否是备注2.5 主要功能用struts框架中的异常处理机制,本系统自定义了异常类SystemException和异常处理类SystemExceptionHandler。在MessageResources.properties中定义需要在Dao中抛出异常时声明的内容。在struts-config.xml中配置公共异常处理文件,加入资源文件在Dao中抛出自定义异常。并在公共异常处理页面中使用struts标签进行异常信息显示。顾客模块为封装的异常跳转页面如下图3所示:图3在str
9、uts-config.xml文件中的配置信息如下:在配置文件中可见,异常是以键值对的方式在struts1.1中存放,type属性是指异常类,handler属性是指异常的处理类,path属性是指出现异常后跳转的错误页面。3. 设计结果与分析3.1订餐系统登录界面设计该系统通过输入用户名和密码进行登录,登录界面如图4所示。图4 登录界面功能描述:顾客登陆管理,包括登陆时管理员需要输入用户名、密码、验证码、也可已选择是否记录用户名和密码以便以后登录。如果管理员选择记住用户名和密码则下一次登陆的时候只需要输入验证码,即可直接登录。(1) 登录页面控制模块Login相关代码如下:login.jsp:登录
10、页面 /head 订餐系统 public class ALogin public void doLogin ( Hashtable inputData, Hashtable outputData, HttpSession mySession ) throws Exception /获取输入信息 String sUsername = (String)inputData.get(username); String sPassword = (String)inputData.get(password); /校验用户输入信息LUserlUser=(LUser)GlobalObjectProvider.
11、getLogicService(CommonConst.LOGIC_KEY_USER); /如果对应的类没有的话,报错并返回login页面 if ( lUser = null ) throw new Exception(用户名或密码错误请重新输入! ); /获取用户信息 User userInfo = lUser.getUserInfo( sUsername, sPassword ); if ( userInfo = null ) outputData.put( pageId, CommonConst.VIEWID_LOGIN ); outputData.put( errMsg, 用户名密码检
12、查失败!请重新输入。 ); outputData.put( username, sUsername ); return; Else outputData.put( pageId, CommonConst.VIEWID_MENU); /往session中设置用户信息 mySession.setAttribute( loginUser, userInfo ); return; 3.2订餐系统主页面模块设计用户可以通过订餐系统主页面进行订餐如图5所示。图5功能描述:顾客登陆管理,包括(1) 登陆时可以以游客或者会员的两种方式进行订餐操作,如果是会员登陆,先前需要录入用户名、密码、验证码,以便系统确认
13、登陆成功。(2) 会员个人信息管理,会员可以修改个人资料(如:电话,地址等),也可以查看订餐信息,了解当前订餐的动态(详见会员登录流程图)。(3) 选购美食,作为顾客,在挑选美食的过程中,可以直接将称心的美食选进购物车中也可通过一系列查询,进一步了解后,再选择美食(详见选购美食流程图)。选购美食部分代码如下:/得到在Spring中动态注入的Service层对象/得到日志对象logpublic ActionForward queryForAll(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServl
14、etResponse response) String forward = first;if(request.getParameter(user).equals(manager)forward = queryDishes ;Food food = new Food() ;List foodList = null ;List topList = null ;int allRecorders = foodService.queryForAllRecorders(food) ;/当不是第一次登陆页面时if(request.getParameter(cp)!=null&request.getParam
15、eter(ls)!=null)intcurrentPage = Integer.parseInt(request.getParameter(cp) ;int lineSize = Integer.parseInt(request.getParameter(ls) ;if(currentPage1&lineSizeallRecorders)currentPage = 1 ;food.setCurrentPage(currentPage) ;food.setLineSize(lineSize) ;foodList= foodService.queryForFood(food) ;else/第一次来
16、到页面,top5和食品图片等信息foodList = foodService.queryForFood() ;int pageSize = (allRecorders + food.getLineSize() - 1) / food.getLineSize() ;request.setAttribute(pageSize, pageSize) ;request.setAttribute(allRecorders, allRecorders) ;topList = foodService.queryForTop() ;/下拉列表中的信息List foodAttributeList = foodS
17、ervice.querySelectInfo();/传给top10的listrequest.setAttribute(topList, topList);/传给视频图片等信息的listrequest.setAttribute(foodList, foodList);/传给下拉列表的listrequest.setAttribute(foodAttributeList, foodAttributeList) ;return mapping.findForward(forward);首先判断是从哪个页面跳到到这里来调用这一方法,随着调用者的不同,方法也会将最后的传输到不同的页面中去。然后查询出所有美
18、食的记录数,再对是否是第一次登录到此页面进行判断,以为,第一次登录时当前页数和每页显示行数是默认的,而此后登录到此页面时有可能发生改变,最后再用Spring中动态注入的服务层中食品类的对象调用查询食品信息的方法,再将结果通过request对象传输到对应的页面中去。public String getFoodInfo(String src) /图片绝对路径String picsrc = null;String foodInfo = null ;/只保留相对路径,将绝对路径去掉String temp = src.split(/);for (int i = 0; i temp.length; i+)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 javaee 课程设计 23
限制150内