企业级Java网上订餐系统报告.docx

上传人:b****8 文档编号:23975665 上传时间:2023-05-23 格式:DOCX 页数:30 大小:2.45MB
下载 相关 举报
企业级Java网上订餐系统报告.docx_第1页
第1页 / 共30页
企业级Java网上订餐系统报告.docx_第2页
第2页 / 共30页
企业级Java网上订餐系统报告.docx_第3页
第3页 / 共30页
企业级Java网上订餐系统报告.docx_第4页
第4页 / 共30页
企业级Java网上订餐系统报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

企业级Java网上订餐系统报告.docx

《企业级Java网上订餐系统报告.docx》由会员分享,可在线阅读,更多相关《企业级Java网上订餐系统报告.docx(30页珍藏版)》请在冰豆网上搜索。

企业级Java网上订餐系统报告.docx

企业级Java网上订餐系统报告

 

企业级Java应用开发实践报告

 

课程代码:

1302451

课程名称:

企业级Java应用开发

课程类别:

专业主干课

开课学期:

2014春季学期

 

编写单位:

中国地质大学(北京)信息工程学院

项目负责人:

王萌

编写人:

王萌

指导教师:

薛涛

提交班级:

10131111

提交时间:

2014年6月6日

 

目录

1项目目的和任务1

1.1项目背景1

1.2项目目标与任务2

1.3任务分工3

2项目进度安排3

3系统需求分析4

3.1定义4

4系统设计9

4.1系统架构设计9

4.2系统功能设计10

4.3数据库设计16

5系统实现18

5.1系统登陆页面18

5.2展示所有菜品页面19

5.3菜品详情页面20

5.4查看购物车页面21

6项目总结22

1项目目的和任务

本课程实践的目的和意义在于通过设计与完成一个网上订餐系统,使学生比较全面地、系统地掌握J2EE的基本概念和基本知识,可以使用Java语言实现对数据库中的数据进行操作,为将来从事Java及数据库方面的研究、开发和应用奠定坚实的基础。

本项目来源于中国地质大学(北京)信息工程学院企业级Java应用开发课程实践,开发周期为30天。

本项目由中国地质大学(北京)信息工程学院的王萌研发,系统主要实现以下功能:

验证用户登录、展示全部菜品、展示菜品详情、将菜品加入购物车、查看购物车。

1.1项目背景

下面将从国外、国内、发展趋势三方面对本项目的项目背景进行阐述。

1.1.1国外情况

国外的许多知名品牌,如肯德基、麦当劳,在多年前就开始了网上订餐服务,并且受到了国外的许多家庭的欢迎;这些品牌的网上订餐服务这几年也在中国逐渐普及。

 

1.1.2国内情况

跟随国外网上订餐的热潮,现在在国内出现了好多网上订餐系统,比较出名而且我们在生活中经常用到的就要属“饿了么”。

“饿了么”这个网站很好地迎合了消费者的需求:

可以便捷地搜索自己身边的美食店进行查看,喜欢就可接直接订餐,省去了到实体店排队等候的时间,尤其适合很宅的大学生和工作狂人。

与人方便的同时,这个网站也有一些我感觉需要改进的地方,比如:

这个网站是把所有店铺信息以表格的形式,一下子、全部显示在用户面前,这样难免有些眼花缭乱,如图1所示;而且,没有把信息相应地进行分页显示,总是要滑动鼠标滑轮来上下翻动,用户体验感不好。

综上而述,信息量固然重要,但用户感官体验也是必不可少的。

图1“饿了么”网页

1.1.3发展趋势

当今社会的生活节奏越来越快,人们对餐饮的要求也越来越高,不仅要求色香味俱全,而且对于就餐的时间和方式也有了更高的要求,许多顾客由于工作繁忙无法抽出时间来享受美味,这样就产生了快捷订餐的要求,最快的方式莫过于利用计算机网络,将餐饮业和计算机网络结合起来,就形成了网上订餐系统,用能力的餐饮企业对对餐品提供商提供网上订餐服务,不仅提高餐饮企业的服务质量,扩大知名度,也是为最终用户提供方便快捷的食品服务。

社会对餐饮的快捷性要求形成了对网上订餐的要求,该项目将使用JavaWeb技术的Servlet+JSP+JavaBean实现快捷的开发与部署,并且可以最大限度的保证系统的稳定性。

1.2项目目标与任务

本系统的目标是使用最简单的界面风格,满足人们对网上订餐快捷性的要求,没有冗余的信息,打开页面,直接登录,浏览菜品,加入购物车,进行结算。

用最简单的步骤、最少的时间来满足用户对订餐的要求,提高服务效率及顾客满意度。

针对本系统,主要需要完成三部分:

(1)建立数据资源:

在数据库中构建需要的数据表,建立表间联系;

(2)对数据资源进行访问:

利用编程语言连接数据库,实现对库中数据的增删改查操作;

(3)对业务逻辑进行处理:

实现系统功能的后台处理部分,包括界面间跳转及数据信息的传输;

(4)具体界面实现:

编码实现各页面,包括登录页面、展示所有菜品页面、菜品详情页面、添加菜品成功页面、查看购物车页面。

1.3任务分工

系统设计阶段的任务分工如表1所示。

表1系统设计阶段任务分工

组员

组内分工

王萌

完成全部

2项目进度安排

本系统开发流程如表2所示。

表2系统开发流程表

时间

工作安排

具体内容

5月7日---

5月10日

设计数据库

设计概念模型、逻辑模型、物理模型,导出数据库脚本

5月11日

执行数据库脚本

在Oracle数据库中执行脚本

5月12日---

5月19日

完成

各部分功能

实现增删改查功能

在MyEclipse中,配置文件,连接数据库,编写userBean类(用户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业务流程

本系统的业务流程大致是这样的:

用户打开登录页面,填写用户名和密码,系统进行验证,验证不合法(即用户信息与数据库中信息不匹配),则系统要求用户重新输入;验证合法,则进入分页显示菜品的页面。

在分页显示菜品的页面,可以进行翻页对菜品大致浏览,也可以点击某一菜品进入其详情页面。

在菜品详情页面,可以浏览该菜品的全部信息,并可以订购该菜品。

在分页显示菜品的页面和菜品详情页面都可以点击查看购物车,对已订购菜品进行查看。

本系统的业务流程图如图2所示。

图2业务流程图

3.1.2系统用例

用例是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。

而用例图是显示一组用例、参与者以及它们之间关系的图。

下面以用例图和用例描述来对本系统的用例进行描述。

本系统的用例图如图3所示。

图3系统用例图

以下表3至表6是对图1系统用例图中用例的详细描述,即用例描述。

表3LoginSystem用例描述

用例名称

LoginSystem

标识符

wm_1

用例描述

用户登录网上订餐系统,输入用户名、密码,系统对其进行验证

参与者

用户、网上订餐系统

优先级

1

前置条件

后置条件

系统验证

基本操作流程

1.用户进入登录页面,输入用户名、密码,点击“确定”

2.系统对用户信息进行验证

可选操作流程

退出系统

被泛化的用例

被包含的用例

被扩展的用例

表4ViewDishes用例描述

用例名称

ViewDishes

标识符

wm_2

用例描述

对系统中的所有菜品进行分页展示

参与者

用户、网上订餐系统

优先级

2

前置条件

用户经验证为合法用户

后置条件

基本操作流程

用户浏览菜品信息

可选操作流程

A.点击按钮“上一页”、“下一页”、“首页”、“最后一页”,对每一页的菜品进行查看

B.点击菜品图片,或者按钮“详情”进入菜品详情页面

C.查看购物车

被泛化的用例

被包含的用例

被扩展的用例

表5ViewDishDetails用例描述

用例名称

ViewDishDetails

标识符

wm_3

用例描述

展示用户点击菜品的详细信息

参与者

用户、网上订餐系统

优先级

2

前置条件

用户经验证为合法用户,且用户在浏览全部菜品时点击了其中一个图片或“详情”按钮

后置条件

基本操作流程

用户浏览菜品的详细信息

可选操作流程

A.将该菜品加入购物车

B.查看购物车

被泛化的用例

被包含的用例

被扩展的用例

AddToCart

表6ViewCart用例描述

用例名称

ViewCart

标识符

wm_4

用例描述

查看该用户购物车中的信息

参与者

用户、网上订餐系统

优先级

2

前置条件

用户经验证为合法用户,且用户在展示所有菜品页面或者菜品详情页面点击“查看购物车”按钮

后置条件

基本操作流程

用户浏览购物车内的信息

可选操作流程

A.生成订单

B.清空购物车

被泛化的用例

被包含的用例

被扩展的用例

3.1.3系统总体功能

网上订餐系统的功能图如图4所示。

图4网上订餐系统功能图

根据图4网上订餐系统功能图,下面对各部分功能进行详细介绍。

(1)登录页面:

用户输入用户名、密码,系统对其进行验证,验证通过则进入展示所有菜品页面。

(2)展示所有菜品页面:

本页面对全部菜品进行分页显示。

用户可以点击按钮“上一页”、“下一页”、“首页”、“最后一页”,对每一页的菜品进行查看;也可以点击菜品图片,或者按钮“详情”进入菜品详情页面。

(3)菜品详情页面:

显示某个菜品的全部详细信息,包括菜品编号、菜品名称、菜品描述、菜品图片、菜品价格、菜品折扣。

点击按钮“订购”,可以将该菜品添加进购物车。

(4)添加菜品成功页面:

订购成功,弹出窗口提示“订购成功”,点击“确定”,回到菜品详情页面。

(5)查看购物车页面:

在展示所有菜品页面或菜品详情页面,点击按钮“查看购物车”,可以进入此页面,对自己曾经添加过的菜品、数量、总价等进行浏览。

3.1.4系统数据字典

数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。

数据流图和数据字典共同构成系统的逻辑模型。

数据字典是系统中各类数据描述的集合,它通常包括以下主要部分:

(1)数据项:

本系统数据项已列出,如表7所示:

表7各数据项的具体描述表

名称

别名

数据

类型

与其他

数据项的逻辑关系

数据项

之间的

联系

用户编号

u_id

number

38

用户姓名

uname

varchar2

20

用户密码

upassword

varchar2

20

用户电话

utel

varchar2

15

用户地址

uaddress

varchar2

100

菜品编号

did

number

38

菜品名称

dname

varchar2

15

菜品描述

ddesc

varchar2

200

菜品图片

dimg

varchar2

150

菜品价格

dprice

number(12,3)

12

菜品折扣

ddiscount

number(12,3)

12

订单编号

oid

number

38

订购时间

o_time

varchar2

150

订购数目

dnumber

number

38

(2)数据结构:

数据结构反应了数据之间的组合关系。

本系统数据项已列出,如表8所示:

表8数据结构具体描述表

数据结构名

含义说明

组成

用户

用户的详细信息

用户编号、姓名、密码、电话、地址

菜品

菜品的详细信息

菜品编号、名称、描述、图片、价格、折扣

订单

订单的详细信息

订单编号、订购时间、用户编号、

菜品编号、菜品数目、菜品价格

(3)数据流:

数据流是数据结构在系统内传输的路径。

本系统共有3个数据流,分别描述如下:

a.数据流名称:

用户信息

说明:

主要包括用户的用户名、密码

数据流来源:

用户在登录网上订餐系统首页时,输入的用户名以及密码

数据流去向:

数据库

数据流组成:

用户姓名+用户密码

b.数据流名称:

菜品信息

说明:

某个菜品的所有详细信息

数据流来源:

数据库

数据流去向:

用户

数据流组成:

菜品编号+菜品名称+菜品描述+菜品图片+菜品价格+菜品折扣

c.数据流名称:

订购信息

说明:

用户添加进购物车的菜品的信息

数据流来源:

用户曾点击订购的菜品

数据流去向:

购物车

数据流组成:

菜品编号+菜品名称+菜品数目+菜品价格+总计

3.1.5系统数据流图

数据流图表达了数据和处理的关系。

图书管理系统的数据流图如图5所示:

图5网上订餐系统数据流图

4系统设计

4.1系统架构设计

网上订餐系统架构图如图6所示。

图6系统架构图

4.1.1系统开发采用的技术手段

☑J2EE技术

☑PowerDesigner

☑RationalRose

☑WPS

4.1.2系统开发环境

☑Window7操作系统

☑Oracle数据库

☑MyEclipse10

4.1.3系统部署实施环境

(1)系统部署主要采用数据库服务器:

☑Oracle11g或以上版本

(2)系统部署主要采用客户机:

☑Windows7或以上版本

☑Oracle11g或以上版本

☑Chrome浏览器

4.2系统功能设计

本系统主要完成用户登录、菜品展示、管理购物车、生成订单等功能。

下面以用户和菜品为模块进行描述。

4.2.1用户模块

本模块主要实现在用户登录过程中对用户信息进行验证的功能。

这个模块共有2个接口和5个类,它们之间的关系如图7所示,各自内部函数如表9所示。

图7用户模块类图

(注:

实线箭头为继承,虚线箭头为实现,直线为关联)

表9用户模块各接口和类内部函数列表

接口/类

名称

函数名称及参数

返回类型

完成功能

接口IUserDAO

findUser(Stringsql1,Stringusername)

ArrayList

实现对数据库中表wm_user的增删改查操作

insertUser(Useruser)

int

deleteUser(intuserid)

int

updateUser(Useruser)

int

接口IUserService

validateUser(Stringusername,Stringpwd)

boolean

验证用户是否合法

类Utils

getDriver()

String

读取配置文件中有关连接数据库的信息,为连接数据库提供服务

setDriver(Stringdriver)

void

getUrl()

String

setUrl(Stringurl)

void

getUser()

String

setUser(Stringuser)

void

getPassword()

String

setPassword(Stringpassword)

void

getConnection()

Connection

连接数据库

free(Statementst,ResultSetrs,Connectionconn)

void

释放资源

类User

getUid()

int

User类是一个JavaBean,它所包含的这些getX()和setX()函数,都是利于其他类调用相应属性而设计的

setUid(intuid)

void

getUname()

String

setUname(Stringuname)

void

getUpassword()

String

setUpassword(Stringupassword)

void

getUaddress()

String

setUaddress(Stringuaddress)

void

getUtel()

String

setUtel(Stringutel)

void

类BaseDAO

MappingObj(ResultSetrs,Classclazz)

Object

处理Oracle数据库与MyEclipse之间数据类型的转换

find(Stringsql,Object[]params,Classclazz)

ArrayList

从数据库中查找满足条件的所有条目并返回

idu(Stringsql,Object[]params)

int

实现对数据库中wm_dish表数据的增删改操作

getTotalRecords(Stringsql)

int

返回满足条件的条目的总数目

类UserDAO

同接口IUserDAO

实现接口IUserDAO中的各函数

类UserService

同接口IUserService

实现接口IUserService中的各函数

用户模块的时序图如图8所示。

用户在登录页面输入用户名和密码,经后台从数据库中取出相关信息验证后,验证成功进入显示所有菜品的页面;验证不成功,则停留在登录页面,要求用户重新输入用户名和密码。

图8用户模块时序图

4.2.2菜品模块

本模块主要实现经系统验证成功的用户对全部菜品进行分页查看、对某个菜品查看详情的功能。

这部分共有2个接口和6个类,它们之间的关系如图9所示,各自内部函数如表10所示。

图9菜品模块类图

(注:

实线箭头为继承,虚线箭头为实现,直线为关联)

表10菜品模块各接口和类内部函数列表

接口/类

名称

函数名称及参数

返回类型

完成功能

接口

IDishDAO

findDish(Stringsql1,Object[]params)

ArrayList

实现对数据库中表wm_dish的增删改查操作

insertDish(Dishdish)

int

deleteDish(intdishid)

int

updateDish(Dishdish)

int

getTotalDishes(Stringsql)

int

返回满足筛选条件的菜品总数

接口

IDishService

findDish4PageList(intpageNO,intpageSize)

PageModel

返回从第M到第N,共(N-M+1)条菜品信息,用于分页显示

getTotalDishs()

int

返回所有菜品的数目

findDishByID(intdishid)

Dish

返回固定id号的菜品信息

类Utils

同用户模块的类Utils

类Dish

getDid()

BigDecimal

Dish类是一个JavaBean,它所包含的这些getX()和setX()函数,都是利于其他类调用相应属性而设计的

setDid(BigDecimaldid)

void

getDname()

String

setDname(Stringdname)

void

getDdesc()

String

setDdesc(Stringddesc)

void

getDimg()

String

setDimg(Stringdimg)

void

getDprice()

BigDecimal

setDprice(BigDecimaldprice)

void

getDdiscount()

BigDecimal

setDdiscount(BigDecimalddiscount)

void

类PageModel

getTotalrecords()

int

这些函数也是一个JavaBean,方便其他类对相关属性进行调用

setTotalrecords(inttotalrecords)

void

getPageSize()

int

setPageSize(intpageSize)

void

getPageNO()

int

setPageNO(intpageNO)

void

getList()

List

setList(Listlist)

void

PageModel(inttotalrecords,intpageSize,intpageNo,Listlist)

初始化函数

getTotalPages()

int

返回总页数

getTopPageNO()

int

跳转至第一页

getPrevPageNO()

int

跳转至上一页

getNextPageNO()

int

跳转至下一页

getBottomPageNO()

int

跳转至最后一页

类DishService

同接口IDishService

实现接口IDishService中的各函数

类BaseDAO

同用户模块的类BaseDAO

类DishDAO

同IDishDAO

实现接口IDishDAO中的各函数

菜品模块的时序图如图10所示。

经成功验证的用户进入分页显示全部菜品的页面后,后台会从数据库中取出部分数据供给用户浏览,这时可以对菜品进行切换页数的浏览,也可以点击某一菜品进入详情页面浏览,在详情页面,可以将菜品加入购物车。

图10菜品模块时序图

4.3数据库设计

数据库设计即根据对系统的分析,依次设计概念结构图、逻辑结构图、物理结构图,最后根据物理结构图导出数据库脚本,以便在数据库中执行。

4.3.1概念结构设计

由需求分析可以得出本系统的概念结构设计图(E-R图),如图11所示。

这里主要有4个实体:

wm_user:

用户实体,包括用户编号、姓名、密码、联系电话、送餐地址;

wm_dish:

菜品实体,包括菜品编号、菜名、菜品描述、菜品图片路径、菜品价格、菜品折扣;

wm_order:

订单实体,包括订单编号、用户编号、菜品编号;

wm_details:

这是对订单的一个补充,包括订单编号、菜品编号及其对应订购数量。

图11系统E-R图

4.3.2逻辑结构设计

将网上订餐管理系统的E-R图转换为关系数据库的数据模型,如图12所示,其关系模式包括:

用户(用户编号、用户名、密码)

菜品(菜品编号、菜品名称、菜品描述、菜品图片、菜品价格、菜品折扣)

订单(订单编号、用户编号、菜品编号)

订单补充(订单编号、菜品编号、订购数量)

图12系统逻辑结构设计图

4.3.3物理结构设计

数据库的存储结构和存取方法称为数据库的物理结构,本系统的物理结构设计如图13所示。

图13网上订餐系统---物理结构设计图

5系统实现

5.1系统登陆页面

图14网上订餐系统---登录页面

在登录页面,用户需要输入用户名、密码,点击“登录”按钮,系统将此信息与数据库中的信息进行审核,审核通过则允许用户继续操作,即进入展示全部菜品的页面。

5.2展示所有菜品页面

图15网上订餐系统---展示所有菜品页面---第一页

用户登录成功后,会自动跳转到图15所示的页面,它的功能是分页展示全部菜品。

为了操作简单,方便浏览,每页只显示2个菜品。

在这个页面主要有3个功能:

点击“上一页”、“下一页”、“首页”、“最后一页”会跳转至相应的页数,显示不同的菜品,如图16就是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1