《毕业设计(论文)ASP报刊发行订阅系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)ASP报刊发行订阅系统.doc(38页珍藏版)》请在三一办公上搜索。
1、报刊订阅发行系统摘要:中国邮政从 50年代开始承担的报刊发行业务,已成为我国报刊发行的主渠道。报刊的发行订阅是一个比较复杂的过程,邮政的报刊发行多半是手工操作,工作量很大,且繁琐。近年来,随着网络技术的飞速发展,网络能实现的功能越来越强大。顺应着这一发展趋势,人们便想到利用网络的便捷,来解决报刊发行订阅的繁琐过程,于是网络报刊发行订阅系统便产生了。论文首先介绍网络报刊发行订阅系统的开发背景和研究意义,然后介绍开发工具ASP.NET的相关技术、ASP.NET所使用的数据库技术以及系统的需求分析,最后详细介绍了用ASP.NET技术开发的报刊发行订阅系统的设计。系统是在ASP.NET环境下,利用C#
2、来编写开发的,主要由用户登陆、查询、订阅和管理员等模块组成。整个系统是基于B/S架构,系统开销小,方便用户操作以及管理员的管理。关键词:网上报刊订阅;ASP.NET;B/STHE Newspapers SUBSCRIPTIONS MANAGEMENT SYSTEMAbstract: The China Post has been doing the business of issuing newspapers and periodicals since 1950s. It has become the main channel in the issue of newspapers and pe
3、riodicals. The process of issue and subscription is rather complicated because of mostly manual operation and arduous workload. In recent years, with the rapid development of network technology, network has brought more and more powerful functions to the society. Therefore, the online issue and subs
4、cription system of newspapers and periodicals has been designed by making use of the convenient network to solve the complexity in the process .The dissertation, firstly, introduces the background and researching significance of the issue and subscription system of newspapers and periodicals. Second
5、ly, it gives us a general introduction about the development tool of ASP.NET and related ADO.NET following with the demand analysis of the system. Finally, the developmental process of system establishment is presented in details with concrete explanations, including ASP.NET, C# programming and modu
6、les of users logging-in, inquiry, purchase and administrator and the like. The system which is based on B/S structure has a feature of low spending, user-friendly operation and convenient management. Key words: subscribing newspapers and periodicals online; ASP.NET; Browser/Server 目录1.前言12.需求分析22.1可
7、行性分析22.2性能需求23.概要设计44.详细设计74.1系统目标设计74.2 开发环境简介84.3 系统功能分解104.4用户功能模块114.5 用户订阅功能154.6订单生成和退订功能214.7 管理员模块265.系统调试与运行326.心得体会337.参考文献348.致谢351 前言近年来,随着Internet的不断发展,网络上出现了一个新的订购系统,即网上订购系统。网上订购系统能够为用户提供充足的信息和快捷的查询手段。一直以来人们使用传统人工的方式进行商品的销售,这种方式存在着许多缺点,如:效率低、保密性差,耗费大量的人力和物资,另外时间一长,将产生大量的文件和数据,这对于查找、更新和
8、维护都带来了不少的困难。如报刊的订阅。随着我国信息产业的迅猛发展,手工管理方式已不适应社务管理的要求,报社的日常管理正面临着信息化的挑战,采用计算机管理以提高服务质量和管理水平势在必行。发行管理是社务管理的一个重要组成部分,是报社和客户联系的纽带,是办报质量评判的一个重要标志。目前很多报社成立自己的发行机构,打破原来由邮局统一订阅的方式,从而提高服务质量。报刊发行管理系统就是为满足报社的这种需要而研制开发的一个应用。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。网上发行订阅报刊作为电子商务的一种应用形式,具有广阔的
9、发展前景。因此研究如何构建高效可靠的网上报刊发行订阅系统具有实际意义。基于B/S结构和.NET平台,使用ASP.AET和数据库技术设计和实现网上报刊订阅系统是一种可选的方案。网上报刊发行订阅作为电子商务的一种应用形式,具有广阔的发展前景。2 需求分析传统的报刊发行系统,工作量大,操作繁琐,容易出错。随着信息技术的不断发展,尤其是Internet的快速发展,复杂繁琐的人工报刊发行订阅已经远远不能满足人们的需求,越来越多的人希望能获得更大的方便。在以前人们必需亲自到邮政部门去订阅报刊,部门管理人员也必须对订阅的信息进行分门别类,这种人工方式显然浪费了顾客和工作人员大量的时间。网上报刊发行系统可以让
10、人们足不出户便能订阅到自己想要的报刊,让发行人员简单快捷的管理和发行报刊。此报刊发行订阅系统与传统的报刊发行方式相比,具有很大的优势。例如,查询报刊便捷,可提供如报刊信息的查询、顾客的评论等个性化服务。随着网络的发展,科技的进步,报刊订阅发行系统的巨大潜力预示着其前景的灿烂。开发本系统除了应有一般网上购物功能外还应有以下特点:(1).界面清晰、功能实用、操作简便。(2).轻松管理,容易上手。目标系统必须具有可靠性、安全性、可维护性、可移植性等,权限方面设为客户和系统管理员。(3).尽可能让更多的客户参与在这个报刊订阅平台,讨论大家关心的热点问题,提出大家对商品需求的宝贵意见。(4).开发周期短
11、、维护费用低、系统更新速度快。2.1可行性分析(1)技术可行性本系统仅需要一台装有VS2005和SQLSever个人版软件的计算机即可。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件,数据库使用SQLServer 2000。(2) 经济可行性由于本系统是为报刊的发行和订阅而设计的,本系统可以大量减少人力的开支,也应此能取得较好的经济效益。(3) 操作可行性界面设计充分考虑了客户的需求,浏览快、方便且直观可靠。操作简单,具有一定的可行性。2.2性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满
12、足以下的性能需求:1. 系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量。2. 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩充性。3. 系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。4. 系统的数据要求:(1)数据录入和处理的准确性和实时性。(2)数据的一致性与完整性。(3)数据的共享与独立性。3 概要设计报刊发型系统逻辑上分成三层:表示层、业务逻辑层和数据层。表示
13、层用来表示信息和收集数据。在.NET框架下是由ASP.NET设计页面,它将系统的开发代码和用户接口内容分离,其结构更模块化,同时在ASP.NET中可运用各种控件提高编程效率。业务逻辑层负责实现应用程序中的业务逻辑,对报刊订阅系统的业务进行分析,将主要的业务封装成组件,这些组件准备好后,就可以供表示层的应用程序调用,按照具体的业务功能需求随意进行组合。数据层包括数据的定义、维护、访问和更新,以及管理并响应业务服务的数据请求等功能。报刊发行订阅系统包括前台客户订阅模块和后台管理员模块。客户通过前台可以浏览报刊信息、检索报刊和订阅报刊;后台管理模块是提供给管理者进行管理和维护的环境,包括用户管理、报
14、刊信息管理和订单管理等。以下是系统的总体构架图:1、管理员的主要流程分析:管理员主要是负责信息的管理,主要包括对报刊信息的管理,用户信息的管理以及用户订阅报刊后,产生的订单的管理。其架构图如图3.1:系统管理员信息管理用户管理报刊信息在线交流在线订阅报刊发行系统图 3.1 报刊订阅系统整体架构图2、用户的主要流程分析:用户首先可以匿名进入系统,进入后可以选择注册或登陆,也可以直接浏览以及查询报刊信息,当用户确定自己需要购买就将自己想要的报刊添加到购物车,此时,只有登陆过的用户才可以添加成功,如果用户没有登陆,会提示用户先登陆。登陆成功后便可以添加报刊到购物车,当验证用户已经登陆后就可以进入订单
15、生成阶段。其主要操作流图如图3.2:N浏览信息查选择 加入购物车系统登陆注册是否登陆生成订单提交订单用户图 3.2 客户订阅操作流图3、面像对象的分析:本系统主要是采用面向对象的分析,在系统中主要有两大角色,第一是客户,客户功能有注册、登陆、查看、订阅。另一个是管理员,管理员主要是管理信息。系统的用例图如图3.3图3.3 报刊订阅系统用例图系统的类图如图3.4所示:图3.4 报刊订阅系统类图4 详细设计4.1系统目标设计4.1.1系统设计原则为了使本系统功能齐全,操作简便,并能最大限度的提高网站的质量,满足客户的实际需要,在设计开发过程中遵循了如下原则:1.实用性原则:本系统是模型系统,但要基
16、本适合在线购物流程的实际需求,并能够处理一些特殊情况,此外,尽可能预留空间,以便扩充功能。2.准确性原则:对输入的相关信息建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如类型匹配,长度不超限等)。3.易操作原则:要求设计的系统功能齐全,接口友好,操作方便,必要地方进行提示。4.源程序可读性原则:为了便于以后扩充设计,维护人员读懂代码或以后的代码修改,软件升级维护,尽可能做好代码注释工作。5.优化原则:为了达到优化目的,合理的运用窗口,菜单,对象等继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简洁明了,也方便将来的维护。6.安全性原则4.1.2 设计思想由于此网站系
17、统旨在模拟真实的系统进行工作,尽量采用现有的软硬件环境,及先进的管理系统开发方案,从而达到充分利用现有的资源,提高系统开发水平和应用效果的目的。(1) 系统应基本符合在线订阅的流程,满足在线订阅操作的需要,并达到操作过程中的直观,方便,实用,安全等要求。(2) 系统采用先进B/S结构,Browers(浏览器端)负责提供表达逻辑,显示用户界面的信息和基本操作;Server(服务器端)负责实现数据服务。(3) 系统采用模块化程序设计方法,既便于系统功能地各种组合和修改,又便于未参与开发的技术人员的补充与维护。(4) 系统应具备数据库维护功能,及时根据客户要求进行数据的添加,删除,修改等操作,能够对
18、数据库表格进行备份。(5) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流连接,使各模块间的藕合性较低,方便系统运行,提高系统安全性。(6) 系统要求安全性极高,实时性强,无故障时间长,网络通畅,各终端客户能熟练的操作。4.2 开发环境简介4.2.1基于B/S结构的应用系统简介当前,管理信息系统(MIS)一般分为基于单机的集中式的MIS、基于C/S结构的MIS以及基于B/S结构的MIS。客户/服务器结构,即Client/Server结构,它的基本思想是应用程序或应用逻辑可以根据需要划分在服务器和客户工作站中,它既不像集中式系统那样所有的应用程序都在主机上执行,也不像文件服务器网络
19、那样所有的应用程序都在客户端执行,它可以使应用程序合理负担在服务器和客户端。在客户/服务器结构中,服务器应完成信息处理、数据管理、信息共享、安全管理、以及一些更高级的管理。另外,还要处理来自客户端的数据访问请求和将结果反馈给用户的工作。而客户端计算机是面向最终用户的,所以它的主要任务是提供友好的用户界面,提交数据访问请求以及接收和处理数据库的返回结果,组织返回数据的输出(如生成数据浏览窗口、生成数据报表和图形等),提供初步的数据验证功能等。浏览器/服务器结构,即Browser/Server结构,它的基本思想与C/S结构相似,应用程序或应用逻辑可以根据需要划分在服务器端和客户端中,于C/S结构相
20、比,B/S应用程序更多的运行在服务器端,由服务器程序进行处理,而客户端通常只处理一些界面设置、数据验证及一些简单处理。 例如,在本报刊订阅系统中,将由C#编写的服务器端程序来处理客户端的请求,由ASP.NET的验证控件来处理客户端事件。4.2.2 .NET Framework.NET Framework就是我们通常所说的.NET框架。.NET框架具有两个主要组件:公共语言运行库和.NET框架类库。公共语言运行库是.NET框架的基础。它是执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务。.NET Framework 类库是一个综合性的面向对象的可重用类型集合,用户可以使用它开发
21、多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的创新的应用程序。托管代码是指以运行库为目标的代码,而不以运行库为目标的代码称非托管代码。.NET框架也可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。(1)公共语言运行库()公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译、以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。运行库强制实施代码安全访问。它可由高性能的服务器端应用程序承载。(2)NET Framework
22、 类库().NET Framework 类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的、并提供用户自己的托管代码,可从中导出功能的类型。可以用.NET Framework支持的任何一种语言来访问类库。4.2.3 ASP.NETASP.NET是一种用于创建基于Web的应用程序的编程模型。从本质上来说运行时和.NET Framework类库集可以用于创建动态Web页。它需要在Web服务器的环境中运行,例如Microsoft Internet Information Server(IIS),并且根据服务浏览器请求指示在服务器上执行程序。与直接由Web服务器提供的静态HTML
23、不同的是,ASP.NET页面实际上是在服务器上执行以后再产生结果的。页面的最后生成也许是由许多不同的指令和/或数据源构造的。ASP.NET页面是以.aspx扩展名存储的。ASP.NET只是.NET Framework的一部分,所以ASP.NET页面可以利用这个框架提供的所有服务,包括联网,数据访问、安全以及更多其他服务。ASP.NET还在Web编程中引入了一些独特的新技术,可以在典型的动态服务器页面上极大地改善开发模式:语言独立性因为ASP.NET是.NET Framework的一部分,所以可以是用自己选择的语言来构建程序。此外其中的事件驱动编程模式,服务器控件都得到了大大的改善。4.2.4
24、Visual Studio 2005(VS2005)Visual Studio.NET 是.NET最佳的开发工具。Visual Studio.NET是一套完整的开发工具,用于生成ASP.NET Web应用程序等。VS不是开发C#应用程序所必须的,但使用它可以使任务更简单一些。可以在标准的文本编辑器中处理C#源代码文件,在使用命令行应用程序(.NET Framework的一部分)把代码编译到装配件中。VS有如下等等功能: VS可以自动执行编译源代码的步骤,同时可以完全控制重写它们时应使用的任何选项。 VS文本编辑器可以配合VS支持的语言(包括C#),这样就可以智能检测错误,在输入代码时给出合适的
25、推荐代码。 VS包括许多可视化和导航工程中元素的强大工具,他们可以是C#源文件代码,也可以是其他资源,例如位图图像或声音文件。等等。4.2.5 SQL SERVER数据库介绍SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。具有使用方便、可伸缩性好与相关软件集成程度高等优点。SQL Server 提供强大的开发工具和各类开发特性,
26、在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.Net集成极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、VB.Net、XQuery、XMLA、ADO.Net 2.0、SMO、AMO等都将成为SQL Server数据平台上开发数据相关应用的有力工具。在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和
27、认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。用户数据目前表明,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包
28、含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。4.3 系统功能分解结合以上的分析,下面我们对报刊发行系统的功能模块进行分解。本系统应具有的功能模块如下:前台客户功能可以概括为以下几点:报刊信息模块: 包括报刊信息的分类浏览,查询搜索等;用户信息管理模块: 处理用户注册、登陆验证、密码修改、找回密码;购物车模块: 存放选中的报刊、修改报刊订阅数量;订单模块: 此模块中的信息由购物车结帐时产生;后台管理者功能可以概括为以下几点:客户管理: 客户个人资料信息的管理,包括查询和修改客户信息;报刊管理: 添加、修改、删除报刊信息;订单管理: 处理客户订单、查
29、询订单;在本系统中,主要完成的是前台客户的功能。报刊发行系统前台客户后台管理报刊信息用户信息管理购物车订单客户管理报刊管理销售管理图4.1 系统功能模块分解的层次图4.4用户功能模块该功能中主要包括报刊信息的浏览,用户注册和登陆三个板块。4.4.1 信息浏览系统允许用户匿名进入,但是权限受到限制,用户只可以查看报刊的信息不可以将报刊添加到购物篮。如果匿名登陆用户试图将报刊添加到购物篮,系统将会给出提示。4.4.2 用户注册用户在主页中点击注册按钮会进入注册的页面,页面中用户需要输入相关的信息,其中用户名和密码是必须要填写的,当用户没有正确填写的时候会弹出提示对话框,提醒用户。用户输入完成后,点
30、击注册按钮提交自己的信息,如果没有错误,系统就会跳转到主页,让用户继续浏览查看信息。如果出现错误就会提示用户错误。例如,用户没有输入用户名就点击了提交,系统就会提示用户,输入用户名。两次密码输入的不一致,系统就会提示用户密码输入错误等等。用户注册后,提交的信息全部存放在Users表中。用户注册信息流程图如图4.2:YNYN输入信息注册成功用户名存在否密码验证图4.2 注册流程图系统的注册界面如图4.3所示:图4.3 注册界面部分主要代码如下:protected void rege_Click(object sender, EventArgs e)SqlConnection regeconn =
31、 new SqlConnection();regeconn.ConnectionString=ConfigurationManager.ConnectionStringsSqlconn.ConnectionString;regeconn.Open();string username = test(Username.Text);string userpwd = test(Userpwd.Text);string userpwd2 = test(Userpwd2.Text);string question = test(Frage.Text);string answer = test(Antwor
32、t.Text);string email = test(Email.Text);string cmd = INSERT INTO Users VALUES (+username+,+userpwd+,+question+,+answer+,+email+,);SqlCommand Inscmd = new SqlCommand(cmd,regeconn);SqlCommand checkcmd =new SqlCommand(SElECT COUNT(*) FROM Users WHERE username = +username+,regeconn);int count = Convert.
33、ToInt32(checkcmd.ExecuteScalar();4.4.3 用户登陆用户在主页里面可以看到登陆的LinkButton,当用户点击时就会进入登陆的页面,在登陆的页面里面输入用户的姓名和密码。当用户点击登陆的Button后,系统就会在数据库中查找相应的信息如果存在,就登陆成功,并返回首页,如果没有相应的信息就提示用户登陆失败。用户登陆流程如图4.4所示:YN登陆成功登陆失败输入信息信息正确否图4.4 用户登陆流程图用户登陆界面如图4.5 所示:图4.5 用户登陆界面部分后台代码如下:protected void Login1_Click(object sender, EventA
34、rgs e) SqlConnection loginconn = new SqlConnection(); loginconn.ConnectionString = ConfigurationManager.ConnectionStringsSqlconn.ConnectionString; loginconn.Open(); string username = Username.Text; string userpwd = Userpwd.Text; username = test(username); userpwd = test(userpwd); SqlCommand cmd = ne
35、w SqlCommand(SELECT COUNT(*) FROM Users WHERE username = + username + AND userpwd = + userpwd + , loginconn); int count = Convert.ToInt32(cmd.ExecuteScalar(); if (username = | userpwd = ) Page.ClientScript.RegisterStartupScript(this.GetType(), , alert(用户名密码不能为空!_!);, true); else if (count 1) Page.Cl
36、ientScript.RegisterStartupScript(this.GetType(), , alert(用户名或密码错误!);, true); else SessionLoginname = username; Response.Redirect(Default.aspx); loginconn.Close(); 4.5 用户订阅功能用户进入页面后,可以直接查找自己想要搜索的报刊。在搜索栏中直接输入报刊名称,就会将对应的报刊显示给用户。允许用户匿名进入页面。4.5.1 添加到购物车用户在查看报刊信息时,可通过“加入购物车”按钮来添加报刊到购物篮。在加入购物车的时候就会对用户的身份进行
37、验证,如果用户没有登陆,就会提示用户登陆,并且加入购物车失败。如果用户登陆就会提示用户加入购物车成功。用户将购买报刊加入购物车流程如图4.6所示:NY添加报刊登陆验证添加成功登录图4.6 用户登陆流程图图4.7 用户订阅主界面后台主要代码:protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) if (SessionLoginname != null) Sessionpaperid = GridView1.Rowse.NewSelectedIndex.Cells0.Text
38、; string PaperID = Sessionpaperid.ToString(); SqlConnection con = new SqlConnection(); con.ConnectionString = ConfigurationManager.ConnectionStringsSqlconn.ConnectionString; con.Open(); string name = SessionLoginname.ToString(); SqlCommand Papid = new SqlCommand(SELECT COUNT(*) FROM ShoppingBag WHER
39、E paperid = + PaperID + AND username = + name + , con); int count = Convert.ToInt32(Papid.ExecuteScalar(); if (count 0) SqlCommand check = new SqlCommand(SELECT COUNT(*) FROM ShoppingBag WHERE bagid = + j + , con); count1 = Convert.ToInt32(check.ExecuteScalar(); if (count1 0) j+; SqlDataAdapter Pape
40、rData = new SqlDataAdapter(); PaperData.SelectCommand = new SqlCommand(SELECT * FROM PaperData WHERE paperid = + PaperID1 + , con); DataSet ds = new DataSet(); PaperData.Fill(ds, paper); DataTable dt = ds.Tablespaper; DataRow dr = dt.Rows0; string a = new string5; for (int i = 0; i 5; i+) ai = dri.T
41、oString(); string name1; if (SessionLoginname != null) name1 = SessionLoginname.ToString(); SqlCommand Ins = new SqlCommand(INSERT INTO ShoppingBag (bagid,username, paperid, papername, sort, price, timelimited, num) VALUES( + j + , + name + , + a0 + , + a1 + , + a2 + , + a3 + , + a4 + ,1), con); SqlCommand Papid1 = new SqlCommand(SELECT COUNT(*) FROM ShoppingBag WHERE paperid = + PaperID1 + AND username = + name1 + , con); int count2 = Convert.ToInt32(Papid.ExecuteScalar(); if (count2 1) Ins.ExecuteNonQuery(); /显