团购系统开发设计文档.doc_第1页
团购系统开发设计文档.doc_第2页
团购系统开发设计文档.doc_第3页
团购系统开发设计文档.doc_第4页
团购系统开发设计文档.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

团购系统开发设计文档目录摘 要1目录2第一章 引言31.1 团购网简介31.2 使用工具说明31.3 本人所做工作31.4 基础知识介绍41.5 系统解决方案9第二章 系统分析102.1 需求分析102.2 功能需求102.3 性能需求112.4 用例分析11第三章 数据库设计163.1 ER图163.2表结构19第四章 概要设计21第五章 详细设计25第六章部分关键程序源代码33第七章系统测试与评价367.1 系统测试367.2 系统评价36第八章系统使用说明37结束语37致 谢40参考文献41第一章 引言1.1 团购网简介随着现代信息技术的发展网上购物是人们生活的一部分了。由于充分利用和结合了现代最新的信息技术,网上购物具有传统的购物无法比拟的一些优势,如经营成本低,受地域限制和时间限制少,市场扩张潜力极大等等。目前Internet上的在线购物每天以惊人的速度增长,今后必将越来越多地进入普通百姓的日常生活。如何建立完善的团购系统,如何把业务建在Internet上,涉及到建立远程教育系统、开发符合Internet特点的有效的业务应用、管理网上资源信息、保证网上数据安全、快速反映现代购物变化以及充分满足Internet业务进一步发展的要求等等。如何设计、建立一个经济、实用、安全、高效、稳定的团购网站是每个网上商店必须考虑的问题。1.2 使用工具说明Visual Studio2005是一种.NET的集成开发工具,可以方便快捷的开发大多数的Web项目。Power Designer是一种数据库的建模工具,它可以通过很友好的界面对数据库进行设置,从而可以更好的对数据库进行设计。1.3 本人所做工作为了开发出一个及实用且功能齐全的网上购物系统,并且使该系统能够真正达到“适用、够用、好用”的标准以配合模拟者的使用,我研究了与网上购物有关的理论知识与技术手段,主要包括:建立远程电子交易所需的各种技术,各种网络安全概念及相关技术。在开发该远程教育系统的过程中,我采用Visual Studio2005等开发工具。为此,我深入学习了2.0的各种技术知识,还学习了各种相关的网页制作工具:Dream weaver MX 2004以及图像处理工具Photoshop的使用方法与技巧,同时深入研究了如何利用SQL Server 2000对数据库加以管理与维护等。另外,为了增强系统的实用性,使之能尽量与实际的应用系统相吻合,我对许多同类网站的内容、功能进行了分析与对比,吸取了他们的可取之处,借鉴了一些经验,以便完善本购物网站。本人所负责的主要是团购系统的团购管理,主要功能模块有:(1)公司管理,查看修改公司信息(2)产品管理,查看修改添加产品信息(3)定单管理,对定单过行管理和维护(4)团购管理,对团购进行在确认1.4 基础知识介绍1.4.1 C#语言的介绍C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角.1.4.2 Ajax技术介绍Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax包括: XHTML和CSS 使用文档对象模型(Document Object Model)作动态显示和交互 使用XML和XSLT做数据交互和操作 使用XMLHttpRequest进行异步数据接收 使用JavaScript将它们绑定在一起 传统的web应用模型工作起来就象这样:大部分界面上的用户动作触发一个连接到Web服务器的HTTP请求。服务器完成一些处理-接收数据,处理计算,再访问其它的数据库系统,最后返回一个HTML页面到客户端。这是一个老套的模式,自采用超文本作为web使用以来,一直都这样用, 但看过The Elements of User Experience的读者一定知道,是什么限制了Web界面没有桌面软件那么好用。 图1: 传统Web应用模型(左)与Ajax模型的比较(右)。 这种旧的途径让我们认识到了许多技术,但它不会产生很好的用户体验。当服务器正在处理自己的事情的时候,用户在做什么?没错,等待。每一个动作,用户都要等待。 很明显,如果我们按桌面程序的思维设计Web应用,我们不愿意让用户总是等待。当界面加载后,为什么还要让用户每次再花一半的时间从服务取数据?实际上,为什么老是让用户看到程序去服务器取数据呢? Ajax如何不同凡响。通过在用户和服务器之间引入一个Ajax引擎,可以消除Web的开始停止开始停止这样的交互过程. 它就像增加了一层机制到程序中,使它响应更灵敏,而它的确做到了这一点。 不像加载一个页面一样,在会话的开始,浏览器加载了一个Ajax引擎-采用JavaScript编写并且通常在一个隐藏frame中。这个引擎负责绘制用户界面以及与服务器端通讯。Ajax引擎允许用异步的方式实现用户与程序的交互不用等待服务器的通讯。所以用户再不不用打开一个空白窗口,看到等待光标不断的转,等待服务器完成后再响应。 图 2: 传统Web应用的同步交互过程(上)和Ajax应用的异步交互过程的比较(下). 通常要产生一个HTTP请求的用户动作现在通过JavaScript调用Ajax引擎来代替. 任何用户动作的响应不再要求直接传到服务器-例如简单的数据校验,内存中的数据编辑,甚至一些页面导航-引擎自己就可以处理它. 如果引擎需要从服务器取数据来响应用户动作-假设它提交需要处理的数据,载入另外的界面代码,或者接收新的数据-引擎让这些工作异步进行,通常使用XML, 不用再担误用户界面的交互。1.4.3 JavaScript简介JavaScript 是一种描述性的脚本语言(Script Language),它可以非常自由地被嵌入到HTML 的文件之中。使用JavaScript 可以做什么呢?它的作用很简单,就是对网页浏览者当前所触发的事件进行处理或对网页进行初始化工作。它是事先在网页中编写好代码(或叫做“脚本”),然后此代码伴随Html文件一起传送到客户端的浏览器上,由浏览器对这些代码进行解释执行,而其执行期间并没有劳驾服务器帮忙,这样就减轻了服务器的负担。1.4.4 SQL Server 2000 简介SQL Server 2000 是Microsoft 公司2000年推出的SQL Server 数据库管理系统的版本。它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库、以及电子商务等。 其特点有如下几点: (1)真正的客户机/服务器体系结构(2)图形化用户界面(3)丰富的编程接口工具(4)SQL Server与Windows NT完全集成(5)具有很好的伸缩性(6)对Web技术的支持(7)SQL Server提供数据仓库功能1.4.5 Visual Studio2005 介绍Visual Studio .NET 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic .NET、Visual C+ .NET、Visual C# .NET 和 Visual J# .NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。1.5 系统解决方案我们根据应用系统的有关规范标准和具体业务需求,结合软件开发技术发展状况,选择了以下相应系统软件或工具软件,以确定科学、合理的开发方案。具体如表1-1所述: 表1-1 系统解决方案类别软件名称软件用途数 据 库SQL Server 2000整个网站数据库技 术C#整个网站编码开发工具Visual Studio2005 、Dream waver编码、页面设计等第二章 系统分析2.1 需求分析株洲团购网是定位为中、高档优质产品/服务的聚众团购平台,其宗旨是让厂商通过最少的中间环节销售产品,消费者用最少的精力、最低的费用、最好的购物体验买到最合适的产品。网站的职责是将同一时间段有相同购买意向的消费者组织起来,向团购网精选的品牌经销商进行大宗购买。网站以组织消费者团购的方式,实现最低成本的产品流通,使消费者得到质优价廉的产品,从而给消费者、厂商和各加盟商带来共同的利益。同时通过网络,集中消费者的实力与权利,使每个消费者的合法权益得到强有力的保障。2.2 功能需求本系统具备有易于导航、易于使用、可用性测试、配置文件维护和较强的访问功能等,下面将对具体的单个功能进行详细的说明。1、个人操作平台:用户可以在通过该功能成功网站会员并可以浏览正在进行的团购,并参加团购。2、论坛:会员可以浏览帖子,对帖子进行回复,发布帖子,版主可以对帖子进行管理。3、用户:每个用户可以对自己的信息进行查看以及修改密码等操作,还可以查看参与的团购,查看别人发给自己的消息,发起个人团购等。4、团购管理:后台你管理员可以对公司的添加,修改,删除。对团购进行添加,修改,删除。添加,修改,删除产品。对团购类别进行管理5、论坛管理:后台管理员可以对帖子进行修改删除,对回复进行管理,积分管理,板块管理和类别管理。用户功能的管理6、用户管理:后台管理员的添加修改以及删除,对订单的查看,修改和删除。对个人团购的修改和删除。对订单和个人消息的管理。2.3 性能需求(1)国际化本系统的应用程序应能够进行自定义以适应不同的文化环境。(2)性能本系统的用户在每次访问该站点时都应能体验到始终如一的性能。(3)自治性本系统要求有自动处理数据的能力;比如,自动删除没用的数据、大部分的数据应由系统自己来维护管理。还应能自动处理数据库的连接和事务等。(4)可靠性本系统要求应用程序在任何时刻都能够精确数据的能力,比如,保持数据的原子性、持久性和一致性等。(5)可用性系统应处于开启和运行状态,且应无任何故障。它应能捕获错误,此功能应不会防止用户访问站点授权的区域。站点应随时能接受用户的访问。(6)可扩展性系统应既能向上扩展又能向外扩展。如果添加了更快的磁盘和 CPU 或添加了更大的 RAM,响应应更快。如果给 Web 领域添加了更多的服务器,响应也应该有所改进。Web 领域中的服务器应能正确处理请求。(7)可管理性系统应有一个管理界面,用于对用户、课程、图书等相关信息进行修改。(8)安全性系统应保护机密信息,如各种用户密码。站点应显示保密政策和任何相关的版权信息。用户 ID 和口令应防止未经授权的人员访问敏感信息。2.4 用例分析本系统针对客户端的应用方案和用例可以为分两大方面的应用方案和用例,下面将从这两大方面来介绍各个应用方案和用例。顶层用例 用户参与团购用例图 2-1用户打开网页直接可以浏览团购信息 如2-1图2-1用户要加入团购 要进行用户信息验证,信息正确后才允许加入团购并保存信息用户打开网站,进行登陆 系统对用户所输信息进行验证团购管理用例图 图2-2 管理员进行登陆,并对管理员信息进行验证管理员对生产商的信息维护,系统并对其操作进行保存管理员进行产品信息的维护管理员登陆后,发布、修改团购信息系统并对操作进行保存管理员对客户定单进行确认并更换其状态,系统并保存其操作第三章 数据库设计数据库设计是项目开发中非常重要的一个关键环节,在这里强调数据库设计的重要性是因为数据库设计就像建设高楼大厦的根基一样,如果设计不好,在后来的系统变更和功能扩充时,将会遇到非常大的困难。本系统数据库选择了Microsoft SQL Server 2000数据库。数据库设计包括以下几个步骤。1ER图2表结构3.1 ER图3.2表结构第四章 概要设计4.1 团购模块类结构图类DataBase 该类是实现对数据库的连接和操作Ctlcompany类 该类实现对公司的添加、删除、修改等操作ctlProduct 类 该类实现对产品的添加、删除、修改等操作entProduct 类 该类是对产品这实体属性的 get set方法实现ctlOrder 类 该类是实现对定单的添加、删除、修改等操作entOrder 类 该类是对定单这一实体属性的 get set 方法实现ctlType 类 该类是对产品的类别进行的添加、删除、修改Commmon 类 该类主要是实现 对明文进行MD5的加密 ThClass类 该类实现 对文章进行html语言的相互转换 CtlDiscuss类 该类实现 对帖子评论的的添加、删除、修改等操作EntDiscuss类 该类实现 评论实体属性的 get set 方法实现CtlMark 类 该类实现 对用户的等级的标记的添加、删除、修改操作EntMark 类 实现对用户等级实体属性的 get set 方法实现CtlModule 类 实现对用户帖子的所属模块的添加、删除、修改操作EntModucle类 实现模块实体属性的 get set 方法实现CtlNew 类 该类实现 对新闻的发布、删除、修改操作EntNew 类 该类实现 对新闻实体属性的 get set 方法操作CtlNotes类 该类实现 对帖子的添加、删除、修改操作EntNotes类 该类实现帖子实体属性的 get set方法实现CtlPerGather类 该类实现自发团购添加、删除、修改操作EntPerGather类 该类自发团购实体属性的 get set方法的实现CtlPersonal类 该类实现对用户的操作EntPersonal类 该类对用户属性的 get set方法实现CtlUser类 该类实现对管理员的添加、删除、修改操作EntUser类 该类是管理员属性的 get set方法的实现第五章 详细设计团购管理模块1、公司管理类: CtlCompany; EntCompany属性: companyid; companyname; contactman; phone; address;方法:AddCompany(),CheckCompany(),DeleteComany(),UpdateCompany() 功能描 述: AddCompany()添加一个公司 CheckCompany()检测查公司是否存在 DeleteComany()删除一个公司记录 UpdateCompany()更新一个公司的基本信息2、产品管理 类: EntProduct;CtlProduct 属性: companyid;productname; pdtypeid;pdprice;pdphoto;stime; pddesc;productid;方法: CreateICOName(),InsertProduct(),DeleteProduct(),UpdateProduct(),selectProduct()功能描述: CreateICOName()生成图片文件的名字 InsertProduct()添加一个产品信息, DeleteProduct()删除一个产品信息, UpdateProduct()更新产品信息, selectProduct()查找产品信息 3、团购管理 类: EntGather, CtlGather 属性: gatherid;productid; title;contant; typeid;gprice;gathernum;number; heat;stime; 方法: CreateGatherId(),InsertGather(),SelectProduct(),DeleteGather(),UpdateGather()功能描述: CreateGatherId() 生成团购表的Id InsertGather() 发布一个团购信息 DeleteGather() 删除一个团购信息 UpdateGather() 更新一个团购信息 4、定单管理 类: CtlOrder;EntOrder 属性:orderId,gatherId,productId,perName,sumTotal,state,time 方法:selectOrder(),UpdateOrderState(),DeleteOrder()功能描述: selectOrder()根据条件查找定单 UpdateOrderState() 更新定状态 DeleteOrder() 删除定定单建立数据库Create database zztgDBcreate table f_Discuss ( fDiscussId varchar(30) not null, noteId varchar(20), discussContent text, perName varchar(20), disDateTime datetime, constraint PK_F_DISCUSS primary key clustered (fDiscussId);create table f_function ( functionId int IDENTITY (1, 1), functionCode varchar(4), functionName varchar(20), functionDesc varchar(100), startDate datetime, constraint PK_F_FUNCTION primary key clustered (functionId); create table f_module ( moduleId int IDENTITY (1, 1), moduleName varchar(50), moduleDesc varchar(100), startDate datetime, moduleCode varchar(4), constraint PK_F_MODULE primary key clustered (moduleId);create table f_notes ( noteId varchar(20) not null, moduleId int, noteTitle varchar(100), noteContent text, perName varchar(20), saveTime datetime, isTop varchar(2), isGood varchar(2), constraint PK_F_NOTES primary key clustered (noteId);create table f_perFunction ( rightId int IDENTITY (1, 1), perName varchar(20), functionId int, constraint PK_F_PERFUNCTION primary key clustered (rightId);create table f_perMark ( markId int IDENTITY (1, 1), markName varchar(50), mark int, markPhoto varchar(50), constraint PK_F_PERMARK primary key clustered (markId);create table f_type ( typeId int IDENTITY (1, 1), typeName varchar(20), constraint PK_F_TYPE primary key clustered (typeId);create table g_company ( companyId int IDENTITY (1, 1), companyName varchar(20), contactMan varchar(20), phone varchar(20), address varchar(200), constraint PK_G_COMPANY primary key clustered (companyId);create table g_discuss ( gDiscussId int IDENTITY (1, 1), gatherId varchar(20), perName varchar(20), discussContent text, disDateTime datetime, constraint PK_G_DISCUSS primary key clustered (gDiscussId);create table g_gather ( gatherId varchar(20) not null, productId int, gatherTitle varchar(100), gContant text, gTypeId varchar(20), gPrice money, gatherNum int, number int, heat int, startTime datetime, constraint PK_G_GATHER primary key clustered (gatherId);create table g_order ( orderId varchar(25) not null, gatherId varchar(20), productId int, perName varchar(20), sumTotal money, state varchar(10), time datetime, constraint PK_G_ORDER primary key clustered (orderId);create table g_pdType ( pdTypeId varchar(20) not null, pdTypeName varchar(50) constraint PK_G_PDTYPE primary key clustered (pdTypeId);create table g_product ( productId int IDENTITY (1, 1), companyId int, productName varchar(100), pdTypeId varchar(20), pdPrice money, pdphoto varchar(100), productDesc text, time datetime, constraint PK_G_PRODUCT primary key clustered (productId);create table g_type ( gTypeId varchar(20) not null, gTypeName varchar(20), constraint PK_G_TYPE primary key clustered (gTypeId);create table p_gather ( pGatherId int IDENTITY (1, 1), gTypeId varchar(20), perName varchar(20), title varchar(50), gatherDesc text, gatherTime datetime, constraint PK_P_GATHER primary key clustered (pGatherId);create table p_message ( messageId int IDENTITY (1, 1), fromName varchar(20), toName varchar(20), contend text, sendTime datetime, state varchar(2), constraint PK_P_MESSAGE primary key clustered (messageId);create table p_personal ( perName varchar(20) not null, password varchar(32) not null, email varchar(50) not null, phone varchar(20), address varchar(200), msn varchar(50), qq varchar(15), functionId varchar(4), photo varchar(100), score int, regDate datetime, lastLoginDate datetime, pwQuestion varchar(200), pwAnswer varchar(200), constraint PK_P_PERSONAL primary key clustered (perName);create table p_personalInfo ( personalInfoId int IDENTITY (1, 1) primary key, perName varchar(20), addressInfo varchar(200), phone varchar(20), contantMan varchar(20);create table sys_news ( newsId int IDENTITY (1, 1), newsTitle varchar(100), newsContent text, userName varchar(20), startDate datetime, constraint PK_SYS_NEWS primary key clustered (newsId);create table sys_perPara ( paraId int IDENTITY (1, 1), paraName varchar(50), paraDesc varchar(100), paraValue varchar(100), constraint PK_SYS_PERPARA primary key clustered (paraId);create table sys_users ( userName varchar(20) not null, password varchar(32), roleId int, constraint PK_SYS_USERS primary key clustered (userName);alter table f_Discuss add constraint FK_F_DISCUS_REFERENCE_F_NOTES foreign key (noteId) references f_notes (noteId)alter table f_notes add constraint FK_F_NOTES_REFERENCE_F_MODULE foreign key (moduleId) references f_module (moduleId)alter table g_gather add constraint FK_G_GATHER_REFERENCE_G_TYPE foreign key (gTypeId) references g_type (gTypeId)alter table g_product add constraint FK_G_PRODUC_REFERENCE_G_COMPAN foreign key (companyId) references g_company (companyId)alter table g_product add constraint FK_G_PRODUC_REFERENCE_G_PDTYPE foreign key (pdTypeId) references g_pdType (pdTypeId)alter table p_gather add constraint FK_P_GATHER_REFERENCE_G_TYPE foreign key (gTypeId) references g_type (gTypeId)alter table p_personalInfo add constraint FK_P_PERSON_REFERENCE_P_PERSON foreign key (perName) references p_personal (perName)create table p_passwordQues(questionId varchar(3) primary key,question varchar(50)第六章部分关键程序源代码多图片上传if (files0.FileName.Length 0) System.Web.HttpPostedFile myFile = files0; string fex = Path.GetExtension(myFile.FileName); if (fex != .jpg & fex != .JPG & fex != .gif & fex != .GIF) Page.ClientScript.RegisterStartupScript(Page.GetType(), , alert(请确认您上传图片的格式,只能是jpg或gif格式的!);); return; else string FileName; FileName = System.IO.Path.GetFileName(myFile.FileName); int lent = FileName.Length; string NewName = cp.CreateICOName(FileName.Substring(lent - 4, 4);/对上传的图片进行重命名 String path = Server.MapPath(/Image/ProductIco/ + NewName); try myFile.SaveAs(path); catch Page.ClientScript.RegisterStartupScript(Page.GetType(), , alert(图片上传失败,服务器忙请稍后在试!);); return; ep.Photo = /Image/ProductIco/ + NewName; else ep.Photo = /Image/ProductIco/ + wu.jpg; /利用循还上传多图片 for (int i = 1; i files.Count; i+) System.Web.HttpPostedFile myFile = filesi; string pathname; string FileName = ; FileName = System.IO.Path.GetFileName(myFile.FileName); int lent = FileName.Length; string stro = ro.Next(10, 100).ToString(); string NewName = stro+cp.CreateICOName(FileName.Substring(lent - 4, 4);/对上传的图片进行重命名 String path = Server.MapPath(/Image/Product/ + NewName); try myFile.SaveAs(path); catch Page.ClientScript.RegisterStartupScript(Page.GetType(), , alert(图片上传失败,服务器忙请稍后在试!);); return; pathname = /Image/Product/ + NewName; al.Add(pathname); 第七章系统测试与评价对系统进行调试测试的目的是为了验证系统的各个模块与功能是否正确运行和性能以及各方面是否达到用户的需求。除了对系统的各个模块进行测试,还需对整个系统的功能流程进行测试,以检验和保证系统各模块和模块与模块之间的联系性是否符合需求。对系统进行反复多次的测试有助于改善系统的各个方面以保证系统无误正确运行,提高产品的质量。7.1 系统测试1、管理员用户登录序号测试实例描述测试数据预期结果实际结果1)不输入任何数据登录

温馨提示

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

评论

0/150

提交评论