




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文(设计) 题目: 网上订餐系统 学院/系 计算机科学与工程系 专 业 学 号 姓 名 指导教师 2011年 05月 14日目 录1、开发环境12、系统分析12.1、需求分析12.2、可行性分析13、系统设计23.1、模块设计23.2、功能模块图23.3、数据库设计概述43.4、数据库设计周期43.5、e-r图设计53.7、数据库设计74、详细设计94.1、主页面模块94.2、用户注册模块104.3、用户登录模块104.4、菜品浏览模块114.5、订餐车模块124.6、订单确认模块134.7、订单提交模块144.8、后台管理员登陆144.9、 后台主界面164.10、菜品类别管理164.11、菜品管理174.12、订单管理185、系统调试与测试185.1、程序调试185.2、程序的测试185.2.1、测试的重要性及目的185.2.2、测试的步骤195.2.3、测试的主要内容196、结 论20致 谢211、开发环境开发工具:myeclipse 开发环境:windows xp开发语言:jsp数据库: sql server 20002、系统分析2.1、需求分析“民以食为天”,随着人民生活水平的提高,餐饮业在服务行业中占有越来越重要的地位。努力在当前餐饮行业日趋激烈的竞争中脱颖而出,已成为每位餐饮业经营者 所追求的目标。网络订餐实现了小店面大作为的成本效益,解决了因为店面小的限制而无法提高营业额的难题,是一个小投入大成效的经营新模式。在网上参观订餐的人相对网下人来说还是比较少,一个是对网上餐馆的信用度持疑虑态度;另一个是网上订餐只可以看到物品的说明简介和外观,没有看到实体于细节处,无法通过快速浏览确定是不是自己想要的菜品。而这正是传统的实体餐馆优于网上餐馆的地方。而在网上订餐的人都是一般都是对电脑比较熟练的人,也就就是比较年青化的消费群体。就是白领、大学生、高中生和对计算机操作相对比较熟的人。因为这些人工作都比较忙,而且对计算机也比较熟,思想也比较超前,对于在网上订餐能够接受,并经常上网订餐。2.2、可行性分析经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和经济效益进行估计。技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。订餐管理系统用的是jsp开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。运行可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。3、系统设计3.1、模块设计(a)用户注册(b)用户登录(c)菜品浏览(d)菜品订购(e)菜品查询(f)订单修改(g)修改密码(h)修改个人信息(i)管理员3.2、功能模块图前台功能图(如图3-1)主要包括客户进入网站后进行的相应操作。首先,客户需要注册会员登录,如果不注册会员则不能进行订餐的下一步操作。其次,会员注册成功后,以会员身份登录网站,则可以进行会员信息修改,订单信息查询修改,网上订餐以及网站留言等功能。用户注册信息修改在线订餐注册用户功能模块定单查询、删除及修改菜单搜索图3-1前台功能图系统用户管理前台会员管理后台管理功能模块菜品类别设置订单管理菜品信息管理图3-2后台功能图后台功能图(如图3-2)主要介绍系统管理员登录网站后台进行的相应操作。首先,管理者需登录后台网站。其次,登录成功后,可进行系统用户管理、菜品类别设置、网站新闻发布、菜品信息管理等。订单及管理流程图(如图3-3)介绍了用户从开始订餐到网站后台管理者查看订单,实现送货,更改订单状态的整个过程,也是整个订餐系统的运作过程。下订单流程图: 订单管理流程图:开始选择菜品确定菜品信息确定用户信息提交定单开始处理定单修改定单状态派送菜品下订单结束前台用户登录后台用户登录验证信息结束图3-3订单及管理流程图3.3、数据库设计概述 数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 3.4、数据库设计周期 根据软件工程的思想,数据库设计的周期可以划分为六个阶段: 规划阶段:确定开发的总目标,给出计划开发的软件系统的功能、性能以及可靠性等方面的设想。 需求分析阶段:认真细致地了解用户对数据的加工要求,确定系统的功能与边界。 设计阶段:把需求分析阶段所确定的功能细化,主要工作是概念设计阶段、逻辑设计阶段、物理设计阶段,然后,对每个阶段内部设计详细的流程。 程序编制阶段:以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。程序编制时应遵循结构化程序设计方法。 调试阶段:对已编好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。 运行和维护阶段:是整个设计周期最长的阶段,其工作重点是收集和记录系统实际运行的数据。在运行中,必须保持数据库的完整性,必须有效地处理数据故障和进行数据库恢复。同时解决开发过程的遗留问题,改正错误进行功能完善。 在我们的数据库系统建设中,着重考虑了以下两个标准保证数据的一致性: 字段标准:字段标准不统一是造成数据库难以共享的一个主要原因,因为字段的设计处于数据库设计的最底层,或者可以说是最基本的一层,如果这一层都不能统一的话,会直接影响到数据库中数据的共享。 代码标准:代码的引入为保持数据库中数据的一致性提供了一个重要手段。 此外本数据库设计主要遵循以下原则: 数据库文件的实用性,数据库文件的安全性,数据库文件的独立性,节省磁盘空间。数据库设计是要在一个给定的应用环境(dbms)中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式、子模式,建立数据库和设计应用程序,满足用户的各种信息需求。物理结构设计的原则如下:1.尽可能的减少数据冗余和重复。2.结构设计与操作设计相结合。3.数据结构具有相对的稳定性。基于以上设计原则,本系统设计了一个数据库,包含基本信息表(如员工类别、存货等)及几个实体联系建模后的表(如散件销售、整机销售等)。为了加快系统访问的速度把这些表放在一个数据库中。3.5、e-r图设计用户注册信息用户登陆信息网络订餐系统 菜品浏览信息系 统用户信息修改信息用户订单修改信息(a)系统e-r图录入处理用户基本信息文件用户信息处理修改信息 修改密码(b)用户基本信息处理e-r图 订单信息文件添加处理订单处理修改处理删除处理(c)用户订单处理e-r图商品总览查询处理具体商品查询(d)菜品查询处理e-r图管理员信息文件删除定购商品信息添加商品管理员登陆删除商品删除用户(e)管理员er图3.7、数据库设计本系统的数据库其中包括九个表,分别为菜品菜品表t_goods, 用户注册表t_user, 管理员表t_admin, 菜品类型表t_catelog, 公告表t_gongao,定单表t_order,定单详细信息表t_orderitem。详情请见下面的数据库表1 菜品表2 菜品类别表3 订单表4 订单详细表5 公告表6 管理员表 7 注册用户表4、详细设计4.1、主页面模块 代码如下:map request=(map)servletactioncontext.getcontext().get(request);string sql=from tgoods where goodsdel=no and goodsisnottejia=yes order by goodsid desc;list goodsyestejialist=goodsdao.gethibernatetemplate().find(sql);if(goodsyestejialist.size()4)goodsyestejialist=goodsyestejialist.sublist(0, 4);request.put(goodsyestejialist, goodsyestejialist);sql=from tgoods where goodsdel=no and goodsisnottejia=no order by goodsid desc;list goodsnotejialist=goodsdao.gethibernatetemplate().find(sql);if(goodsnotejialist.size()4)goodsnotejialist=goodsnotejialist.sublist(0, 4);request.put(goodsnotejialist, goodsnotejialist);4.2、用户注册模块用户注册是为第一次登录网站的用户所设计的。在用户成为本站用户之前一定要注册才可以访问我网站的其它网页。用户注册包括:登录名称,真实姓名,设置密码,电子邮件等。注册成功后,才可以访问本站的其他页面。代码如下tuser user=new tuser();user.setusername(username);user.setuserpw(userpw);user.setuseraddress(useraddress);user.setusertel(usertel);user.setuserrealname(userrealname);user.setuseremail(useremail);user.setusersex(usersex);user.setuserqq(userqq);user.setuserdel(no);userdao.save(user);map session= servletactioncontext.getcontext().getsession();session.put(user, user);return successadd;4.3、用户登录模块用户登录包括:登录名称,输入密码。当用户登录后由管理员核对该用户的名称和密码是否正确,如果无误的话用户可以通过检查直接进入网站的其它页面进行浏览和订购。代码如下:string sql=from tuser where username=? and userpw=?;object con=username,userpw;list userlist=userdao.gethibernatetemplate().find(sql,con);if(userlist.size()=0)this.setmessage(用户名或密码错误);this.setpath(qiantai/default.jsp);else map session= servletactioncontext.getcontext().getsession(); tuser user=(tuser)userlist.get(0); session.put(user, user); cart cart=new cart(); session.put(cart, cart); this.setmessage(成功登录); this.setpath(qiantai/default.jsp);return succeed;4.4、菜品浏览模块菜品浏览:成功登陆后的用户可以分页浏览菜品菜品,并将想要的菜品提交到填写订单页面。代码如下:string sql=from tgoods where goodsdel=no and goodsisnottejia=no order by goodscatelogid;list goodslist=goodsdao.gethibernatetemplate().find(sql);for(int i=0;igoodslist.size();i+)tgoods goods=(tgoods)goodslist.get(i);system.out.println(goods.getgoodscatelogid();goods.setgoodscatelogname(catelogdao.findbyid(goods.getgoodscatelogid().getcatelogname();map request=(map)servletactioncontext.getcontext().get(request);request.put(goodslist, goodslist);return actionsupport.success;4.5、订餐车模块代码如下:tgoods goods=goodsdao.findbyid(goodsid);torderitem orderitem=new torderitem();orderitem.setgoods(goods);orderitem.setgoodsquantity(quantity);map session= servletactioncontext.getcontext().getsession();cart cart = (cart)session.get(cart);cart.addgoods(goodsid, orderitem);session.put(cart,cart);/this.setmessage();this.setpath(mycart.action);4.6、订单确认模块代码如下:map session= servletactioncontext.getcontext().getsession();cart cart = (cart)session.get(cart);tuser user=(tuser)session.get(user);torder order=new torder();order.setorderbianhao(new simpledateformat(yyyymmddhhmmss).format(new date();order.setorderdate(new simpledateformat(yyyy-mm-dd hh:mm:ss).format(new date();order.setorderzhuangtai(no);/未受理order.setorderuserid(user.getuserid();order.setorderjine(cart.gettotalprice();system.out.println(odderfukuangfangshi+%);order.setodderfukuangfangshi(odderfukuangfangshi);order.setoddersonghuodizhi(oddersonghuodizhi);4.7、订单提交模块代码如下:for (iterator it = cart.getitems().values().iterator(); it.hasnext();)torderitem orderitem = (torderitem) it.next();orderitem.setorderid(order.getorderid();orderitem.setgoodsid(orderitem.getgoods().getgoodsid();orderitemdao.save(orderitem);cart.getitems().clear();session.put(cart, cart);map request=(map)servletactioncontext.getcontext().get(request);request.put(order, order);4.8、后台管理员登陆 这是进入系统时的身份验证,用户首先要从软件开发者那里申请用户名和密码,才可以进入。该过程的流程图如图4-2所示:输入姓名及口令记录在口令表吗中进入主界面继续吗结束开始提示信息nyn 代码如下:string sql=from tadmin where username=? and userpw=?;object con=username,userpw;list adminlist=admindao.gethibernatetemplate().find(sql,con);if(adminlist.size()=0) result=no;else webcontext ctx = webcontextfactory.get(); httpsession session=ctx.getsession(); tadmin admin=(tadmin)adminlist.get(0); session.setattribute(usertype, 0); session.setattribute(admin, admin); result=yes;4.9、 后台主界面代码如下:frame name=topframe src=/admin/top.jsp noresize scrolling=no frame name=boardmenu marginwidth=0 marginheight=0 src=/admin/menu.jsp noresize scrolling=no target=main frame name=main marginwidth=0 marginheight=0 src=/admin/index/syspro.jsp noresize 4.10、菜品类别管理代码如下:string sql=from tcatelog where catelogdel=no;list cateloglist=catelogdao.gethibernatetemplate().find(sql);map request=(map)servletactioncontext.getcontext().get(request);request.put(cateloglist, cateloglist);return actionsupport.success;4.11、菜品管理代码如下:string sql=from tgoods where goodsdel=no and goodsisnottejia=no order by goodscatelogid;list goodslist=goodsdao.gethibernatetemplate().find(sql);for(int i=0;igoodslist.size();i+)tgoods goods=(tgoods)goodslist.get(i);system.out.println(goods.getgoodscatelogid();goods.setgoodscatelogname(catelogdao.findbyid(goods.getgoodscatelogid().getcatelogname();map request=(map)servletactioncontext.getcontext().get(request);request.put(goodslist, goodslist);return actionsupport.success;4.12、订单管理torder order=orderdao.findbyid(orderid);order.setorderzhuangtai(yes);/已经受理订单orderdao.attachdirty(order);this.setmessage(受理订单成功);this.setpath(ordermana.action);return succeed;5、系统调试与测试5.1、程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。5.2、程序的测试5.2.1、测试的重要性及目的测试的重要性:软件的测试在软件生命周期中占据重要的地位。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 测试的目的:如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。 1.软件测试是为了发现错误而执行程序的过程; 2.测试是为了证明程序有错,而不是证明程序无错误; 3.一个好的测试用例是在于它能发现至今未发现的错误; 4.一个成功的测试是发现了至今未发现的错误的测试。 测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。5.2.2、测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:1.模块测试 在这个测试步骤中所发现的往往是编码和详细设计的错误。2.系统测试 在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。3.验收测试 在这个测试步骤中发现的往往是系统需求说明书中的错误。5.2.3、测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 1.单元测试 单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 2.集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 3.确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。 4.系统测试 软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。6、结 论几个月来忙碌紧张而又有条不紊的毕业设计,使我有机会对本专业的基本理论、专业知识和基本技术有了更深入的了解和体会。在系统开发之前,必须了解该系统的特点、适用范围以及使用者需要一个什么样的系统,以此作为基础为开发系统准确定位,然后对使用者所需实现的功能进行分析总结,根据使用者的实际要求来给系统设计一个初步方案。系统的开发不仅是要实现对数据处理的及时与正确,而且要考虑系统是否具有控制功能,及时将数据反馈给操作者,以进行监测和协调,保证系统的正常运行;也要考虑是否具有预测功能,运用一定的数学方法利用历史的数据对未来进行预测的工作。设计实践上的体会 在设计的过程中,我掌
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件显示主程序启动失败
- 跨越货车考试题及答案
- 空气站考试题及答案
- 山东省日照市校际联合考试2024-2025学年高二上学期开学考试物理试题
- 考试题年龄问题及答案
- 湖北省当阳市中考数学真题分类(数据分析)汇编专项攻克试题(解析卷)
- 电炉炼钢工知识考核试卷及答案
- 课件无法添加文字原因
- 玉雕工专业技能考核试卷及答案
- 精神考试题目及答案
- 职业感知与安全用电二
- 二年级语文《称赞》练习题
- 湘教版高中音乐(鉴赏)《黄河大合唱》课件
- CNAS体系基础知识培训课件
- 体育心理学(第三版)课件第三章运动兴趣和动机
- Unit1Developingideaslittlewhitelies课件-高中英语外研版必修第三册
- 培训反馈意见表
- 商业银行资产管理与负债管理
- 电力系统分析孙淑琴案例吉玲power程序实验指导书
- 高标准农田建设项目施工组织设计 (5)
- 轻型动力触探试验记录表
评论
0/150
提交评论