前言:本站为你精心整理了毕业校园网站建设范文,希望能为你的创作提供参考价值,我们的客服老师可以帮助你提供个性化的参考范文,欢迎咨询。
校园网站设计
目录
第一章:绪论……………………………………………………………………………………1
1.1设计思想……………………………………………………………………………………1
1.2开发工具的选用及介绍……………………………………………………………………1
第二章:网站总体分析与设计…………………………………………………………………4
2.1网站系统分析…………………………………………………………………………………4
2.2、主页设计…………………………………………………………………………………4
2.3、数据库设计………………………………………………………………………………8
第三章:详细设计………………………………………………………………………………9
3.1家长学校联络簿……………………………………………………………………………9
3.2网上图书馆………………………………………………………………………………14
3.3网上评优投票系统…………………………………………………………………………22
3.4达级考试在线查分系统与计数器的制作…………………………………………………24
第四章:系统的使用说明与安装………………………………………………………………26
第五章:参考文献………………………………………………………………………………27
附录:源文件代码………………………………………………………………………………27
致谢…………………………………………………………………………………………………28
第一章绪论
在Internet飞速发展的今天,电子数字计算机是20世纪重大科技发明之一,而互联网成为人们快速获取、和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为机关、学校、企事业单位、甚至进入寻常百姓家的信息化建设中的重要组成部分,从而倍受人们的重视。而我校为了更好的办学,提高学校知名度,为家长和同学们提供一个友谊的桥梁,增加同学们和家长对学校一些事物的了解,建构北京市电子科技学院网站。
1.1设计思想
通过网站,全面宣传,展示学校风采、优点与特色,学校的活动安排与招生政策等信息内容,使学生及家长曾加对学校的了解,增强学生、家长与学校之间的联系,在Internet网上,让学生及家长及时得到学校的重要信息,同时也帮助了学校完成部分事务,提高办事效率,给学生、家长与学校最方便的联系桥梁。在这里学生及家长也可以提出意见及想法,互通教学之间的意见想法,更加有效的办好教学,和学生需要哪样的教学方式能够更好的吸收与接纳,这些都能成为学校的参考,以便更加的提高学校的教学质量。
1.2开发工具的选用及介绍
1.2.1ASP的优势
ActiveServerPages:“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或JavaScript是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(client)在IE浏览器中可以显示程序执行的结果,可是,客户端(client)若使用Netscape浏览器就无法显示VBScript的执行结果。
1.2.2ASP的特点
ASP的特点的特点为:
1、任何开发工具皆可发展ASP
只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPageExpress、FFrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。
2、语言相容性高
ASP与所有的ActiveXScript语言都相容,除了可结合HTML,VBScript、JavaScript、ActiveX服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(ThirdParty)所提供的语言。
3、隐密安全性高
如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是应届ASP程序先于网站服务(WebServer)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
4、易于操控数据库
ASP可以轻易地通过ODBC(OpenDatabaseConnectivity)驱动程序连接各种不同的数据库,例如:Access、FoxPro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel”文件当成数据库用。
5、面向对象学习容易
ASP具备有面向对象(Oobject-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。
6、对象名称功能描述
RequestResponseServerSessionApplicationObjectContext从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被
该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合MicrosoftTransaction服务器进行分布式事务处理,所以我选择了ASP结合FrontPage建构北京市轻工技术学院网站。
第二章网站总体分析与设计
2.1网站系统分析
根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:
学校风采通过学校概括、教师风采、校园之星及部分图片等内容来展现。
优点特色通过新闻、生动活泼的教育教学栏目来展现。
信息通过公告栏、信息查询等栏目来实现,内容有招生政策、活动安排等。
部分校务根据校务的公开程度与参与人数的多少,特选择图书管
理、评优、考试查分、家校联系四大校务在网上实现。
2.2主页设计
网站主页采用静、动相结合的方式,即静态的主画面和动态的图片相结合,体现学校的勃勃生气,静态主页方式介绍学校风采、优点特色、信息,对于四大校务,就得利用ASP与数据库结合的技术建立数据库查询管理系统,采用交互式的动态的web画面来实现。
主页结构图
2.3数据库设计
采用的数据库是MicrosoftAccess,拟建立teach.mdb库文件,包含如下几个表文件:
allmessage留言信息表
Flipbooks图书信息表
Libcategories图书类别信息表
Lineups图书馆用户信息表;
stud学生信息表
2.4提示
我们将提前为您介绍一下我们将使用的个别数据库等,方便您知道更多的信息,和使用的原因。
第四页
SQL语言介绍
2.4.1SQL基础
SQL(StructuredQueryLanguage,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、Sybase、MicrosoftSQLServer、Access、Ingress等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如"Select"、"Insert"、"Update"、"Delete"、"Create"和"Drop"常常被用于完成绝大多数数据库的操作。MSSQLServer就是用的Transact-SQL。
SQL语言有着非常突出的优点,主要是:
n非过程化语言
n统一的语言
n是所有关系数据库的公共语言
非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
SQL为许多任务提供了命令,其中包括:
n查询数据
n在表中插入、修改和删除记录
n建立、修改和删除数据对象
n控制对数据和数据对象的存取
n保证数据库一致性和完整性
以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。
第五页
所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
2.4.2SQL语句
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
DML(DataManipulationLanguage,数据操作语言):用于检索或者修改数据;
DDL(DataDefinitionLanguage,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象;
DCL(DataControlLanguage,数据控制语言):用于定义数据库用户的权限。
DML组可以细分为以下的几个语句:
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据;
DELETE:用于从数据库中删除数据。
DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:
CREATETABLE,ALTERTABLE,DROPTABLE,CREATEINDEX,DROPINDEX
下面是一个简单SQL语句的例子:
我们使用SQL语句来从Book中检索‘借书证号’为‘000001’的借阅者姓名:
SELECT姓名FROMBookWHERE借书证号=‘000001’
2.4.2.1DDL与DML
数据定义语言DDL:它是用来创建和修改数据库结构的一种语句,包括Create、Alter和Drop语句。
数据操作语言DML:包括数据查询与数据更新。数据查询主要是由Select语句完成,这一点不再赘述。而数据更新所造成的风险大大超过数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致性,确保有效的数据进入数据库,数据库必须保持一致性,DBMS还必须协调多用户的并行更新,以确保用户和它们的更改不至于影响其它用户的作业。
用于修改数据库内容的SQL语句主要有以下三个:
(1)Insert,向一个表中加入新的数据行
(2)Delete,从一个表中删除数据行
(3)Update,更改数据库中已经存在的数据
Insert标准语法:
INSERTINTOtablename(col1,col2...)VALUES(value1,value2...)
第六页
下例要将借书证号为‘000001’作为一个新的借书情况加入借书情况表OWNER中
InsertInto
owner(借书证号,图书编号,借书日期)
values(‘000001’,‘00000001’,‘2002-9-12’)
Insert语句还可以将多行数据添加到目标表中去,在这种形式的Insert语句中,新行的数据值不是在语句正文中明确地指定的,而是语句中指定的一个数据库查询。添加的值来自数据库自身的行,在某些特定的状态下,这是非常有用的。多行Insert语句为拷贝数据提供了一种紧凑而高效的方法,但我在自己做的图书管理系统中没有使用这种方法,我在系统中是使用循环依照上面的用法来完成多个记录的插入。
Update语句用于更新单表中选定行的一列或多列的值。要更新的目标表在语句中定义,Set子句则指定要更新哪些列并计算它们的值。Update语句总是包含Where语句,而且Update语句比较危险,所以您必须明确地认识到Where语句的重要性,Where语句被用来指定需要更新的行。
标准语法:
UPDATEtablename
SETcolumnname1=value1
[,columname2=value2]...
WHEREsearchcondition
Delete语句标准语法:
DELETEFROMtablenameWHEREcondition
2.4.2.2复杂操作实现
在信息管理系统中,我们往往会遇到归类、汇总、映射、索引、子查询等复杂操作,相应的支持与实现如下:
uGROUPBY方法
GROUPBY子句语法为:
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
GROUPBY"column-list";
这个GROUPBY子句将集中所有的行在一起,它包含了指定例的数据以及允许合计函数来计算一个或者多个列。
在本人的系统中在显示数据时用到了此语句来对查询所得的内容排序然后再显示。
u组合条件和布尔运算符
以下的SQL语句中就含有组合条件:
第七页
SELECTcolumn1,SUM(column2)
FROM"list-of-tables"
WHERE"condition1"AND"condition2";
下面是一个示例:
SELECT身份描述
FROMID,user
WHEREID.身份编号=USER.身份编号anduser.借书证号=’000001’;
这条SQL语句是从user、id表中查找借阅证号为000001的借阅者的身份描述,第三条语句中如果其中有一个条件为假,那么就什么都没有显示。
uUNION子句
有些时候,需要一起浏览多个查询的结果、组合它们的输出,我们可以使用UNION关键字。
注意:MicrosoftSOLSever2000(以下简写为SQLBSever2000)是功能强大的关系型数据库管理系统(RelationalDatabaseManagementSystem简称RDBMS)之一,越来越多的专业人士选择SQLBSever2000开发数据库管理程序,SQLBSever2000是Microsoft公司开发的SQLBSever的最新版本。SQLBSever是用来建立和管理数据库的引擎。它的作用和我们熟悉的桌面型数据库管理系统FOXBASE、VisualFoxPro一样,但在存储大容量数据方面、在数据的安全性和完整性的方面、在分布式处理和具有高效的机制等方面,像FoxPro等桌面型数据库管理系统是不能实现的。也就是说,SQLSever不仅可以实现个人数据库的管理,更适合于企业级的数据库应用。
第八页
第三章详细设计
3.1家长学校联络簿
3.1.1功能
利用SQL语法过滤特定的家长留言意见(上面我们已经有介绍),让老师可以针对某位特定学生家长所发表的意见做出独立的回答,同时,家长在发表个人意见时,若认为意见内容涉及敏感的话题或是意见内容涉及私人隐私,都可用“悄悄话”的方式发言,这些“悄悄话”将不会被显示出来让大家看到,当然,老师拥有管理的能力,只要以密码登录管理模式,就可以进行各个学生家长的单独意见回复,而且还能看到家长们所留下的“悄悄话”。
3.1.2组成构造
组成构造共分成六大部分:
1,意见留言结果网页guest.asp:用来显示家长发言与老师回复内容,同时还具备一般模式与管理模式两种显示方法。
2,家长发言表单网页addmsg.asp:让学生家长填写发言内容并选择发言性质。
3,家长发言数据处理ASP程序add.asp:处理家长发表的意见数据,同时将这些意见数据记录起来并将网页显示转向至意见留言结果网页。
4,老师回复表单网页teachans.asp:让老师针对某位特定学生家长所发表的意见做出独立的回答。
5,老师回复数据处理ASP程序anssave.asp:处理老师回复的数据内容,同时将这些意见数据起来并将网页显示转向至意见留言结果网页。
6,数据表文件allmessage:用来储存家长发言数据与老师回复数据的Access类型数据库文件。
“数据表文件”负责存放家长发言数据与老师回复内容的数据记录,为Access类型的库文件,将它定名为:“message.mdb”
下图为家庭联络簿的组成与流程图:
家长留言:
家长姓名
第九页
留言主题
联络信箱
留言内容
发送
▼(自动进入下一步)
老师回复
3.1.3数据库结构设计
数据库文件”teach.mdb“中的数据表”allmessage“的栏目设置
3.1.4界面设计与重点、难点代码的设计
数据库与留言显示程序网页:
家长发言与老师回复的内容数据全部储存在数据库中,要在网页中显示目前的家长发言与老师回复数据,必须先进行数据库的链接与打开,要链接数据库我们必须使用ADO对象群的Connection对象;而要打开数据库则必须使用ADO对象群的Recordset对象,程序:
第十页
setcan=server.createobject("adodb.connection")
cn.open"fields=c:\programfiles\commonfiles\orb\datasources\msaccessdatabase’s"
setas=server.createobject("adodb.recordset")
sol="select*fromallmessageorderby留言时间desk"
rs.opensql,cn,1,1
Recordset对象是负责浏览与操作从数据库取出来的数据,Connection对象只负责与数据库进行链接的动作,并不能使用数据库内的数据,因此必须建立一个可以存取数据库数据的Recordset对象,
使用RS.Open方法存取”teach.mdb”数据库
RS.OpenSQL,CN,1,1
使用open方法来打开数据表或执行Select指令参数设置如下:
1,参数一(SOURCE):为欲打开的数据表或SQL指令。
2,参数二(ActionConnection):指定一个已打开的数据库对象,将此参数设为链接我们已经建立好的Connection对象“CN”。
3,参数三(CursorType):指定Recordset的打开类型,1为可读写且可自由移动。
4,参数四(LockType):指定锁定类型,1为只读。
数据排序与SQL指令
1,Select指令的筛选语句:
格式:Select…From
在SQL语言中:“Select”数据表“中选取某些“栏位”的数据.
2.如果要选取的数据表数据包含了一个以上的栏位,则我们可以利用“,”逗号来栏位名称隔开。
3.如果要选取的数据表数据包含了全部的栏位,则可以利用万用字符“*”来代表全部的栏位。
可排序数据的Select指令
1.当我们希望被选取出来的数据记录数据能够依据某个或某几个栏位的内容来排序时,只要将这些排序依据的栏位摆放在“OrderBy“保留字之后,然后将这处排序的语句连接在”Select…From“后面就行了。
2.“OrderBy”默认的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,则我们可在栏位名称后再加上Desk“保留字!将排序方式改为”由大排到小。
在“显示留言意见”网页中的打开数据库ASP程序中的语句:
SELECT*Fromallmessageorderby留言日期Desk
第十一页
功能为:从数据表“allmessage”中取出所有栏位的数据,并将取出的数据记录内容依照留言日期“栏位使用的”由大排到小“排序方式进行排序。
留言显示网页的管理模式:
“显示留言意见”的网页就必须具备显示模式选择的功能,当显示模式在一般情况时要能显示家长们的一般性发言,同时还得将“悄悄话”的发言隐藏起来。当老师以密码登录成为管理模式时,则必须将一般性发言与悄悄话发言的数据全部显示出来,同时还得让老师们可以针对某位特定学生家长所发表的意见做出独立的回答。
这两个情况是通过密码登录管理模式的ASP程序实现的:
<formmethod="post">
<%ifsession("checkedit")="yes"then%>
<inputtype="hidden"value="yes"name="goexit">
<inputtype="submit"value="离开管理模式">
<%else%>
密码:<inputtype="password"name="password"size="4"maxlength="4">  <inputtype="submit"value="教师管理">
<%endif%>
</form>
在这段网页语句中,利用Session对象来记录目前的工作模式。当我们第一次进入“显示留言意见”网页的时候,我们所见的网页画面一定是一般!因为Session尚未被建立,因此它的“变量”值一定不会是“yes”,所以网页中会出现一个输入密码进入“教师管理”模式的栏位,只有当我们输入密码按下“教师管理”的按钮组织上发ASP程序中的进入管理模式语句后,Session对象才会被建立,同时,“checkedit”Session对象变量值被设置为“yes”,所以我们就进入了能将一般性发言与悄悄话发言的数据全部显示出来,同时还让教师们可以针对某位特定学生家长所发表的意见做出独立回答的管理模式页面。
留言显示网页的分页:
当家长的发言与老师回复的数据笔数太多时,一次要将全部的数据内容显示在网页中,等待网页下载的时间太长了,因此采用固定笔数分页浏览方式来显示网页。
要进行分页显示,得先知道目前有多少笔的留言数据,而留言数据笔数可以通过Recordset对象的“Recordcount”(记录个数)属性得知,我们将每10笔数据为一单位分页显示:
count=rs.recordcount
第十二页
ifcount/10>(count\10)then
totalpage=(count\10)+1
elsetotalpage=(count\10)
endif
“/”为浮点数除法,“\”为整数除法。
跳页选择的ASP程序语句
所有的发言数据采用固定笔数分页浏览的方式来显示后,还要提供一个跳页链接显示的功能,让浏览者可以选择希望浏览的页次进得浏览,ASP程序语句:
pagecount=0
rs.movefirst
ifRequest.QueryString("topage")<>""thenpagecount=cant(Request.QueryString("topage"))
ifpagecount<=0thenpagecount=1
ifpagecount>totalpagethenpagecount=totalpage
RS.Open(pagecount-1)*10
发言表单网页制作
inserttu3
表单的参数:
表单的Action参数:Action参数是用来指定Server端处理此一表单数据内容的程序,此处表单处理ASP程序为“add.asp“,
表单的Mouthed参数:要将表单传送至Server端的方式有两种,设置值分别为GET及POST,若设置为POST,则浏览器会等Server端来读取数据,若设置为GET,则当我们按下送出按钮时,浏览器会立即将表单中的数据内传送出去。利用POST方法,在传送的数据上将不受限制,利用GET方法传送的数据量则大约只有2K左右。
留言处理程序:
要将家长发言数据作后续处理及将这些数据内容存入数据库,须利用添加数据记录的InsertInto指令,然后再写入数据库文件中:
Insetinto指令语句格式:
Insertinto数据表名(栏目名)values(栏目值)
sol="insertintoallmessage(家长姓名,留言主题,联络信箱,留言内容,私人公开,留言时间,班级)values("
第十三页
sol=sol&"''''"&parent&"'''',"
sol=sql&"''''"&subject&"'''',"
sol=sql&"''''"&email&"'''',"
sol=sql&"''''"&memo&"'''',"
sol=sql&"''''"&personal&"'''',"
sol=sql&"''''"&now&"'''',"
sol=sql&"''''"&bj&"'''')"
unexecutedsol
回复表单程序网页
必须让老师们可以针对某位特定学生家长所发表的意见做出独立的回答,
使用Select…From…Where筛选语句
sol="select*fromallmessagewhere(编号="&ID&")"
rs.opensql,cn,1,3
然后将特定的家长发言数据放在表单,方法是将数据库中的数据取出来,然后放在表单栏位中:
“家长姓名“栏位网页语句标签
<tdbicolor="#CCCCFF"><fontsize="2"><%=RS("家长姓名")%><font></td>
“留言主题“栏位网页语句标签
<tdbicolor="#CCCCFF"><fontsize="2"><%=RS("留言主题")%></font></td>
“留言内容“栏位网页语句标签
<tdbicolor="#CCCCFF"><fontsize="2"><%=RS("留言内容")%><font></td>
老师在回复栏位中所填入的数据,必须送给处理老师回复数据的ASP程序”anssave.asp”来记录以及处理这些回复数据。当老师填写好回复发言的数据后按下“送出回复”按钮后,表单中的数据内容就会以“POST”的方式由SEVER端读取,然后将数据内容交由处理老师回复数据的ASP程序“anssave.asp”来将数据内容写入数据库。
3.2网上图书馆
网上图书馆将学校图书馆图书放到网络上供人借阅,这样不仅方便了校内的学生与教职员工使用图书馆的资源,还为图书馆管理员提供了一种简便地管理图书馆的方法.图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
因此本人结合开入式图书馆的要求,对MSSQLServer2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理
第十四页
系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。
3.2.1功能及应用需求
功能:
网上图书馆系统可以进行图书的出借和归还.还可以在系统中按照多种字段对图书进行查找,还可以浏览某个种类的所有图书.该应用程序也为图书馆管理员提供了一些功能,如添加、编辑以及删除图书等,或者在分类层次结构中添加新的种类。
应用需求分析:
图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看、维护并生成催还图书报表。
图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。
图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。
图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。设计不同用户的操作权限和登陆方法,对所有用户开放的图书查询,借阅者维护借阅者个人部分信息,借阅者查看个人借阅情况信息。
第十五页
3.2.2系统的层次结构
下图的每个方框代表校园图书馆网站中的一个页面。除了只包含HTML的Search页面外,其他的均为ASP页面。因为每个图书的页面都不同,所以大多数的页面实际上都是多页面。
3.2.3数据库设计
本系统共使用3个数据表:
Flipbooks表包含与图书有关的所有数据。该表中的字段内容的图书的通用信息。另外,对于已经出借的图书,该表中还包含借阅该图书的用户的ID号,以及图书的状态。
表视图如下:
字段名字段类型意义字段名字段类型意义
Booked数字书号Status文本状态
Title文本著者Number数字学好
Author文本主题Checkedoutto数字用户id
Subject文本书名Reservedby文本描述
IBM号Keywords关键字Description主题文本
LibCategories表包含Library中的所有类别,在访问者浏览图书列表时将会用到这些类别。每个类别都可以作为另外类别的父类别。有一个特殊的类别,Top-Level,没有出现在类别列表中,但是可以作为其他任何类别的父类别。
字段名意义字段类型
Categoryname类别文本(null)
parentcategory父类别文本(null)
Lineups表包含可以访问图书馆网站的用户信息。该表包含一些通用的信息字段,比如用于进入图书馆的用户密码等。
字段名意义字段类型字段名意义字段类型
emptied用户id(主键nonull)数字password用户密码文本
name用户姓名文本manage管理员代号数字
emailaddress用户邮箱文本
第十六页
图书馆数据库的数据关系。其中表Lineups和表LibCategories与表Flipbooks之间都是一对多的关系。每个雇员都可以借阅多本图书,每个类别都可以包含多本图书。
3.2.3界面设计与重点代码的设计
网上图书馆系统有两种用户,一是管理员。另一种是只允许使用图书馆系统,而没有管理功能的一般用户。访问者进入网站,首先要进行登录。当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了Degrade,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离
访问者输入E-mail地址和密码来登录,然后单击“登录”按钮。输入的数据提交后与数据库中的用户表进行匹配。
须创建一个记录来保存基于访问者登录的用户信息
setRefined=conn.Execute("selectEmptied,ManagerfromLineupswhere"_
&"EmailAddress=''''"&Request.Form("EmailAddress")&"''''and"_
&"Password=''''"&Request.Form("Password")&"''''")
ifRSFindEmp.EOFthen
TheMessage="密码或email地址不对."
Else
Session("Emptied")=Refined("Emptied")
Session("Manager")=Refined("Manager")
Response.Redirect"../yk.htm"
endif
表单域EmailAddress和Password用于Where了句中来获取一个记录。如果访问者输入了一个无效的用户名,则记录集中将不会返回匹配的记录。我们可以通过查看EOF标记来判断一个记录集是否为空。为空,则访问者将被拒绝进入该系统。不为空,则访问者的Emptied值和Manager值将从记录集中返回。写入Session变量,变量将在整个网站的所有网页中都是有效的。这些变量的存在与否及其取值将用于确定是否允许进入一个特定的网页,同时也用于访问者进行书目的归还和借阅操作。
图书馆菜单页面:
图书馆菜单页面包含指向其他4个页面的链接:管理页面、搜索页面、图书列表页
第十七页
面和主页面。还有一个可显示用户所借书籍的按纽。如果访问者是图书馆管理员,则菜单界面如图所示。如果访问者不是图书馆管理员,则看到如图所示的界面。非管理员的访问者的界面上没有指向管理员菜单页面的链接。
实现办法:访问者登录时在登录页面上的创建的会话变量Session用于从数据库中获取访问者的有关信息,表示它是否是管理员。如果值为1,就表明访问者是一个管理员,则用如下代码写入一个指向管理员页面的链接:
<%IfSession("Manager")=1then%>
<AHREF="../html/management_menu.asp">管理员菜单</A>
<%endif%>
通过按纽B1是否为空来判断要不要显示用户所借图书,利用一个记录集来获取访问者已经借出了的所有图书的列表。
IfNOTisempty(Request.Form("B1"))then
setRSBooks=conn.Execute("selectBookID,TitlefromLibBookswhere"_
&"CheckedOutTo="&Session("Emptied"))
endif
再用循环语句将所借书以表格形式显示出来。
<Tableborder=1width="90%">
<%ifNOTisempty(Request.Form("B1"))then
DoUntilRSBooks.EOF%>
<TR>
<TDWIDTH=40%height="20"><%Response.WriteRSBooks("Title")%></td></tr>
<%RSBooks.MoveNext
loop
endif
%>
</table>
循环将遍历Rebooks记录集中的每个记录,直到该记录集结束:
该网站中的所有ASP页面都会在访问者访问之前对其进行登录检查。这样就可以避免访问者通过输入某个页面地址然后在没有登录的情况下直接进入该页面的情况发生。此外,每个管理页面都要确认访问者是管理员。
管理菜单页面:
管理菜单页面有一个HTML表单,根据选择的按钮的不同,可以进行5种不同的操作:
第十八页
图书的归还、图书的编辑、图书的删除、图书的添加和类别的添加。不管选择了哪一个按钮,该表单都提交人其自身进行处理。
要进行图书的归还、图书的编辑、图书的删除三种操作,须先进行搜索,找到该书后,由图书Book.asp返回一个链接:
<%IfSession("Manager")=1then%>
<AHREF="../html/management_menu.asp?Title=<%response.WriteRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理员菜单</A>
<%endif%>
而管理者页面通过下列语句
<%=request.querystring("title")%>
<inputtype=hiddenname="BOOKID1"value="<%=request.querystring("BOOKID")%>>
这样就将所找到的书的书号BookID、书名Title传递管理者页面。再进行所须操作。共有3个不同的铵纽,可以进行3种操作。若单击“修改”钮:
则重定向到编辑图书页面,同时把Bookid传递给该页面。
Response.Redirect"./edit_book.asp?BOOKID="&request("BOOKID1")
将其他的情况需要建立到数据库的连接:
setconn=server.createobject("adodb.connection")
Conn.Open("FILEDSN=c:\ProgramFiles\CommonFiles\ODBC\DataSources\msaccessdatabase’s")
ifNOTisempty(Request.Form("Delete"))andrequest("BOOKID1")<>""then
conn.Execute"deletefromLibBookswhereBOOKID="&request("BOOKID1")
endif
if(NOTisempty(Request.Form("checkin")))andrequest("BOOKID1")<>""then
conn.Execute"updateLibBookssetcheckedoutto=0,status=''''Available''''whereBookID="&Request("BOOKID1")
endif
页面中的添加新的种类部分包含一个文本控件和一个选择控件。其中选择控件是用所有已经存在的类别列表进行填充的,包括特殊类别Toplevel,该类别表明当前类别是处于类别层次结构中的最顶层。代码如下:
先用一个记录集来填充父类别选择控件:
setRSCategories=conn.Execute("selectCategoryNamefromLibCategoriesorderby
第十九页
CategoryName")
再用下列循环语句:
<%DoUntilRSCategories.EOF%>
<OPTIONVALUE="<%response.WriteRSCategories("CategoryName")%>"><%response.writeRSCategories("CategoryName")%></OPTION>
<%RSCategories.MoveNextLoop%>
遍历RSCategories记录集中的每个记录,并作为一个选项添加到列表中,而记录集中CategoryName同时作为显示值和传递值:
本页面还包含一个指向添加图书页面的链接。
搜索结果页面:
搜索页面的代码获取与访问者查找规则相匹配的图书,然后将这些图书显示给访问者。
搜索页面上的表单包含一个选择控件和一个文本控件。选择控件中的选项是用可搜索的字段填充的:
需要用一个记录集来保存与访问者的查找规则相匹配的记录:
setRSBooks=conn.Execute("selectBookID,Author,Title,SubjectfromLibBookswhere"_
&Request.Form("SearchField")&"Like''''%"&Request.Form("SearchCriteria")&"%''''")
@注意:,符号%表示的是一个广义搜索。这一点类似于ACCESS中的符号*。
然后将所找到的书以表格形式显示出来。代码如下:
<%DoUntilRSBooks.EOF%>
<TRVALIGN="top"ALIGN="left">
<TDWIDTH=40%height="20"><B>书名:</B><AHREF="../html/book.Asp?BookID=<%Response.WriteRSBooks("BookID")%>"><%Response.WriteRSBooks("Title")%></A></TD>
<tdwidth=20%height="20"><B>作者:</B><%Response.WriteRSBooks("Author")%></td>
<tdwidth=30%height="20"><B>主题:</B><%Response.WriteRSBooks("Subject")%></td>
<%RSBooks.MoveNextLoop%>
图书页面
图书页面的代码显示图书的有关信息,以及管理图书的出借操作。
该页面通过Querystring传递BookID
第二十页
ifisempty(Request.QueryString("BookID"))then
Response.Redirect"./search.html"
endif
如果其中不存在,则访问者将被重定向到搜索页面:
如果同时传递表单中包含的变量Action不为空,则表明访问者正借阅该图书:
ifNotisempty(Request.QueryString("Action"))then
在这种情况下,需要将图书状态改为Checkout,同时需要将Checkedoutto字段修改为该访问者:
Conn.Execute"updateLibBookssetStatus=''''CheckedOut'''',"_
&"CheckedOutTo="&Session("Emptied")&"whereBookID="_
&Request.QueryString("BookID")
Response.Redirect"./library_menu.asp"
endif
然后将该访问者重定到图书馆菜单页面:
下一步,利用图书的状态来确定不同的链接
未借出时链接如下:
IfRSBooks("status")="Available"then
LinkText="<AHREF=""../html/book.Asp?Action=CheckOut&BookID="_
&Request.QueryString("BookID")&""">借这本书</A>"
如果图书已经借出,就创建一个不同的消息,并将链接设置为指向Librarymenu页面:
LinkText="<AHREF=""../html/library_menu.asp"">图书已出借,返回主菜单。</A>"
最后根据是否是管理员,显示管理员菜单链接。
<%IfSession("Manager")=1then%><AHREF="../html/management_menu.asp?Title=<%response.WriteRSBooks("Title")%>&BOOKID=<%response.writeRSBooks("BOOKID")%>">管理员菜单</A><%endif%>
3.3网上评优投票系统
3.3.1功能
能实现全校性的评选,快捷、公平,且有效,不允许做票。
3.3.2组成构造
这个系统由3个部分组成——投票页面vote.htm,处理投票结果的脚本,显示投票页面。
第二十一页
3.3.3数据表的设计:
3.3.4界面设计与重点、难点代码设计
投票页面
该页面是一个纯HTML文件,它让用户选择自己想选举的候选人,并填写自己的详细资料,以确认投票的有效性。页面显示如图所示。
表单处理脚本
在vote.htm中各项数据都填写完毕后,单击确定投票按钮,表单的数据就被提交,
本次评优共有8个候选人,但只能选一个。故用复选框。
投票的有效性通过是否是本校学生,且是否投过票来判断。
Ifrequest("passno")<>""then
sol="select*fromstudwherepassword="&"''''"&request("passno")&"''''"&"andyeti=0"
setas=unexecuted(sol)
ifreshelfthen%>
<h2align=center><%response.write"你无权投票"%></h1>
本设计允许少选,不允许多选。通过判断Vote投票界面传递过来的复选按纽值的长度看是否多选。
Vow=request("candy")
iflens(vow)>8then%>
<h2align=center><%response.write"多选了,无效"%></h1>
然后根据所投的票将对应候选人的投票结果字段加1,同时将该投票人的已投字段置为1。
Esq.="updatestudsetyeti=1wherepassword="&"''''"&request("parson")&"''''"
unexecuted(esq.)
ifinsert(vo,"1")then
unexecuted("updatestudsetresult=result+1wherename=''''马月颖''''")
endif
ifinset(vo,"2")then
unexecuted("updatestudsetresult=result+1wherename=''''张磊''''")
endif
ifinsert(vo,"3")then
ifinsert(vo,"4")then
unexecuted("updatestudsetresult=result+1wherename=''''宋颖''''")
第二十二页
endif
unexecuted(esq.)
ifinsert(vo,"5")then
unexecuted("updatestudsetresult=result+1wherename=''''马月红''''")
endif
unexecuted(esq.)
ifinsert(vo,"6")then
unexecuted("updatestudsetresult=result+1wherename=''''孙金辉''''")
endif
unexecuted(esq.)
ifinsert(vo,"7")then
unexecuted("updatestudsetresult=result+1wherename=''''王海军''''")
endif
unexecuted("updatestudsetresult=result+1wherename=''''陈雪然''''")
endif
ifinset(vo,"8")then
unexecuted("updatestudsetresult=result+1wherename=''''宋佳琦''''")
endif%>
显示当前投票情况show.asps
由于投票处理页面已经完成了绝大部分的工作,所以显示结果页面就很简单了,其功能是从Stud表文件中读取候选人所得票数,显示在页面上。
@值得注意的代码主要有以下几处:
该页面有自动刷新功能,使在线用户可以尽快的看到最新的选举情况。我们这里设定每隔30秒钟自动刷新一次。
<Metahttp-equiv="refresh"content="10;URL=show.asp">
显示投票时,我们采用了while循环,把候选人及其得票数,整齐地显示在一个表格中,这种技术在数据库查询结果的显示中也经常用到。代码如下:
<%whilenotself%>
<tr>
<tdwidth="100%"><center>
<fontcolor="#8000ff"><big>
第二十三页
<%=he("name")&""&she("result")&"票"%>
</big></font>
</center>
</td>
</tr>
<%hs.movenext%>
<%wend%>
3.4达级考试在线查分系统与计数器的制作
3.4.1功能:
它提供了在线查看成绩。考生可以在网上使用这一系统,通过输入准考证编号来查询达级考试的结果。
3.4.2数据表的设计
与评优系统共用Stud表,表设计同上。
3.4.3界面设计与重点难点代码的设计
该模块需要查询者输入准考证号后来查看结果。若ID1不为空时,表示有表单输入,开始查询数据库。使用SELECT的SQL指令查询数据库的数据。先设定SQL指令,查询ID符合准考证编号Request.Form("ID1")的数据,下个“Execute”指令,即可开始执行存取、查询数据的动作了。并将查询结果储存到Recordsets组件RS中。
IFRequest.Form("ID1")<>""THEN
SetConn=Server.CreateObject("ADODB.Connection")
Conn.Open("FILEDSN=c:\ProgramFiles\CommonFiles\ODBC\DataSources\msaccessdatabase’s")
SQL="SELECTname,id,scoreFROMstudWHEREid=''''"&Request.Form("ID1")&"''''"
SetRS=Conn.Execute(SQL)
若考试通过,则显示考试的结果,包括姓名、准考证编号、总分和考试结果,分别由RecordSets组件的RS(1)、RS(2)、RS(3)、RS(4)得到。FS.Field.Count表示RecordSets组件的域的总数,由“forI=1toRS.Fields.count-1”,取得RS(I)各域的数据。配合<Table>表格的HTML语法,将结果填入表格的各单元格中。若还有下一个数据,就使用RS.MoveNext移到下一个位置。
3.4.4页面访问计数器的制作
利用文件处理组件FILESYSTEM的强大功能来制作,比用Application对象计数器要好,Application计数器当有20分钟没有人连上该网页或关机时,计数器会被归零。而文件计数
第二十四页
器却不会因时间而消失。我用Count.txt存放访问人次。代码如下:
whichfile=server.mappath("pic\count.txt")
setmyfile=server.createobject("scripting.filesystemobject")创建一个
setthisfile=myfile.opentextfile(whichfile)组件对象
next
visit=thisfile.readline
thisfile.close读取计数器数据文件Count.txt中的计数数据
visit=visit+1记录自加一次
length=Len(visit)
forI=1tolength
response.write"<imparc="&mid(visit,i,1)&".jog></imp>"将记录的数据用图片显示出来
next
setthisfile=myfile.createtextfile(whichfile,1)将新计数数据写入文件thisfile.writeline(visit)
setmyfile=nothing
数字图片我利用PHOTOSHOP中的文字特效制作了9个立方数字
第二十五页
第四章系统的使用说明与安装
4.1运行环境要求
1、此系统只能在以下环境中运行:
Windows98
PersonalWebServer3.0(PWS)
Microsoft?Access2000(9.0.2812)
4.2安装及设置
1、安装:
A.将本网站拷贝到硬盘上的某一目录下,如:拷贝至E:\MYY下。
B.运行PWS,将默认的Web站点主目录设置为该目录,如上例应为E:\MYY;
具体步骤:
a.选择“高级”项;
b.单击“编辑属性”按钮,在出现的“编辑属性”对话框中的“目录”项中填入“E:\MYY”,其他不变,确定;
2、设置
C.设置启动默认文档为:MYY.asp
第二十六页
第五章参考文献
[1]李世杰ActiveServerPages(ASP)3.0网页设计手册北京:清华大学出版社1999
[2]前沿电脑图像工作室巧学巧用Dreamweaver、Fireworks、Flash制作网页北京:人民邮电出版社
[3]ASP入门与实例演练薄小志编著中国青年出版社
[4]SQLSever中文版基础培训教程刘遵仁于忠清编著人民邮电出版社
附录:
INSERT用于检索数据
SELECT用于增加数据到数据库
UPDATE用于从数据库中修改现存的数据
DELETE用于从数据库中删除数据
DML用于检索或者修改数据;
DDL用于定义数据的结构,比如创建、修改或者删除数据库对象
DCL用于定义数据库用户的权限
第二十七页
致谢:
通过这次校园网站设计,使我曾加了很多的知识,也掌握了很多网页设计的操作技巧,虽然仍有很多不足之处,有在改良和增进,但这以不重要,重要的是我对网页的设计又有了更深的了解。这次毕业设计过程中,得到了很多的网络设计朋友的帮助和老师的指点,才得以完成,他们给我提供了很多有关网页设计的书和材料,并抽出时间帮我修改与纠正,在此表示衷心的感谢!