查看完整版本: 校园网站设计

丢失信仰的猪 2007-6-6 12:57

校园网站设计

目 录r(R0Ojl d"d8P&Y1n6S
第一章:诸论………………………………………………………………..1 u1k-B@+Z ?x
1.1 设计思想……………………………………………………………………………………1
0bs TA7K \ 1.2 开发工具的选用及介绍……………………………………………………………………….1
o8}*oS$B+qv 第二章:网站总体分析与设计 2
)]%ub7q @-k7YK"L 2.1网站系统分析………………………………………………………………………………………….2z/|Y5pr xh`
2.2、主页设计 3;}^omh[
2.3、数据库设计 4
r'B8l*Us5U_/?X;| 第三章:详细设计 4
8o~_i(zL/Z"G7z 3.1 家长学校联络簿………………………………………………48Is(q0F?
3.2 网上图书馆 11!q*z9Y;\(E\3p
3.3 网上评优投票系统 20
yF)iL@3U x 3.4达级考试在线查分系统与计数器的制作………………………22.
e-|5I,Q7uZ 第四部分:系统的使用说明与安装 25y:?4CZI}
第五部分:参考文献: 26
&q[HbQ w2x 附录:源文件代码 27-ws1Way)h

,K#e*|0jO*F bA6h
C!z't6{e|a| 第一章 诸论
bU.a0l9nS3f_k 在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。为了更好的办学,提高学校知名度,特构建长沙市工商职业中专学校网站。s#KA f2f

}9K8Bru^aJ2_ 1. 1 设计思想3E6P&k,K!K!An
通过网站,全面宣传,展示学校风采、优点与特色,发布学校的重大活动安排与招生政策,增强家长与学校之间的联系,在Internet上实现完成部分校务,提高办事效率。
eeG3g2CL Y Fml*V_CPa#o
1.2 开发工具的选用及介绍
c]3S H Y|9gxg ASP的优势:6VsC],`N;y
Active Server Pages:“动态服务器网页”,一般简称为“ASP”,ASP之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的HTML格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如IE 或Netscape)都可以正确地获得ASP的“执行”结果,并且将这ASP执行的结果直接在浏览器中“浏览”,不像VBScript或 JavaScript是在客户端(Client)的浏览器上执行,若使用VBScript来设计程序,客户端(Client)在IE浏览器中可以显示程序执行的结果,可是,客户端(Client)若使用Netscape浏览器就无法显示VBScript的执行结果。
aGl J @R ASP的特点:
2J!kl1O1i3kW+Ri 任何开发工具皆可发展ASP
tN5Eo)Hg$J[L 只要使用一般的文书编辑程序,如Windows记事本,就可以编辑。当然,其他网页发展工具,例如,FrontPage Express、 FrontPage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写ASP,可能会发生一些意想不到的离奇状态。
T1g}.QR8I1Kn 通吃各家浏览由于ASP程序是在网络服务器端中执行,执行结果所产生的HTML文件适用于不同的浏览器。
+\E/JrVW 语言相容性高
fJ'\~Y ^ ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active X服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。
~f:lIB 隐密安全性高
w t/j,f7v8Q8\4F TkXV ` 如果我们在浏览器中直接查看网页的原始代码,就只能看到HTML文件,原始的ASP程序代码是看不到的!这是因杰ASP程序先于网站服务(Web Server)端执行后,将结果转换成标准HTML文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的ASP程序并不会轻易地被看见进而被盗用。
;X6j`M+k.m 易于操控数据库
Z&l]?#x5g ASP可以轻易地通过ODBC(Open Database Connectivity)驱动程序连接各种不同的数据库,例如:Acess、Foxpro、dBase、Oracle等等,另外,ASP亦可将“文本文件”或是”Excel” 文件当成数据库用。wc"hyBQ6Uv a
面向对象学习容易l"F6V%AE `0V:Yi
ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的“Application”对象或”Session”对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。
o0L/d#nMW*lf ASP的六大内部对象|Pb,[7n bR E
对象名称 功能描述d;g5@O8rhD
RequestResponseServerSessionApplicationObjectContext 从客户端取得信息将信息送给客户端提供一些Web服务器工具储存在一个Session内的用户信息,该信息仅可被该用户访问在一个ASP-Application中让不同的客户端共享信息可以用来配合Microsoft Transaction 服务器进行分布式事务处理
@h$[k;z du t
3wZ?hiD 所以我选择了ASP结合Frontpage架构长沙市工商职业中专学校网站(z/W jDZIZ(rp

qETi1gN l8M+T 第二章 网站总体分析与设计-??P0qbKL @
2.1网站系统分析7h Vi B:m$?
根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:(uV'F V(c
l 学校风采 通过学校概括、教师风采、校园之星及部分图片等内容来展现。*ax'VVy dosdl
l 优点特色 通过新闻、生动活泼的教育教学栏目来展现。
/Dq3E9m9I%A*x(NlB;? l 信息发布 通过公告栏、信息查询等栏目来实现,内容有招生政策、
6e|]\1}w$dDR 活动安排等。/uT+GsO1G%{yp0V
l 部分校务 根据校务的公开程度与参与人数的多少,特选择图书管
n y2gU6R by 理、评优、考试查分、家校联系四大校务在网上实现。~GO8B S5[ nMi
2.2主页设计 O#R U"B#{
网站主页采用静、动相结合的方式,即静态的主画面和动态的图片相结合,体现学校的勃勃生气,静态主页方式介绍学校风采、优点特色、信息发布,对于四大校务,就得利用ASP与数据库结合的技术建立数据库查询管理系统,采用交互式的动态的web画面来实现。
x$Y Q?;Q&P 主页结构图Q4wP\%] N2B)F-Y2f
注:带下划线的表示是链接方式

丢失信仰的猪 2007-6-6 12:57

2.3数据库设计
h"Ki\[] 采用的数据库是Microsoft Access ,拟建立teach.mdb库文件,包含如下几个表文件:3tYn M-Rq'w f([
allmessage 留言信息表 [+Z8E%yWwF @/sZ}||
Libbooks 图书信息表)YK4w h Xx
Libcategories 图书类别信息表
r6x~C5I#[4BPMTH Libemps 图书馆用户信息表;1t%E7A V mS a6d f
stud 学生信息表Q_-mtZ@DB!a
6d$oZ a8N|`
第三章 详细设计
#R"Fhc#b7J8hq 3.1 家长学校联络簿 JU%H+s}
3.1.1功能:.G(zU b9l(_H
利用SQL语法过滤特定的家长留言意见,让老师可以针对某位特定学生家长所发表的意见作出独立的回答,同时,家长在发表个人意见时,若认为意见内容涉及敏感的话题或是意见内容涉及私人隐私,都可用“悄悄话”的方式发言,这些“悄悄话”将不会被显示出来让大家看到,当然,老师拥有管理的能力,只要以密码登录管理模式,就可以进行各个学生家长的单独意见回复,而且还能看到家长们所留下的“悄悄话”。:O4\ P/O Ri E?4q
3.1.2组成构造/T ]&C$C"L*r4M`
共分成六大部分:
"jeEK }2oz 1, 意见留言结果网页guest.asp:用来显示家长发言与老师回复内容,同时还具备一般模式与管理模式两种显示方法。#k |:D;z(c*];_+g?o*D
2, 家长发言表单网页addmsg.asp:让学生家长填写发言内容并选择发言性质。)b{D h;A Y;{
3, 家长发言数据处理ASP程序add.asp:处理家长发表的意见数据,同时将这些意见数据记录起来并将网页显示转向至意见留言结果网页。0^M4rg/m([P?
4, 老师回复表单网页teachans.asp:让老师针对某位特定学生家长所发表的意见作出独立的回答。
"jkS7aI\E 5, 老师回复数据处理ASP程序anssave.asp:处理老师回复的数据内容,同时将这些意见数据起来并将网页显示转向至意见留言结果网页。)l7e6J'iTZ
6, 数据表文件allmessage:用来储存家长发言数据与老师回复数据的Access类型数据库文件。
R;]2\#~ZtZH “数据表文件”负责存放家长发言数据与老师回复内容的数据记录,为Access类型的库文件,将它定名为:“message.mdb”。r%B4g{zK0{

}Y!MD i YP| i 下图为家庭联络簿的组成与流程图:
Y_N;bs )U?w+f XF#j\O#i
老师回复
0h"w Uuo,L(CpN S0w[ M
-]d0MZg"Y6\F \(qYxFtI

m9Pk5])@"d] 家长留言
/? IhI R(Z:b$b 读入 写入*D.zi7|a#cNb

`mwm3gv9c3Q2L"d ].k;F.pxc {
I@,i(tA k yF7D
写入
2vs]{i+Lg+q-j ;t6wF YE ^C r#zj

%\0E?/~&E ] ^ 3.1.3数据库结构设计1\`bE:T1S!i-y
数据库文件”teach.mdb“中的数据表” allmessage“的栏目设置,如下图:q7JCEj.X0U

_xl9i*]\5`D 字段名 字段类型^f5}Jnv
y e"F)wSk;~et

1s!`8U-O/C 3.1.4界面设计与重点、难点代码的设计
~Xe1q g"Z 数据库与留言显示程序网页
0T)xs$f;z 家长发言与老师回复的内容数据全部储存在数据库中,要在网页中显示目前的家长发言与老师回复数据,必须先进行数据库的链接与打开,要链接数据库我们必须使用ADO对象群的Connection对象;而要打开数据库则必须使用ADO对象群的Recordset对象,程序:
UJ{(m"J
rK%r!S~| set cn=server.createobject("adodb.connection") W$Ql"u+L6_[
cn.open "filedsn=c:\program files\common files\odbc\data sources\ms access database.dsn"
{{e's_-P U5[ set rs=server.createobject("adodb.recordset")
%a rv7M1P;t r4Ww sql="select * from allmessage order by 留言时间 desc"S9rz%@`J n4A(Y u
rs.open sql,cn,1,1
A-h3z"B X6r7^b2M"n Recordset对象是负责浏览与操作从数据库取出来的数据,Connection对象只负责与数据库进行链接的动作,并不能使用数据库内的数据,因此必须建立一个可以存取数据库数据的Recordset对象,VC xs;eg N,b K/F ]
使用RS.Open方法存取”teach.mdb”数据库CoK:|3v
RS.Open SQL,CN,1,1
*d4L"C4s3]TE 使用open方法来打开数据表或执行Select指令参数设置如下:{&t.r,uMO(U
1, 参数一(SOURCE):为欲打开的数据表或SQL指令。Zz]&QF M M
2, 参数二(ActionConnection):指定一个已打开的数据库对象,将此参数设为链接我们已经建立好的Connection对象“CN”。HEv^4J;h{ v1U^(D
3, 参数三( CursorType):指定Recordset的打开类型,1为可读写且可自由移动。 w8\V0]-E
4, 参数四(LockType):指定锁定类型,1为只读。 |en7LX
数据排序与SQL指令
p n-lJ(K8~b 1. Select 指令的筛选语句:
3s6dwX(M 格式: Select…From
{9U`x p0g 在SQL语言中:“Select”数据表“中选取某些“栏位”的数据.&I&n hP6m&Z1E F;{
2.如果要选取的数据表数据包含了一个以上的栏位,则我们可以利用“,”逗号来栏位名称隔开。
B$]q*_#y-@b+uQ 3. 如果要选取的数据表数据包含了全部的栏位,则可以利用万用字符“*”来代表全部的栏位。 _?)EQ3{Ux
可排序数据的Select指令
HK l1\;k&kW&\ 1. 当我们希望被选取出来的数据记录数据能够依据某个或某几个栏位的内容来排序时,只要将这些排序依据的栏位摆放在“Order By“保留字之后,然后将这处排序的语句连接在”Select…From“后面就行了。L2}eF(UB
2. “Order By“默认的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,则我们可在栏位名称后再加上“Desc“保留字!将排序方式改为”由大排到小“。
9DO:xP#S~(kOl 在“显示留言意见”网页中的打开数据库ASP程序中的语句:
Kf%Yj[X O SELECT*From allmessage order by 留言日期 DescUKg"LiiRng(H(Mp6d
功能为:从数据表“allmessage“中取出所有栏位的数据,并将取出的数据记录内容依照”留言日期“栏位使用的”由大排到小“排序方式进行排序。
3f2Y!g;q!{9Oc/z Daj,c2s cM;yOJ5Dj ]L
留言显示网页的管理模式
U\3?3Cie4er “显示留言意见”的网页就必须具备显示模式选择的功能,当显示模式在一般情况时要能显示家长们的一般性发言,同时还得将“悄悄话“的发言隐藏起来。当老师以密码登录成为管理模式时,则必须将一般性发言与悄悄话发言的数据全部显示出来,同时还得让老师们可以针对某位特定学生家长所发表的意见作出独立的回答。
^a^:M2w(O 0b"_0?7vqz

'^ R+qKenq zA rt6hXE

U`_Q/[I 这两个情况是通过密码登录管理模式的ASP程序实现的:;` b&RPe txe,D
<form method="post"> As6ft6MK {QML
<%if session("checkedit")="yes" then%> }&|VSE.z
<input type="hidden" value="yes" name="goexit">
CJNI,GY <input type="submit" value="离开管理模式"> A:\!frn}0h
<%else%> [ITzx5x
密码:<input type="password" name="password" size="4" maxlength="4">  <input type="submit" value="教师管理"> q?| z,n8sGd f:d
<%end if%>
@B%h)@)w8{X </form> !B]({[ e!V;`k^5`
4Z }3Ek/W&qU
在这段网页语句中,利用Session对象来记录目前的工作模式。当我们第一次进入“显示留言意见”网页的时候,我们所见的网页画面一定是一般!因为Session尚未被建立,因此它的“变量”值一定不会是“yes”,所以网页中会出现一个输入密码进入“教师管理”模式的栏位,只有当我们输入密码按下“教师管理”的按钮组织上发ASP程序中的进入管理模式语句后,Session对象才会被建立,同时,“checkedit“Session对象变量值被设置为“yes“,所以我们就进入了能将一般性发言与悄悄话发言的数据全部显示出来,同时还让教师们可以针对某位特定学生家长所发表的意见作出独立回答的管理模式页面。
S-z U(| J"Tl+W+@ 留言显示网页的分页
e4y,CB T+?i\\ 当家长的发言与老师回复的数据笔数太多时,一次要将全部的数据内容显示在网页中,等待网页下载的时间太长了,因此采用固定笔数分页浏览方式来显示网页。 V]8@uUE
要进行分页显示,得先知道目前有多少笔的留言数据,而留言数据笔数可以通过Recordset对象的“Recordcount“(记录个数)属性得知,我们将每10笔数据为一单位分页显示:4h,zQNsm y2Hb
count=rs.recordcountqxC+l6^d+p
if count/10>(count\10) thenG.I|%s}?
totalpage=(count\10)+1(n3C hP)du7gN8W
else totalpage=(count\10)
N?x[*p0Y end if)P*W1S3?$C3O,`@
“/”为浮点数除法,“\”为整数除法。
+W7w/YL2Djg-B 跳页选择的ASP程序语句8x%UW0r[}:M i
所有的发言数据采用固定笔数分页浏览的方式来显示后,还要提供一个跳页链接显示的功能,让浏览者可以选择希望浏览的页次进得浏览,ASP程序语句:&A6J ]1sf*lP
pagecount=0+B(b3]d(j eV:F|C
rs.movefirstbZ(wEUlEB
if request.querystring("topage")<>"" then pagecount=cint(request.querystring("topage"))
sv^H"\j if pagecount<=0 then pagecount=15l0u-R{9] X-R*CE
if pagecount>totalpage then pagecount=totalpage
o(b9I"w2P,x4v rs.move(pagecount-1)*10
_%KDw5rA"y Np%rJ;? ~t

+x]gf a|FY E2F WC@a#\:x+Z0f J

8n'u&kL;b%eSn 发言表单网页制作0U#S h;\vB QUK#C:w*Y,f

$_5H9Bu]W2j a inse tu3
6b`9QVu4EK;\6[ 表单的参数-?'S,i1f3D1Wi
表单的Action参数:Action参数是用来指定Server端处理此一表单数据内容的程序,此处表单处理ASP程序为“add.asp“,xu(@XGu
表单的Mothed参数:要将表单传送至Server端的方式有两种,设置值分别为GET及POST,若设置为POST,则浏览器会等Server端来读取数据,若设置为GET,则当我们按下送出按钮时,浏览器会立即将表单中的数据内传送出去。利用POST方法,在传送的数据上将不受限制,利用GET方法传送的数据量则大约只有2K左右。
I _A*A%Y3S(k"d%L8p 留言处理程序
pl V)Z.Cr2WM L w 要将家长发言数据作后续处理及将这些数据内容存入数据库,须利用添加数据记录的Insert Into 指令,然后再写入数据库文件中:
F%^KoA1R&@4B Inset into 指令语句格式:3Y-J'x;S!b?9^Zs
Insert into 数据表名 (栏目名) values(栏目值)
#k z@pp^ ` xB8@ZH;Fq
sql="insert into allmessage(家长姓名,留言主题,联络信箱,留言内容,私人公开,留言时间,班级) values("_J0h@)C*`Y
sql=sql&"'"& parent&"',"
1Vt`^"x ~ sql=sql&"'"&subject&"',"
8lO e)q&H sql=sql&"'"&email&"',"
\B\DVkp*C sql=sql&"'"&memo&"',"
9sD C;~']? sql=sql&"'"&personal&"'," T7mH%|wq;s3n g2v
sql=sql&"'"&now&"',"1ru7Xa(E b!l8{
sql=sql&"'"&bj&"')"
JKAH(o cn.execute sql
8X3F"G[5Z[*Kw 回复表单程序网页U%e~S eu6lP
必须让老师们可以针对某位特定学生家长所发表的意见作出独立的回答,
D6_*?&o!t 使用Select…From…Where筛选语句
/o%r[ t6Vg` sql="select * from allmessage where(编号="&ID&")""u-R3Q&X\BS*Z
rs.open sql,cn,1,3
} @(L,Q9l-p:A%aV 然后将特定的家长发言数据放在表单,方法是将数据库中的数据取出来,然后放在表单栏位中:
mt F2P.?5`.Z(C “家长姓名“栏位网页语句标签
in ix {+e9p*q <td bgcolor="#CCCCFF"><font size="2"><%=RS("家长姓名")%><font></td>
I_kU`Cs “留言主题“栏位网页语句标签1N*il6N,\:R7ACi
<td bgcolor="#CCCCFF"><font size="2"><%=RS("留言主题")%></font></td>)JO"]NCU8o\9D9`
“留言内容“栏位网页语句标签
q'j@1M)bw%z <td bgcolor="#CCCCFF"><font size="2"><%=RS("留言内容")%><font></td>
/~ T qs-N8PD 老师在回复栏位中所填入的数据,必须送给处理老师回复数据的ASP程序”anssave.asp”来记录以及处理这些回复数据。当老师填写好回复发言的数据后按下“送出回复”按钮后,表单中的数据内容就会以“POST”的方式由SEVER端读取,然后将数据内容交由处理老师回复数据的ASP程序“anssave.asp”来将数据内容写入数据库。'X:PQ3H$au9I

l1^5p*Wak~pJ
@M-efK3|xq 3.2网上图书馆 lG)Y5H~
网上图书馆将学校图书馆图书放到网络上供人借阅,这样不仅方便了校内的学生与教职员工使用图书馆的资源,还为图书馆管理员提供了一种简便地管理图书馆的方法.
wp X*Z#|L1X vx 3.2.1功能K:q tRRW
网上图书馆系统可以进行图书的出借和归还.还可以在系统中按照多种字段对图书进行查找,还可以浏览某个种类的所有图书.该应用程序也为图书馆管理员提供了一些功能,如添加、编辑以及删除图书等,或者在分类层次结构中添加新的种类。
E*\)GHy 3.2.2系统的层次结构$}G].m|P7ZU:A(N
下图的每个方框代表校园图书馆网站中的一个页面。除了只包含HTML的Search页面外,其他的均为ASP页面。因为每个图书的页面都不同,所以大多数的页面实际上都是多页面。
Brq9^7?*C @Z
,~_$ad#{2~4I$T}
5n C'n?7@m%G1Z y/RKW5kR SD'pR
3.2.3数据库设计Z X/fl.HZ)Ll3H
 本系统共使用3个数据表:&],[p"w Q{_{-H
LibBooks表包含与图书有关的所有数据。该表中的字段内容的图书的通用信息。另外,对于已经出借的图书,该表中还包含借阅该图书的用户的ID号,以及图书的状态。F3n!{{{L+?U
 表视图如下:
2R t'}$AY b v 字段名 意义 字段类型 字段名 意义 字段类型
G$XEvrb bookid 书号(主键) 数字 (no null) status 状态 文本b k+N;\h
title 书名 文本 checkedoutto 用户id 数字:lIf mWc8H_0I
author 著者 文本 reservedby 用户学号 数字
8lQ lDs0X{"w2N\ Subject 主题 文本 description 描述 文本A n_%~,AbnU
Isbn Isbn号 文本 keywords 关键字 文本)@W[ x\C9{1b
LibCategories 表包含Library中的所有类别,在访问者浏览图书列表时将会用到这些类别。每个类别都可以作为另外类别的父类别。有一个特殊的类别,Top-Level,没有出现在类别列表中,但是可以作为其他任何类别的父类别。
$}4G&tc!bi"xW6X"T 字段名 意义 字段类型
jb8Tmf}W[\Df Categoryname 类别 文本(noll)
*{s4RBN/PJq parentcategory 父类别 文本(noll)
Z{TbS;S`  LibEmps表包含可以访问图书馆网站的用户信息。该表包含一些通用的信息字段,比如用于进入图书馆的用户密码等。AL8quIY
字段名 意义 字段类型 字段名 意义 字段类型#[2j4OW e[
empid 用户id (主键no null) 数字 password 用户密码 文本 \O [QXC:x;G+b
Empname 用户姓名 文本 manager 管理员代号 数字
YV(u O,e\H"v emailaddress 用户邮箱 文本 +ZI _ A-N
 
:b!]OG]:N9X7W;y 图书馆数据库的数据关系如图9-22所示。其中表LibEmps和表Lib Categories与表LibBooks之间都是一对多的关系。每个雇员都可以借阅多本图书,每个类别都可以包含多本图书。
;H d Y5I1mA3Hb/A 0BkgL&Q
 
;`+YKl| AN)P^
"{y?/z1AMt"TBt :]L4C ~t
3.2.3界面设计与重点代码的设计I] YP0qr;j
fW+h[\
   网上图书馆系统有两种用户,一是管理员。另一种是只允许使用图书馆系统,而没有管理功能的一般用户。访问者进入网站,首先要进行登录,如下图所示。登录页面(index.asp)

丢失信仰的猪 2007-6-6 12:58

访问者输入E-mail地址和密码来登录,然后单击“登录”按钮。输入的数据提交后与数据库中的用户表进行匹配。 x:\sB8J8TT
须创建一个记录来保存基于访问者登录的用户信息 Kn.p+G|
set RSFindEmp = conn.Execute("select EmpID, Manager from LibEmps where " _
FlOBIezY&[ & "EmailAddress = '" & Request.Form("EmailAddress") & "' and " _
`%jS\1Jk & "assword = '" & Request.Form("assword") & "'")
I)IKH-s['x if RSFindEmp.EOF then
#B^'K*C8v H"} TheMessage = "密码或email地址不对."
C6q7YB["]z U elsehnT0p ^FI
Session("EmpID") = RSFindEmp("EmpID")
G:oN }Ru BIM5n4X Session("Manager") = RSFindEmp("Manager")4r4AFw Q~*osA D
Response.Redirect "../yk.htm"2xKc/M-l p
end if
W;fmp/^{ 表单域EmailAddress和Password 用于Where了句中来获取一个记录。如果访问者输入了一个无效的用户名,则记录集中将不会返回匹配的记录。我们可以通过查看EOF标记来判断一个记录集是否为空。为空,则访问者将被拒绝进入该系统。不为空,则访问者的EmpID值和Manager值将从记录集中返回。写入Session 变量, 变量将在整个网站的所有网页中都是有效的。这些变量的存在与否及其取值将用于确定是否允许进入一个特定的网页,同时也用于访问者进行书目的归还和借阅操作。
)ZE+p"xkV2i7Z *Z{Z,JmX
图书馆菜单页面'Q+M3v*pu5m9z|
图书馆菜单页面包含指向其他4个页面的链接:管理页面、搜索页面、图书列表页面和主页面。还有一个可显示用户所借书籍的按纽。如果访问者是图书馆管理员,则菜单界面如图所示。如果访问者不是图书馆管理员,则看到如图所示的界面。非管理员的访问者的界面上没有指向管理员菜单页面的链接。
O:x j1p:Um9^B%I:Hi9B
!^M1agea^B    ~!BDS u*A,a1a6w
  实现办法:访问者登录时在登录页面上的创建的会话变量Session 用于从数据库中获取访问者的有关信息,表示它是否是管理员。如果值为1,就表明访问者是一个管理员,则用如下代码写入一个指向管理员页面的链接:6tX e N;y.|!y
<% If Session("Manager") = 1 then %>
s(QM2H0}*Y"n-c <A HREF="../html/management_menu.asp">管理员菜单</A>
9eB.\n9` d@y <% end if %>;N:['jH.nhv
通过按纽B1是否为空来判断要不要显示用户所借图书,利用一个记录集来获取访问者已经借出了的所有图书的列表。
@*x }`8`|8^ if NOT isempty(Request.Form("B1")) then
!g3ukid set RSBooks = conn.Execute ("select BookID, Title from LibBooks where " _$Up(R k)K+_ `G3A
& "CheckedOutTo = " & Session("EmpID"))%_0]\%e[;k3}y)Z
end if
V+SEEbKJ2V Z 再用循环语句将所借书以表格形式显示出来。
"` h(i,@} ak <table border=1 width="90%" > '[;nlS3E ZO
<% if NOT isempty(Request.Form("B1")) thenK(trbG
Do Until RSBooks.EOF%>
;q+g-H0N {9k.]w[,X!] <TR > )ynYjk
<TD WIDTH=40% height="20"><% Response.Write RSBooks("Title") %></td></tr>8w/k,LiM b
<% RSBooks.MoveNext
_c(TW)RL loop
~+d!B:z)Gj0h end ifu[p{r5GLm
%>
/\3~f/W`'} zj </table>
W%c)e6{i8p{2K 循环将遍历Rsbooks记录集中的每个记录,直到该记录集结束:C1}7n\)uc
该网站中的所有ASP页面都会在访问者访问之前对其进行登录检查。这样就可以避免访问者通过输入某个页面地址然后在没有登录的情况下直接进入该页面的情况发生。此外,每个管理页面都要确认访问者是管理员。
$sU5k!~@K0b|7u6I A4~ TJVN/|*H/R{ \ @
管理菜单页面@y5};}L$QF;Ld

#G4Y[J(w-il^ O 管理菜单页面有一个HTML表单,根据选择的按钮的不同,可以进行5种不同的操作:图书的归还、图书的编辑、图书的删除、图书的添加和类别的添加。不管选择了哪一个按钮,该表单都提交人其自身进行处理。
E?;]6j"aZ,[yP 要进行图书的归还、图书的编辑、图书的删除三种操作,须先进行搜索,找到该书后,由图书Book.asp返回一个链接:&X rZF%C2\(C |K
<% If Session("Manager") = 1 then %>
y.hl s._+m ~'x <A HREF="../html/management_menu.asp?title=<% response.write RSBooks("Title") %>&BOOKID=<% response.write RSBooks("BOOKID") %>">管理员菜单</A>
kZ;N,^;^+[!o(KW <% end if %> :q'Q!{mJ?;RV
_W _-d:?7i$n ^"?:q
而管理者页面通过下列语句
W sO*m%\5D-z g <%=request.querystring("title")%>
w$z9@/@f.B3D1II6V <inputzztype=hidden name="BOOKID1"value="<%=request.querystring("BOOKID")%>>1U`rb ps
'LbFge+]2b
,l7~"g#q)ID
w.p~7\(m[fK

w%P`c+O$M
0A7zY he,S 这样就将所找到的书的书号BookID、书名Title传递管理者页面。再进行所须操作。共有3个不同的铵纽,可以进行3种操作。若单击“修改”钮:
7Q9wb%h~Zu 则重定向到编辑图书页面,同时把Bookid 传递给该页面。 FVi(V0I,^O
Response.Redirect "./edit_book.asp?BOOKID="&request("BOOKID1")HeOtul D
将其他的情况需要建立到数据库的连接:o Z9j-gU
set conn = server.createobject ("adodb.connection")%l T$x`n_'cg0{&B
Conn.Open("FILEDSN=c:\Program Files\Common Files\ODBC\Data Sources\ms access database.dsn")i4C"Sg6AVdhN?Z h]
if NOT isempty(Request.Form("Delete")) and request("BOOKID1")<>"" then
,b%vV5Y#?&H.D5d conn.Execute "delete from LibBooks where BOOKID ="&request("BOOKID1")
_*Q ]9N s#gw end if
YkQT)jo if (NOT isempty(Request.Form("checkin"))) and request("BOOKID1")<>"" then dHN;A6v|/Z\v
conn.Execute "update LibBooks set checkedoutto= 0, status= 'Available' where BookID="&Request("BOOKID1")
H7clj#H'bO3} end if
I$l+l!xss E9b2N4A hl2Y ?*F
Q3`AV]a'o

(t&O8z9O `!? 页面中的添加新的种类部分包含一个文本控件和一个选择控件。其中选择控件是用所有已经存在的类别列表进行填充的,包括特殊类别 Top level ,该类别表明当前类别是处于类别层次结构中的最顶层。代码如下:
$_ Y@ pJfs$t 先用一个记录集来填充父类别选择控件:
rdB2t){ EK| set RSCategories = conn.Execute("select CategoryName from LibCategories order by CategoryName")
D8`s[X'aK+T 再用下列循环语句:?w&}1Di t
<% $})m2{&yCx
Do Until RSCategories.EOF
yi1?/Si'] %> $X]3|?Xu
<OPTION VALUE="<% response.write RSCategories("CategoryName") %>"><% response.write RSCategories("CategoryName") %></OPTION>
4V b;?&r!e.c2h <%
];o$h5a*| RSCategories.MoveNext G/^ D7i(aEx
Loop
l-cz o1v a#fY %>
%\qj:Ahq[^~ 遍历RSCategories记录集中的每个记录,并作为一个选项添加到列表中,而记录集中CategoryName 同时作为显示值和传递值:G/kRw,b/G8Iw
本页面还包含一个指向添加图书页面的链接。
)}Cgwt'o 搜索结果页面
C tH j+K6s {H#z`b
*Nx'|3t%S m 搜索页面的代码获取与访问者查找规则相匹配的图书,然后将这些图书显示给访问者。o5r#U0C1LI-p.^/r&X
搜索页面上的表单包含一个选择控件和一个文本控件。选择控件中的选项是用可搜索 的字段填充的:
[)a&G4}*B0Ax'E 需要用一个记录集来保存与访问者的查找规则相匹配的记录:r'X^`a v/I
set RSBooks = conn.Execute("select BookID, Author, Title, Subject from LibBooks where " _t `N2_"_"a^
& Request.Form("SearchField") & " Like '%" & Request.Form("SearchCriteria") & "%'")j&[fHe(g/A.h

$P)vO~ gL_ o B 注意:,符号%表示的是一个广义搜索。这一点类似于ACCESS中的符号*。'`? \C4Mj9e
然后将所找到的书以表格形式显示出来。代码如下:
:v&W {m@;G^e5| <% Do Until RSBooks.EOF %>
.^"R|E6Y <TR VALIGN="top" ALIGN="left"> H4G(uB;Ni#z z
<TD WIDTH=40% height="20"><B>书名:</B> <A HREF="../html/book.asp?BookID=<% Response.Write RSBooks("BookID") %>"><% Response.Write RSBooks("Title") %></A></TD>
fjKn9|xt <td width=20% height="20"><B>著者:</B> <% Response.Write RSBooks("Author") %></td>
Tu#|1z3g <td width=30% height="20"><B>主题:</B> <% Response.Write RSBooks("Subject") %> </td> 6mge\"r\
<% RSBooks.MoveNext
G`wllx{ Loop %>
e1] i q2n"S iE'@ Og 图书页面8krq5h-~OP}L
-k8vePu1v6rm
图书页面的代码显示图书的有关信息,以及管理图书的出借操作。v(i:` TF bYD;^
该页面通过Querystring 传递BookID+?Y3^d\k3u;Q \
if isempty(Request.QueryString("BookID")) thens#|;@#X#F5o @D@
Response.Redirect "./search.html"
k_e3@ w1KzG end if
R_x9l7W P w n
C Aj#gEpX 如果其中不存在,则访问者将被重定向到搜索页面:
?bk!cG J7Xo P 如果同时传递表单中包含的变量Action不为空,则表明访问者正借阅该图书:'e0{'d{-]1p
if Not isempty(Request.QueryString("Action")) then%l$v m'GO4W1]'r-^
在这种情况下,需要将图书状态改为 Checkout, 同时需要将Checkedoutto 字段修改为该访问者:F`#P#J/w;A
conn.Execute "update LibBooks set Status = 'Checked Out', " _
{:gJ\`Bh & "CheckedOutTo = " & Session("EmpID") & " where BookID = " _hp%eC-TGc
& Request.QueryString("BookID")
7kh k0VO5P V-R Response.Redirect "./library_menu.asp"0?AcE[D&V dn
end if/{&{"Q"w)oe,gD
然后将该访问者重定到图书馆菜单页面:
zKE1jFQ+yX'_!a 下一步,利用图书的状态来确定不同的链接
sUE y/AQY W 未借出时链接如下:
B(o kWQ if RSBooks("status") = "Available" then
)d Y#Q zh LinkText = "<A HREF=""../html/book.asp?Action=CheckOut&BookID=" _ Y4j}m*V1e4YR-V
& Request.QueryString("BookID") & """>借这本书</A>" xon5vJ2K
如果图书已经借出,就创建一个不同的消息,并将链接设置为指向Library menu 页面:"H3i%\.@-g JT
LinkText = "<A HREF=""../html/library_menu.asp"">图书已出借,返回主菜单。</A>"
3q1r@:B*^os(E 最后根据是否是管理员,显示管理员菜单链接。
$SEPx2M(E&A5p ?/c <% If Session("Manager") = 1 then %><A HREF="../html/management_menu.asp?title=<% response.write RSBooks("Title") %>&BOOKID=<% response.write RSBooks("BOOKID") %>">管理员菜单</A><% end if %> @g NOb[(j
fX2`!?*zB {/p nt
3.3网上评优投票系统
G*r;eG;j 3.3.1功能:
0r Z,q1pap3V 能实现全校性的评选,快捷、公平,且有效,不允许做票。
"Xw9e)k.eo;Kz 3.3.2组成构造
AVA7fp'} f I0t 这个系统由3个部分组成——投票页面vote.htm ,处理投票结果的脚本,显示投票页面 。/CF)s\;N8O3UeRX
3.3.3数据表的设计:a'd_[\"k}1B
/Ro By O*m X5c

Y/}8A]k0Z$D^H 3.3.4界面设计与重点、难点代码设计W }S\C}8q
投票页面
'U `1z]j \ Yk^R(Y
该页面是一个纯HTML文件,它让用户选择自己想选举的候选人,并填写自己的详细资料,以确认投票的有效性。页面显示如图所示。
J6`c|Ez
!X6r6t"^PL:^|j V)R| ]*l u fe!v&E3|7l
表单处理脚本
%M lIz_$BQ 在vote.htm中各项数据都填写完毕后,单击确定投票按钮,表单的数据就被提交,
oPu2r:D'?_ te 本次评优共有4个候选人,但只能选两个。故用复选框。
~y\.Q/rge 投票的有效性通过是否是本校学生,且是否投过票来判断。
-J*` vAMEJ0b if request("passno")<>"" then
X!ag` g4KF$][6\s$y sql="select * from stud where password="&"'"&request("passno")&"'" &"and yitu=0"il+g}a.u6c0A9z
set rs=cn.execute(sql)
LxUj"Nc if rs.eof then%>,J"O%I7A$E1\4h+}
<h2 align=center><%response.write"你无权投票"%></h2>1v0U4No/z(s){q8p
本设计允许少选,不允许多选。通过判断Vote投票界面传递过来的复选按纽值的长度看是否多选。 l G0}{,~3fsx i
vo=request("cand") ~7LkW F|]L
if len(vo)>4 then%>.|0q1|$j[
<h2 align=center><%response.write "多选了,无效"%></h2>
,GW6i#vY*G,^
%Qgkg+R$h:D-ff)?z 然后根据所投的票将对应候选人的投票结果字段加1,同时将该投票人的已投字段置为1。
p z%Y^ ~/U8tx sqq="update stud set yitu=1 where password="&"'"&request("passno")&"'"
t2yRP4x B cn.execute(sqq)"pK(kD)T Z1O
if instr(vo,"1") then
y)n%m-T6b cn.execute("update stud set result=result+1 where name='李宁'")
@;EIM {Y end ifOudqrr*j[
if instr(vo,"2") then'h6p6ou1\8d:\(j

;BiFj7e cn.execute("update stud set result=result+1 where name='杨兰'")^y%@%q DB}
end if
%ALl3P!?N7\PW if instr(vo,"3") then
["m Q{``0sY,i cn.execute("update stud set result=result+1 where name='江道明'")
W5b(O0K O!QDR end ifxDy#fx1J
if instr(vo,"4") then"h)N6^NR o
cn.execute("update stud set result=result+1 where name='段启文'") G!|:t"g"O
end if%>
|E0@BG9t!E!B 显示当前投票情况show.aspz1p4Mqc)L)Y
由于投票处理页面已经完成了绝大部分的工作,所以 显示结果页面就很简单了,其功能是从 Stud表文件中读取候选人所得票数,显示在页面上。.gk!K,ZXp
页面显示如图
0ag!H[y)P
7t"A;b;BWM l 值得注意的代码主要有以下几处:
VV1?n8tV^ 该页面有自动刷新功能,使在线用户可以尽快的看到最新的选举情况。我们这里设定每隔30秒钟自动刷新一次。V9[7\ c;BKy
<meta http-equiv="refresh" content="10;URL=show.asp">-XfgxnU

dvPGz0e 显示投票时,我们采用了while循环,把候选人及其得票数,整齐地显示在一个表格中,这种技术在数据库查询结果的显示中也经常用到。代码如下:7X s/}0~!DRbm o{
<%while not hs.eof %>7E+F&iY#b7]]1G
<tr>/Xc:pJg:^4E
<td width="100%"><center>P&[K F/l7K-A
<font color="#8000ff"><big>7e~ z7^(k0Nk3p$du
<%=hs("name")&" "&hs("result")&"票"%>
&^r,x8F a,` </big> </font>
td*gb2_v @@n$Z T </center>rR R i!Z9N8q*Q U'},n:A
</td>xw"_:Q D?|o
</tr>%v;RaAq6L*sLL
<%hs.movenext%>z*jS~Q
<%wend%>:yF%_/c.ec/?yP
3.4达级考试在线查分系统与计数器的制作7[ onI%s _ E ^4]}
3.4.1功能:pO[I4tX Q-x j"H A
它提供了在线查看成绩。考生可以在网上使用这一系统,通过输入准考证编号来查询达级考试的结果。:z)kgp6jB9T
3.4.2数据表的设计
%T(i4r1KS t%Y 与评优系统共用STUd表,表设计同上。 &p3`JG(D$D$]
3.4.3界面设计与重点难点代码的设计 ? LC)_dL)as [v
该模块需要查询者输入准考证号后来查看结果。若ID1不为空时,表示有表单输入,开始查询数据库。使用 SELECT的SQL指令查询数据库的数据。先设定SQL指令,查询ID符合准考证编号Request.Form("ID1")的数据,下个“Execute”指令,即可开始执行存取、查询数据的动作了。并将查询结果储存到Recordsets组件RS中。
*l K)V(S"[ IF Request.Form("ID1")<>"" THEN
l9^$N7B7Z[%Rx.n Set Conn = Server.CreateObject("ADODB.Connection")
1RDU0TxN,O1^ Conn.Open("FILEDSN=c:\Program Files\Common Files\ODBC\Data Sources\ms access database.dsn") 2?tT"O"f
SQL = "SELECT name,id,score FROM stud WHERE id='" & Request.Form("ID1") & "'" }H%L7[5y$QL
Set RS = Conn.Execute(SQL)A qfjZ9hOF7}

#O-cNd-U7lh#`M w 若考试通过,则显示考试的结果,包括姓名、准考证编号、总分和考试结果,分别由RecordSets 组件的RS(0)、RS(1)、RS(2)、RS(3)得到。FS.Field.Count表示RecordSets组件的域的总数,由“for I=0 to RS.Fields.count-1”,取得RS(I)各域的数据。配合 <Table> 表格的HTML语法,将结果填入表格的各单元格中。 若还有下一个数据,就使用RS.MoveNext 移到下一个位置。 X9T+THRpZ

q.p(u3{vWg 3.4.4页面访问计数器的制作
"y A(@^a 利用文件处理组件FILESYSTEM的强大功能来制作,比用Application对象计数器要好,Application计数器当有20分钟没有人连上该网页或关机时,计数器会被归零。而文件计数器却不会因时间而消失。我用Count.txt存放访问人次。代码如下:
'^!K)U4GE+z._ whichfile=server.mappath("pic\count.txt")
TGS*q2Y set myfile=server.createobject("scripting.filesystemobject") 创建一个S }(p'e_tr
set thisfile=myfile.opentextfile(whichfile) 组件对象
$Wc_%_#gej,_8~
r8rm rg4rL visit=thisfile.readline
Am7xL$z thisfile.close 读取计数器数据文件Count.txt中的计数数据
_1~#D5[\4M visit=visit+1 记录自加一次 Y,e2\o.V/b-KV
length=len(visit)
$[#~(B1[/ntU9] for i=1 to length
:D0l#lY,]b response.write "<img src="&mid(visit,i,1)&".jpg></img>" 将记录的数据用图片显示出来
D,{6N0X3m2v KC+[/c next
dX4x N:W\xQB8qA set thisfile=myfile.createtextfile(whichfile,1) 将新计数数据写入文件thisfile.writeline(visit)
[#U4?x#H y2E%w D K1` set myfile=nothing
;?zM#[ O|Cgv4B 数字图片我利用PHOTOSHOP中的文字特效制作了9个立方数字:2kfybSr J

}syWjEX:g]/f{(i+J(EwROT

Kd|*cn3rE$dQ 四.系统的使用说明与安装L`nh\$Qp;R!u
4.1运行环境要求 X Rw ^5B |
Windows98y;EgS"p'wD7nx
Personal Web Server 3.0(PWS)N4W:n"rQzTY4QjI
Microsoft? Access 2000 (9.0.2812)p9^)Bt@` ^G#Z

1QW|4yl"ai 4.2安装设置
`JP#SF Z&Y+l A. 将本网站拷贝到硬盘上的某一目录下,如:拷贝至c:\y1下。
+L'b;I4D:_#AA B. 运行PWS,将默认的Web站点主目录设置为该目录,如上例应为c:\y1;'|~h;T9J
具体步骤:
[^+ZgEM!Z a. 选择“高级”项;3E%B2Pp`!\}6l9Z
b. 单击“编辑属性”按钮,在出现的“编辑属性”对话框中的“目录”项中填入“c:\y1”,其他不变,确定;
(Z+o0u'[7w7U(?hKh#M *lj ^gS
C. 设置启动默认文档为:yy.aspSCE| J
hhu;c'M s
致谢
S&c z]i;P6L 通过这次毕业设计,使我感到高科技、新知识的力量。这次毕业设计过程中,得到了长沙市工商职业中专学校的大力支持,给我提供了舒适的工作学习环境,也得到了科大老师、教授的精心指导,在此表示衷心的感谢!
u"Q Gm(N)K
[q[cX5V#|t!p K
4D^C9x4?8s,s 五.参考文献TqAA1ag&O4ax e!Q
V1g T4~K Bj
[1]李世杰 Active Server Pages(ASP)3.0 网页设计手册 北京:清华大学出版社 1999]&T8hS5P[ i
[2]前沿电脑图像工作室 巧学巧用Dreamweaver、Fireworks、Flash制作网页 北京:人民邮电出版社
?6n[-dR)^'^7_9z5u [3]ASP入门与实例演练薄 小志编著 中国青年出版社

tian4563 2008-4-22 02:45

连续支持

[color=black]  楼主:谁知道仙人和[/color][url=http://www.68cs.com/][color=black]传世私服[/color][/url][color=black]仙人掌到底有什么关系啊?    #G-hE;g a$R'Q&h
  回复:
8k!Amg4Hd)KdRY   人 黄瓜
"K9@9r(u8Iu   仙人 仙人掌   
C%nY`6XZQ w   楼主:一女同事多次暗示[/color][url=http://www.xingmeiji.com/][color=black]型煤[/color][/url][color=black]我,曾因我没反应不理我。我是一个传统观念很强的人,不想出墙,不愿背叛我妻子,又不想让女同事太伤心。
tVMI ?$l   各位达人出出主意,我该怎么办?    ;t~;u7X,a-Da"K7U;W
  回复:约出来.开个[/color][url=http://www.igxy.com/][color=black]dofus[/color][/url][color=black]双人房..然后你们一起手殖器官都包在身体内,它们的长相又一模一样,你怎么分辨龟公与龟母? `*u wnC5o[9@
  PS:将乌龟宰了之类的方法请不要好意思说出口……    auC h"j^
  回复:把两个乌龟关在一间屋内1小时,龟壳朝下的是母的。   5U2It!_1f8z*@
  楼主:为什么动物发情都在[/color][url=http://www.igqb.com/][color=black]google排名[/color][/url][color=black]春天呢?   
J r/{r@_ q B:w   回复:春天 = 三人日二人    ]d4]r5WS:E/fV
  楼主:我公司的2个女同事其中[/color][url=http://www.igqb.cn/][color=black]奥运冠军[/color][/url][color=black]一个穿粉色皮衣,她们两作班车时挨着,结果穿粉色皮衣的衣服被染色了,怎么办啊?是皮衣!    D:oWJ!uPQ
  回复:理论上来说 粉红色慢慢变黑的过程是不可逆的   
(J"xF\7H lkH&KgH   楼主:有些女人喜欢穿暴露的衣服的原因是什么?   
V!ySv#U   回复:理论上来说 是为了接受更多的日光照射[/color]

民工也上网 2008-5-4 09:48

g46

[img]http://www.wanfubanjia.com/work/3.gif[/img]
xsu[i:TE"SZ R
R `"S4H@bi qz
6M$Y Wwz5k` 4A3e8b'b%yi.XyIIT
rS4d?zhe1a.{
[img]http://www.wanfubanjia.com/work/fengexian.gif[/img]E K3p9{ dD^6gy

n)]d%qO;f7j [url=http://www.wanfubanjia.com/longgang/]深圳龙岗搬家公司 深圳市龙岗搬家公司价格[/url]

efgh144 2008-5-22 17:18

无缝钢管销售欢迎联系!

无缝钢管销售. ... [url=http://www.beidougg.com]无缝钢管[/url]天津地区销售-生产各类[url=http://www.gg6188.com]无缝钢管[/url]\天津[url=http://www.lchdjs.cn]无缝钢管[/url]销售基地,鼎盛无缝钢管销售中.销售[url=http://www.lcxmx.com]无缝钢管[/url]\无缝钢管、锅炉管、流体管、厚壁无缝管等。[url=http://www.tengfeigg.cn]无缝钢管[/url]联系电话:无缝管-华诚腾飞管材主营无缝钢管、合金管、锅炉管、高压锅炉管.我公司主要经营各类无缝钢管,自创办以来,一直坚持“以质量求生存,以诚信求发展”的经营理念销售无缝钢管,在无缝钢管行业内建立了良好的信誉,公司凭借对无缝管产品的了解,无缝管市场报价,钢厂价格,市场动态,市场分析等. ... 无缝钢管, 20# 8163, 159*4.5, 4750, 25, 鞍钢, 上海. 无缝管, 无缝钢管,不锈钢管-天津鸿鹏伟业高压合金管材销售有限公司是天津市钢管行业中创立最早,无缝钢管销售规模最大,实力最强的企业之一,无缝钢管和不锈钢管库存常年保持万吨 ,无缝管和无缝钢管销售处-天津无缝钢管厂直销处是华北地区一家专业无缝钢管,无缝钢管销售公司,公司专业销售无缝钢管及无缝钢管产品和高压合金管产品!天津无缝钢管厂直销处是专业经销无缝管和无缝钢管的企业,在天津无缝钢管和无缝钢管行业中有较高的信誉!最优最全的无缝管和无缝钢管尽在天津无缝钢管厂!

中情天鑫 2008-7-3 17:14

RO

谢谢楼主,感谢分享了!
eoM*Ns.]+i+c 如果还有可能我一定将这些都收藏!n2dfqL!Y#v.~
+Yp9Y,`g2vTD
-------------------------------------------
-Pm,A4[+^^~^ ]*r [url=http://ragnarokonline.igsky.com]RO forum[/url] | [url=http://ragnarokonline.igsky.com]ragnarokonline forum[/url] | [url=http://ragnarokonline.igsky.com]RO gold[/url] | [url=http://ragnarokonline.igsky.com]ragnarokonline[/url]
页: [1]
查看完整版本: 校园网站设计