实训报告网上订餐系统

上传人:wan****21 文档编号:157047006 上传时间:2022-09-28 格式:DOC 页数:16 大小:162KB
收藏 版权申诉 举报 下载
实训报告网上订餐系统_第1页
第1页 / 共16页
实训报告网上订餐系统_第2页
第2页 / 共16页
实训报告网上订餐系统_第3页
第3页 / 共16页
资源描述:

《实训报告网上订餐系统》由会员分享,可在线阅读,更多相关《实训报告网上订餐系统(16页珍藏版)》请在装配图网上搜索。

1、XXX理工学院实训报告网上定餐系统 系别:计算机系 班级: 姓名: 学号: 网上订餐系统一 系统概述本系统在开发设计中,采用B/S(Browser/Server)结构,这种结构使得数据只有结果集合在浏览器中显示,数据的处理在服务器进行,用户不用安装客户端,而且由于通过服务器端统一管理数据,易于保证数据的一致性。数据库方面,推荐业界具有领导地位的关系数据库管理系统Microsoft SQL sever2000,使系统安全性能更高。同时采用当前正在流行的JSP(Java Server Pages)编程,用户界面更友好。在开发中选择了JSP+JavaBean+SQL2000的模式,实现了应用程序逻辑

2、和页面显示分离,界面设计更简单。JavaBean可重用的软件组件满足小型应用,同时使编程人员投入量精力便可重用组件,在简单的应用中可以充分考虑二需求分析网上订餐管理系统无论是在应用的深度还是广度都是一个逐步发展的过程。在开发一个局部系统时要充分考虑到局部系统和整个目标系统之间的相容性和完整性,以利于今后整个系统的建立。进货订单管理系统从总体上把握系统的设计,在具体的设计实现上我们围绕着三个方面的需求展开,即管理者、系统使用者、系统维护者。2.1性能需求分析该系统在性能功能上应达到如下需求: 操作简单、界面友好: 完全控件式的页面布局,使得菜品,资讯,座位等信息的录入工作更简便,许多选项包括餐厅

3、信息,桌位,包房信息等只需要点击鼠标就可以完成;另外,跟踪出现的提示信息也让用户随时清楚自己的操作情况。对常见的类似网站的管理的各个方面:基本信息录入、浏览、删除、修改、搜索等方面都大体实现,顾客对菜品的预定及支付方式; 即时可见:对客户预定餐饮信息的处理(包括录入、删除)将立即在主页的对应栏目显示出来,达到“即时发布、即时见效”的功能; 系统运行应该快速、稳定、高效和可靠; 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。2.2产品质量需求分析主要质量属性详细要求正确性按照需求正确执行任务,完成各个模块的相应要求。健壮性具有较高的容错能力和恢复能力。可靠性故障发生率每运行1000小时

4、低于3次性能,效率软件的输出结果更新周期应该与系统的信息更新周期相同。在网络情况良好的情况下,3秒内可响应用户请求。易用性易理解性:软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。安全性防止软件受到意外或蓄意的存取、使用、修改、毁坏或泄密的软件属性其数据应能集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也不应进行什么数据同步.可扩展性能方便的进行二次开发,满足对功能的扩充或提高并能提高相应的安全控制。兼容性不易与其他软件起冲突。 可移植性可方便移植到其他系统环境中正常运行。2.3 可行性分析随着经济的快速发展,B2C电子商务越来越受到人们的关注

5、。网上订餐类网站,已经如雨后春笋般的出现在了个大城市。特别在公司,企业内部,团体订餐已经成为了趋势。同时,随着全国人民的精神、物质和文化生活高度的提高,人们已经不在仅仅停留在吃饱的程度,不但要吃饱,还要吃好,而且口味也越来越挑刺,正因为如此网络订餐业务的出现,正迎合了这些人的口味,他们不但省去了自己做饭的麻烦,而且也能寻找和发现新的菜品,品尝不同风格的菜品,网络订餐业务在中国有着极大的发展空间以及良好的背景。而当代大学生,白领工作人士作为社会中的重要群体,他们对饮食的要求都在不断提高,饮食在他们生活中起着重要作用。因此,面向大学生和都市白领人士的网络订餐网站的设计有着良好的现实意义。2.4 总

6、体设计原则1、 开放性、可扩充性、可靠性原则开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品都符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开放系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。2、良好的用户操作界面用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。3、实用性原则任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。4、工作平台设计原则能适应不同的操作平台,不同的网络。三 总体设计3.1系统流程分析业务流

7、程分析1、 浏览与选择餐饮信息:顾客进入网站即刻自动提供购物车,不需身份确认就可以在网站上随意浏览,登录系统后则可挑选餐饮(可增加、删除、修改购物车上餐饮的类型),网站提供餐饮信息列表,最先添加的餐饮信息优先列表给顾客作为选购时的参考;2、 判断:顾客确定所购餐饮信息后,系统将判断该顾客是否注册,如果是,则可直接填写订单;否则,提示顾客登记注册;3、 提交订单:已选购的餐饮信息需填写订单细节。4、 注册:顾客可在公司的网站上注册后提交申请;5、 确认:后台管理将实时得到顾客的注册信息,通过电话及其他方式确认,当确认后,系统管理员可对该顾客提交的预定信息进行审核。6、送货与付款:网上的每一份订单

8、都将实时存入后台数据库,后台操作人员通过电话及其他方式确认,确认后将及时实施审核该订单:向顾客送货,货到付款,完成网上交易。顾客登录系统浏览菜品资讯获得购物车浏览餐饮信息选择餐饮信息管理员审核Y交易结束N3.1.2数据流程分析该系统数据流程比较简单,管理员可以添加餐厅信息(包括餐桌,包房等),餐饮信息(包括菜品名等信息),资讯信息等,然而这些信息顾客是可以浏览的,但是顾客没有权限对这些信息进行修改,这些信息对于顾客而言是单向的。对于预定信息,管理员可以查看及审核预定信息,顾客可以增删改预定信息,并将预定信息提交给管理员等待审核,因此预定信息对于顾客和管理员而言都是双向的。.1数据流图数据流图简

9、称DFD,是SA方法中用于表示系统逻辑模型的一种工具。它以图形的方式描述数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。系统的数据流图如下所示: 系统DFD图3.2系统数据库设计 数据库E-R图Users(用户表)用户名密码权限orders(订单表)订餐人时间备注电话应收款地址发布Seat(订座表)电话人数订餐人发布Shop(订单菜单表)菜名数量单价所属st(订座菜单表)类别名图片单价菜名数量单价菜名点菜category (类别表)Food (菜单表)数据库表设计 系统关键数据表如下:其关系见E-R图1用户表(users):用户登录是需要用户名和密码,所

10、以用户数据表中必须包含用户名(uname)、密码(upass)两个信息,还有些其他的用户信息,比如power指的是用户权限(管理员还是非管理员)。从功能上数据库表设计如表3.1。表 3.1 用户表列名数据类型长度uidint4unamevarchar50upassvarchar50powerint42菜品信息表(food):菜品信息表主要描述菜品信息,如:菜品ID号(foodid),此ID号为系统自动生成;菜品名称(fname);菜品价格(price);所属分类ID(categoryId);图片信息(images)。商品信息表详细描述如表3.2表3.2菜品信息表列名数据类型长度foodIdin

11、t4pricemoney8categoryId int4imagesvarchar503订座菜单表(st):客户订餐的一些相关信息,如stId指的订餐ID号,此ID和是系统自动生成的;菜品名称(fname);订购数量(num);价格(price);座位编号(seatId)等,具体描述表3.3表3.3供应商表列名数据类型长度stIdint4fnamevarchar50numint4pricemoney8seatIdint4fIdint44订单表(orders): 订单表有一下描述信息。订单ID(ordersId),订购人姓名(name),地址(address),联系电话(tel),价格(pric

12、e),备注信息(context)等,具体描述如表3.4所示:表3.4订单表列名数据类型长度ordersIdint4namevarchar50addressvarchar50telvarchar50pricenumeric9uidint4contexttext165订单菜单表(Shop)具体描述如表3.5所示:表3.5订单菜单表列名数据类型长度fIdint4fnamevarchar50numint4priceMoney8uidint4sidint46订座表(Seat)具体描述如表3.6所示:表3.6订座表列名数据类型长度seatIdint4uidint50telvarchar50riqi var

13、char50numint4namevarchar4xiaoshivarchar503.3系统结构设计网上订餐系统的模型结构如下图所示:客户端浏览器客户端浏览器客户端浏览器Web层业务层数据访问层系统配置数据库从前面的需求分析中得知,可以将功能分为前台和后台两类,因此模块也分为两大类:前台模块和后台模块。 下图为系统模块总图:网上订餐管理系统前台模块后台模块注册登录菜品查询订单查询用户权限管理菜品管理订餐管理订座管理用户订餐用户订座用户管理系统模块总图3.4 核心算法实现分页显示算法inti;一页显示的记录数=10;取得待显示页码PageSet : strPage=page;if(strPage

14、=null)/page参数为空时,此时显示第一页数据待显示页码=1;else 待显示页码=Integer.parseInt(strPage); /将字符串转换成整型if(待显示页码总页数)待显示页码=总页数;/分页情况分类/选择向上翻if(待显示页码1)选择向上翻一页传递参数pageda=待显示页码-1 goto PageSet;/选择向下翻if(待显示页码0)将记录指针定位到结果集的第一条记录上(待显示页码-1)*一页显示的记录数+1);i=0;while(i一页显示的记录数&数据库指针不在结果集尾部)输出要分页显示的数据库中的内容;将数据库指针移动到当前行的下一行;i+;3.5 数据库编程

15、基础及语法Java 数据库连接 (JDBC) 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口, 可以为多种关系数据库提供统一访问。JDBC(Java DataBase Connection,Java 数据库连接) 也提供一种基准,据此可以构建更高级的工具和接口。 目前的 JDK(Java Development Kit,Java 开发工具包)软件捆绑包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,开放式数据库连接)桥。你可以从http:/java。sun。com/products/JDK/Curr

16、entRelease 找到最新版。1) 安装驱动程序。装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);如果是JDBC Driver装载: Class.forName(jdbc.driver_class_name);各种数据库驱动见附录。2) 建立连接第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做法:3) Connection con = DriverManager.getConnection(url, myLogi

17、n , myPassword );这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 JDBC-ODBC 桥, JDBC URL 将以 jdbc:odbc 开始:余下 URL 通常是你的数据源名字或数据库系统。因此,假设你正在使用 ODBC 存取一个叫 webmail 的 ODBC 数据源,你的 JDBC URL 是 jdbc:odbc:webmail 。把 sa 及空格替换为你登陆 DBMS 的用户名及口令。如果你登陆数据库系统的用户名为 webmail 口令为空,只需下面的 2 行代码就可以建立一个连接: String url = jdbc:odbc:webmail;Connec

18、tion con = DriverManager.getConnection(url,webmail,);如果你使用的是第三方开发了的 JDBC驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驱动程序开发者注册了 acme 作为 subprotocol, JDBC URL 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 JDBC URL 的格式。JDBC URL 最后一部分提供了定位数据库的信息。如果配置了连接池则要使用下面几行代码就可以建立一个连接:Context ctx;DataSourc

19、e ds;ctx = new InitialContext();ds = (DataSource)ctx.lookup(java:comp/env/jdbc/webmail);connection 接口是JSP数据库编程使用多的接口之一,在connection接口中经常使用到一个方法close();要注意在连接用完后必须关闭,否则连接会继续保持,直到超时。4) 创建 JDBC Statements 对象 Statement 对象用于把 SQL 语句发送到数据库 。你只须简单地创建一个 Statement 对象并且然后执行它,使用适当的方法执行你发送的 SQL 语句。对 SELECT 语句来说,

20、可以使用 executeQuery。要创建或修改表的语句,使用的方法是 executeUpdate。需要一个活跃的连接的来创建 Statement 对象的实例。在下面的例子中,使用的 Connection 对象 con 创建 Statement 对象 stmt:Statement stmt = con.createStatement(int resultSetType,int resultSetConcurrency);ResultSet rs=Stmt.executeUpdate(SQL);SQL为数据库查询语句Con.createStatement()方法包含两参数:resultSetTy

21、pe和resultSetConcurrency1. resultSetType参数:用来设定ResultSet对象中的光标是否能够上下自由移动,它的值只能有3种,TYPE_FORWARD_ONLY、TYPE_SCROLL_SENSITIVE或TYPE_SCROLL_INSENSITEVE。若设为第一种,表示ResultSet对象中的光标能够随心所欲的上下移动,不过他们两者最大的差别在于:当ResultSet对象中的值有变时,TYPE_SCROLL_SENSITIVE能够取得改变后的值,而TYPE_SCROLL_INSENSITIVE不能。2. resultSetConcurrency参数:主要

22、设定ResultSet对象是只读(read-only)还是可以改变的(updatable),他的值有两种,CONCUR_READ_ONLY和CONCUR_UPDATABLE。若设为CONCUR_READ_ONLY,则ResultSet对象和JDBC 1.0的功能一样;若为CONCUR_UPDATABLE,那么表示ResultSet对象可以直接执行数据库的新增、修改和移除功能。 在statement执行SQL语句是,有时会返回ResultSet结果集。该结果集往往包含的是查询的记录集。通过ResultSet.next()方法把当前的指针向下移动一位,随着每次调用next导致指针向下移动,按照从上

23、到下的次序获取ResultSe行。Java.sql.ResultSet提供了检索不同的类型字段,其常用的的方法如下:getString():获得数据库里的varchar、char数据类型。getFloat():获得数据库里的Float数据类型。getDouble():获得数据库里的Double Precision数据类型。getBoolean():获得数据库里Boolean数据类型。getObject():该方法用于在SQL中无对应类型,可以获得系列化对象。getClob():获得数据库里的Clob(字符串大型对象)数据类型的对象。getBolb():获得数据库里的Blob(二进制大型对象)数

24、据类型的对象。3.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 Co

25、nnection getCon()throws ExceptionContext ctx;DataSource ds;tryctx = new InitialContext();ds = (DataSource)ctx.lookup(java:comp/env/jdbc/webmail);System.Err.println();System.err.println(数据连接+(+error);return ds.getConnection();catch(SQLException e)System.out.print(e);throw e;catch(NamingException e)Sy

26、stem.out.print(e);throw e;public Statement getStmtread()trycon=getCon();java.sql.ResultSet.CONCUR_READ_ONLY);catch(Exception e)System.out.println(getStmtread);System.out.println(e.getMessage();return stmt;结 论这次实训中,积累了数据库编程和网站开发的基本经验和一些基本技巧。对大型系统开发有了实质性、操作性的认识,同时对运用JSP技术有了很大的提高,对以前学到的书本知识也是个很好的巩固,同时这次设计让我意识到自己的许多的不足,锻炼了自己独立发现问题,思考问题,解决问题的能力,也掌握了一些编程的思想和技巧,使自己的编程能力也有了很大的提高。本文讲述了Java/JSP/Struts在WEB应用的一些基本知识,并通过网上订餐的程序对JSP的运用进行了深化,从本文中可看出JSP与Struts框架结合的模式,在电子商务上应用十分灵活,不过要真正掌握好它们却并不是一件容易的事情,在实际应用的WEB开发中,还有很多关于安全方面的问题需要考虑。在这里要感谢我的同学和张老师,她在我论文及设计的定题以及修改上给予了我很多的支持和帮助,再次感谢。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!