网上售书系统_第1页
网上售书系统_第2页
网上售书系统_第3页
网上售书系统_第4页
网上售书系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大 型 软 件 项 目 实 训 报 告题 目: 网 上 购 书 系 统 指导教师: 姓 名: 班 级: 学 号: 目 录1序言21.1选题背景21.2选题目的及意义21.3 选题完成情况22项目需求分析32.1项目功能需求32.2 项目性能需求62.3 其他需求73项目概要设计73.1 系统功能结构设计73.2 系统整体架构设计93.3 业务流程图103.4 数据库结构设计114.详细设计164.1模块1描述165实训总结215.1 技术总结21技术总结215.2 思想总结291序言1.1选题背景近些年来随着计算机的普及以及网络的服务优化,越来越多的人在使用网上购物,网上购物不仅节省店铺成本而

2、且可以削弱地域的限制使之成为主流的购物方向。一些以前很难在商场找到的稀有商品也可轻易买到,而且节省大量的购物时间。1.2选题目的及意义(1)希望借此次课程设计的机会巩固本学期所学到的知识,锻炼自己的专业技能,提高自己的软件开发能力。(2)借此次进行课程设计的同时掌握软件工程的基础知识和理论,分析大型软件开发过程中出现的问题,了解软件开发生命周期中常用的技术,掌握软件开发过程的结构化方法和面向对象方法,学会运用面向对象的软件工程方法进行软件需求分析、系统设计、实现和测试,并通过课程实践,实际运用软件工程的思想和技术,掌握软件项目管理和团队开发的工作方法。1.3 选题完成情况由于时间比较短,使用计

3、算机不方便及对于网络编程不熟悉,本网上购物系统并没有提供数据的远程访问功能。对信息的保护手段仅限于设置用户级别,以及提供数据文件的备份,比较简单,安全性能有待进一步完善。2项目需求分析2.1项目功能需求所有设计网络书店时,最重要的就是完成“用户功能”。其次,对众多图书、订单、网站访问量等信息的网络管理,对于网站经营者的经营效率的意义,也是不言而喻的,这些可以统称为“管理功能”。于是网站可以简单的被划分为两大模块:“用户功能”和“管理功能”。如图2-1所示。网络书店管理功能用户功能 图2-1 网络书店的两大模块2.1.1用户功能1.网站的导航功能。网站导航可以直接使用普通的导航条实现,使得用户可

4、以便捷地在网站内部跳转。2.图书的分类功能。需要根据网站的定位,按照读者的喜好、方便程度来对图书进行分类。3.图书的搜索功能。网站可以提供给用户一个简单、灵活的图书搜索方式。4.网站图书介绍。网站可以提供自己的介绍信息,发布促销新闻等。5.用户注册及密码处理。这是最基本的功能,给用户提供一个平台。6.用户添加图书收藏夹和购物车功能。用户浏览图书信息的最终行为,是把喜好的图书放入自己的收藏夹,或者直接拖入购物车购买图书。7.用户信息的自我管理。允许用户对基本信息的修改,用户可以查阅自己的购物历史、每次购物的详情等等信息。2.1.2管理功能1新书登记。将新书的各种信息:书名、价格、出版社、作者、封

5、面等录入到数据库中,是网站管理中一项最基本的工作。2.图书种类添加。一般来说,随着网站业务的增加,会增加自己销售的图书,所以,在网站管理中,应该运用添加新的图书种类。3.用户管理。网站可以对用户进行删除,查看用户信息等功能。4.订单管理。管理者每天可以清晰的查询有多少订单生成、每个订单的详情等信息,并了解订单的处理情况。5.网站新闻管理。管理者需要从管理界面录入到数据库中,就可以发布网站新闻了商品查询流程图输入名称查询图书类别表查询图书信息表图书是否存在?是否提示图书不存在信息是否存在?否提示信息不存在是显示图书信息开始结束图4-1图书查询流程图购物车流程图输入变动数量更新购物车图书是否存在?

6、是否保留原有图书并变动新的图书开始结束图4-2购物车更新流程图2.2.3登陆流程图输入用户名和密码用户名是否存在?是否提示用户不存在检验用户名密码是否正确?进入主界面是检验密码否提示密码错误开始结束 图4-3登录流程图2.2 项目性能需求1.响应时间2.CPU占用率3.内存使用率4.查询时应保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准率。2.3 其他需求2.3.1 可靠性和可用性需求可靠性需求定量地指定系统的可靠性,本系统在一天内不能出现2次以上故障。可用性与可靠性密切相关,它量化了用户可以使用系统的程度。在任何时候主机或备份机上的网络书店系统应该至少有一个是可用的,

7、而且在一天内在任何一台计算机上该系统不可用的时间不能超过总时间的2%。2.3.2出错处理需求对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。3项目概要设计3.1 系统功能结构设计3.1.1 商品添加商品添加模块调用:管理员身份检验模块用户身份检验模块用户信息输入模块数据库操作模块商品录入模块用户身份验证模块商品信息输入模块商品添加模块数据库操作模块图3.1.1 商品添加3.1.2 修改信息修改模块调用:数据库查询模块数据库操作模块用户身份验证模块商品信息修改模块商品子分类信息修改模块用户信息修改模块修改模块管理员身份验证模块商品信息修改模块数据库查询模块数据库操作模块添加修

8、改信息模块修改模块子类信息修改模块图3.1.2 修改信息3.1.4 列表信息数据库查询模块数据统计模块结果显示模块统计模块管理员身份验证模块数据统计模块数据库查询模块结果显示模块图3.1.4 统计信息3.2 系统整体架构设计3.2.1 总体结构主模块调用:商品添加模块网上购物系统管理系统主模块商品添加模块修改模块添加模块统计模块系统管理模块图3.2.1 总体结构3.3 业务流程图付款通知图书选购管理员购书订单用户图书信息到款通知财务员付款订单处理订单统计表图书发货相关人员图书发货表统计报表综合统计 图3-3网络书店业务流程图3.4 数据库结构设计建立系统数据模型的主要工具则是实体关联图,即ER

9、图。如果系统是一个复杂的大型系统,可考虑如下步骤实现:(1) 选择局部应用。在多层的数据流图中选择一个适当层次的数据流图,在该部分每一个部分对应一个局部应用,又有与共的数据流图只能反映系统的概貌,而中层的数据流图能较好的反映系统局部应用的子系统组成,故通常选择中层数据流图作为设计分ER图的依据。(2) 逐一设计分ER图。根据上述所选择的局部应用逐一设计分ER图。(3) 合并ER图。生初步ER图。此时,可存在分ER图间的冲突,如属性冲突、命名冲突、结构冲突等现象,此时,应根据需求分析的语义定义对实体联系的类型进行综合或调整。(4) 给出系统的综合ER图。为了进一步说明问题,系统地ER图作如下规范

10、:(1) ER图的图形符号如下:矩形。表示实体集。椭圆。表示属性。菱形。表示联系集。线段。将属性连接到实体集或将实体集连接到联系集。双椭圆。表示多值属性。虚椭圆。表示派生属性。(2) 标明映射的基数映射的基数即两个实体集之间联系的类型。在ER图中除了上述的图形符号外,还应当给出现实世界联系的类型,对于联系的类型,约束如下:对于实体集A和B之间的二元联系R来说,映射的基数必然是以下情况之一: 一对一。A中的一个实体至多同B中的一个实体相联系。 一对多。A中的一实体可以同B中的任意数目 的实体相联系,而B中的一个实体至多同A中的一个实体相联系, 多对一。A中的一个实体可以同B 中任意数目实体相联系

11、,B中的一个实体也可以同A中任意数目的实体相联系,(3) 应注意弱实体集1)有些实体的属性都不足以生成主码,这样的实体集称弱实体集。与这些相对,有主码的实体集称作强实体集。2)虽然弱实体集没有主码,仍需要用某种方法来区分该实体中依赖于某个特定强实体的所有实体。弱实体集分辨符是使得我们能进行这种区分的属性集合。3)弱实体集的主码由该弱实体集所在依赖的强实体集的主码和该弱实体集的分辨符共同组成。4)弱实体集可以作为拥有者参与到另一个弱实体集的标识性联系中。尽管一个弱实体集总是存在依赖于一个强实体集,但是一个存在依赖并不导致一弱实体集从属实体集也可以有主码。5)在某些情况下,数据库设计者会选择用拥有

12、者实体集的多值、复合属性来表示弱实体集。如果弱实体集只参与标识性联系,而且其属性不多,那在建模时将其表述为一个属性更恰当。相反地,如果弱实体集参与到标识性联系中,或者其属性较多,则建议将其表述为弱实体集更恰当。本系统的前、后台局部E-R图如下所示:订单细则组成订单填写N 1N1N1参照用户处理 11图书业务员 图3-4 图书销售系统E-R图网络书店系统的相关表信息:表3-1用户信息表USER列标示数据类型长度是否允许为空ID(标识)USERNAME(用户名,主键)PASSWORD(密码)IDNAME(证件名称)IDNUMBER(证件号)EMAIL(电子邮件)TELEPHONE(联系电话)ADD

13、RESS(地址)POSTCODE(邮编)TOTALCONSUMPTION(总消费)intVarcharVarcharVarcharVarcharVarcharVarcharVarcharVarcharVarchar460606020100201002040不允许为空不允许为空不允许为空允许为空允许为空不允许为空不允许为空允许为空不允许为空允许为空不允许为空表3-2图书类型表BOOKTYPE列标示数据类型长度是否允许为空SUPERBOOKTYPE(图书大类别)BOOKTYPE(图书类型)TYPENAME(类型名称)DESCRIPTION(类型描述)intVarcharVarcharint4806

14、04不允许为空不允许为空不允许为空不允许为空表3-3图书信息表BOOKINFO列标示数据类型长度是否允许为空ID(标识,主键)BOOKNAME(书名)PUBLISHINGHOUSE(出版社)CLASSINFO(分类信息)AUTHOR(作者)PUBLISHDATE(出版日期)PRICE(价格)ABSTRACT(摘要)SOLDNUMBER(销售量)STATUS(状态-是否缺货)SPECIALPRICE(是否特价)DISCOUNT(折扣)intVarcharVarcharintVarcharVarcharVarchartextintintintint480604404040164444不允许为空不允

15、许为空不允许为空不允许为空不允许为空不允许为空不允许为空不允许为空允许为空允许为空允许为空允许为空允许为空表3-4用户收藏夹FAVORITEBOOK列标示数据类型长度是否允许为空USERID(用户ID)BOOKID(图书ID)intint44不允许为空不允许为空表3-5缺书登记表LACKBOOKREGISTER列标示数据类型长度是否允许为空ID(标识,主键)USERNAME(用户名)BOOKNAME(书名)PUBLISHINGHOUSE(出版社)AUTHOR(作者)REGISTERDATE(提交日期)intVarcharVarcharVarcharVarcharVarchar420806020

16、40不允许为空不允许为空不允许为空允许为空允许为空不允许为空表3-6图书订单详情表ORDERBOOKLIST列标示数据类型长度是否允许为空USERID(用户ID)ORDERID(订单ID)BOOKID(图书ID)QUANTITY(订购数量)DISCOUNTPRICE(订购时折扣)intintintintVarchar444440不允许为空不允许为空不允许为空不允许为空不允许为空表3-7购物车表格SHOPPING列标示数据类型长度是否允许为空USERID(用户ID)BOOKID(图书ID)QUANTITY(图书数量)intintint444不允许为空不允许为空不允许为空表3-8用户订单详情ORD

17、ERUSERDETAIL列标示数据类型长度是否允许为空ID(标识,主键)USERID(用户ID)CONTACTNAME(联系人姓名)ADDRESS(联系人地址)EMAIL(联系人电子邮件)POSTCODE(联系人邮编)TELEPHONE(联系人电话)SENDMETHOD(送货方式)PAYMETHOD(支付方式)ORDERDATE(订购日期)ORDERSTATUS(订单状态)TOTALDISCOUNTPRICE(折扣后价格)intintVarcharVarcharVarcharVarcharVarcharintintVarcharintVarchar44601004020204440440不允许

18、为空不允许为空不允许为空不允许为空不允许为空不允许为空不允许为空允许为空不允许为空不允许为空不允许为空不允许为空允许为空4.详细设计4.1模块1描述4.1.1 功能描述(1) 主流程1)建立与数据库的连接2)获取系统设置3)显示对话框(即主界面)4)等待用户输入:(2) 商品添加流程1)要求输入商品信息2)返回成功或失败信息3)结束商品流程(3) 信息修改流程1)要求选择所要修改的数据库如为商品信息:修改商品信息如为添加信息:修改添加名单如为子类信息:修改子类信息2)等待用户输入3)返回成功或失败信息4)结束修改流程(4)用户添加流程1)等待用户输入密码和账号2)返回成功或失败信息3)结束录取

19、流程(5) 统计流程1)等待用户输入2)如为开始统计:读入统计条件输出统计结果如为结束统计:结束统计流程(6) 系统管理1)身份验证2)用户操作权限检验3)根据操作权限级别显示系统管理对话框4)等待用户选择操作5)结束系统管理流程 性能描述(1) 数据精确度需求查询时应保证查全率,所有在相应域中包含查询关键字的记录都应能查到,同时保证查准率。(2) 时间特性一般操作的响应时间应在12秒内。(3) 适应性满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。接口(或关键函数)设计(1) 用户接口使用基于对话框的JSP,用户通过鼠标的点击和键盘的输入完成操作,编辑框用于用户的输入

20、。(2) 外部接口主模块:输入:操作系统传递至的各种消息以及用户的输入数据输出:用户界面显示上层模块:无下层模块:商品添加模块、修改模块、录取模块、统计模块、系统管理模块考生录入模块:输入:商品信息输入输出:商品信息插入到数据库上层模块:主模块下层模块:用户身份检验模块、商品信息输入模块修改模块:输入:用户选择输出:用户界面显示上层模块:主模块下层模块:用户身份检验模块、商品信息修改模块、添加生、商品信息修改模块、子分类信息修改模块录取模块:输入:添加商品信息输入输出:商品信息插入到数据库上层模块:主模块下层模块:用户身份检验模块、添加输入模块统计模块:输入:用户选择统计方式输出:用户界面显示

21、上层模块:主模块下层模块:用户身份检验模块、数据统计模块系统管理模块:输入:用户选择管理方式输出:用户界面显示上层模块:主模块下层模块:用户份检验模块、数据备份模块、数据恢复模块、系统管理模块、下层模块:无商品信息输入模块:输入:商品信息输出:商品信息上层模块:商品添加模块下层模块:数据库操作模块用户信息检验模块:输入:用户信息输出:成功信息或错误信息上层模块:用户信息检验模块下层模块:无数据库操作模块:输入:数据库操作信息输出:成功信息或错误信息上层模块:商品信息输入模块、商品信息修改模块、商品信息修改模块,子分类修改模块、录取输入模块下层模块:无商品信息修改模块:输入:商品信息输出:成功信

22、息或错误信息上层模块:修改模块下层模块:数据库查询模块、数据库操作模块添加商品修改模块:输入:添加商品信息输出:成功信息或错误信息上层模块:修改模块下层模块:数据库查询模块、数据库操作模块子分类信息修改模块:输入:专业信息输出:成功信息或错误信息上层模块:修改模块下层模块:数据库查询模块、数据库操作模块数据库查询模块:输入:数据库查询方式以及关键字信息输出:数据库查询结果上层模块:商品信息输入模块,商品信息修改模块、添加商品信息修改模块、子分类修改模块、数据统计模块下层模块:无数据统计模块:输入:数据库统计方式以及关键字信息输出:数据库统计结果上层模块:统计模块下层模块:数据库查询模块、结果显

23、示模块结果显示模块:输入:统计或查询结果输出:统计或查询结果显示在屏幕上上层模块:统计模块下层模块:无数据备份模块:输入:数据备份指令输出:成功或失败信息上层模块:系统管理模块下层模块:无数据恢复模块:输入:数据备份指令及备份文件信息输出:成功或失败信息上层模块:系统管理模块下层模块:无系统设置模块:输入:系统设置操作信息输出:成功或失败信息上层模块:系统管理模块下层模块:无更改口令模块:输入:新旧口令输出:成功或失败信息上层模块:系统管理模块下层模块:无5实训总结5.1 技术总结技术总结我自己在这次实训总结了三个部分。第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaM

24、al和Servlet.第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库.第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式. 一.Servlet知识及常见错误和规律.1.桌面运行程序与WEB应用程序在过程实质是一样的-基于请求与响应的过程.2.http协议(超文本传输协议) 1).无状态:多次请求信息之间无联系. 2).用于internet发送请求和响应消息 3).使用端口接收和发送消息,默认为80端口.端口:为内存缓冲区(多线程接收数据)windows: 0-6553

25、5端口 0-4096为系统端口3.什么是Servlet? Server let服务器端小程序. 用来处理客户端发送的请求,并由服务器响应给客户端的java编写的程序. Servlet只在服务器运行4.Servlet详解:import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;public class MyServlet extends HttpServlet public void doGet(HttpServletRequest request,HttpServletResp

26、onse response) throws ServletException,IOException response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); response.sendRedirect("Login.jsp"); /重定向方法 request.getParameter(""); /读取客户端数据 / /以下方法为转发,不同于重定向的是:转发时数据不丢失. ServletC

27、ontext context=this.getServletContext(); RequestDispatcher dispatcher=context.getRequestDispatcher("/welcome.jsp"); dispatcher.forward(request,response); ./以下方法为包含(用得相对较少) dispatcher.include(request,response); public void doPost(HttpServletRequest request,HttpServletResponse response) thro

28、ws ServletException,IOException doGet(request,response); (2).当需要向Servlet传递参数的时候,Src="Servlet?name=' ' "5.执行servlet时,发生下载提示:(1).可能性一:text/html;charset=GBK中间分号写成逗号.(2).可能性二:XML中配置信息出错.(3).可能性三:如定义全局变量时,例:CONTENT_TYPED在以后所用中放在双引号之中.(4).可能性四:当上面的text/html,charset中写错字符的时候,也会提示下载.6执行serv

29、let时,发生404错误:(1).多为xml中配置出错.(2).可能在servlet通信方法中url出错.(3).表单提交时:action路径.(4).比较弱智的错误就是标记写错,请仔细检查.7.执行servlet时,发生403错误:(1).tomcat下站点里发生错误.8.执行servlet时,发生405错误:(1).servlet中没有post提交方法时.95.执行servlet时,发生500错误:(1).多数为servlet程序代码中发生异常错误.10.执行时,取出的数据为null.就要根据实际情况对应错误提示去找.11.执行jsp页时,发生500错误提示. 多数为jsp页面在转译过程中

30、发生编译错误! 甚是严重错误,可以按提示回头去找.二.XML配置<!-config中的配置信息,当中配置需要在servlet中的xml中-><servlet> <init-param> <param-name>sess</param-name> <param-class>com.serv<param-class> </init-param> <servlet-name>Myservlet</servlet-name> <servlet-class>com.Myse

31、rvetl</servlet-class></servlet><!-此为对Myservlet进行映射-><servlet-mapping> <servlet-name>Myservlet</servlet-name> <servlet-class>/url</servlet-class><servlet-mapping><!-context中配置信息-><context-param> <param-name>ses</param-name>

32、 <param-class>com.ser</param-class></context-param>注意:配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问三.=会话跟踪技术总结=用户授权.隐藏表单域URL重写Cookie使用-1.会话:是同一客户端和服务器之间在同一段时间的多次请求和响应.2.Session使用(重点) HttpSession session=request.getSession(); session.setAttribute("name",Object); /附值 sessio

33、n.getAttribute(); /取值 session.removeAttributer();3.Cookie(类) 1).Cookie是什么? cookie是一段字符串,由HTTP支持,在客户端可以永久保存.写入(硬盘). 每次请求,响应中都会为cookie留有空间. 2).用法: Cookie cookie=new Cookie("name",cookie); /必须指定cookie的键与值,且必须为字符串. response.addcookie(cookie); cookie.setMaxAge(3600); /以秒为单位. /读取客户端发送过来的cookie,返

34、回值类型为: cookie数组 request.getCookies(); /循环读取键与值. 使用过程:(1).生成cookie, new cookie("","") (2).设置生存周期 >0,SetMaxAge(秒). (3).发送到客户端:response.addCookie(cookie);小常识:(1).一个网站最多向一个客户端写20个cookie. (2).一个客户端最多接收300个cookie.4.Session与Cookie这间的关系:session的ID作为Cookie的值在客户端与服务器之间进行传递.-四.构建实体Bean的原

35、则:/* * 1.bean类为公有 * 2.类成员为私有 * 3.必有一个无参构造 * 4.有set()和get()方法 * 5.方法命名为setXxx()或getXxx()方法*/五.MVC实现数据封装此数据封装标准按MVC总结.所需内容: 1.Servlet 2.JavaBean 3.OperBean(DBconnection) 4.Jsp 由Servlet提取前台数据,然后将数据封装于JavaBean中,再实例化OperBean,调用OperBean中方法,将JavaBean对象以参数的形式传过去,并进行一系列的操作后,返回数据存入ArrayList中或者其它集合内,并将集合对象封装Session对象中,便于在前台取值.Servlet控制: . Arraylist lis=new ArrayList(); String name=request.getParameter("username"); Jav

温馨提示

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

评论

0/150

提交评论