




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录一、设计性质、目的和任务1二、设计题目、内容与原始资料1三、总体设计21、设计的总体思想22、主要功能分析23、主要界面分析2四、详细设计31、聊天室首页32、在线人员页面83、聊天室的发言页面104、聊天内容页面135、聊天室主界面156、聊天室退出页面177、聊天室里的函数页面18五、实习总结24聊 天 室一、设计性质、目的和任务、本次设计是学生在学完ASP动态网站开发课程后的一次实践性很强的课程设计,是对ASP进行动态网站开发所学知识的综合运用。、掌握使用ASP技术进行网站开发设计。、通过本次实习,使学生加深所学知识内容的理解,并能积极地调动生的学习兴趣,结合实际应用操作环境,真正做到理论与实际相结合。二、设计题目、内容与原始资料设计题目:聊天室主要内容:用户在聊天室中需要能够把自己的发言发送出去,并能够看到其他网友的在线信息和发言信息,所有在线用户都需要有一个呢称,作为用户在聊天室里的代号。功能结构如图所示。 用户进入聊天室页面聊天室主界面在线网友列表界面网友发言界面发言显示界面三、总体设计1、设计的总体思想在这个项目聊天室里,要用ASP.NET开发一个聊天室程序,具有聊天室的基本功能,供用户聊天使用。包括用户注册和用户聊天的功能,聊天的数据要存放在Application对象里面,数据库里只存放用户注册信息。聊天室主要是以聊天功能为主,不仅可以多人聊天,还可以单独聊天,也就是私聊,这设计的过程中,还要显示好友的昵称,网站还需要注册以及登录,并且实现连接数据库。2、主要功能分析聊天室主要实现了以下功能:登录、显示在线人员、发言、显示发言内容、显示发言时间、用户退出聊天。登录时聊天室会检测登录的用户名是否重复,如果重复就会自动清空,并提示输入的用户名重复请重新输入。用户退出时从当前聊天室在线人员名单中删除当前用户。3、主要界面分析聊天室主界面以框架为主,这只是一个简单的框架页,分别显示不同的框架而已。分为四部分,显示在线人员和在线总人数页面,发言页面,聊天内容页面,聊天室主页面和退出界面。四、详细设计1、聊天室首页欢迎进行我的聊天室/该函数用来进行客户端验证function check_Null()if (document.frmLogIn.txtUserName.value=)alert(用户名不能为空!);return false;return true; 当前共有人在线请输入您的用户名 %如果用户输入了用户名,就执行下面的程序If Request.Form(txtUserName) Then以下返回用户名和用户IP地址,并保存到Session中Dim strUserName,IPstrUserName=Request.Form(txtUserName)获取用户姓名IP=Request.ServerVariables(REMOTE_ADDR) 获取IP地址Session(strUserName)=strUserName 保存到Session中待用 Session(IP)=IP同上下面调用函数检查是否已经有人使用该用户名,如无人使用,则添加到用户名单中If GetUserName(strUserName)=True ThenResponse.Write 已经有人使用该名称,请重新输入Else下面调用函数将该用户名保存到在线人员名单中Call addUserName(strUserName)下面调用函数将该用户来到的信息添加到聊天信息中Call AddUserCome(strUserName,IP)重定向到聊天主页面Response.Redirect whole.aspEnd IfEnd If% 2、在线人员页面meta http-equiv=refresh content=当前在线人员%从数组中获取在线人员Dim strUsersstrUsers=Application(strUsers)利用循环列出数组中所有人员Dim IFor I=0 To Ubound(strUsers)Response.Write strUsers(I) & Next%3、聊天室的发言页面发言区说: 离开聊天室%如果提交了发言信息,就执行下面的语句If Request.Form(txtSays) Then下面先获取有关数据,这里调用了函数Dim strSaysColor,strEmote,strSaysstrSaysColor=Request.Form(txtSaysColor)获取发言者颜色strEmote=Request.Form(txtEmote)获取发言者表情strSays=Trim(Request.Form(txtSays)去掉前后的空格下面调用函数将本次发言添加到聊天信息中CallAddUserSay(Session(strUserName),strSaysColor,strEmote,strSays)End If%document.frmInput.txtSays.focus();/定位光标top.main.location.href=f1.asp;/自动刷新f1.asp 4、聊天内容页面meta http-equiv=refresh content= window.scroll(0,60000);5、聊天室主界面聊天室主界面6、聊天室退出页面当会话开始时触发本事件Sub Session_OnStartSession.TimeOut=3设置Session有效期为3分钟End Sub当会话结束时触发本事件Sub Session_OnEnd调用函数,将该用户离去的信息添加到聊天信息中Call AddUserGo(Session(strUserName),Session(IP)调用函数,从当前聊天室在线人员名单中删除当前用户Call DelUserName(Session(strUserName)End Sub7、聊天室里的函数页面=这是函数文件1. 其中的函数供其他页面来调用2. 注意:因为Global.asa会调用该文件,相当于将本文件内容全部复制到Global.asa文件中, 而Global.asa中不允许使用的形式,所以这里用了现在的形式。=该函数返回该聊天室共有多少人Function AllUserName()Dim strUsers,IstrUsers=Application(strUsers)获取在线人员数组If IsArray(strUsers)=True ThenAllUserName=Ubound(strUsers)+1条件成立,表示确实是数组ElseAllUserName=0表示还没有人在线End IfEnd Function该函数用来判断该用户名是否已被使用,存在返回True,不存在返回FalseFunction GetUserName(strUserName)Dim strUsers,IstrUsers=Application(strUsers)获取在线人员数组下面判断strUsers是否是数组,如果是才查找;否则表示无人在线,不必查找If IsArray(strUsers)=True ThenFor I=0 To Ubound(strUsers)在数组中循环查找该用户名If strUserName=strUsers(I) Then GetUserName=True找到该用户名,返回TrueExit Function跳出函数End IFNextElseGetUserName=False无人在线,直接返回FalseEnd IfEnd Function该子程序用来将该用户加入在线用户列表Sub AddUserName(strUserName)Dim strUsers,intTempstrUsers=Application(strUsers)下面判断strUsers是否是数组,如果是就添加;否则表示无人在线,就创建一个数组If IsArray(strUsers)=True Then条件不成立,表示已经有人在线,只要将其添加在后面即可重定义原来数组的大小,令其比原数组多1项,将新用户加在后面intTemp=Ubound(strUsers)获取原来数组下标Redim Preserve strUsers(intTemp+1)重定义数组,使数组长度加1strUsers(intTemp+1)=strUserName将新用户名添加到后面下面保存到Application中Application.LockApplication(strUsers)=strUsers将数组保存到Application中Application.UnlockElse如果条件成立,表示此时根本还不是数组,说明是第一个人访问,所以定义一个新的数组,并将该用户添加进去即可。Dim strNew(0)定义一个长度为1的数组strNew(0)=strUserName给数组赋值Application.Lock Application(strUsers)=strNew 将数组保存到Application中Application.UnlockEnd IfEnd Sub该子程序将用户从在线用户中删除Sub DelUserName(strUserName)Dim strUsers,intTemp,I,JstrUsers=Application(strUsers)获取在线人员数组intTemp=Ubound(strUsers)返回数组最大下标下面分两种情况删除If intTemp0 ThenintTemp0表示有多个人,首先查找该用户,用变量J记住该用户所在位置For I=0 To intTempIf strUserName=strUsers(I) Then该条件表示找到了用户名J=I用J记住所在位置End IFNext将该位置之后的所有人向前移动一个位置For I=J To intTemp-1strUsers(I)=strUsers(I+1)Next重定义该数组的大小,令其比原数组少1Redim Preserve strUsers(intTemp-1)重定义数组,保留原来值下面将新的数组保存到Application中Application.LockApplication(strUsers)=strUsers将在线人员保存到数组中Application.UnlockElseintTemp0不成立表示就只有他一个人,只要将Application中的值清空即可Application.LockApplication(strUsers)=Application.UnlockEnd IfEnd Sub该子程序将某人来到的信息添加到聊天信息中Sub AddUserCome(strUserName,IP)下面先组成该用户来到的信息字符串Dim strSaysstrSays=Time() & 来自 & IP & 的 & strUserName & 欢迎光临下面将该用户来到的信息保存到聊天信息中Application.Lock先锁定Application(strChat)= Application(strChat) & & strSays添加到Application中 Application.Unlock解除锁定End Sub该子程序将某人离去的信息添加聊天信息中Sub AddUserGo(strUserName,IP)下面先组成该用户离去的信息字符串Dim strSaysstrSays=Time() & 来自 & IP & 的 & strUserName & 悄悄走了下面将该用户离去的信息保存到聊天信息中Application.Lock先锁定Application(strChat)= Application(strChat) & & strSays添加到Application中 Application.Unlock解除锁定End Sub该子程序将某人的发言添加到聊天信息中其中strUserName表示发言用户,strSaysColor表示发言颜色,strSays表示本次发言内容Sub AddUserSay(strUserName,strSaysColor,strEmote,strSays)下面将组成本次发言的字符串strSays=Time() & strUserName & strEmote & 说: & & strSays & 下面几句将本次发言信息保存到Application中Application.Lock先锁定Application(strChat)=Application(strChat) & & strSays添加本次发言如果聊天信息总长度超过10000个字符,则截短If Len(Application(strChat)10000 Then Application(strChat)=Right(Application(strChat),10000)End IfApplication.Unlock解除锁定End Sub五、实习总结通过这次实训。加深了我对网站开发的理解,掌握了使用asp语言进行编程和制作网页的基本方法,提高开发网站的实际操作能力。通过本课程的实训我掌握asp编程的方法和设计过程,从而可以培养独立的思考、分析项目的能力以及理论联系实际地进行项目的设计及实现能力。熟练ASP脚本编程、ASP组件使用、ASP数据访问控制。 这次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养师职业资格考试专项训练:营养师职业素养与沟通能力
- 民法典普法知识培训课件
- 2025年Python项目管理专项训练试卷 技能提升
- 现代农业基础知识培训课件
- 试题山西省怀仁市重点中学2026届化学高一第一学期期中质量跟踪监视试题含解析
- 四川省会理县第一中学2026届化学高三上期末预测试题含解析
- 王利明民法总论课件
- 天津市蓟州等部分区2026届化学高一第一学期期末达标测试试题含解析
- 2025年校园食堂设备维护与食品安全管理服务合同范本
- 2025年智能化车位租赁与增值服务综合管理协议
- T/CAQP 001-2017汽车零部件质量追溯体系规范
- 燃气入户可行性报告
- 技术赋能医疗创新-深入解析数字化口腔诊所建设指南
- 眼内炎护理疑难病例讨论
- 配送车辆消毒管理制度
- 理发店消防安全制度
- 脾脏解剖学与脾切除术指导
- 工厂改善方案
- 中医治疗眼病的技巧
- 2025年职工职业技能竞赛(泵站运行工赛项)参考试指导题库(含答案)
- 2025年商业物业管理授权协议书模板
评论
0/150
提交评论