版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、企业级Java应用开发实践报告课程代码:课程名称:企业级Java应用开发课程类别:专业主干课开课学期:2014春季学期编写单位:中国地质大学(北京)信息工程学院项目负责人:王萌编 写 人:王萌指导教师:薛涛提交班级:提交时间:2014年6月6日目 录1 项目目的和任务11.1 项目背景11.2 项目目标与任务21.3 任务分工32 项目进度安排33 系统需求分析43.1 定义44 系统设计94.1 系统架构设计94.2 系统功能设计104.3 数据库设计165 系统实现185.1 系统登陆页面185.2 展示所有菜品页面195.3 菜品详情页面205.4 查看购物车页面216 项目总结221
2、项目目的和任务本课程实践的目的和意义在于通过设计与完成一个网上订餐系统,使学生比较全面地、系统地掌握J2EE的基本概念和基本知识,可以使用Java语言实现对数据库中的数据进行操作,为将来从事Java及数据库方面的研究、开发和应用奠定坚实的基础。本项目来源于中国地质大学(北京)信息工程学院企业级Java应用开发课程实践,开发周期为30天。本项目由中国地质大学(北京)信息工程学院的王萌研发,系统主要实现以下功能:验证用户登录、展示全部菜品、展示菜品详情、将菜品加入购物车、查看购物车。1.1 项目背景 下面将从国外、国内、发展趋势三方面对本项目的项目背景进行阐述。1.1.1 国外情况国外的许多知名品
3、牌,如肯德基、麦当劳,在多年前就开始了网上订餐服务,并且受到了国外的许多家庭的欢迎;这些品牌的网上订餐服务这几年也在中国逐渐普及。1.1.2 国内情况跟随国外网上订餐的热潮,现在在国内出现了好多网上订餐系统,比较出名而且我们在生活中经常用到的就要属“饿了么”。“饿了么”这个网站很好地迎合了消费者的需求:可以便捷地搜索自己身边的美食店进行查看,喜欢就可接直接订餐,省去了到实体店排队等候的时间,尤其适合很宅的大学生和工作狂人。与人方便的同时,这个网站也有一些我感觉需要改进的地方,比如:这个网站是把所有店铺信息以表格的形式,一下子、全部显示在用户面前,这样难免有些眼花缭乱,如图1所示;而且,没有把信
4、息相应地进行分页显示,总是要滑动鼠标滑轮来上下翻动,用户体验感不好。综上而述,信息量固然重要,但用户感官体验也是必不可少的。图1 “饿了么”网页1.1.3 发展趋势当今社会的生活节奏越来越快,人们对餐饮的要求也越来越高,不仅要求色香味俱全,而且对于就餐的时间和方式也有了更高的要求,许多顾客由于工作繁忙无法抽出时间来享受美味,这样就产生了快捷订餐的要求,最快的方式莫过于利用计算机网络,将餐饮业和计算机网络结合起来,就形成了网上订餐系统,用能力的餐饮企业对对餐品提供商提供网上订餐服务,不仅提高餐饮企业的服务质量,扩大知名度,也是为最终用户提供方便快捷的食品服务。社会对餐饮的快捷性要求形成了对网上订
5、餐的要求,该项目将使用JavaWeb技术的Servlet + JSP + JavaBean 实现快捷的开发与部署,并且可以最大限度的保证系统的稳定性。1.2 项目目标与任务 本系统的目标是使用最简单的界面风格,满足人们对网上订餐快捷性的要求,没有冗余的信息,打开页面,直接登录,浏览菜品,加入购物车,进行结算。用最简单的步骤、最少的时间来满足用户对订餐的要求,提高服务效率及顾客满意度。针对本系统,主要需要完成三部分:(1) 建立数据资源:在数据库中构建需要的数据表,建立表间联系;(2) 对数据资源进行访问:利用编程语言连接数据库,实现对库中数据的增删改查操作;(3) 对业务逻辑进行处理:实现系统
6、功能的后台处理部分,包括界面间跳转及数据信息的传输;(4) 具体界面实现:编码实现各页面,包括登录页面、展示所有菜品页面、菜品详情页面、添加菜品成功页面、查看购物车页面。1.3 任务分工系统设计阶段的任务分工如表1所示。表1 系统设计阶段任务分工组员组内分工王萌完成全部2 项目进度安排本系统开发流程如表2所示。表 2 系统开发流程表时间工作安排具体内容5月7日-5月10日设计数据库设计概念模型、逻辑模型、物理模型,导出数据库脚本5月11日执行数据库脚本在Oracle数据库中执行脚本5月12日-5月19日完成各部分功能实现增删改查功能在MyEclipse中,配置文件,连接数据库,编写userBe
7、an类(用户User类和菜品Dish类),完成对用户及菜品的增删改查5月20日-5月23日实现界面跳转功能完成用户验证登录,显示全部菜品,显示购物车5月24日-5月27日实现分页功能将显示全部菜品页面进化为分页显示5月28日-5月30日实现购物车功能实现将菜品添加进购物车,并计算总价的功能5月31日整体调试运行在浏览器中运行,也是整体最终测试6月1日-6月5日完成实验报告按照要求完成报告3 系统需求分析3.1 定义3.1.1 业务流程 本系统的业务流程大致是这样的:用户打开登录页面,填写用户名和密码,系统进行验证,验证不合法(即用户信息与数据库中信息不匹配),则系统要求用户重新输入;验证合法,
8、则进入分页显示菜品的页面。在分页显示菜品的页面,可以进行翻页对菜品大致浏览,也可以点击某一菜品进入其详情页面。在菜品详情页面,可以浏览该菜品的全部信息,并可以订购该菜品。在分页显示菜品的页面和菜品详情页面都可以点击查看购物车,对已订购菜品进行查看。本系统的业务流程图如图2所示。图2 业务流程图3.1.2 系统用例 用例是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。而用例图是显示一组用例、参与者以及它们之间关系的图。下面以用例图和用例描述来对本系统的用例进行描述。本系统的用例图如图3所示。图3 系统用例图以下表3至表6是对图1系统用例图中用例的详细描述,即用例描述。表3
9、LoginSystem用例描述用例名称LoginSystem标识符wm_1用例描述用户登录网上订餐系统,输入用户名、密码,系统对其进行验证参与者用户、网上订餐系统优先级1前置条件无后置条件系统验证基本操作流程1.用户进入登录页面,输入用户名、密码,点击“确定”2.系统对用户信息进行验证可选操作流程退出系统被泛化的用例无被包含的用例无被扩展的用例无表4 ViewDishes用例描述用例名称ViewDishes标识符wm_2用例描述对系统中的所有菜品进行分页展示参与者用户、网上订餐系统优先级2前置条件用户经验证为合法用户后置条件无基本操作流程用户浏览菜品信息可选操作流程A.点击按钮“上一页”、“下
10、一页”、“首页”、“最后一页”,对每一页的菜品进行查看B.点击菜品图片,或者按钮“详情”进入菜品详情页面C.查看购物车被泛化的用例无被包含的用例无被扩展的用例无表5 ViewDishDetails用例描述用例名称ViewDishDetails标识符wm_3用例描述展示用户点击菜品的详细信息参与者用户、网上订餐系统优先级2前置条件用户经验证为合法用户,且用户在浏览全部菜品时点击了其中一个图片或“详情”按钮后置条件无基本操作流程用户浏览菜品的详细信息可选操作流程A. 将该菜品加入购物车B. 查看购物车被泛化的用例无被包含的用例无被扩展的用例AddToCart表6 ViewCart用例描述用例名称V
11、iewCart标识符wm_4用例描述查看该用户购物车中的信息参与者用户、网上订餐系统优先级2前置条件用户经验证为合法用户,且用户在展示所有菜品页面或者菜品详情页面点击“查看购物车”按钮后置条件无基本操作流程用户浏览购物车内的信息可选操作流程A. 生成订单B. 清空购物车被泛化的用例无被包含的用例无被扩展的用例无3.1.3 系统总体功能 网上订餐系统的功能图如图4所示。图4 网上订餐系统功能图 根据图4网上订餐系统功能图,下面对各部分功能进行详细介绍。(1) 登录页面:用户输入用户名、密码,系统对其进行验证,验证通过则进入展示所有菜品页面。(2) 展示所有菜品页面:本页面对全部菜品进行分页显示。
12、用户可以点击按钮“上一页”、“下一页”、“首页”、“最后一页”,对每一页的菜品进行查看;也可以点击菜品图片,或者按钮“详情”进入菜品详情页面。(3) 菜品详情页面:显示某个菜品的全部详细信息,包括菜品编号、菜品名称、菜品描述、菜品图片、菜品价格、菜品折扣。点击按钮“订购”,可以将该菜品添加进购物车。(4) 添加菜品成功页面:订购成功,弹出窗口提示“订购成功”,点击“确定”,回到菜品详情页面。(5) 查看购物车页面:在展示所有菜品页面或菜品详情页面,点击按钮“查看购物车”,可以进入此页面,对自己曾经添加过的菜品、数量、总价等进行浏览。3.1.4 系统数据字典数据字典的作用是在软件分析和设计的过程
13、中给人提供关于数据的描述信息。数据流图和数据字典共同构成系统的逻辑模型。数据字典是系统中各类数据描述的集合,它通常包括以下主要部分:(1) 数据项:本系统数据项已列出,如表7所示:表7 各数据项的具体描述表名称别名数据类型长度与其他数据项的逻辑关系数据项之间的联系用户编号u_idnumber38无无用户姓名unamevarchar220无无用户密码upasswordvarchar220无无用户电话utelvarchar215无无用户地址uaddressvarchar2100无无菜品编号didnumber38无无菜品名称dnamevarchar215无无菜品描述ddescvarchar2200无
14、无菜品图片dimgvarchar2150无无菜品价格dpricenumber(12,3)12无无菜品折扣ddiscountnumber(12,3)12无无订单编号oidnumber38无无订购时间o_timevarchar2150无无订购数目dnumbernumber38无无(2) 数据结构:数据结构反应了数据之间的组合关系。本系统数据项已列出,如表8所示:表8 数据结构具体描述表数据结构名含义说明组成用户用户的详细信息用户编号、姓名、密码、电话、地址菜品菜品的详细信息菜品编号、名称、描述、图片、价格、折扣订单订单的详细信息订单编号、订购时间、用户编号、菜品编号、菜品数目、菜品价格(3) 数据
15、流: 数据流是数据结构在系统内传输的路径。本系统共有3个数据流,分别描述如下:a.数据流名称:用户信息 说明:主要包括用户的用户名、密码 数据流来源:用户在登录网上订餐系统首页时,输入的用户名以及密码 数据流去向:数据库 数据流组成:用户姓名+用户密码b.数据流名称:菜品信息 说明:某个菜品的所有详细信息 数据流来源:数据库 数据流去向:用户 数据流组成:菜品编号+菜品名称+菜品描述+菜品图片+菜品价格+菜品折扣c.数据流名称:订购信息 说明:用户添加进购物车的菜品的信息 数据流来源:用户曾点击订购的菜品 数据流去向:购物车 数据流组成:菜品编号+菜品名称+菜品数目+菜品价格+总计3.1.5
16、系统数据流图数据流图表达了数据和处理的关系。图书管理系统的数据流图如图5所示:图5 网上订餐系统数据流图4 系统设计4.1 系统架构设计 网上订餐系统架构图如图6所示。图6 系统架构图4.1.1 系统开发采用的技术手段 J2EE技术 PowerDesigner Rational Rose WPS4.1.2 系统开发环境 Window 7 操作系统 Oracle 数据库 MyEclipse 104.1.3 系统部署实施环境(1)系统部署主要采用数据库服务器: Oracle 11g 或以上版本(2)系统部署主要采用客户机: Windows 7 或以上版本 Oracle 11g 或以上版本 Chro
17、me浏览器4.2 系统功能设计 本系统主要完成用户登录、菜品展示、管理购物车、生成订单等功能。下面以用户和菜品为模块进行描述。4.2.1 用户模块本模块主要实现在用户登录过程中对用户信息进行验证的功能。这个模块共有2个接口和5个类,它们之间的关系如图7所示,各自内部函数如表9所示。图7 用户模块类图(注:实线箭头为继承,虚线箭头为实现,直线为关联)表9 用户模块各接口和类内部函数列表接口 / 类名称函数名称及参数返回类型完成功能接口IUserDAOfindUser(String sql1,String username)ArrayList实现对数据库中表wm_user的增删改查操作insert
18、User(User user)intdeleteUser(int userid)intupdateUser(User user)int接口IUserServicevalidateUser(String username,String pwd)boolean验证用户是否合法类UtilsgetDriver()String读取配置文件中有关连接数据库的信息,为连接数据库提供服务setDriver(String driver)voidgetUrl()StringsetUrl(String url)voidgetUser()StringsetUser(String user)voidgetPasswor
19、d()StringsetPassword(String password)voidgetConnection()Connection连接数据库free(Statement st,ResultSet rs,Connection conn)void释放资源类UsergetUid()intUser类是一个JavaBean,它所包含的这些getX()和setX()函数,都是利于其他类调用相应属性而设计的setUid(int uid)voidgetUname()StringsetUname(String uname)voidgetUpassword()StringsetUpassword(String
20、upassword)voidgetUaddress()StringsetUaddress(String uaddress)voidgetUtel()StringsetUtel(String utel)void类BaseDAOMappingObj(ResultSet rs,Class clazz)Object处理Oracle数据库与MyEclipse之间数据类型的转换find(String sql,Object params,Class clazz)ArrayList从数据库中查找满足条件的所有条目并返回idu(String sql,Object params)int实现对数据库中wm_dish
21、表数据的增删改操作getTotalRecords(String sql)int返回满足条件的条目的总数目类UserDAO同接口IUserDAO实现接口IUserDAO中的各函数类UserService同接口IUserService实现接口IUserService中的各函数 用户模块的时序图如图8所示。用户在登录页面输入用户名和密码,经后台从数据库中取出相关信息验证后,验证成功进入显示所有菜品的页面;验证不成功,则停留在登录页面,要求用户重新输入用户名和密码。图8 用户模块时序图4.2.2 菜品模块本模块主要实现经系统验证成功的用户对全部菜品进行分页查看、对某个菜品查看详情的功能。这部分共有2个
22、接口和6个类,它们之间的关系如图9所示,各自内部函数如表10所示。图9 菜品模块类图(注:实线箭头为继承,虚线箭头为实现,直线为关联)表10 菜品模块各接口和类内部函数列表接口 / 类名称函数名称及参数返回类型完成功能接口IDishDAOfindDish(String sql1,Object params)ArrayList实现对数据库中表wm_dish的增删改查操作insertDish(Dish dish)intdeleteDish(int dishid)intupdateDish(Dish dish)intgetTotalDishes(String sql)int返回满足筛选条件的菜品总数
23、接口IDishServicefindDish4PageList(int pageNO, int pageSize)PageModel返回从第M到第N,共(N-M+1)条菜品信息,用于分页显示getTotalDishs()int返回所有菜品的数目findDishByID(int dishid)Dish返回固定id号的菜品信息类Utils同用户模块的类Utils类DishgetDid()BigDecimalDish类是一个JavaBean,它所包含的这些getX()和setX()函数,都是利于其他类调用相应属性而设计的setDid(BigDecimal did)voidgetDname()Stri
24、ngsetDname(String dname)voidgetDdesc()StringsetDdesc(String ddesc)voidgetDimg()StringsetDimg(String dimg)voidgetDprice()BigDecimalsetDprice(BigDecimal dprice)voidgetDdiscount()BigDecimalsetDdiscount(BigDecimal ddiscount)void类PageModelgetTotalrecords()int这些函数也是一个JavaBean,方便其他类对相关属性进行调用setTotalrecords
25、(int totalrecords)voidgetPageSize()intsetPageSize(int pageSize)voidgetPageNO()intsetPageNO(int pageNO)voidgetList()ListsetList(List list)voidPageModel(int totalrecords, int pageSize, int pageNo, List list)无初始化函数getTotalPages()int返回总页数getTopPageNO()int跳转至第一页getPrevPageNO()int跳转至上一页getNextPageNO()int跳
26、转至下一页getBottomPageNO()int跳转至最后一页类DishService同接口IDishService实现接口IDishService中的各函数类BaseDAO同用户模块的类BaseDAO类DishDAO同IDishDAO实现接口IDishDAO中的各函数菜品模块的时序图如图10所示。经成功验证的用户进入分页显示全部菜品的页面后,后台会从数据库中取出部分数据供给用户浏览,这时可以对菜品进行切换页数的浏览,也可以点击某一菜品进入详情页面浏览,在详情页面,可以将菜品加入购物车。图10 菜品模块时序图4.3 数据库设计 数据库设计即根据对系统的分析,依次设计概念结构图、逻辑结构图、物
27、理结构图,最后根据物理结构图导出数据库脚本,以便在数据库中执行。4.3.1 概念结构设计由需求分析可以得出本系统的概念结构设计图(E-R图),如图11所示。这里主要有4个实体:wm_user:用户实体,包括用户编号、姓名、密码、联系电话、送餐地址;wm_dish:菜品实体,包括菜品编号、菜名、菜品描述、菜品图片路径、菜品价格、菜品折扣;wm_order:订单实体,包括订单编号、用户编号、菜品编号;wm_details:这是对订单的一个补充,包括订单编号、菜品编号及其对应订购数量。图11 系统E-R图4.3.2 逻辑结构设计将网上订餐管理系统的E-R图转换为关系数据库的数据模型,如图12所示,其
28、关系模式包括:用户(用户编号、用户名、密码)菜品(菜品编号、菜品名称、菜品描述、菜品图片、菜品价格、菜品折扣)订单(订单编号、用户编号、菜品编号)订单补充(订单编号、菜品编号、订购数量)图12 系统逻辑结构设计图4.3.3 物理结构设计 数据库的存储结构和存取方法称为数据库的物理结构,本系统的物理结构设计如图13所示。图13 网上订餐系统-物理结构设计图5 系统实现5.1 系统登陆页面图14 网上订餐系统-登录页面在登录页面,用户需要输入用户名、密码,点击“登录”按钮,系统将此信息与数据库中的信息进行审核,审核通过则允许用户继续操作,即进入展示全部菜品的页面。5.2 展示所有菜品页面 图15
29、网上订餐系统-展示所有菜品页面-第一页用户登录成功后,会自动跳转到图15所示的页面,它的功能是分页展示全部菜品。为了操作简单,方便浏览,每页只显示2个菜品。在这个页面主要有3个功能:点击“上一页”、“下一页”、“首页”、“最后一页”会跳转至相应的页数,显示不同的菜品,如图16就是第三页的菜品展示;点击菜品图片或者“详情”按钮,会跳转到菜品详情页面,如图18所示;点击“查看购物车”按钮,会跳转到购物车显示页面,如图20所示。在这个页面有一特色,鼠标移动到想要查看菜品的图片上方时,图片会变大,如图17;鼠标移出图片区域,图片会恢复原来大小。图16 网上订餐系统-展示所有菜品页面-第三页图17 网上订餐系统-菜品图片变大5.3 菜品详情页面图18 网上订餐系统-菜品详
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年医学执业药师资格考试药学综合知识模拟试题
- 2025-2026年护理伦理与法规测试题库
- 年产150套混凝土塔筒项目(一期)环评报告表
- 年产充电桩和充电机机柜15000个机箱、机台3000个、配重块7000吨建设项目环境影响报告
- 2026年全部焊接测试题目及答案
- 2026年新时代生态与文明测试题
- 2026年养老机构测试题目及答案
- 2026年单招十类测试题语文高一
- ISO 49912024 用于压力目的的钢铸件标准立项发展报告
- 2026节约用水知识试题及答案
- 泌尿系影像课件
- 2025-2026学年湘美版(2024)初中美术七年级上册教学计划及进度表
- 华为ensp教学课件
- 修理组管理办法
- 精神病人健康指导
- 华为流程管理实践
- CJ/T 3041-1995水处理用天然锰砂滤料
- 学生骑自行车上学协议书
- 科普创意美术课件
- 医院感染暴发识别与报告处置流程
- 设备损坏更换协议书
评论
0/150
提交评论