开篇:润墨网以专业的文秘视角,为您筛选了一篇汽车商务网站设制与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
本课题阐述了基于 ASP 技术实现网上汽车信息管理网站的设计,汽车信息管理网站可以使汽车的品牌、性能、车型、零部件、报价等以及企业和产品的相关信息, 动态信息, 完整的、高效的展现在 internet 上。
1 需求分析
首先分析网站里需要那些内容,以及各种内容之间的关系。把具体的对象和具体的操作相联系, 我们可以归结出汽车网站基本操作的流程图,如图 1。
2.1 功能设计
表 1 中用户关联的对象是自身,版面,公共信息,商业信息。分别根据用户与这些对象的联系给出一个明确的菜单,如表 1。对于管理员的功能,应该认为管理员是论坛的特殊群体,工作是设置汽车网站参数规则和维护论坛的正常运转。 管理员可以和所有对象产生关联,所以其功能设定也很丰富,如表 2。网络通讯及安全本栏目责任编辑:冯蕾第 7 卷第 2 期 (2011 年 1 月)网站一般存在两种用户:注册用户和管理员。 用户的权限是向下覆盖的,即上级权限包含下级权限。 这样论坛的基本功能就可以从各种需求中筛选出来了,即、浏览信息、留言。 基本功能就是构成论坛系统的必要功能,具备这些功能的 Web 系统即是网站。
2.2 扩展功能设计
具备了信息、浏览信息、管理信息,留言的 Web 系统就构成网站了,但是这样的网站很简单,没有吸引力,用户使用起来也不会很舒服, 无论是作为商业还是个人论坛都是没有竞争力的。所以需要为其添加一些更人性化的功能使内容更丰富。用表格形式列出可能的扩展功能,如表 3。添加了以上功能,网站就显得更具有亲和力了,而且也更具有实用性。
3 系统架构与数据库设计
3.1 功能模块的划分
模块的划分主要是按每一个对象的操作来归类。对于用户使用的模块称为前台模块,管理员使用的模块称为后台模块。 其划分如图 2。
4 基本设计
4.1 网站首页设计
当用户打开网站时,首先看到的是网站首页,用户从首页可以看到和网站相关的内容。 首先这个页面应该尽量的美观,操作截面也要看起来简单易用而且具有实用性。网站的首页分 4 个部分,上面是顶部是 LOGO,体现出网站的一个主题;接着是网站的导航部分;再下面就是网站分类信息;最下面就是网站的版权信息。
4.2 数据库连接函数
数据库连接在网站运行中是必不可少的,把这部分单独做成一个函数,在需要的时候只需要调用这个函数就可以了,而不用每次去写连接程序,这种复用可以让操作更加方便快捷。利用 ADO 的 Connection 来建立同数据库的连接。 建立 ADODB.Connection 对象,使用此对象的 Open 方法打开数据库。 用 Ac-cess 建立一个名为 cars.mdb 的数据库,并设计好所用的数据库表。 利用 Microsoft 公司的 OLE DB 机制连接 Access,用 OLE DB 不用建立 ODBC 就可以直接连接 Access 数据库。 见程序-1。程序-1 Access 数据库连接:<%Sub ConnectionDatabaseDim ConnStrdb=”/cars/db/cars.mdb”ConnStr=”Provider=Microsoft.jet.OLEDV.4.0”Data Source=”& Server.MapPath(db)Set conn=Server.CreateObject(“ADODB.Connection”)Conn.open ConnStrif Err ThenErr.ClearSet Conn=NothingResponse.Write ”数据库连接出错,请检查连接字符串。 ”Response.EndEnd ifEnd Sub%>Sub 声明了函数 ConnectionDatabase,End Sub 结束这个函数。 Dim 声明了变量 ConnStr, 这个变量是用来存储连接数据库信息的。变量 Db 声明了数据库文件所在的路径。为 ConnStr 赋值是声明 OLE DB 连接数据库的方式,Data Source 后面跟的是数据库文件所在的路径。 Server.MapPath 是 ASP 内置 Server 对象一个函数,用来取得网站目录下文件的绝对路径。 7~12 行是一个判断错误的信息,如果连接出错,Asp 的 Err 对象判断系统给出错误的存在,然后清除。
5 模块的实现
5.1 用户子系统
已经注册的用户,通过在主页下方的表单域中输入正确的用户名和密码即可进入用户页面。 用户名不存在或密码输入错误则显示“登录失败”页面,此时用户可根据提示在“重新输入”和“新用户注册”两个链接中选择一项做进一步的操作。 没有注册的用户可以浏览、搜索信息,但不能信息。 要信息则,必须先注册。 注册成功后,点击相应的链接就可直接进入主页。 本汽车信息管理网站的用户管理子系统的网页及网页结构列表如图 3 所示。用户登录成功后用户名存放在阶段变量”MM_username” 中,该变量能将登录的用户名带到网站的主页面,使得用户在进入网站页面时出现欢迎 *** 字段。
5.2 信息模块
一个网站最重要的是数据,数据部分最重要的只有两个,一个是用户数据,另一个就是信息数据。 而信息子是一个网站存在的根本,所以非常重要。
5.2.1 、修改、删除信息
对于、修改和删除信息,是重点,修改信息和信息是差不多的,而删除信息只需要根据数据库的信息 ID 实行删除操作,相对也比较简单。 信息的正文部分可以通过一些代码插图图片,让信息看起来更丰富多彩。信息的修改和是基本上相同的,不同的是修改时要取得原来信息的全部内容,这些内容都储存在信息表中。而删除信息只需要对信息表的相关信息的 ID 进行删除操作。
5.2.2 信息浏览模块
信息浏览模块部分最重要的是对数据库的操作,如信息的分页列表、搜索等。 信息的分页程序见程序-2。程序-2 信息分页程序(list.asp):Function Show_List_Topic()Dim Cmd,limitime,SQL,Rs,i,TempStr,ti,TopicTempStrDim PosttimeIf IsSqlDataBase=1 And IsBuss=1 ThenSet Cmd = Server.CreateObject("mand")Set Cmd.ActiveConnection=mandText="dv_list"mandType=4Cmd.Parameters.Append cmd.CreateParameter("@boardid",3)Cmd.Parameters.Append cmd.CreateParameter("@pagenow",3)Cmd.Parameters.Append cmd.CreateParameter("@pagesize",3)Cmd.Parameters.Append cmd.CreateParameter("@tl",3)Cmd.Parameters.Append cmd.CreateParameter("@topicmode",3)Cmd.Parameters.Append cmd.CreateParameter("@totalrec",3,2)Cmd("@boardid")=Mybbs.BoardIDCmd("@pagenow")=pageCmd("@pagesize")=Cint(Mybbs.Board_Setting(26))Cmd("@topicmode")=TopicModeIf limitime="" ThenCmd("@tl")=0ElseCmd("@tl")=limitimeEnd Ifset Rs=Cmd.ExecuteElseSet Rs = server.CreateObject ("adodb.recordset")If Cint(TopicMode)=0 ThenSql="Select TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,Mode From Dv_TopicWhere BoardID="&Mybbs.BoardID&" And IsTop=0 Order By LastPostTime Desc"End IfRs.Open Sql,Conn,1,1End IfMybbs.SqlQueryNum = Mybbs.SqlQueryNum + 1If Not (Rs.Eof And Rs.Bof) ThenIf IsSqlDatabase = 1 And IsBuss=1 ThenSQL=Rs.GetRows(-1)ElseIf TopicNum Mod Cint(Mybbs.Board_Setting(27))=0 Thenn = TopicNum \ Cint(Mybbs.Board_Setting(27))Elsen = TopicNum \ Cint(Mybbs.Board_Setting(27))+1End IfRs.MoveFirstIf page > n Then page = nIf page < 1 Then page = 1If page >1 ThenRs.Move (page-1) * Clng(Mybbs.Board_Setting(26))End ifIf Rs.Eof Then Exit FunctionSQL=Rs.GetRows(Mybbs.Board_Setting(26))End If'TopicID,boardid,title,postusername,postuserid,dateandtime,child,hits,votetotal,lastpost,lastposttime,istop,isvote,isbest,locktopic,Expression,TopicMode,ModeDim Showtitle,postusernameWith ResponseFor ti=0 To Ubound(SQL,2)‘显示信息部分省略NextSplitPageNum=Ubound(SQL,2)+1SQL=NullIf TopicNum Mod Cint(SplitPageNum)=0 Thenn = TopicNum \ Cint(SplitPageNum)Elsen = TopicNum \ Cint(SplitPageNum)+1End IfIf action="batch" And Mybbs.GroupSetting(45)=1 ThenDim Forum_Boards,Board_Datas,BoardJumpList,ii,DepthForum_Boards=Split(Mybbs.CacheData(27,0),",")‘显示部分省略End IfIf Forum_AllTopNum = 0 And ti = 0 Then Response.Write template.html(4)SQL=NullRs.CloseSet Rs=NothingSet Cmd=NothingEnd Function看<% Set Cmd = Server.CreateObject("mand") %>一句,这里用到了 ADODB 的 Command 对象,定义要对数据源执行的特殊命令,使用 Command 对象查询数据库并返回 Recordset 对象中的记录,以便执行大量的操作或对数据库结构进行操作。
5.3 信息搜索模块
如果网站的信息数据量比较大的时候,用信息列表的方式来人为的寻找某信息显然是很浪费时间的,这时要用到信息搜索的功能。 搜索最重要的是效率,这时就需要设计搜索需要的条件,使搜索达到最大效率。信息的搜索,首先是有两种搜索方式,搜索主题的关键字。 过滤不同的条件,有了这些条件可以增加搜索的效率。 搜索肯定要用到 SQL 的 Select 语句,那么关键就是 ASP 是如何操作 SQL 语句的。 见程序-3。
程序-3 信息搜索程序(Query.asp):Dim SearchUserID,RsSqlColumn = "Select Top " & Cint(Mybbs.Forum_Setting(11))*SearchMaxPageListIf stype=1 And (nSearch=2 or nSearch=3) ThenSqlColumn = SqlColumn & " BoardID,RootID,Topic,Expression,UserName,PostUserID,DateAndTime,IsBest,LockTopic,Body,AnnounceID From "ElseIf stype=2 And pSearch=2 ThenIf IsSqlDataBase ThenSqlColumn = SqlColumn & " T1.BoardID,T1.RootID,T1.Topic,T1.Expression,T1.UserName,T1.PostUserID,T1.DateAndTime,T1.IsBest,T1.LockTopic,T1.Body,T1.AnnounceID From "ElseSqlColumn = SqlColumn & " BoardID,RootID,Topic,Expression,UserName,PostUserID,DateAndTime,IsBest,LockTopic,Body,AnnounceID From "End IfElseIf stype=3 ThenSqlColumn = "Select Top 50 BoardID,TopicID,Title,Expression,PostUserName,PostUserID,DateAndtime,IsBest,LockTopic From "SqlColumn = "Select Top 50 BoardID,rootid,topic,Expression,username,postuserid,dateandtime,IsBest,LockTopic,Body,Announceid from "ElseSqlColumn = SqlColumn & " BoardID,TopicID,Title,Expression,PostUserName,PostUserID,DateAndtime,IsBest,LockTopic From "End If'Mybbs.Stats = template.Strings(2)Mybbs.Stats = template.Strings(4)If Trim(searchday)<>"" ThenMybbs.Stats = Mybbs.Stats & Replace(template.Strings(5),"{$searchday}",request("SearchDate"))ElseMybbs.Stats = Mybbs.Stats & template.Strings(6)End IfSelect Case stypeCase 1 ‘省略部分Case 2Select Case pSearchCase 1 ' 标题SqlColumn = SqlColumn & " dv_Topic Where "&searchboard&" "&searchday&"Title like '%"&keyword&"%' Order By TopicID Desc"Mybbs.Stats = Mybbs.Stats & template.Strings(10)Case 2 ' 内容,SQL 全文索引If Mybbs.Forum_Setting(16)<>"0" ThenIf IsSqlDataBase ThenIf Trim(searchboard)="" And Trim(searchday)="" ThenSqlColumn = SqlColumn & stable & " T1 Inner Join ContainsTable("&stable&",body,'" & keyword & "'," & Mybbs.Forum_Setting(11)*SearchMaxPageList & ")As T2 ON T1.AnnounceID = T2.[KEY] Order By T1.AnnounceID Desc"ElseIf Trim(searchboard)="" ThenSqlColumn = SqlColumn & stable & " T1 Inner Join ContainsTable("&stable&",body,'" & keyword & "'," & Mybbs.Forum_Setting(11)*SearchMaxPageList & ")As T2 ON T1.AnnounceID = T2.[KEY] Where "&Replace(Replace(searchday,"and",""),"DateAndTime","T1.DateAndTime")&" Order By T1.AnnounceIDDesc"ElseIf Trim(searchday)="" ThenSqlColumn = SqlColumn & stable & " T1 Inner Join ContainsTable("&stable&",body,'" & keyword & "'," & Mybbs.Forum_Setting(11)*SearchMaxPageList & ")As T2 ON T1.AnnounceID = T2.[KEY] Where "&Replace(Replace(searchboard,"and",""),"BoardID","T1.BoardID")&" Order By T1.AnnounceID Desc"ElseSqlColumn = SqlColumn & stable & " T1 Inner Join ContainsTable("&stable&",body,'" & keyword & "'," & Mybbs.Forum_Setting(11)*SearchMaxPageList & ")As T2 ON T1.AnnounceID = T2.[KEY] Where "&Replace(searchboard,"BoardID","T1.BoardID")&" "&Replace(Replace(searchday,"and",""),"DateAndTime","T1.DateAndTime")&" Order By T1.AnnounceID Desc"End IfElseSqlColumn = SqlColumn & stable & " Where "&searchboard&" "&searchday&"body like '%"&keyword&"%' Order By AnnounceID Desc"End IfMybbs.Stats = Mybbs.Stats & template.Strings(11)ElseResponse.redirect "showerr.asp?ErrCodes=<li>"&template.Strings(19)&"&action=OtherErr"End IfEnd Select程序里基本上都是在使用 SELECT 语句, 在程序的第二行的代码是<% SqlColumn = "Select Top " & Cint(Mybbs.Forum_Setting(11))*SearchMaxPageList %>就有 Select。 这里的 Select 除了一般的语法外还用到了一些统计上的函数。 使用语法如下。Select 函数(栏位名称) From 表名 where 表达式在信息搜索完成后,将搜索所取得的主题要形成一个信息浏览列表,这部分和信息的显示与浏览模块是基本上相同的,只是取出了需要信息的 ID 重新生成一个 ID 序列。
5.4 留言板管理子系统
本子模块中用户可以留言,实现网站与访问者之间的沟通,收集用户意见和信息。
6 结论
随着信息技术的发展和汽车的普及,通过网络让汽车用户联系越来越受到人们的重视,汽车信息管理网站是现代沟通与交流的新形式。 我们所开发的这个汽车网站是基于 Browser/Server 结构模式的,选用了 ASP 作为网站开发工具,以 Access 数据库作为本网站的数据库。 该网站的管理系统分为用户管理、信息、信息搜索,留言板管理,管理员管理五个子系统。