




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1 前言 .2 2 asp.net 技术综述.3 21是升级还是创新3 22开始使用 asp.net3 2.3visual studio.net4 2.4asp.net 的优点.4 2.5 mssqlserver 2000 数据库简介.9 3 系统分析 .10 31 系统模块分析.10 32信息发布介模块介绍12 33 信息发布模块结构图.13 4 系统详细设计 14 41 新闻发布14 42 管理员登录.15 43 商品搜索16 44 增加商品.17 45 增加新闻.18 46 增加商品类别.19 47 管理商品及新闻管理.21 5 测试 .25 51 软件测试目的.25 5.2测试过程25 5.3测试结果.27 总结与体会 28 【参考文献】30 2 1 前言前言 21 世纪,随着计算机科学的发展,数据库技术在 internet 中的应用越来越 广泛,为广大网络用户提供了更加周到和人性化的服务。个性化已逐渐成为当今 web 应用的潮流。 传统的商场管理方式依靠手工操作,其效率之低下,不利于企业的发展。所 以基于现代商场营销管理的理念,结合中国行业管理经验将现代化的信息技术和 网络技术引入商场销售管理工作,实施自动化商场管理系统已成为管理进步和发 展的必由之路。对现代化的运营模式有着十分重要的作用,给分配和管理提供极 大的方便。 商场管理系统是企业管理中的一项主要的任务,以往的手工操作已经不能适 应现代社会的需要。为了摆脱繁琐的劳动,提高工作的效率,利用计算机进行信 息处理成为必然。开发功能完善及完全可靠的系统可以大大提高学校资源的利用 率。及时准确地获得需要的信息,充分发挥人员的工程潜力。本系统是根据商场 管理的实际情况而设计的一套针对性和功能都比较强的管理系统,涉及人事管理, 销售管理,财务管理,用户管理,客户管理,商品管理等几大模块,涵盖了企业 管理的各个领域。 商场管理系统的开发和应用,可以提高的管理水平和效率。商品销售的能力 和速度可以有很大的提高,为企业的商品进,销,存提供一个良好的工具,化简 了繁琐的工作模式,从而使得企业的管理更加合理化和科学化。良好的管理信息 系统也为工作人员提高自身的计算机水平提供了机会,每个人都应该适应社会高 新技术的发展,努力追赶科技潮流。 当前计算机软件技术和网络技术正飞速发展,软件系统日趋大型化、复杂化。 因此社会对软件开发者提出了比以往更高的要求。相应的系统要求也有了很大的 提高。本系统采用先进的 microsoft sql server 2000 作为数据库,采用 visual basic 6.0 作为模式的程序语言,采用 c.net 作为模式的程序语言, 设计出的系统功能强大,操作方便灵活。 3 2 asp.net 技术综述技术综述 自从 microsoft 的 .net 的 beta 1 版发行以来, .net 技术受到了极大的关 注。从那时开始,邮件列表、新闻组以及站点上都迅速传播 .net 代码实例、应 用程序和不同形式的文章。即使您不是一个使用现有 asp 技术的开发人员,或者 您并不了解 .net 的详细内容,但肯定至少听说过它。由于目前有关 .net 的信 息浩如烟海,因此想从中找到需要的东西有时还比较困难。在使用这些新的语言、 新的设计思想以及新的编程方法时,您或许想知道要编写 asp.net 应用程序究 竟需要做些什么。 这就是本章所要解答的问题。 2 21 1是升级还是创新是升级还是创新 作为一个开发人员,我们都已经习惯了软件的不断升级,每次升级都会增加 一些新功能,同时纠正一些原有的错误。随着像数据库 web 和 idc 这样的产 品快速移植到目前我们所熟悉的 active server pages 中,server 端的 web 技术 同样在遵循着这样一种模式。 asp 1.0 发布于 1996 年,并且尽管随后又发布了 两个更新的版本,但事实上直到现在 asp 本身也并没有多少变化。不过现在我 们要准备抛弃许多根深蒂固的 asp 编程习惯了,因为我们已经有一个更好的工 具。 asp.net 是一个革命性的产品,因为它和以前的版本截然不同。它的首次面 世是在 1999 年,地点是华盛顿的 wrox 会议厅,在那里该产品的现场演示大受 欢迎,这表明观众是大学喜欢它的。2000 年 7 月,asp.net 在 pdc 迎来了它 的首次公开发布,在那里约 6000 名开发人员感受到了 .net 所带来的强烈震撼。 之后他们用了几乎一周的时间来学习这项新技术不过所有需要了解的新知识 确实让他们有点头晕眼花了。实际上,要理解 .net 并不是很困难,不过 asp.net 和我们以前使用的 asp 确实有很大不同。 以上就是问题的症结所在。asp.net 仅仅是整个.net framework 的一部分, 但要有效地使用 asp.net 您就必须理解它的基本结构。 2 22 2开始使用开始使用 asp.netasp.net asp.net 和 asp 是互不干扰的因为它并不会触及已有的 asp 应用程 序。因此我们无须担心无法使用以前所写的程序。 asp.net 有以下两上版本: 4 (1)标准版:该版本随 .net framework sdk 一起提供给用户。 (2)premium 版:该怎么本包含一些额外的功能:(输出高速缓存、web farm session state、代码访问主控、支持 4 个或 4 个以上的 cpu) windows 2000 (professional 和 server 版本)与 windows xp 支持 asp.net,但 windows nt 或 windows 9x 平台不支持。可以在这些平台上安装 visual studio.net 。并且在所支持的平台上远程使用 asp.net。您可以从 microsoft 公司以下的站点下载 asp.net。它们是 http:/www.m/net, 和 /,另 外 asp.net 也是 msdn 订阅服务的一部分。 2.32.3visualvisual studio.netstudio.net 编写 asp.net 应用程序时,并不需要 visual studio.net ,但它提供了非常 丰富的设计环境。它所能提供的功能包括控件拖放、自动网格及列表支持、综合 调试、intellisense 等等。 visual studio.net 的安装包括以下几个步骤, 其中第一步 component update 要安装以下内容: (1) windows 2000 service pack 2 (2) microsoft windows indtaller 2.0 (3) microsoft frontpage 2000 web extensions client (4) setup run-time files (5) microsoft data access components 2.7 (6) microsoft .net framework 一旦完成该步骤,您可以选择是否检查 service releases 。如果选择检查的话, 系统会自动为您下载产品升级。 2.42.4asp.netasp.net 的优点的优点 1、多语言 asp 曾在脚本引擎方面受到了限制,特别是 vbscript 和 jscript 。而.net framework 本质上就支持多语言,因此我们可以使用任何需要的语言。其中 microsoft 公司支持 vb.net、c# 和 jscript(它们都是经过编译的),另外我们还可 以使用一些第三方语言,例如可以管理的 c+。由于多语言支持是 .net framework 的一部分,因此您和您的同事不论使用何种语言都没有关系。很明显, 5 从您的观点来看,保持某种程度上的兼容性可能是最好不过的(如果仅仅是为了 维护的目的) ,但对于架构而言,是没有任何限制的。 多语言支持的作用并不仅仅限于可使用什么语言,同时还在于如何使用这些 语言。通过它我们很有可能用某种语言来编写组件,而用另一种语言来使用(或 重复使用)这些组件。比如用 c# 编写基于服务器的控件,但我们可以使用 visual basic 降低这些控件的级别,然后还能利用 jscript(或任何支持的语言)将 得到的控件再次降级。 2、 服务器处理 使用 asp 的一大问题在于页面简单地定义了一个大函数,该函数开始于页 面的开头,结束于页面的结尾。不管页面的内容是纯 html 还是 asp 生成的 html ,它都是按照页面顺序显示的。因此,我们的思维逻辑依赖于它在页面中 所处的位置,并且无法将 html 控件作为目标,除非将它们作为流的一部分进 行显示。我们所做的任何工作都需要编写代码,同时它也包括了 html 元素的 输出。 而 asp.net 就解决了这个问题,方法是为控件引入一个声明的基于服务器 的模型。这对 asp 开发人员来说是一个截然不同的概念,因为这些在服务器上 声明的控件可以在服务器上逆向编程,但是也可以是客户端驱动的事件。这听起 来确实不可思议,但实际上使用起来却是很简单的。为把一个普通的 html 控 件变成一个服务器控件,我们所要做的只是将 runat=”server” 为一个属性添加到 代码中。例如: 这是一个标准的 html 控件,但是增加新属性却允许我们利用服务器端的 代码对该控件进行逆向编程。例如,如果要将该控件置于一个表单中并且将该表 单提交回同一个页面中,我们可以在服务器端代码中做以下修改: dim fersonfirstname as string personfirstname = firstname.text 让控件在服务器上运行允许我们使用 id 属性来直接识别它。这就让代码具 有了更好的可读性,原因在于我们不必引用表单内容或者将这些内容复制到变量 中。同时直接引用控件也更加自然了,这就可以使正在开发的页面更加简单。如 果你做过 visual basic 或 vba 编程工作,那么这些概念对您来说就不会太陌生。 3、 语言的改进 6 asp.net 的一大激动人心的新特性就是再也不存在脚本了。不过这么说有点 夸张,实际上真正不存在的是无类型,即这些语言的可解释性。asp.net 已不 再支持 vbscript,转而全面支持 visual basic ,不过它仍然支持 jscript,但同时增 加了一些其他的类型。另外 asp.net 还引入了一种新的称为 c# 的语言,c# 的 格式和 c+ 很相似。由于 asp.net 完全是由 c# 编写而成的,因此我们可以知 道 c# 的引入决不仅仅是简单地增加新语言。 了解以下关于所有语言的共性: (1) 所有语言都支持数据类型。 (2) 所有语言都使用一个公用的数据类型集。 (3) 所有语言都是经过完全编译的。 (4) 所有语言都是面向对象的,并且支持继承性。 还有同样重要的一点,语言支持是构建于 common languange runtime (clr) 中的,clr 提供这种公共支持。这表明像继承性这样的我是跨语言的,因此我们 可以用 c# 来编写组件,然后在 visual basic 中继承并扩展这些组件。而这些堵 阳通过 clr 来管理的,同时它还提供了跨语言调试功能,原因是它可以使用一 个调试器既对 asp.net 页面中的 visual basic 代码进行调试,也对一个 c# 组 件进行调试。 asp.net 还提供了可扩展性,这就意味着其他语言都可以获得支持。 microsoft 公司在 .net sdk 中为用户提供了 vb.net 、jscript 以及 c# 这 3 种 标准语言,不过许多其他语言都是由第三方提供的。 4、代码与内容分离 总的说来,我们认为这是站点设计一个让人很不习惯的功能,因为许多站点 完全是由开发人员创建的。虽然只让开发人员设计并创建站点这本身并不是坏事, 但是我们认为开发人员通常不会成为很好的设计人员。尽管有的开发人员对界面 设计和可用性非常感兴趣,但实际上他们并不擅长此项工作。而 asp 就是建立 在这个问题基础上的,通常代码(asp 脚本)和内容(html)混合在一起。这 就使得同时设计和编写代码变得很困难,另外如果页面需要升级,就会存在危险 的潜在问题。 asp.net 可通过两种方法来解决上面的问题: 第一种就是代码内联模型,在该模型中代码仍然保存在 asp.net 页面中, 但它并不和 html 混合在一起。我们可以很容易地将代码和内容分为两个部分。 有一点很重要,即所有脚本和内容都是分离的。这种脚本和内容的成功分离是由 于 asp.net 具有新的服务器控件结构,该结构允许从基于服务器的代码访问 html 控件。 7 第二种分离代码与内容的方法是代码后置模型,该模型中代码被完全转移到 了一个单独的文件中。 5、配置与部署 asp.net 的配置由两个要素来决定。第一个是标准 iis 设置,这和现在的 asp 应用程序是一样的。第二个是配置文件,这个 xml 文件包含了应用程序的 元数据。另外还有一个通用文件 machine.config ,它用于保存计算机中所有 asp.net 应用程序的默认值,同时每个 asp.net 应用程序还有自己的用来重写 默认值的 web.config 文件。包含配置信息的文件有一个优点,那就是我们无需再 通过注册表来修改各项设置,这是因为每个应用程序都是独立的。另外当我们希 望部署一个 asp.net 应用程序时,这种配置方式还有另一个好处,原因是配置 仅仅是我们所部署的文件之一。 在 asp.net 中还有一个得到得重大简化的领域部署,我们通常把它称 为 xcopy deployment,之所以这样做的原因很简单通常我们必须如此。每个 asp.net 应用程序都是独立的,其中包括了配置文件和组件。在 .net framework 中,组件不再要求注册,用户只需将它们复制到目标位置即可。 但是在这个部署模型中有一些异常。一个是当我们与 com/com+ 组件进 行交互时,它们仍然需要注册。另一个是当我们使用 shared assemblies 时,其 中的.net 组件会同时被一个以上的 asp.net 应用程序使用。在这种情况下,组 件就无法再和其他 asp.net 文件保存在同一个目录中。 6、代码更少、更简练、更便于维护 今天 asp 所存在的一个最大问题就是您必须编写大量代码。如果您想从一个 数据库中显示数据,您就必须编写连接到数据库的代码,同时使用 response.write 来输出所要求的 html 如果您想显示一个日历,您必须编写代 码来创建日历。而使用 asp.net 您就必再为每件事情编写代码了。asp.net 服 务器控件通过使用标记和属性从而提供了一种便于说明的建立网页的方式。这些 服务器控件封装了用于显示 ui 的行为和响应回送(postback)的消息。 asp.net 还可以让您建立自己的服务器控件。您既可以在一个经过编译的窗 体中编写这些控件,在该窗体中您所要做的工作是开发一个继承自某个 asp.net 服务器控件类(一个自定义服务器控件)的类,您还可以将其他 asp.net 网页 声明为控件,接着用这些网页来建立其他网页(一个用户控件) 。 asp.net 服务器控件在 asp.net 应用程序中实现代码复用提供了一个很好 的机制。microsoft 公司预言许多第三方供应商会创建 asp.net 服务器控件,而 且在将来发行的每个 asp.net 版本中,他们也会提供越来越多的控件。 8 7、强大的身份确认模型 asp.net 的设计目标之一就是提供一个强大的身份确认模型,以此来满足现 代电子商务应用程序的要求。它支持以下 3 种安全的核心模式: (1)windows authentication :主要针对企业内部网,企业内部网中的域 账号可用于识别用户。 (2)forms authentication :基于 cookie 的身份确认,amazon 等站点使 用的就是该模式。 (3)microsoft passport authentication :由 passport manager 完成的基于 cookie 的身份确认,hotmail 等站点使用该模式。 asp.net 同时还支持在同一个应用程序中使用不同的身份确认模型。这就允 许一个站点既可用在企业内部网,也可用在外联网上。 8 、正确认识错误的存在 asp.net 的设计人员意识到没有人可以写出毫无破绽的代码包括 microsoft 自己在内。因此 asp.net 通过包容错误来处理它们,同时它还提供了 一系列相关的强大功能: (1)检测内存遗露,并自动重新执行 asp.net 应用程序。您可以定义内 存泄露的范围和程度。 (2)检测并解决死机或死锁请求。 (3)在超过指定数量的请求之后自动重新执行 asp.net 应用程序。 (4)允许将状态存储到外部主要的 asp.net 处理器进程中,甚至存储到 一个状态服务或一个 sql server 数据库中。这就允许 asp.net 应 该程序在最终用户不丢失其状态的情况下重新执行。 2.52.5 mssqlservermssqlserver 20002000 数据库简介数据库简介 sql server 2000是microsoft新推出的网络数据库系统,它为在其上建立应 用程序的开发者提供了一个优秀的关系数据库管理系统。sql server 2000 可以 安装到microsoft windows nt server 上,也可以安装到microsoftwindows nt workstation和windows 95/98上,这在过去是不可能的,而也是别的网络数据库 系统所不具备的。因此,无论是基于microsoft windows nt server 企业级的应 用,还是基于桌面工作站的小型数据库应用程序, sql server 2000都为用户提 供了完美的数据库支持。sql server 2000的使用简单清晰,它通过管理工具 9 enterprise manager 来实现数据库的大部分操作.sql server 管理两种类型的 数据库:系统数据库和用户数据库。系统数据库存储sqls erver专用的用于管理 自身和用户数据库的数据,用户数据库用于存储用户数据。sql server创建的系 统数据库包括master、model、tempdb、msdb,还会创建pubs,northwind用户数 据库样本。sql server 中,数据库把所有的数据与数据库对象都放在一系列操 作文件中,并用文件和文件组管理这些操作系统文件。文件分为3种:主文件、 从属文件和日志文件,每个文件只能从属于一个数据库。主文件是一个数据库的 起始点,一个数据库文件只能有一个主文件而且必须有一个主文件。主文件的扩 展名是mdf。从属文件的数目是任意的,一般一个小型的数据库可能没有从属文 件,而一个大型数据库可能存在多个从属文件。从属文件和主文件一同存储数据 以及数据库对象。从属文件的扩展名是ndf。日志文件用来存放数据库的事务日 志信息,这些信息对恢复数据库是十分关键的,一般一个数据库必须至少有一个 日志文件。日志文件的扩展名是ldf。 10 3 系统分析系统分析 3 31 1 系统模块分析系统模块分析 本阶段主要对蜀天商场管理系统做概要设计。主要解决了实现该系统需求的 程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的 接口、模块之间传递的信息,以及数据结构、模块结构的设计等。 图 3.1 系统模块图 用户登录分为 c/s 登录和 b/s 登录两种。商场员工使用 c/s 登录,也可使用 b/s 登录,会员及游客使用 b/s 登录。商场员工由于权限限制,不同的权限登录 后进入不同的操作界面。管理员进入管理界面,可以对系统所有数据进行访问, 修改,删除;销售员只能进入商品销售界面,对商品的销售进行操作;库存员进 入库存界面,可以对库存商品进行操作。vip 会员登录网站可以查询消费记录, 察看积分,查找商场特价物品。游客则只能通过网站察看网上商品信息。 管管理理员员界界面面 商商品品信信息息管管 理理 员员工工信信息息管管 理理 销销售售记记录录查查询询 库库存存商商品品查查询询 采采购购审审批批 修修改改员员工工资资料料 添添加加员员工工 删删除除员员工工 工工资资管管理理 图 3.2 管理员模块 登录管理员界面后,可以对商品信息进行查询和员工信息进行编辑。对商品 信息主要进行商品销售记录的查询和商品库存数量的查询,并且审批由库存员提 用用户户登登录录 商商场场员员工工vip会会员员guest游游客客 管管理理员员销销售售员员库库存存员员 商商场场网网站站管管理理员员界界面面销销售售员员界界面面库库存存员员界界面面 11 交的采购申请表。对员工信息管理主要是针对员工的增加,删除,修改进行操作, 在此基础上实现为员工发放工资。 库库存存员员界界面面 商商品品上上架架库库存存盘盘点点采采购购申申请请进进货货 图 3.3 库存员模块 登录库存员界面后可以对库存商品进行盘点操作,盘点后对商品数量不足的 添加到采购申请表,提交给管理员审批。对销售员申请的商品添加到商品上架表 进行销售。当管理员审批完采购申请表则进行进货操作。 3 32 2信息发布介模块介绍信息发布介模块介绍 表 5.36 特价表 名称数据类型是否为空缺省值 编号intidentity(1, 1), 商品条形码char(12)null, 商品编号char(10)not null, 商品名varchar(20)null, 商品类别tinyintnulldefault1, 计价单位tinyintnot nulldefault1, 原价realnulldefault0, 特价realnulldefault0, 起始日期datetimenulldefault getdate(), 结束日期datetimenulldefault getdate(), 建档人员varchar(20)nulldefault无, 建档日期datetimenulldefault getdate(), 备注varchar(255)nulldefault无, constraint pk_特价表 primary key (编号, 商品编号, 计价单位) 特价表是为特价商品所设置的一张表,该表记录特价商品信息,在商场营业 前进行添加,在商品出售前进行比较。起始日期为特价物品开始销售的日期,结 束日期为特价商品下加的日期,一旦到期,系统将自动使特价商品从该表中删除, 12 从而保证商品的正常销售。 表 5.37 特价物品销售记录表 名称数据类型是否为空缺省值 编号intidentity(1, 1), 商品条形码char(12)null, 商品编号char(10)null, 商品名varchar(20)null, 商品类别tinyintnulldefault3, 价格realnulldefault0, 销售数量realnulldefault0, 计价单位tinyintnulldefault1, 总价realnulldefault0, 销售时间datetimenulldefault getdate(), constraint pk_特价物品销售记录表 primary key (编号) 特价物品销售记录表是记录特价物品销售情况的表,该表用于分析特价商品 的畅销程度,从而判断哪些商品需要搞特价来刺激消费。这样可以解决商品滞留 商品的销售问题。 本人在负责整个设计中的网站公有部份,主要是商品信息发布,新闻发布等 等。下面将着重介绍其功能: 此程序要求为创建网站公有页面,在 internet 上发布商场商品的多种信息及 商场的有关信息。 (1)商品管理: 商品的增加:将商品的资料信息录入数据库中。 查询功能:实现对商场商品的查询,显示查询结果(如价格等) 。 删除功能:对已销售商品以及错误资料进行删除。 (2)新闻发布: 新闻的增加:将新的新闻,活动等加入数据库,并在页面上发布出来。 新闻的删除:将已过时的,错误的新闻、活动等,删除。 (3)提供与其它版块的连接,主要是连接到“会员专区”和“供货商专区” 。 3 33 3 信息发布模块结构图信息发布模块结构图 本模块的功能结构图大致如下图: 13 图 3.4 系统结构图 4 系统详细设计系统详细设计 我主要负责前台的商品展示,提供搜索商品功能,新闻活动发布,以及后台 对商品,新闻活动的增加,删除等管理。 4 41 1 新闻发布新闻发布 界面如下图所示: 图 4.1 新闻发布 本模块主要是发布新闻活动,点用户点击窗品中某一条消息时,则显示其消 息的具体内容。 本模块核心代码如下: robertsoft.bookstore.book currentbook = new robertsoft.bookstore.book(); private void page_load(object sender, system.eventargs e) if(!ispostback) 14 int nid = int.parse(request.querystring“id“); binddata(nid); private void binddata(int nid) datarow currentdr; currentdr = currentbook.getnewsdetail(nid); this.lbtitle.text = currentdr“title“.tostring(); this.lbcontent.text = “ + currentdr“content“.tostring(); 4 42 2 管理员登录管理员登录 界面如下图所示: 图 4.2 管理员登录 本模块为管理员进入后台管理的入口,当输入正确的管理员 id 和管理 员密码时,则顺利进入后台管理界面,如果输入不正确,刚弹出“用户名或 密码错误”的提示。 核心代码如下: private void button1_click(object sender, system.eventargs e) command.commandtext = “select userpwd from userinfo where userid = “ + textbox1.text.trim() + “; conn.open(); string tmp = convert.tostring(command.executescalar(); 15 conn.close(); if(tmp.trim() = textbox2.text.trim() response.redirect(“admin/bookmanagemment.aspx“); else response.write(“alert(用户名或密码错误!)“); 4 43 3 商品搜索商品搜索 界面如下图所示: 图 4.3 商品搜索 本模块提供了三种搜索条件(商品名称,品牌,生产商) ,用户可以只输入其 中一个条件即可得到搜索结果。 当单一条件搜索出商品太多,很难找到所需商品时,用户还可以多个条件进 行搜索,这将大大提高效率。让你用最少的时间找到需要的信息。 本模块核心代码如下: private void btok_click(object sender, system.eventargs e) string strpinpai, strproductor, strname, strurl; strproductor = this.tbproductor.text; strpinpai = this.tbpinpai.text; strname = this.tbname.text; strurl = “quicksearch.aspx?“; 16 if(!object.equals(strpinpai,null) strurl = strurl + “pinpai=“ + strpinpai; if(!object.equals(strproductor,null) strurl = strurl + “ if(!object.equals(strname,null) strurl = strurl + “ response.redirect(strurl); private void btcancel_click(object sender, system.eventargs e) this.tbpinpai.text = “; this.tbname.text = “; this.tbproductor.text = “; 4 44 4 增加商品增加商品 本模块界面如下图所示: 图 4.4 增加商品 本模块让管理员添加商品,包括了商品的多项基本信息(如:价格,类别, 产地等) 。还提供图片的上传和描述。让用户能比较清楚地了解商品。 17 核心代码如下: private void btcoverup_click(object sender, system.eventargs e) if(file1.postedfile.filename.trim()!=“) /postfiles filename is not empty try path=server.mappath(“bookstoreupfile“).tostring(); filename=file1.postedfile.filename.tostring(); ftype=file1.postedfile.contenttype; filesize=file1.postedfile.contentlength; if(ftype.substring(0,5)!=“image“) showerrmsg(“postfile is not image!“); return; po=filename.lastindexof(char)92); filename=filename.substring(po+1,filename.length -po-1); viewstate“postfilename“=filename; /remember postfiles name file1.postedfile.saveas(path+“+filename); this.imgbookcover.visible = true; this.imgbookcover.imageurl= “upfile“ + filename; 4 45 5 增加新闻增加新闻 本模块界面如下图所示: 18 图 4.5 增加新闻 本模块能将新闻加入数据库,以在前台界面发布。 核心代码如下: private void btaddnews_click(object sender, system.eventargs e) string strsql; strsql = “insert into news(title, content)values(“ + this.tbnewstitle.text.trim() + “,“ + this.tbnewscontent.text.trim() + “)“; try robertsoft.bookstore.dbclass.dbbaseclass.executesqlcmd(strsql); this.lbinfo.text = “添加新闻成功“; this.tbnewscontent.text = “; this.tbnewstitle.text = “; catch return; private void btcancel_click(object sender, system.eventargs e) 19 this.tbnewscontent.text = “; this.tbnewstitle.text = “; private void tbnewscontent_textchanged(object sender, system.eventargs e) = 4 46 6 增加商品类别增加商品类别 当商场中有了新的商品,而该商品又不属于原有类别时,就理所当然需要增 加新的类型,以便于商场的管理。该模块正是为了解决这个问题而设计的。但该 系统暂时只具有增加类别的功能,不具删除类别的功能。所以使用该功能时,需 谨慎小心。 该模块界面如下图所示: 图 4.6 添加商品类别 该模块核心代码如下: private void btaddtype_click(object sender, system.eventargs e) int nsupertype = int.parse(this.ddsupertype.selectedvalue.trim(); string strsql = “select max(type) from storetype where supertype=“ + nsupertype; int nsubtype = robertsoft.bookstore.dbclass.dbbaseclass.executesqlforvalue(strsql); nsubtype += 1; strsql = “insert into storetype(supertype, type, typename, description)values(“ + nsupertype + “,“ + nsubtype + “,“ + this.tbnewtype.text.trim() + “,“ + this.tbnewtypedescription.text.trim() +“)“; try this.btaddtype.enabled = false; robertsoft.bookstore.dbclass.dbbaseclass.executesqlcmd(strsql); 20 this.btaddtype.enabled = true; this.lbinfo.text = “添加新类别成功“; this.tbnewtype.text = “; this.tbnewtypedescription.text = “; catch return; 4 47 7 管理商品及新闻管理管理商品及新闻管理 商品的信息有可能随时间的变化而发生改变,如同一商品的价格调动,是否 特价,商场过期的商品,需要删除等。本模块主要功能即此。 通过它,管理员可以方便地删除不再需要的商品信息,只需点击该商品对应 的“删除” 即可。也可以非常方便地修改信息,点“编辑” ,然后,再填入新的信息就可以 了。还可以删掉商品的封面,以节省空间。 本模块的界面如下图所示: 图 4.7 商品管理 本模块的核心代码如下: private void initializecomponent() this.pdlbookmanage.editcommand += new system.web.ui.webcontrols.datalistcommandeventhandler(this.pdlbookmanage_editcommand); 21 this.pdlbookmanage.pageindexchanged += new system.eventhandler(this.pdlbookmanage_pageindexchanged); this.pdlbookmanage.deletecommand += new system.web.ui.webcontrols.datalistcommandeventhandler(this.pdlbookmanage_deletecommand); this.pdlbookmanage.selectedindexchanged += new system.eventhandler(this.pdlbookmanage_selectedindexchanged); this.btdeletecoverfile.click += new system.eventhandler(this.btdeletecoverfile_click); this.load += new system.eventhandler(this.page_load); #endregion private void pdlbookmanage_deletecommand(object source, system.web.ui.webcontrols.datalistcommandeventargs e) int nid = int.parse(e.commandargument.tostring(); deletedata(nid); binddata(); private void deletedata(int nid) string strsql = “delete from storeinfo where id=“ + nid; try robertsoft.bookstore.dbclass.dbbaseclass.executesqlcmd(strsql); this.lbinfo.text = “删除成功“; catch this.lbinfo.text = “删除失败!“; return; 22 商场的新闻不是一成不变的,而是每天都会有全新的新闻活动需要报道,而 过时的则要即时的删除。 它会让管理员将管理新闻当成一件非常轻松的事。 本模块界面如下图所示: 图 4.8 新闻管理 本模块核心代码如下: system.eventhandler(this.pdlnews_selectedindexchanged); this.load += new system.eventhandler(this.page_load); private void pdlnews_deletecommand(object source, system.web.ui.webcontrols.datalistcommandeventargs e) int nid = int.parse(e.commandargument.tostring(); deletedata(nid); binddata(); private void deletedata(int nid) string strsql = “delete from news where id=“ + nid; try robertsoft.bookstore.dbclass.dbbaseclass.executesqlcmd(strsql); this.lbinfo.text = “删除成功“; catch 23 this.lbinfo.text = “删除失败!“; return; private void pdlnews_pageindexchanged(object sender, system.eventargs e) int pageindex = (datagridpagechangedeventargs)e).newpageindex; this.pdlnews.currentpageindex = pageindex; binddata(); 24 5 5 测试测试 5 51 1 软件测试目的软件测试目的 软件测试保障软件产品的可接收性,为评价软件产品质量的提供依据;对软 件可靠性的影响是非常重要的。在开发大型软件系统的漫长过程中,面对着极其 错综复杂的问题,因此,在软件生命周期的每个阶段都不可避免地会产生差错。 测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误,避 免造成恶劣的后果。目前软件测试仍然是保证软件质量的关键步骤,它是对软件 规格说明、设计和编码的最后审核。即软件测试的重要性如下: 验证需求的正确性 检验测试资源 明确任务的风险 生成测试用例 评价测试结果 再测试 决定测试的有效性 5.25.2测试过程测试过程 与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个 步骤的继续。正规的软件测试是一个极为复杂的过程。一个规范化的软件测试过 程通常包括以下基本的测试活动: 拟定软件测试计划; 编制软件测试大纲; 确定软件测试环境; 设计和生成测试用例; 实施测试; 生成软件测试报告。 由于本软件系统制作人员有限和时间的紧迫性,只做了以下几个步骤的测试: 一般需要经过单元测试、集成测试、确认测试和系统测试,具体步骤如下图 所示 25 单元测试 单元测试 单元测试 集成测试确认测试系统测试 模块 模块 模块 设计信息软件需求 其他系 统元素 已集成 软件 已确认 软件 可交付软件 图5.1测试 单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正 确实现了规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及 编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集 成测试,以检查与设计相关的软件体系结构的有关问题。确认测试主要检查 已实现的软件是否满足需求规格说明书中确定的各种需求。系统测试将已确 定的软件与其他系统元素(如硬件、其他支持软件、数据和人工等)结合在 一起进行测试。如图5.2显示了软件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级财务会计1(山东联盟)知到智慧树答案
- 中级微观经济学知到智慧树答案
- 中兽医学(山东联盟)知到智慧树答案
- 中外民俗知到智慧树答案
- 2025版庆典活动赞助商权益授权监管合同
- 2025年度食品添加剂全国代理销售合作协议
- 2025年度暑期实习生劳务合作协议
- 2025版挖掘机搅拌机租赁及施工质量保证合同
- 2025年度投资与国际贸易咨询及风险管理服务协议
- 2025年环保产业外资股权转让及合作开发协议
- 2025年中级会计职称考试经济法冲刺试题及答案
- 乐器供销合同范本
- 2025年辽宁省中考生物学试卷真题附答案
- 《法律职业伦理(第3版)》全套教学课件
- 2025年青岛市崂山旅游集团招聘考试笔试试题
- 2025年执业医师考试全真试题及答案
- GA 1808-2022军工单位反恐怖防范要求
- 焊接工艺要求
- JJF(电子) 31502-2010 静电腕带/脚盘测试仪校准规范-(高清现行)
- 国学武术操太极拳表演活动流程
- DB14∕T 1131-2015 麦茬复播花生栽培技术规程
评论
0/150
提交评论