电影搜索网站

摘 要

随着网络技术的飞速发展,人们对网络应用的要求越来越高。目前传统的数据格式,如文本、图像和图形已被数字化,可通过网络存储、传送和表现。但是这种传统的无视频的点播已经满足不了百姓的需求,视频等连续媒体由于其特有的属性决定了其在网络中传输需要采用一些特定的技术。为此,设计和开发的电影搜索网站。电影搜索网站丰富了人们的生活,提高了人们上网质量,是时代的需要,也是网络发展的要求。

本系统是基于B/S模式,采用的是ASP.NET+ SQL Server 2008模式的开发集成环境。此系统的设计从功能上来说,是比较完备的,系统以Web界面与管理员交互,为管理员提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。本系统的基本功能:数据进行录入、修改、删除、查询、统计的基本功能。

关键词:ASP.NET ;电影搜索;SQL


目  录

1、概述

1.1课题背景和意义

2、可行性分析

2.1经济上的可行性

2.2技术上的可行性

2.3操作上的可行性

2.4功能需求分析

3、电影搜索网站设计开发的业务流程、数据流程

3.1业务流程分析

3.2数据流程分析

3.3数据库概念结构设计

3.4数据库逻辑结构设计

4、系统     

4.1 系统实现软件简介

4.1.1. Visual Studio 2010

4.1.2. Microsoft SQL Server

4.1.3.IIS

4.2系统的软硬件平台

4.3 ASP.NET技术

4.3.1 .NET简介

4.3.2 ASP.NET技术简介

4.3.3.ADO.NET访问数据库的原理

5. 系统操作说明

5.1系统前台操作说明

5.1.1首页页面

5.1.2视频新闻页面

5.2系统后台操作界面

5.2.1登陆页面

5.2.2视频新闻添加页面

5.2.3视频信息页面

5、结论

5.1系统的特点

5.2系统的不足和改进

5.3设计收获与心得

6软件测试与分析

6.1系统测试的定义

6.2系统测试的目的及意义

6.3系统测试的重要性

6.4系统测试的常用方法

6.5测试环境与测试条件

6.6系统运行情况

6.7测试总结

   

   

1、概述

1.1课题背景和意义

电影搜索网站(BroadVision VOD)是将视频采集设备获取的视音频(电视、录像带、摄像机等)数据流及VCD、DVD、WAV、AVI、MPG、MP3等格式文件 或制作好的音视频节目统一批量编码转换为ASF、WMV、WMA、FLV等流媒体格式数据以实现视音频内容的统一管理和共享利用,通过网络可以点播自己喜欢的视音频节目。

网络应用越来越广泛,从文字、图像到多媒体。在日常生活中,每个人都曾遇到过这样一个问题,电视节目的时间表是固定的,而由于各种原因你会经常错过许多优秀影片。人们希望能够随时收看自己想看的精彩节目,今天随着视频点播系统的问世,使这种想法慢慢变为现实。视频点播的本质是信息的使用者根据自己的需求主动获得多媒体信息,它区别于信息发布的最大不同:一是收看者具有主动性,二是资源具有可选择性。从某种意义上说这是信息接受者根据自身需要进行自我完善和自我发展的方式,这种方式在当今的信息社会中将越来越符合信息资源消费者的深层需要,可以说视频点播是信息获取的未来主流方式在多媒体视音频方面的表现。视频点播的概念将会在信息获取的领域快速扩展,具有无限广阔的发展前景。人们只要登录电影搜索网站,就能够根据视频的名称或者种类进行视频的检索,查找自己想要观看的视频,如果想要上传视频,就需要注册成为会员,会员同样可以搜索和观看自己感兴趣的视频,也可以管理自己上传过的视频,会员上传视频时,可以加入对视频的详细介绍,方便其它用户在查找时区别。

据我国IT行业发布的报告表明,近年来,我国互联网发展呈快速增长趋势,网民的数量已达8700万,逼近世界第一,而随着人民生活水平的不断提高,精神需求的提高也日益体现出来,作为一种较普及的艺术形式,视频逐渐为人所喜欢。而视频爱好者们平常交流只限于小团体内部,及部分视频展或是视频刊物,没有一种能让他们能够进行大众形式的交流的平台。网络的诞生和发展,颠覆了传统的信息传播方式,冲破了存在于传统交流方式中时间和空间的种种壁垒,极大地改变了人类从物质到精神、从形式到内容、从生产到生活的各种活动,并且给人类带来了新的机遇和挑战。信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平成为衡量一个国家综合国力的重要标志之一。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类信息系统对数据管理的要求,在文件系统的基础上发展基础数据库系统,数据库方法针对事物处理中大量数据管理需求提供了更加周到和人性化的服务。

作为一项无国界沟通工具,中国政府一直很重视视频产业的进步和发展。随着全球经济日趋一体化,国际、国内竞争越来越激烈,我国视频业也面临巨大的机会和挑战,所以采用国际先进的信息传播方式和思想成为视频可持续发展的重要保障之一。

网络视频系统被广泛应用于在线电影点播系统被广泛应用于在线电影点播系统被广泛应用于在线电影点播系统被广泛应用于在线电影点播。

2、可行性分析

2.1经济上的可行性

如今,随着计算机的大量普及,各种软件的开发成本越来越低,价格也越来越底。本系统也是这样,开发成本较低,只是需要一台配置一般的计算机,该系统运行时占计算机的资源也不多,也并不会因为开发成本低而造成系统功能性能的下降。相反,随着计算机技术的发展,各种实用软件的性能日渐提高。电影搜索网站廉价的开发成本,却能够为居民带来相当大的实惠和方便。

计算机和网络技术的不断进步和提升,使人类的信息传播方式和生活方式都得到了很大的改变,而各个产业都在自己的领域中不同深度的融入了计算机及网络技术,对本行业的发展起了很大的推动作用。基于B/S模式的视频点播网站克服了传统交流方式时所带来的人力、物力以及时间上的浪费和交流影响深度的限制,同时也保证了交流过程的科学化、高效化,使交流过程方便、准确、快捷、深入人心。本课程设计利用ASP和SQL 2000技术实现。

网络技术的迅速发展,使得人类社会突飞猛进,网络交流是其中一个重要的增进渠道。采用这种交流方式,一是无纸化交流,节约的造纸印刷资源不可计数;二是在交流方式及方法上有了多种选择,增加了信息的可读性和丰富性。

总之,伴随着个人电脑的普及和使用电脑人口的增加,网络交流在众多的销售渠道中脱颖而出,其地位及占有量一定会逐渐增加。技术革命引发产业结构变革,市场的竞争规则也会跟着发生变化,网络交流的产生是流通领域中的一场革命。

  由此,可以得出,本系统在经济上是绝对具有可行性。

2.2技术上的可行性

本系统的开发计划利用VS2010作为开发工具。VS2010是一个具有完善开发工具的平台。VS2010提供的工具适合各种水平层次,无论是初学者还是有经验的团队,并适合各种不同的开发需求。降低了开发的复杂度,其提供给开发者更加简便动态的.Net Framework基础解决方案,其中包括了windows应用程序开发、office嵌入开发、Web应用开发、移动应用程序开发。改进了团队交流方式,VS2010为团队开发提供通道和完整的开发周期工具,从而增加了团队内部的交流与协作的效率。通过学习,熟悉和掌握.NET的使用方法,使用VS2010作为开发工具将使整个系统的模块化设计变得更加简便。

随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,网络信息交流已经是其中最大的一项功能。我们相信要不了太长有时间,会员就可以在网络世界上获得他们在现实世界上可以获得而不方便获得的所有信息。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。

 系统计划采用SQL SERVER 2008作为开发数据库。SQL SERVER 2008是一种客户机/服务器结构的关系数据库管理系统。SQL SERVER 2008提供了许多易于使用的图形化工具和向导,其中最常用的是服务管理器、企业管理器和查询分析器。它们为创建和管理数据库带来了很大的方便。

  在技术难度方面,有指导老师的指导、周围同学的热心帮助,加上对很多相关文献的参考,相信能够解决开发过程中所遇到的困难。

从技术上分析,现在的软件可以非常合理地达到所需要的技术要求。

2.3操作上的可行性

首先,设计网站的几种软件现在都比较流行,一般设计人员对这几款软件比较熟悉,可以利用这些软件设计出较完善的电影搜索网站。其次,系统的管理主要是信息的录入、修改、统计等工作,一般工作人员都能够胜任。从操作上来说是可行的。

本系统是一个基于Web的网上视频点播网站,是Web技术应用于网上交流中的产物,是视频发展历史上的一个新阶段。系统基于Web的工作界面,使视频爱好者无论身处何地,都能在浏览器中直接对新闻进行录入、浏览、修改、删除、查阅等新闻管理工作。在操作使用上十分方便,只需连上网,在自己的电脑上通过Web浏览器就可使用本系统,同时所有的操作都是基于Web的的操作方式,如:链接、按钮、文本框等等。所有的操作通过浏览器完成,客户端不需要配置其他应用软件,会员不需培训。因此,在操作使用上,本系统简单、方便,易于使会员接受,本系统尽力为会员着想,因而该系统是方便可操作的。

综上所述,本系统开发目标已明确,在技术、经济、操作等方面具备可行性,因此系统的开发是完全可行的。

2.4功能需求分析

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们深刻认识。作为计算机应用的一部分。通过前期的调查分析及研究,对本管理系统来说,分两种用户类型,管理员和用户。

系统实现的主要功能分为前台(web)和后台两个部分

A:前台(web)功能模块主要包括:

 1)用户登录、注册管理模块的实现

用户能对自己的注册信息或密码进行修改操作,未注册用户只能看到部分免费影视和收费影视的目录以及简介,预告片

2)电影分类浏览、搜索电影、电影推荐等模块的实现

用户可以通过电影的类别进行浏览。用户能很方便的找到自己感兴趣的电影进行观看。

如果用户有很明确的目的,知道电影的名字,就可以利用此搜索功能。如果用户对某个电影感兴趣,或认为比较好,就可以使用电影推荐功能,将信息发送给管理员。

3)视频在线播放模块的实现,对视频自主地进行音量控制以及播放暂停等功能。

4)影评发表模块的实现(用户可以发表自己对于视频或电影的评价,同时也可以向管理员提出意见。)

5)注册用户再次播放同一个软件时可以从上次播放位置开始播放。

B:后台功能模块主要包括:

 1)电影数据管理,实现添加、删除、修改影片信息等功能

 2)电影目录、分类管理

 3)用户管理模块(可以添加删除各类用户,查看用户信息)

 4)影评的审核与删除处理(对用户发表的影评进行管理,删除内容不健康的影评。)

以上是用户的主要需求,也是该系统主要功能,除了这些功能以外,在设计时也对一些细节做了优化与调整,使系统更具有完整性与实用性。

系统功能模块结构图如图2.4所示:

图2.4功能结构模块图

3、电影搜索网站设计开发的业务流程、数据流程

3.1业务流程分析

电影搜索网站工作流程为:系统启动并进入首页界面,用户可查看前台的信息。通过权限判断,本系统用户可以进行个人资料等操作。管理员可以进行系统后台的所有操作,包括管理上述信息以及数据分析等操作。本系统的业务流程图如图所示:

                            图3.1业务流程图

本系统是利用现代化的计算机网络技术对传统的电影搜索网站进行整合,按照实践过程设计完成的。此系统的设计有助于管理员对电影搜索网站的管理,在很大程度上可以提高效率,对信息进行及时更新等方面都可以提高不少速度。为了使系统在各项管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下系统开发目标:

1.操作简单、界面友好:完全控件式的页面布局,使得信息的录入工作更简便。

2.即时可见:对信息的处理(包括添加、修改、删除)将立即在对应的版块显示出来,达到"即时发布、即时见效"的功能。

3.功能完善:不仅包括常见系统的信息管理的各个方面:信息录入、浏览、删除、修改、查询等各个方面,完整地实现了系统对即时信息的管理要求。而且,还能进行上传、打印相关资源的管理。

4.方便移植:系统应具有实用性、可靠性和适用性。系统界面中所需的数据都存放于数据文件中,只要对该文件做部分修改,就能在系统界面上实现及时更新的效果,减少了更改系统源代码的复杂性。

5.动态管理:对系统数据库实行动态操作,能实现对数据库信息的动态查询、动态更新修改和动态录入数据。

3.2数据流程分析

数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。

电影搜索网站的数据流程:对本系统操作的数据源只有管理员一种用户,管理员有权限对数据库中的数据进行添加、修改、删除、查询。通过对本系统的需求分析,系统的基本功能已经确定。

3.3数据库概念结构设计

根据前面的设计规划,各个实体的具体描述ER图如下:

整体ER图如3.3a所示:

图3.3a  整体ER图

用户ER图如下:

图3.3b 用户ER图

新片ER图如下:

图3.3c 新片ER图

3.4数据库逻辑结构设计

现在需要将上面的数据库概念结构转化为SQL数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,形成数据库的表格以及各个表格之间的关系。

allgonggao表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

title

VarChar

255

255

3

content

Text

16

255

4

leibie

VarChar

50

255

5

shouyetupian

VarChar

50

255

6

dianjilv

VarChar

50

255

7

addtime

DateTime

8

23

allusers表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

username

VarChar

50

255

3

pwd

VarChar

50

255

4

cx

VarChar

50

255

5

addtime

DateTime

8

23

book表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

id

Int

4

自增编号

10

2

username

20

255

3

sex

4

255

4

body

500

255

5

qq

10

255

6

email

20

255

7

face

10

255

8

adddate

DateTime

8

23

9

ishidden

2

255

10

homepage

50

255

11

isrely

2

255

12

rebody

500

255

dianyingleibie表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

leibie

VarChar

50

255

3

addtime

DateTime

8

23

dianyingxinxi表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

yingpianbianhao

VarChar

50

255

3

yingpianmingcheng

VarChar

300

255

4

leibie

VarChar

50

255

5

diqu

VarChar

50

255

6

niandai

VarChar

50

255

7

yuyan

VarChar

50

255

8

shizhuang

VarChar

50

255

9

tupian

VarChar

50

255

10

zhuyan

VarChar

300

255

11

daoyan

VarChar

50

255

12

jianjie

Text

16

255

13

xiazaidizhi

VarChar

50

255

14

addtime

DateTime

8

23

dx表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

leibie

VarChar

50

255

3

content

Text

16

255

yonghuzhuce表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

yonghuming

VarChar

50

255

3

mima

VarChar

50

255

4

xingming

VarChar

50

255

5

dianhua

VarChar

50

255

6

youxiang

VarChar

50

255

7

QQ

VarChar

50

255

8

touxiang

VarChar

50

255

9

jiguan

VarChar

50

255

10

dizhi

VarChar

50

255

11

xingbie

VarChar

50

255

12

beizhu

VarChar

50

255

13

addtime

DateTime

8

23

14

issh

VarChar

2

255

youqinglianjie表:

序号

字段名称

字段类型

大小

允许为空

最大长度

备注

1

ID

Int

4

自增编号

10

2

wangzhanmingcheng

VarChar

50

255

3

wangzhi

VarChar

50

255

4

addtime

DateTime

8

23

      有了如上的数据结构和数据流程,我们就能进行数据库设计。

4、系统 的 具 体 实 现

4.1 系统实现软件简介

本系统所面向的对象是广大的互连网用户。因此,将要采用比较流行的B/S三层结构。

图2-4-1 B/S三层结构图

B/S体系结构与B/S体系结构相比不仅具有其全部的优点,而且又有B/S体系结构所不具备的独特优势:

(1)开放的标准:B/S所采用的标准都是开放的、非专用的,是经过标准化组织所确定而非单一厂商所制定,保证了其应用的通用性和跨平台性。

(2)较低的开发和维护成本:B/S的应用只需在客户端安装通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。

(3)用户使用简单,界面友好:B/S用户的界面都在统一的浏览器上,浏览器易于使用、界面友好,又因为它不再负责数据的存取和复杂数据计算等任务,只需要进行显示,因而大大降低了对客户端的要求。

从以上的分析与比较可以看出,B/S模式具有B/S模式无法替代的优越性:它简化了系统的开发和维护,并且特别适用于网上信息发布。因此,本系统采用了基于B/S模式的体系结构。

4.1.1. Visual Studio 2010

Visual Studio 2010是微软公司推出的开发环境。是目前最尖端的 Windows 平台应用程序开发环境。

Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。

Visual Studio有9个新功能:

它将是经典的一个版本,相当于当年的6.0版。而且它可以自定义开始页;新功能还包括:

1)C# 4.0中的动态类型和动态编程;

2)多显示器支持;

3)使用Visual Studio 2010的特性支持TDD;

4)支持Office ;

5)Quick Search特性;

6)C++ 0x新特性;

7)IDE增强;

8)使用Visual C++ 2010创建Ribbon界面;

9)新增基于.NET平台的语言 F#.

4.1.2. Microsoft SQL Server

SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,Microsoft SQL Server,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNⅨ 操作系统上的应用。

Microsoft SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的Microsoft SQL Server版本。这篇文章详细介绍了Microsoft SQL Server 2008中的新的特性、优点和功能。

微软的这个数据平台满足这些数据爆炸和下一代数据驱动应用程序的需求,支持数据平台愿景:关键任务企业数据平台、动态开发、关系数据和商业智能。

Microsoft SQL Server 2008新功能,这个平台有以下特点

· 可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。

· 高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。

· 智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。

4.1.3.IIS

IIS(Internet Information Server),是微软公司主推的服务器,最新的版本是IIS 6.0,IIS与Windows NT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet站点。

IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。

IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JavaScript开发软件以及Java,同时也支持CGI和WinCGI,以及ISAPI扩展和过滤器。

IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:

Microsoft Exchange Server 客户/服务器通讯和群组软件;     

Microsoft Proxy Server 代理服务器;    

用于连接IBM企业网络的Microsoft SNA Server;     

用于集中管理分布式系统的Microsoft Systems Management Server;   

Microsoft Commercial Internet System(MCIS)。 

IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,能够提供快速且集成了现有产品,同时可扩展的Internet服务器。 IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Network Management Protocol,简单网络管理协议)之类的NT已有管理工具。

IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),可以为Internet应用程序的访问提供一个简单的注册项。

4.2系统的软硬件平台

    1.客户机/服务器:采用Pentium II 或以上级别PC机,至少30M硬盘,Pentium90MHZ,支持VGA或分辨率更高的显示器

2.客户机/服务器操作系统:Window 98/Me/xp,也可使用Windows vista作为操作系统

3.数据库:SQL Server2008

4.网络:以太网组成的局域网,可设多台客户机。 

4.3 ASP.NET技术

4.3.1 .NET简介

随着网络经济的到来,.NET技术是一项革命性的技术。它是微软公司推出的新一代互联网软件和服务战略,是一种面向网络、支持各种用户终端的开发平台环境。它包含了分布式计算、XML、组件技术、即时编译技术等多种功能集成的环境。.NET环境使用统一的Internet标准(如XML)将不同的系统对接,并采用高度分布式应用服务架构,而且使用了一个综合的管理程序。该程序能管理平台中运行的服务程序,为运行程序提供强大的安全保护后台。

C#是微软公司专门为.NET量身定做的一种编程语言,它与.NET有着密不可分的关系。例如,C#的类型其实就是.NET框架所提供的类型,C#本身并无类库,而是直接使用.NET框架所提供的类库。另外,类型安全检查启动资源回收、结构化异常处理等也都是交由CLR(公共语言运行时)处理的。因此,C#是最适合开发.NET应用的编程语言。

4.3.2 ASP.NET技术简介

ASP.NET是微软公司继ASP(Active Server Pages:活动服务器页面)之后推出的用于创建、管理和部署Web应用程序的新的理想平台。它是使用.NET框架所提供的编程类库构建而成的。使ASP.NET创建、管理和部署Web应用程序变得非常容易。

ASP.NET所具有的新性能是:(1)Web Controls,它使得创建forms 和HTMLcontrols的工作变得简单易行。例如,在ASP中典型的选择框(select box)里,你不得不创建一个循环以便让控制系统装入数据。但在ASP.NET里,你将会拥有一个"data-bound",这意味着它会与数据源连接,并会自动装入数据。(2)语言支持,ASP.NET支持多种语言,它的缺省语言将是visual Basic而不是vbscript,这意味着我们可以摆脱vbscript的语言限制,我们的代码将是编译后运行的(而不是原来的解释执行)。(3)更好的代码控制,COM对象不需要再在服务器上注册,但是通过这种过程简化,你再也不能够在你的服务器上运行另外一个DLL版本,并且代码相当保密。这意味着,如果没有正确的开发工具和源代码,很难改变代码。(4)更好的升级能力,一个系统建成,本身有着一定的特性,以改进多处理器和串口环境中的性能。例如,session state 能够通过单独的处理器来维持,在一个单独的机器上,甚至在数据库中允许交叉的服务器会话。

ASP.NET可用的开发工具有记事本及Visual Studio.NET, 作为微软.NET战略的重要组成部分----Visual Studio .NET 已经于2002年3月22日正式在中国推出。

Visual Studio.NET 是一个功能强大的、高效并且可扩展的编程环境。它充分展现了应用程序开发的潜能,并提供了生成应用程序所需的工具和技术。这些应用程序将给当今的企业、机构提供强大的支持,并推动下一代基于XML Web 服务软件的发展。在Visual Studio.NET中,可以引用的资源有两者:一种是在工具箱显示加入到Form的组件,另一种是只可在程序中引用的各式对象链接库。

4.3.3.ADO.NET访问数据库的原理

微软的任何产品,现均冠上.NET一词, 因此ASP.NET结合数据库的设计与过去大不相同。ADO.NET就是ASP.NET中结合数据库的规格,但与过去的ADO差异甚大。

与数据库相连,ADO.NET提供了如下3种方式:(1)通过ODBC相连。(2)通过OLEDB相连。(3)直接与SQL Server相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。对于相连数据库的数据处理,也有2种方式,即一种是通过DataSet来隔离异构的数据源,另一种是以流方式从数据源读取(DataReader方式)。

ADO.NET的一个创新是引入了数据集(Dataset)。一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用相同的潜在的数据缓冲区。

Dataset及DataView由数据库取出记录后,须放入DataSet,如果要显示在控件中,须使用DataView。由提供程序至显示,流程如下图所示:

图4.3.3 ADO.NET数据处理流程图

5. 系统操作说明

5.1系统前台操作说明

5.1.1首页页面

打开系统首页,界面如图4.1.1所示。

图5.1.1首页页面

系统首页颜色欢快活泼,界面十分清晰,显得希望和朝气。最上方为系统功能导航栏,下方为各信息模块的显示区,整体呈左中右三块。首页设计功能齐全,没有冗余也没有遗漏,使用户能一视而知之。

实现本模块的主要代码如下所示:

{

    public string sql,ncontent;

    public string npics,nlinks,ntexts;

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            sql = "select top 5 id,title,shouyetupian from allgonggao where shouyetupian<>'' order by id desc";

            getsyt(sql);

            sql = "select top 6 id,title,addtime,leibie from allgonggao where leibie='影视新闻' order by id desc";

            getdata(sql);

            sql = "select top 5 * from yingpianxinxi  where zhaopian<>'' order by id desc";

            getdata2(sql);

            sql = "select content from dx where leibie='系统简介'";

            getdataxtjj(sql);

        }

    }

    private void getdataxtjj(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                ncontent = result.Tables[0].Rows[0][0].ToString().Trim();

            }

        }

    }

    private void getdata(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                DataGrid1.DataSource = result.Tables[0];

                DataGrid1.DataBind();

            }

            else

            {

                DataGrid1.DataSource = null;

                DataGrid1.DataBind();

            }

        }

    }

    private void getdata2(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                DataList1.DataSource = result.Tables[0];

                DataList1.DataBind();

            }

            else

            {

                DataList1.DataSource = null;

                DataList1.DataBind();

            }

        }

    }

    private void getsyt(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                int i=0;

                for(i=0;i<result.Tables[0].Rows.Count;i++)

                {

                    npics = npics + result.Tables[0].Rows[i]["shouyetupian"].ToString().Trim()+"|";

                    nlinks = nlinks + "ggdetail.aspx?id="+result.Tables[0].Rows[i]["id"].ToString().Trim()+"|";

                    ntexts = ntexts + result.Tables[0].Rows[i]["title"].ToString().Trim()+"|";

                }

                npics=npics.Substring(0,npics.Length-1);

                nlinks = nlinks.Substring(0, nlinks.Length - 1);

                ntexts = ntexts.Substring(0, ntexts.Length - 1);

            }

        }

    }

    public string CutStr(object str)

    {

        string strTmp = str.ToString();

        //     截取长度20

        if (strTmp.Length > 32)

        {

            return strTmp.Substring(0, 30) + "... ";

        }

        else

        {

            return strTmp;

        }

    }

}

5.1.2影视资讯页面

图5.1.2影视资讯页面

此页面实现的功能是让用户可进行新闻浏览,查看最新新闻动态,管理员可在后台进行数据的更新操作。

实现本模块的主要代码如下所示:

public string sql, lbtxt, lb,nkeyword;

    protected void Page_Load(object sender, EventArgs e)

    {

        lbtxt = Request.QueryString["lb"].ToString().Trim();  

        

        sql = "select id,title,addtime,leibie,dianjilv from allgonggao where leibie='" + lbtxt + "' ";

        nkeyword = Request.QueryString["keyword"];

        if (nkeyword != null)

        {

            sql = sql + " and title like '%" + nkeyword.ToString().Trim() + "%'";

        }

        sql=sql+"order by id desc";

        

        getdata(sql);

        

        

    }

    private void getdata(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                DataGrid1.DataSource = result.Tables[0];

                DataGrid1.DataBind();

            }

            else

            {

                DataGrid1.DataSource = null;

                DataGrid1.DataBind();

            }

        }

    }

    protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)

    {

        sql = "select id,title,addtime,leibie,dianjilv from allgonggao where leibie='" + lbtxt + "' order by id desc";

        getdata(sql);

        DataGrid1.CurrentPageIndex = e.NewPageIndex;

        DataGrid1.DataBind();

    }

5.2系统后台操作界面

5.2.1登陆页面                                                     

图5.2.1登陆页面

本模块是系统登陆界面,实现的功能是检测合法用户,验证其用户名密码,以杜绝非法用户侵入系统。只有输入正确的用户名和密码才可以增加删除设备,否则只能浏览设备实时信息。

本模块界面非常简单,就 “用户”和“密码”两个文本框以及“登陆”、“重置”按钮,但实现的方法比较复杂,因为系统要自动判断其输入的用户名及密码的正误。

实现本模块的主要代码如下所示:

protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            cx.Items.Add("管理员");

            cx.Items.Add("注册用户");

        }

    }

    

    protected void Button2_Click(object sender, EventArgs e)

    {

       // Response.Redirect("yonghuzhuce_add.aspx");

    }

   

    protected void Button1_Click(object sender, EventArgs e)

    {

        if (TextBox2.Text.ToString().Trim() == "" || TextBox1.Text.ToString().Trim() == "")

        {

            Response.Write("<script>javascript:alert('请输入完整');history.back();</script>");

            Response.End();

        }

        string sql;

        sql = "";

        if (cx.Text.ToString().Trim() == "管理员")

        {

            sql = "select * from allusers where username='" + TextBox1.Text.ToString().Trim() + "' and pwd='" + TextBox2.Text.ToString().Trim() + "'";

        }

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        // result = new TestOnline.Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                Session["username"] = TextBox1.Text.ToString().Trim();

                Session["cx"] = result.Tables[0].Rows[0]["cx"].ToString().Trim();

                Response.Redirect("main.aspx");

            }

            else

            {

                Response.Write("<script>javascript:alert('对不起,用户名或密码不正确!');history.back();</script>");

            }

        }

        else

        {

            Response.Write("<script>javascript:alert('对不起,系统错误,请不要越权操作!');</script>");

        }

    }

5.2.2视频新闻添加页面

图5.2.2视频新闻添加界面

此页面要实现的功能是管理员对新片的信息添加。包含的信息有:标题、内容和首页图片等。管理员可对以上信息的内容进行“重置”“添加”等操作。  

实现本模块的主要代码如下所示:

public string lb, lbtxt, sql; //定义全局变量

    protected void Page_Load(object sender, EventArgs e)

    {

        lbtxt = Request.QueryString["lb"].ToString().Trim();  //类别为提交来的参数

        

        leibie.Text = lbtxt;

         Random rnd = new Random();

         int n = rnd.Next(1, 100);

         dianjilv.Text = n.ToString().Trim();

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        string sql;

        sql="insert into allgonggao(title,content,leibie,shouyetupian,dianjilv) values('"+title.Text.ToString().Trim()+"','"+content.Text.ToString()+"','"+leibie.Text.ToString().Trim()+"','"+shouyetupian.Text.ToString().Trim()+"','"+dianjilv.Text.ToString().Trim()+"') ";

        int result;

        result = new Class1().hsgexucute(sql);

        if (result == 1)

        {

            Response.Write("<script>javascript:alert('添加成功');</script>");

        }

        else

        {

            Response.Write("<script>javascript:alert('系统错误,请检查数据库设置问题');</script>");

        }

    }          

5.2.3视频信息页面 

图5.2.3影片信息页面

此页面是以列表的形式呈现,清晰明了。包含的信息有:序号、编号、名称、类别、地区和主演等。管理员可对编号和名称进行查找,方便管理。

实现本模块的主要代码如下所示:

protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            leibie.Items.Add("所有");

            leibie.Items.Add("喜剧片");

            leibie.Items.Add("动作片");

            leibie.Items.Add("动画片");

            leibie.Items.Add("恐怖片");

            leibie.Items.Add("爱情片");

            leibie.Items.Add("战争片");

            leibie.Items.Add("科幻片");

            diqu.Items.Add("所有");

            diqu.Items.Add("港台");

            diqu.Items.Add("大陆");

            diqu.Items.Add("欧美");

            diqu.Items.Add("日韩");

            string sql;

            sql = "select * from yingpianxinxi order by id desc";

            getdata(sql);

        }

    }

    private void getdata(string sql)

    {

        DataSet result = new DataSet();

        result = new Class1().hsggetdata(sql);

        if (result != null)

        {

            if (result.Tables[0].Rows.Count > 0)

            {

                DataGrid1.DataSource = result.Tables[0];

                DataGrid1.DataBind();

                Label1.Text = "以上数据中共" + result.Tables[0].Rows.Count+"";

            }

            else

            {

                DataGrid1.DataSource = null;

                DataGrid1.DataBind();

                Label1.Text = "暂无任何数据";

            }

        }

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        string sql;

        sql = "select * from yingpianxinxi where 1=1";

        if (bianhao.Text.ToString().Trim()!="" ){ sql=sql+" and bianhao like '%" + bianhao.Text.ToString().Trim() + "%'";}if (mingcheng.Text.ToString().Trim()!="" ){ sql=sql+" and mingcheng like '%" + mingcheng.Text.ToString().Trim() + "%'";}if (leibie.Text.ToString().Trim()!="所有" ){ sql=sql+" and leibie like '%" + leibie.Text.ToString().Trim() + "%'";}if (diqu.Text.ToString().Trim()!="所有" ){ sql=sql+" and diqu like '%" + diqu.Text.ToString().Trim() + "%'";}if (zhuyan.Text.ToString().Trim()!="" ){ sql=sql+" and zhuyan like '%" + zhuyan.Text.ToString().Trim() + "%'";}

        sql = sql + " order by id desc";

        getdata(sql);

    }

    protected void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)

    {

        string sql;

        sql = "select * from yingpianxinxi order by id desc";

        getdata(sql);

        DataGrid1.CurrentPageIndex = e.NewPageIndex;

        DataGrid1.DataBind();

    }

public string riqigeshi(object str)

    {

        string strTmp = str.ToString();

        DateTime dt = Convert.ToDateTime(strTmp);

        string ss = dt.ToShortDateString();

        return ss;

        

    }

5、结论

毕业设计是体现我们对所学知识的领悟和应用,是对我们大学四年所学理论知识的一次巩固和提高,在此我对此次毕业设计做了三点归纳。

5.1系统的特点

电影搜索网站,采用ASP.NET+SQL的模式来订制的一个小型平台。本系统从功能上来说,比较完备。系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。系统实现了根据用户的需求及程序的应用与维护的易用性,将各个部分置于不同的模块当中,方便了程序的扩展与维护,同时建立了程序功能复用的基础。

5.2系统的不足和改进

本系统基本上满足了电影搜索网站管理方面的需要。在界面上力求做到简洁,在操作方面上尽量避免由于用户操作不当带来系统的出错现象。但由于时间仓促,本系统还存在不足有待改进。界面不够美观,需要进一步修饰和美化;对数,虽然本系统优化了不少,但要达到理据库操作的性能有待进一步优化想状态还有一段距离,如部分功能程序代码过长,如果后台数据库过大将会影响运行速度;部分数据库表的设计存在一定的冗余,有待进一步优化。根据系统的不足,继续改进和完善本系统。简化程序代码,可使不同界面之间能共享一些方法、函数和变量,这样就会提高系统的运行速度;使用数据库连接池技术提高数据库操作的性能;数据库的关系模式可以进一步规范化,减少冗余现象。

5.3设计收获与心得

毕业设计是体现我们对所学知识的领悟和应用,是对我们大学四年所学理论知识的一次巩固和提高。设计本系统的过程不仅是对我学过的知识的一次回顾,更是在对我处理问题、解决实际问题能力的培养和锻炼。通过本次毕业设计使我对系统开发有了深入的了解,我的编程能力也有了较大的提高。我在设计过程中也遇到了很多困难,但是通过指导老师和同学的帮助以及自己的努力,最终还是顺利地完成了毕业设计。

虽然,毕业设计只有短暂的几个月,但却使我充分认识到自身还存在很多不足的地方,还需要不断的努力实践来充实自己、完善自己,只有这样才能学无止境,以求得更大的发展。

6软件测试与分析

测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是"探测",在"探测"中发现软件的毛病。

6.1系统测试的定义

软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到"一锤定音"的作用。

6.2系统测试的目的及意义

软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。

6.3系统测试的重要性

软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件伞具交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。

事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

6.4系统测试的常用方法

程序测试的主要方法分为两大类,白盒测试和黑盒测试。

白盒测试:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。

黑盒测试:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。

黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出[16]。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。

本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了“尽早地和不断进行测试”,“保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的:

1功能检查。

检查功能是否争取,是否遗漏或实现不了应该实现的功能等。

2接口检查。

检查能否正确地接受信息或输出信息。

3数据检查。

检查数据结构或外部信息是否有(如数据文件)访问错误。

4性能检查。

检查性能需求能否得到满足。

5初始化、终止检查。

检查是否能进行正确地初始化或终止。

6.5测试环境与测试条件

处理器:Inter(R) Core (TM)2 Duo T5750

内存:2GB

硬盘:160G

操作系统:Windows XP

数据库:SQL 2000

6.6系统运行情况

系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:

(1)系统功能评价

根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。

(2)系统技术评价

本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了信访办公效率。

(3)系统经济评价

在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。

6.7测试总结

通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。

致   谢

大学生活在这个时候即将划上一个句号。但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。

回忆过去,许许多多的事情浮现在脑海:刚上大学时欢乐心情和兴奋的场景还历历在目。一切都是那么新鲜,那么富有吸引力。有快乐也有艰辛,有收获也有失落。衷心感谢学院所有支持帮助过我的老师,谢谢你们四年来的关心和爱护。同窗的友情同样难忘,你们与我共同走过了人生中不平凡的道路,给我留下了值得珍藏的美好记忆。   

最后,我要特别感谢指导教师XX老师。本论文是在她的悉心指导和热情帮助下完成的,老师认真负责的工作态度,严谨的治学精神和精深的理论水平都使我受益匪浅。她无论在理论上还是在实践中,都给予我很大的帮助,使我专业技能的应用水平得到很大提高,这对于我以后的工作和学习都有益处。值此论文完成之际,特别向指导老师表示衷心的感谢和崇高的敬意,谢谢您细心而又耐心地辅导,使我得以顺利的完成毕业设计开发工作,同时也要感谢其他帮助过我的老师和同学,他们在我成长过程中给予了我很大的帮助。

由于本人水平有限,加上时间紧促,本文一定有不少缺点和不足,恳请各位老师给予帮助和指正。

参 考 文 献

[1] 关系数据库系统概论及应用.朱瑛.北京:石油大学出版社,2003年  

[2] 软件系统开发技术.潘锦平、施小姚、姚天昉.西安:电子科技大学出版社, 2004年

[3]数据库系统概论.萨师煊、王珊.高等教育出版社,2003年

[4]基于Web的编程技术.第1版.范乐、于强.北京:铁道电出版社,2003

[5]软件工程.杨文龙,、姚淑珍、吴芸.北京:电子工业出版社,2002.7

[6]数据库技术.黄平.北京:机械工业出版社,2002.

[7]网络数据库应用教程.袁玫.北京:人民邮电出版社,2002.

[8] 鲍力巍.  基于信息化的风电设备制造企业供应链管理研究[D]. 华北电力大学(北京) 2011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值