版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XXX 理工学院实训报告 网 上 定 餐 系 统 系别:计算机系 班级: 姓名: 学号: . *; 网上订餐系统网上订餐系统 一一 系统概述系统概述 本系统在开发设计中,采用 B/S(Browser/Server)结构,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,用户不用安装客户端,而且由于通过服务器端统一管理数据,易于保证数据的一致性。数据库方面,推荐业界具有领导地位的关系数据库管理系统 Microsoft SQL sever2000,使系统安全性能更高。同时采用当前正在流行的 JSP(Java Server Pages)编程,用户界面更友好。 在开发中选择了 JSP
2、+JavaBean+SQL2000 的模式,实现了应用程序逻辑和页面显示分离,界面设计更简单。JavaBean 可重用的软件组件满足小型应用,同时使编程人员投入量精力便可重用组件,在简单的应用中可以充分考虑 二二需求分析需求分析 网上订餐管理系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。 2.12.1 性能需求分析性能需求分析 该系统在性能功能上应达到如下需求: 操
3、作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式; 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能; 系统运行应该快速、稳定、高效和可靠; 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。 2.22.2 产品质量需求分析产品质量需求分析 主要质量属性
4、主要质量属性 详细要求详细要求 正确性 按照需求正确执行任务,完成各个模块的相应要求。 健壮性 具有较高的容错能力和恢复能力。 可靠性 故障发生率每运行 1000 小时低于 3 次 . *; 性能,效率 软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。 易用性 易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。 安全性 防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步. 可扩展性 能方便的进行二次
5、开发,满足对功能的扩充或提高并能提高相应的安全控制。 兼容性 不易与其他软件起冲突。 可移植性 可方便移植到其他系统环境中正常运行。 2.3 2.3 可行性分析可行性分析 随着经济的快速发展,B2C 电子商务越来越受到人们的关注。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务
6、在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体, 他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。 因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。 2.4 2.4 总体设计原则总体设计原则 1、开放性、可扩充性、可靠性原则 开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。 2、良好的用户操作界面 用户操作界面美观、方便、实用,使用户能在
7、较短的时间内掌握其使用方法。 . *; 3、实用性原则 任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。 4、工作平台设计原则 能适应不同的操作平台,不同的网络。 三三 总体设计总体设计 3.1 系统流程分析 3.1.1 业务流程分析 1、 浏览与选择餐饮信息:顾客进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型) ,网站提供餐饮信息列表,最先添加的餐饮信息优先列表给顾客作为选购时的参考; 2、 判断:顾客确定所购餐饮信息后,系统将判断该顾
8、客是否注册,如果是,则可直接填写订单;否则,提示顾客登记注册; 3、 提交订单:已选购的餐饮信息需填写订单细节。 4、 注册:顾客可在公司的网站上注册后提交申请; 5、 确认:后台管理将实时得到顾客的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该顾客提交的预定信息进行审核。 6、送货与付款:网上的每一份订单都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向顾客送货,货到付款,完成网上交易。 . *; 3.1.2 数据流程分析 该系统数据流程比较简单,管理员可以添加餐厅信息(包括餐桌,包房等) ,餐饮信息(包括菜品名等信息) ,资讯信息等,然
9、而这些信息顾客是可以浏览的,但是顾客没有权限对这些信息进行修改,这些信息对于顾客而言是单向的。对于预定信息,管理员可以查看及审核预定信息,顾客可以增删改预定信息,并将预定信息提交给管理员等待审核,因此预定信息对于顾客和管理员而言都是双向的。 数据流图数据流图 数据流图简称 DFD,是 SA 方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示: 顾客 登录系统 浏览菜品资讯 获得购物车 浏览餐饮信息 选择餐饮信息 管理员 审核 Y 交易 结束 N . *; 管理员餐
10、厅信息餐饮信息资讯信息餐饮预定数据库顾客 系统系统 DFD 图图 3.3.2 2 系统数据库设计系统数据库设计 3.2.1 3.2.1 数据库数据库 E E- -R R 图图 . *; Users(用户表) 用户名 密码 权限 orders(订单表) 订餐人 时间 备注 电话 应收款 地址 发布 Seat(订座表) 电话 人数 订餐人 发布 Shop(订单菜单表) 菜名 数量 单价 所属 st(订座菜单表) 类别名 图片 单价 菜名 数量 单价 菜名 点菜 category (类别表) Food (菜单表) . *; 3.2.2 数据库表设计数据库表设计 系统关键数据表如下:其关系见系统关键数
11、据表如下:其关系见 E E- -R R 图图 1用户表(users):用户登录是需要用户名和密码,所以用户数据表中必须包含用户名(uname)、密码(upass)两个信息,还有些其他的用户信息,比如 power指的是用户权限(管理员还是非管理员)。从功能上数据库表设计如表 3.1。 表 3.1 用户表 列名 数据类型 长度 uid int 4 uname varchar 50 upass varchar 50 power int 4 2菜品信息表(food) :菜品信息表主要描述菜品信息,如:菜品 ID 号(foodid),此 ID 号为系统自动生成;菜品名称(fname) ;菜品价格(pri
12、ce) ;所属分类 ID(categoryId) ;图片信息(images)。商品信息表详细描述如表 3.2 表 3.2 菜品信息表 列名 数据类型 长度 foodId int 4 price money 8 categoryId int 4 images varchar 50 3订座菜单表(st):客户订餐的一些相关信息,如 stId 指的订餐 ID 号,此 ID 和是系统自动生成的;菜品名称(fname);订购数量(num);价格(price);座位编号(seatId)等,具体描述表 3.3 表 3.3 供应商表 列名 数据类型 长度 stId int 4 fname varchar 50
13、 num int 4 price money 8 seatId int 4 fId int 4 . *; 4订单表(orders): 订单表有一下描述信息。订单 ID(ordersId) ,订购人姓名(name) ,地址(address) ,联系电话(tel) ,价格(price) ,备注信息(context)等,具体描述如表 3.4 所示: 表 3.4 订单表 列名 数据类型 长度 ordersId int 4 name varchar 50 address varchar 50 tel varchar 50 price numeric 9 uid int 4 context text 16
14、 5订单菜单表(Shop)具体描述如表 3.5 所示: 表 3.5 订单菜单表 列名 数据类型 长度 fId int 4 fname varchar 50 num int 4 price Money 8 uid int 4 sid int 4 6订座表(Seat)具体描述如表 3.6 所示: 表 3.6 订座表 列名 数据类型 长度 seatId int 4 uid int 50 tel varchar 50 riqi varchar 50 num int 4 name varchar 4 xiaoshi varchar 50 . *; 3.3.3 3 系统结构设计系统结构设计 网上订餐系统的
15、模型结构如下图所示: 从前面的需求分析中得知, 可以将功能分为前台和后台两类, 因此模块也分为两大类:前台模块和后台模块。 下图为系统模块总图: 系统模块总图 网上订餐管理系统 前台模块 后台模块 注册登录 菜品查询 订单查询 用户权限管理 菜品管理 订餐管理 订座管理 用户订餐 用户订座 用户管理 客户端 浏览器 客户端 浏览器 客户端 浏览器 Web 层 业务层 数据访问层 系统配置 数据库 . *; 3.3.4 4 核心算法实现核心算法实现分页显示算法分页显示算法 int i; 一页显示的记录数 = 10; 取得待显示页码 PageSet : strPage = page; if(str
16、Page=null)/page 参数为空时,此时显示第一页数据 待显示页码 = 1; else 待显示页码 = Integer.parseInt(strPage); /将字符串转换成整型 if(待显示页码总页数) 待显示页码 = 总页数; / 分页情况分类 /选择向上翻 if(待显示页码1) 选择向上翻一页传递参数 pageda=待显示页码-1 goto PageSet; /选择向下翻 if(待显示页码0) 将记录指针定位到结果集的第一条记录上(待显示页码-1) * 一页显示的记录数 + 1); i = 0; while(i一页显示的记录数 & 数据库指针不在结果集尾部) 输出要分页显
17、示的数据库中的内容; 将数据库指针移动到当前行的下一行; i+; 3.5 3.5 数据库编程基础及语法 Java 数据库连接 (JDBC) 是一个标准 SQL(Structured Query Language,结构化查询语言) 数据库访问接口, 可以为多种关系数据库提供统一访问。 JDBC (Java DataBase Connection,Java 数据库连接) 也提供一种基准,据此可以构建更高级的工具和接口。 目前的 JDK(Java Development Kit,Java 开发工具包)软件捆绑包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,开
18、放式数据库连接)桥。你可以从 /products/JDK/CurrentRelease 找到最新版。 1) 安装驱动程序。 装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); 如果是 JDBC Driver 装载: Class.forName(jdbc.driver_class_name);各种数据库驱动见附录。 2) 建立连接 第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做法:
19、3) Connection con = DriverManager.getConnection(url, myLogin , myPassword ); 这个步骤也非常简单, 最难的是怎么提供 url。 如果你正在使用 JDBC-ODBC 桥, JDBC URL 将以 jdbc:odbc 开始:余下 URL 通常是你的数据源名字或数据库系统。因此,假设你正在使用 ODBC 存取一个叫 webmail 的 ODBC 数据源,你的 JDBC URL 是 jdbc:odbc:webmail 。把 sa 及空格替换为你登陆 DBMS 的用户名及口. *; 令。如果你登陆数据库系统的用户名为 webma
20、il 口令为空,只需下面的 2 行代码就可以建立一个连接: String url = jdbc:odbc:webmail; Connection con = DriverManager.getConnection(url,webmail,); 如果你使用的是第三方开发了的 JDBC 驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驱动程序开发者注册了 acme 作为 subprotocol, JDBC URL 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 JDBC URL 的格式。JDBC
21、URL 最后一部分提供了定位数据库的信息。如果配置了连接池则要使用下面几行代码就可以建立一个连接: Context ctx; DataSource ds; ctx = new InitialContext(); ds = (DataSource)ctx.lookup(java:comp/env/jdbc/webmail); connection 接口是 JSP 数据库编程使用多的接口之一,在 connection 接口中经常使用到一个方法 close();要注意在连接用完后必须关闭, 否则连接会继续保持,直到超时。 4) 创建 JDBC Statements 对象 Statement 对象用于
22、把 SQL 语句发送到数据库 。你只须简单地创建一个 Statement 对象并且然后执行它,使用适当的方法执行你发送的 SQL 语句。对 SELECT 语句来说,可以使用 executeQuery。要创建或修改表的语句,使用的方法是 executeUpdate。 需要一个活跃的连接的来创建 Statement 对象的实例。在下面的例子中,使用的 Connection 对象 con 创建 Statement 对象 stmt: Statement stmt = con.createStatement(int resultSetType,int resultSetConcurrency); Res
23、ultSet rs=Stmt.executeUpdate(SQL);SQL 为数据库查询语句 Con.createStatement()方法包含两参数:resultSetType 和 resultSetConcurrency 1. resultSetType 参数: 用来设定 ResultSet 对象中的光标是否能够上下自由移动,它的值只能有 3 种,TYPE_FORWARD_ONLY、TYPE_SCROLL_SENSITIVE 或 TYPE_SCROLL_INSENSITEVE。若设为第一种,表示 ResultSet 对象中的光标能够随心所欲的上下移动,不过他们两者最大的差别在于:当 Res
24、ultSet 对象中的值有变时,TYPE_SCROLL_SENSITIVE 能够取得改变后的值,而 TYPE_SCROLL_INSENSITIVE 不能。 2. resultSetConcurrency 参数: . *; 主要设定 ResultSet 对象是只读(read-only)还是可以改变的(updatable) ,他的值有两种,CONCUR_READ_ONLY 和 CONCUR_UPDATABLE。若设为 CONCUR_READ_ONLY,则ResultSet对象和JDBC 1.0的功能一样; 若为CONCUR_UPDATABLE,那么表示ResultSet对象可以直接执行数据库的新增
25、、修改和移除功能。 在 statement 执行 SQL 语句是,有时会返回 ResultSet 结果集。该结果集往往包含的是查询的记录集。 通过 ResultSet.next()方法把当前的指针向下移动一位,随着每次调用 next 导致指针向下移动,按照从上到下的次序获取 ResultSe 行。 Java.sql.ResultSet 提供了检索不同的类型字段,其常用的的方法如下: getString():获得数据库里的 varchar、char 数据类型。 getFloat():获得数据库里的 Float 数据类型。 getDouble():获得数据库里的 Double Precision
26、数据类型。 getBoolean():获得数据库里 Boolean 数据类型。 getObject():该方法用于在 SQL 中无对应类型,可以获得系列化对象。 getClob():获得数据库里的 Clob(字符串大型对象)数据类型的对象。 getBolb():获得数据库里的 Blob(二进制大型对象)数据类型的对象。 3.63.6 本系统中的连接方式本系统中的连接方式 在本 TOMCAT 中配置了连接池,连接程序用 JavaBean 方法封装,放在 WEB-INF classse 目录下。 import java.sql.*; import javax.sql.*; import javax.naming.*; public class Db public Connection con; public Statement stmt; public ResultSet rs; public PreparedStatement pstmt; public static int error=0; public static synchronized Connection getCon()throws Exception Context ctx; DataSource ds; try ctx = new InitialContex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年缙云县教师招聘考试参考题库及答案解析
- 2026年灵丘县教师招聘笔试模拟试题及答案解析
- 2026山东烟台大学法学院黄海学者岗位 (正高级)招聘4人考试备考试题及答案解析
- 2026陕西通运铁建人力资源服务有限公司招聘(30人)笔试模拟试题及答案解析
- 中国工商银行2027届校园招聘考试备考题库及答案解析
- 2026年福州市劳动就业中心就业辅助员公益性岗位招聘笔试参考题库及答案解析
- 2026年合肥国家实验室某研究室社会用工招聘笔试备考题库及答案解析
- 武汉市中心城区公立中学招聘初中英语教师笔试参考题库及答案解析
- 2026宝鸡老实人商业发展有限公司招聘笔试备考试题及答案解析
- 2026年安徽省国有资本运营控股集团有限公司就业见习招募65人笔试参考题库及答案解析
- 高三化学一轮复习“钠及其化合物”教学设计
- 2026年湖南水利水电职业技术学院单招职业技能考试题库附答案
- 2025-2026 学年七年级上期末语文试卷
- 2026-2027学年浙教版数学九上 第3章 圆的基本性质 单元综合知识梳理卷
- 2026年三力测试考试题库及答案
- 修订一单一库质量手册和程序文件参考文件
- 中考英语-阅读理解之推断题专题讲义
- 公路水运试验检测师《水运结构与地基》考试真题(2026年新版)
- HSK1 标准汉语教程 L2 第二课 谢谢你
- 招聘实用手册
- 2023年北京高考语文答题卡(北京卷)word版可编辑kh
评论
0/150
提交评论