项目报告项目名称:网上书店系统需求说明:项目目标:“网上书店系统”主要针对部分消费者可足不出户,就能达到了解所出售书籍的具体情况等,藏书量比较多,可挑选性强,购书者的数量以及来源都没有限制。通过电脑终端的自动化销售,可大大缩短购书时间,提高效率。此网上书店对于货物的付款采用货到付款的方式,对于质量差的产品可以当场进行退货,从而最大的保证了消费者的利益。运行环境:Window98以上。占用内存20MB。所需硬盘大小100M。条件与限制:“网上书店系统”基于计算机,因此需要对计算机方面的知识熟悉才能管理,对计算机的基本操作要熟悉等。网上信息复杂,木马病毒繁多,本系统对信息,以及消费者的消费需要有一系列的一定的安全措施,比如安装防毒防木马软件方面的工作,以及文件的备份等,安全性能有待进一步加强,进一步的提高。概要设计:系统开发环境:目前此系统基于MicrosoftWindows7操作系统和MicrosoftSQLServer2005数据库平台。系统采用Microsoft.NetFramework2.0框架,利用开发软件MicrosoftVisualStutio2005进行开发。系统软件架构:系统采用了B/S架构以及三层架构模式,同时适用于Internet。浏览器为第一层,即为系统的开发的UI应用界面;逻辑层为中间层,作为连接数据层和应用层之间的桥梁;数据层位于系统的最底层,负责数据库的各种操作;实体层用于整个系统中有关数据库中数据表中各个字段数据的设置和获取。三层架构使整个系统的开发代码的格式统一,易于维护和修改,同时使系统代码的安全性得到了一定的保证。此架构的软件系统无需用户安装客户端软件,只需要最基本的浏览器即可,便于软件的分发和维护升级,适应了众多用户客户端分散环境下的运行和维护需求。数据库设计:数据库设计:约定:所有数据表第一个字段都是系统内部使用主键列,不可空,名称为:id,确保不把此字段暴露给最终用户。除特别说明外,所有字符串字段都采用varchar(50)类型,(无论汉字还是英文,都算一个字符)。除特别说明外,所有小数的字段都采用decimal(18,0)的形式表达。除特别说明外,所有日期格式都采用date格式,无时间值。除特别说明外,所有整形都采用int格式。除特别说明外,所有字段默认都设置为null。数据字典:用户信息表:userID用户主键,唯一确定用户信息;userName为用户名;userPwd为用户密码;userType为用户类型,0为消费者,1为商家,userType默认为0;gender为用户性别;trueName为用户真实姓名;address用户地址;telephone用户电话;PwdQuestion用户密保问题;PwdAnsweruser用户密保问题答案。图书信息表:bookID图书主键,唯一确定图书信息;typeID为图书类型主键,确定图书类型;bookName为图书名称;bookAuthor为图书作者;bookPrice为图书单价;publisher为图书出版社;publishDate为图书出版日期;bookImage图书图像。类型信息表:typeID类型主键,唯一确定类型信息;typeName为类型名称;fatherID为类型上一层的类型ID,确定当前类型的上一层类型。购物车信息表:userID用户ID,bookID图书ID,status购物信息的状态,三者组成了该表的主键,status为0表示没有下订单,status为1表示已经下订单,statue默认为0;quanlity为购买图书数量;soldPrice为购买图书的单价;paysum为消费正总的消费数目。订单信息表:orderID订单主键,唯一确定订单信息;userID为用户ID,确定该订单由谁生成;orderTime为下订单时间;orderSum为此订单总价;payment为支付方式(目前只有货到付款);buyerName消为费者名字;buyerTel为消费者手机号码;buyerAddress为消费者详细地址,商家送货的根据;buyerCode消费者邮编(可不填写);status为订单的状态,status为0表示没有经过商家确认,status为1表示商家已经确认,等待发货,statue默认为0。模块说明:用户登录模块:此模块包括已注册用户登录,新用户注册以及已注册用户由于忘记密码而找回密码,以及已注册用户修改密码的功能。用户登录界面用户更改密码界面用户注册界面用户选书模块:此模块包括已注册用户消费者根据自己的需要寻找系统中存在的图书,并且进行下订单操作,以及对订单的查询,增加,修改,删除等基本功能。用户查看图书,选书界面查看购物车界面下订单界面商家确认订单模块:此模块包括商家对已注册用户的未确认订单以及已确认订单的查询功能,并且对未确认订单进行确认以及对不合格订单的删除丢弃操作。商家查看订单,确认合格订单界面商家查看删除修改图书信息界面商家增加图书界面关键技术分析:应用技术:本系统中运用了基本的.NETC#编程技术,前台客户端控件的验证应用了JavaScript技术,排版主要用DIV+CSS技术,数据库中应用了存储过程技术。存储过程:sp_SelectBookInfo主要是为了对于图书不同条件的查询而设计,例如种类或者图书ID。技术分析:为了尽量提高系统的安全性,采用三层架构,对数据库操作程序代码进行封装。;为了减少服务器的工作量,也为了减小服务器数据库的压力,非必要的验证尽量放到前台去验证,比如某些必填项目或是某些数据格式等等;一定要注意编译错误和逻辑错误,尽量避免报“黄页”错误,提高系统安全性;排版上使用方便快捷的DIV+CSS技术。编程技巧的总结:良好的编程习惯是很重要的。首先,在编程前要从整上进行把握和组织,是代码统一规范,便于管理;然后,在编程中尽量不使用怪癖的语句算法,注意使用统一的命名规则对代码进行命名,注意代码排版;最后,一定要会使用、经常使用注释!参考文献:数据库系统概论王珊、萨师煊高等教育出版社数据库设计及其应用程序开发周汉平清华大学出版社ASP.NET2.0Web数据库开发教程宫继兵、孙涛、王颖机械工业出版社VisualC#2005程序设计教程JuliaCaseBradley、AnitaC.Millspaugh清华大学出版社未完成功能说明:遗忘的功能:系统最基本的注销功能忘记做了。后来突然想起来加上去的。未达到的要求:我们是两人一组,没有做到至少16张页面。我们已经很尽力的去增加页面了,虽然还能添加页面,是为每种分类的书籍的查询结果做一张页面,但是再这样就破坏了了我们整体的系统的协调性,将会浪费许多不必要的资源。未完成的功能:订单中图书数量的修改。原因:有于技术有限,这个看似很小的功能的没能完成。当然时间上和精力上的紧迫也造成了此次后果。望老师见谅。为解决的问题:汉字会出现乱码问题,找到了编码冲突的的原因,但是没找到解决办法。总结经验教训:首先在开始项目之时,必须先要了解整个系统的功能需求,确定方向,对真个系统由统筹的规划;其次,项目代码程序编程阶段队友之间分工以及该怎样配合一定要明确,才不会导致盲目的编写过多的费程序,尽量避免编写费代码造成的时间上和精力上的损失,劳民伤财的事情不可做,尽最大的努力避免此种意外的发生。对大作业的自评:此次大作业,总的来说自我感觉还不错,但是不敢胆大妄为,自知水平的高低,所以自评应该得B。