Asp聊天工具设计报告.docx

上传人:b****1 文档编号:3315626 上传时间:2023-05-05 格式:DOCX 页数:28 大小:137.43KB
下载 相关 举报
Asp聊天工具设计报告.docx_第1页
第1页 / 共28页
Asp聊天工具设计报告.docx_第2页
第2页 / 共28页
Asp聊天工具设计报告.docx_第3页
第3页 / 共28页
Asp聊天工具设计报告.docx_第4页
第4页 / 共28页
Asp聊天工具设计报告.docx_第5页
第5页 / 共28页
Asp聊天工具设计报告.docx_第6页
第6页 / 共28页
Asp聊天工具设计报告.docx_第7页
第7页 / 共28页
Asp聊天工具设计报告.docx_第8页
第8页 / 共28页
Asp聊天工具设计报告.docx_第9页
第9页 / 共28页
Asp聊天工具设计报告.docx_第10页
第10页 / 共28页
Asp聊天工具设计报告.docx_第11页
第11页 / 共28页
Asp聊天工具设计报告.docx_第12页
第12页 / 共28页
Asp聊天工具设计报告.docx_第13页
第13页 / 共28页
Asp聊天工具设计报告.docx_第14页
第14页 / 共28页
Asp聊天工具设计报告.docx_第15页
第15页 / 共28页
Asp聊天工具设计报告.docx_第16页
第16页 / 共28页
Asp聊天工具设计报告.docx_第17页
第17页 / 共28页
Asp聊天工具设计报告.docx_第18页
第18页 / 共28页
Asp聊天工具设计报告.docx_第19页
第19页 / 共28页
Asp聊天工具设计报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Asp聊天工具设计报告.docx

《Asp聊天工具设计报告.docx》由会员分享,可在线阅读,更多相关《Asp聊天工具设计报告.docx(28页珍藏版)》请在冰点文库上搜索。

Asp聊天工具设计报告.docx

Asp聊天工具设计报告

 

《Asp聊天系统》

课程设计报告

 

小组成员:

专业:

班级:

指导老师:

2012年5月4日

目录

1.需求分析1

2.功能分析1

3.数据库设计1

4.主要程序实现3

4.1.登录页面设计3

4.2.其他主要界面设计与实现6

5..心得体会17

 

Asp聊天系统

1.需求分析

聊天室是最能吸引人的节目。

聊天室(chatroom)是一个网上空间,为了保证谈话的焦点,聊天室通常有一定的谈话主题。

任何一个联入Internet、使用正确的聊天软件,并且渴望谈论的人都可以享受其乐趣。

聊天室有语音聊天室和视频聊天室等分类。

2.功能分析

目前网上聊天室一般都是比较复杂的,通常包括公共交淡、秘密交淡、显示在线人数和名单、各种表情、开辟新的聊天房间等功能。

本系统是一个小小聊天室,功能简单,包括公共交淡、选择说话颜色、添加说话表情、查看在线人员名单等基本功能。

根据这样的设计思想,本系统包括以下以文件。

1、首页index.asp——这是登录页,用户输入用户名后就可以进入聊天室,同时会将该用户添加到在线人员名单中,在线人数加1.

2、聊天室主页chat.asp——这是一个框架页,其中显示main.asp、online.asp、refreshpage.asprefreshpage.asp、chatform.asp.

3、显示聊天信息页面main.asp——其中用于显示聊天信息。

4、输入聊天内容页面chatform.asp——在其中可以发言

5、显示在线人员名单页面online.asp——其中会显示当前在线人员名单及人数。

6、refreshpage.asp——刷新在线名单、刷新屏幕、退出系统等功能。

7、incfoot.asp——隔(endtime-starttime)*1000&"毫秒后刷新聊天内容。

8、config.asp、function.asp——这些是公共文件,用来存放几个常量、函数。

3.数据库设计

1、聊天记录信息表chatinfo的设计视图:

2、用户信息表userinfo的设计视图

4.

 

图2:

类关系图

 

4.主要程序实现

4.1.登录页面设计

 

在登陆界面中,首先检查是否存在该用户,如果不存在则添加新用户信息,包括用户名、密码、性别;如果已经存在,则将输入的密码与数据库中密码对比,如果匹配则正常登录,否则报错。

主要代码如下:

<%

FunctionSplitWords(mys,coun)

dimts,i,l

ifisnull(mys)thenexitFunction

ts=0

Fori=1ToLen(mys)

l=Mid(mys,i,1)

IfAsc(l)>0andAsc(l)<255Then

ts=ts+1

EndIf

ifi-ts/2>counthenexitfor

Next

Ifi-ts/2>counThen

ts=ts\2+coun

mys=left(mys,ts)

endif

SplitWords=mys

endFunction

userid=request.form("userid")

ifrequest.form("submit")="登陆"then

userid=request.form("userid")

password=request.form("password")

usersex=trim(request.form("usersex"))

ifusersex<>"男"andusersex<>"女"then

usersex="保密"

endif

ifuserid=""orpassword=""then

response.write""&chr(13)

response.write"

--"&chr(13)

response.write"alert('请将呢称和密码填写完整!

');"&chr(13)

response.write"window.history.go(-1);"&chr(13)

response.write"//-->"&chr(13)

response.write""&chr(13)

elseiftrim(userid)<>useridortrim(password)<>passwordorinstr(userid,"'")>0orinstr(userid,"""")>0orinstr(password,"'")>0orinstr(password,"""")>0then

response.write""&chr(13)

response.write"

--"&chr(13)

response.write"alert('用户名和密码中不得包含空格以及引号!

');"&chr(13)

response.write"window.history.go(-1);"&chr(13)

response.write"//-->"&chr(13)

response.write""&chr(13)

else

userid=SplitWords(userid,5)

sql="select*fromuserinfowhereuserid='"&userid&"'"

rs.opensql,conn,0,3

ifrs.bofandrs.eofthen

session("loginstatus")="logined"

session("userid")=userid

session("grade")=1

rs.addnew

rs("userid")=userid

rs("password")=password

rs("usersex")=usersex

rs("regtime")=now()

rs("logintime")=now()

rs("timecount")=0

rs("userip")=userip

rs("logincount")=0

rs("grade")=1

rs("isonline")=true

rs.update

rs.close

sql="selecttop1*fromchatinfoorderbyputtimeasc"

rs.opensql,conn,0,3

rs("userid")=""

rs("sayto")=""

rs("saycontent")="欢迎新人"&session("userid")&"来到本聊天室!

"

rs("puttime")=now()

rs("ispublic")=true

rs.update

rs.close

response.redirect"chat.asp?

ntime="&ntime

elseifrs("password")<>passwordthen

rs.close

session("loginstatus")=""

session("userid")=""

session("grade")=""

response.write""&chr(13)

response.write"

--"&chr(13)

response.write"alert('密码不正确,请重新输入!

');"&chr(13)

response.write"window.history.go(-1);"&chr(13)

response.write"//-->"&chr(13)

response.write""&chr(13)

else

session("loginstatus")="logined"

session("userid")=userid

session("grade")=rs("grade")

n_vgrade=(rs("timecount")-30)\60

ifn_vgrade>rs("grade")andn_vgrade<=maxgradethen

rs("grade")=n_vgrade

elseifn_vgrade>rs("grade")andn_vgrade>maxgradethen

rs("grade")=maxgrade

endif

rs("logintime")=now()

rs("userip")=userip

rs("logincount")=rs("logincount")+1

ifisnull(rs("timecount"))then

rs("timecount")=0

endif

rs("isonline")=true

rs.update

rs.close

sql="select*fromchatinfoorderbyputtimeasc"

rs.opensql,conn,0,3

rs("userid")=""

rs("sayto")=""

rs("saycontent")="欢迎"&session("userid")&"来到聊天室!

"

rs("puttime")=now()

rs("ispublic")=true

rs.update

rs.close

response.redirect"chat.asp?

ntime="&ntime

endif

endif

setrs=nothing

conn.close

setconn=nothing

else

%>

4.2.其他主要界面设计与实现

(聊天室主界面)

 

1、Config设置:

<%

pagetitle="小小聊天室"'聊天室的名称

starttime=timer()

ntime=server.urlencode(now())

userip=request.servervariables("remote_addr")

selfname=request.servervariables("script_name")

sessionout=120

maxrecordnum=50'定义聊天室中最多显示的最近的聊天信息条数

'以下几行为供聊友选择的聊天室的文字色彩

colorA="000000"

colorB="000080"

colorC="0000ff"

colorD="008080"

colorE="0080ff"

colorF="8080ff"

colorG="8000ff"

colorH="aa00cc"

colorI="808000"

colorJ="808080"

colorK="ccaa00"

colorL="800000"

colorM="ff0000"

colorN="ff0080"

colorO="ff00ff"

colorP="ff8080"

colorQ="ff8000"

colorR="ff80ff"

colorS="008000"

colorT="345678"

%>

2、刷新设置功能:

<%=pagetitle%>--手动刷新页面

--

functiontimeurl()

{

varnow=newDate();

returnnow.getTime();

}

//-->

--

input,body,table{font-size:

12px}

body{

width:

120px;

background:

#0099cc;

text-align:

center;

vertical-align:

center;

background-color:

#00ADAC;

background-image:

url(images/chatformbg.jpg);

}

form{margin:

0;padding:

0}

.button{background:

#C2F5F3;color:

#000090;border:

solid1px#ffffff;width:

100px;height:

20px;margin:

2px0;padding-top:

1px;}

-->

ntime='+timeurl()">

ntime='+timeurl()">

ntime=<%=ntime%>'">

3、main.asp:

--#includefile="config.asp"-->

--#includefile="functions.asp"-->

<%

ifsession("loginstatus")<>"logined"orsession("userid")=""orsession("grade")=""then

response.write""&vbcrlf

response.write"

--"&vbcrlf

response.write"top.window.location.href='index.asp?

ntime="&ntime&"';"&vbcrlf

response.write"//-->"&vbcrlf

response.write""&vbcrlf

response.end

endif

%>

--#includefile="conn.asp"-->

<%

ifrequest.querystring("act")<>"login"then

sql="select*fromuserinfowhereisonline=trueanduserid='"&session("userid")&"'"

rs.opensql,conn,0,1

ifrs.eofandrs.bofthen

rs.close

setrs=nothing

conn.close

setconn=nothing

session("loginstatus")=""

session("userid")=""

session("grade")=""

response.write""&vbcrlf

response.write"

--"&vbcrlf

response.write"top.window.location.href='index.asp';"&vbcrlf

response.write"//-->"&vbcrlf

response.write""&vbcrlf

response.end

else

sql="updateuserinfosettimecount=timecount+"&datediff("n",rs("logintime"),now())&",logintime=#"&now&"#whereisonline=trueanduserid='"&session("userid")&"'"

rs.close

conn.execute(sql)

endif

endif

%>

?

ntime=<%=ntime%>">

聊天内容显示页面

varnDots=7;

varXpos=0;

varYpos=0;

varDELTAT=.01;

varSEGLEN=10;

varSPRINGK=10;

varMASS=1;

varXGRAVITY=0;

varYGRAVITY=50;

varRESISTANCE=10;

varSTOPVEL=0.1;

varSTOPACC=0.1;

varDOTSIZE=11;

varBOUNCE=0.75;

varisNetscape=navigator.appName=="Netscape";

varfollowmouse=true;

vardots=newArray();

init();

functioninit()

{

vari=0;

for(i=0;i

dots[i]=newdot(i);

}

if(!

isNetscape){

}

for(i=0;i

dots[i].obj.left=dots[i].X;

dots[i].obj.top=dots[i].Y;

}

if(isNetscape){

startanimate();

}else{

setTimeout("startanimate()",1000);

}

}

functionstartanimate(){

setInterval("animate()",20);

}

functionsetInitPositions(dots)

{

varstartloc=document.all.tags("LI");

vari=0;

for(i=0;i

dots[i+1].X=startloc[i].offsetLeft

startloc[i].offsetParent.offsetLeft-DOTSIZE;

dots[i+1].Y=startloc[i].offsetTop+

startloc[i].offsetParent.offsetTop+2*DOTSIZE;

}

dots[0].X=dots[1].X;

dots[0].Y=dots[1].Y-SEGLEN;

}

functionvec(X,Y)

{

this.X=X;

this.Y=Y;

}

functionspringForce(i,j,spring)

{

vardx=(dots[i].X-dots[j].X);

vardy=(dots[i].Y-dots[j].Y);

varlen=Math.sqrt(dx*dx+dy*dy);

if(len>SEGLEN){

varspringF=SPRINGK*(len-SEGLEN);

spring.X+=(dx/len)*springF;

spring.Y+=(dy/len)*springF;

}

}

functionanimate(){

varstart=0;

if(followmouse){

dots[0].X=Xpos;

dots[0].Y=Ypos;

start=1;

}

for(i=start;i

varspring=newvec(0,0);

if(i>0){

springForce(i-1,i,spring);

}

if(i<(nDots-1)){

springForce(i+1,i,spring);

}

varresist=newvec(-dots[i].dx*RESISTANCE,

-dots[i].dy*RESISTANCE);

varaccel=newvec((spring.X+resist.X)/MASS+XGRAVITY,

(spring.Y+resist.Y)/MASS+YGRAVITY);

dots[i].dx+=(DELTAT*accel.X);

dots[i].dy+=(DELTAT*accel.Y);

if(M

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2