浅析实现导师分配及结果提交的方法毕业论文.doc_第1页
浅析实现导师分配及结果提交的方法毕业论文.doc_第2页
浅析实现导师分配及结果提交的方法毕业论文.doc_第3页
浅析实现导师分配及结果提交的方法毕业论文.doc_第4页
浅析实现导师分配及结果提交的方法毕业论文.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浅析实现导师分配及结果提交的方法毕业论文目录前 言1一、 项目开发的意义2二、“为学生分配导师”模块功能简介3三、实现导师分配的方法5(一)使用session对象储存变量5(二)添加查询条件选择或删除同组学生7(三)满足条件失效的按钮8(四)禁止F5刷新功能12四、 实现分配结果提交的方法13(一)使用split()函数进行数据分割13(二)使用while循环结构多次查询14结 论16致 谢17参考文献18附 录论文答辩管理系统为学生分配导师模块毕业设计拟定方案 论文答辩管理系统为学生分配导师模块毕业设计具体方案 论文答辩管理系统为学生分配导师模块毕业设计修改方案I前 言本文着重从“组员列表”和“提交数据库”两个单元分析为学生分配导师模块是如何实现分配导师与提交数据库两大功能的。本文主要由四部分组成。第一部分:项目开发的意义。这一部分主要介绍了本项目的现状和项目开发后可以为学校带来的改变与影响。第二部分:“为学生分配导师”模块功能简介。该部分介绍了本小组负责开发的“为学生分配导师”模块的操作流程及主要功能。第三部分:实现导师分配的方法。本部分主要介绍了组员列表单元中为实现导师分配而采用的程序语言。第四部分:实现分配结果提交的方法。这部分主要介绍了提交数据库单元中为实现将分配结果成功提交数据库而采用的程序语言。本文秉着实践与理论相结合的原则,在文中融合了ASP开发应用程序的理论与实践,简要介绍了本模块中为实现导师分配与将结果提交数据库两大功能所采用的程序语言。一、 项目开发的意义随着现在网络时代的来临和各高校校园网的建设,基于互联网的管理系统在日常的生活与工作中发挥着重要的作用。例如,我校已经完成开发并投入使用的控电查询系统、校园一卡通查询和充值系统等等,这些系统都方便了我们的生活,使我校学生实现了足不出户办理校园业务的可能。据了解所知,我校仍采用人工手动分配的方式将学生组分配给论文指导老师并制成表格进行结果输出,这样无疑对于相关负责老师而言是一项巨大的工作。在这种大批量人工输入的结果中,无论是输入结果的错误率还是制表的效率都是不尽如人意的。作为手握大学生“命门”的论文答辩,更应该方便老师和学生,达到无论距离的远近均可以进行远程电脑端操作的目的。若开发并使用毕业生论文答辩管理系统,可以省去大量的手工操作,这样不仅可以减少老师的任务工作量,而且更重要的是可以有效降低输入结果的错误率,同时还可以大大提升工作的效率,使教务工作迈上一个新台阶。二、“为学生分配导师”模块功能简介因为毕业生论文答辩管理系统是校内的教务工作管理系统,所以要确保该系统的安全性。本模块需要在主页登录进入,若数据库中没有登录身份信息或登录时身份信息验证不成功(即用户名或密码错误)则无法进入本模块。本模块是毕业生论文答辩管理系统的第二个模块,要将在组队模块中已经形成组别的学生组分配给相应论文指导老师的模块。本模块拟定由三个单元组成,第一单元是“选择论文指导老师”单元,本单元可以限定之后选择的学生组属性;第二单元是“选择学生组”单元,本单元中可以随机选择该论文指导老师可允许带的学生组;第三单元是将结果记录在数据库中,免去人工地输入,方便快捷地将分配结果以表格的形式呈现出来。本文着重介绍第二单元和第三单元,即主要介绍程序中导师的分配与数据的提交两部分代码撰写的过程。本模块页面的主要操作流程如下图所示:三、实现导师分配的方法 实现导师分配单元主要由选择学生组页面和已选择的学生组列表页面两个页面组成。按系统页面操作流程,从本模块的主页先跳转至已选择学生组的页面,之后通过点击“选择学生”按钮进入选择学生组页面。(一)使用session对象储存变量“Session对象用来保存与Web应用程序会话的各个用户的信息,从而实现同一用户在整个会话中的不同页面之间进行变量值共享1。”session对象是最常见的用于存储用户的对象。session对象存储特定用户在整个系统操作中所需的数据信息。当用户在整个系统程序的各Web页之间跳转时,存储在session对象中的数据信息不会丢失,而是在整个操作浏览过程中一直存在,并可以重新赋值使session对象更新。在本模块代码设计上大量使用了session对象储存开发过程中需要的数据讯息。在组员列表单元中,通过给session赋值的方式实现本人及小组成员对学生组的删除功能。具体来说,选择的学生组的学生id都叠加形成一个长字符串并赋值在session对象中。在删除程序中,先使用instr()函数定位出要删除学生在字符串中的位置,再将空值使用replace()函数替换要删除学生处的id值,形成一个新的字符串,最后将新的字符串重新赋值给session对象,从而实现删除功能。其中,因为学生id之间需要使用分隔符相离,否则是一串没有意义的字符串。本模块中使用了“,”作为分隔符,即选择学生组之后,session对象中的值为“X1,X2,X3,X4,X5,Xn”。多次测试可得,若想最后的结果准确无误,需要考虑以下两种情况,即要删除的人的id值是否处于第一个的位置。若处于第一个的位置,开发过程中需要将“X1,”的部分删除,否则会出现“,X2,X3,X4,X5,Xn”的错误情况;若不处于第一个位置,开发过程中需要将“,X2,X3”的部分删去,否则会出现“X1,X4,X5,Xn”的错误情况。具体的代码撰写如下所示:dbpath=server.mappath(dbpath)set conn=server.createobject(adodb.connection) conn.open provider=microsoft.jet.oledb.4.0;data source= & dbpathquerySQL =select * from 学生 where 分组编号 in(select 分组编号 from 学生 where id= & request(id) & )Set rs=Server.CreateObject(ADODB.RecordSet) rs.Open querySQL,conn,1,1zuhe=rs(id)rs.movenextwhile not rs.eofzuhe=zuhe & , & rs(id)rs.movenextwendrs.closeset rs=nothingconn.closeset conn=nothingaaa=instr(session(zuyuan),zuhe) if aaa=1 thensession(zuyuan)=replace(session(zuyuan),(zuhe & ,),) elsesession(zuyuan)=replace(session(zuyuan),(, & zuhe),)end ifif session(zuyuan)=zuhe thensession(zuyuan)=end if(二)添加查询条件选择或删除同组学生“SELECT语句的主要作用是在数据库中检索相关的内容,可以说SELECT是SQL语言最关键的语句2。”SELECT命令基本格式为:Select 字段名 from table where 条件。查询语句是程序对数据表查询、读取、修改、删除的基础语句,在程序中有着重要的位置。本模块负责的是为已经通过组队模块形成组别的学生组分配导师。因此,本模块针对的对象是以组为单位,而不是个人,若不是以组为单位添加会出现以下两个问题:一、管理操作老师无法得知同组的组员都是哪些学生,二、管理操作老师无法得知某组组员的具体学生数。同时,为了方便操作,开发过程中需要在管理操作者选出一个学生之后将同组的学生都选出并显示在下方的已选组列表中。同理,删除学生组的时候亦需要达到删除一个学生便可删除整组学生的目的。想要实现同时选择或删除同组学生操作的具体代码撰写的步骤主要是:(1)获取在选择页面的URL中设置的参数id中的值,一个id代表一个学生,并使用sql查询语句查出该id所代表学生的分组编号。代码撰写如下所示:select 分组编号 from 学生 where id=request(id)(2)因为分组编号是唯一的,利用已查询到的分组编号,进行二次查询,查询与该生同一分组的其它学生。具体代码撰写如下所示:querySQL =SELECT * FROM 学生 WHERE 分组编号 in(select 分组编号 from 学生 where id= & request(id) & )。(3)再利用结构在div中输出即可。(三)满足条件失效的按钮“标记可以用来定义一系列的表单控件,标记通过设置一个属性“type”值的不同,来定义这些个不同的控件,各控件有一些通用的属性,如Name属性,它指定该控件的名称,再将表单信息传递到服务器端时非常有用;Value属性,它指定该控件的默认值;Size属性,它指定该控件的初始宽度;Readonly属性和disabled属性,它们将控件设为只读和失效3。”标记是Html基础语言中表单标记中的一个标记。其具有多种属性,在实际操作中可以根据自己的需要选择设置不同的属性。在组员列表单元主页面的下方,有三个按钮,分别是全部清除、选择学生和选择完成。三个按钮链接三个不同的页面,具体的实现方法如下:(1)“全部清除”按钮链接JQ_VBS_Session页,jQuery不支持session变量,因此使用JQ_VBS_Session作为中转页,此页只有程序不做显示页面,并且程序命令跳转的网页是组员列表页面,所以点击本按钮不跳转其他页面。但最终显示的是将session中已保存的学生id全部清空并在组员列表内容中显示文本“组内没有成员!”的新的组员列表页。中代码书写:jQuery程序中代码书写:$(.qingchu).click(function(e) window.location=JQ_VBS_Session.asp);(2)“选择学生”按钮是跳转至选择学生页面,在操作人为导师分配学生组时点击该按钮,页面跳转至选择页面,操作人在选择学生页面选择要分配给该导师的学生。但因为每个导师可带学生数量有限,不可无限制选择学生,所以需要为该按钮设置失效的条件。中代码书写:input type=button class=zuyuan value=选择学生jQuery程序中代码书写,负责完成页面的跳转:$(.zuyuan).click(function(e) window.location=xuanze.asp);Asp程序中代码书写,使用判断语句,将shixiao1输出至代码中位置即可在符合条件的情况下将按钮失效。如下所示代码可翻译为“当选择列表中学生总数量已达到选定导师可带的最多学生数时,选择学生按钮变为无法点击状态”。其中session(count)为选定导师可带的最多学生数,(ubound(qiege)+1)表示选择列表学生总数量。具体代码如下:if session(count)-(ubound(qiege)+1)=0 thenshixiao1=disabledelseshixiao1=end if(3)“选择完成”按钮链接着提交页,在操作人为导师分配完学生组后点击该按钮,便可将分配结果提交数据库,但因为提交页不需显示,提交成功后只弹出“提交成功”的弹出窗口,所以并没有页面之间的跳转。在组员列表显示文本信息“组内没有成员!”的时候,并没有内容需要提交数据库,所以此时“选择完成”按钮失效。中代码书写:input type=submit value=确认并提交 class=wancheng jQuery程序中代码书写,负责完成页面的跳转,confirm()为弹出确定窗口,两个按键:确定和取消。确定键返回true值完成页面跳转,取消键返回false值不执行动作。$(.wancheng).click(function(e) if(confirm(你确认导师分配完成了么?)return trueelsereturn false);Asp程序中代码书写,shixiao2输出至div代码中所示位置即可在满足条件是将选择完成按钮失效无法点击。如下所示代码可翻译为“当未选择组员时,页面显示 组内没有成员!的文本信息,并将选择完成按钮设置为不可点击状态。”。if session(zuyuan)= thenlist=组内没有成员!shixiao2=disabledelseshixiao2=end if(四)禁止F5刷新功能在程序开发过程中发现每按一次F5刷新浏览器页面时,组员列表中已选择的最后一组便会自动添加一组本身的记录。因为每一组都是唯一不重复的,所以开发过程中需要避免这种错误现象的产生。具体的操作是在jQuery程序中添加如下代码,便可禁止本页的F5刷新功能:$(document).bind(keydown, function(e) e = window.event | e;if (e.keyCode = 116)e.keyCode = 0;return false;);4、 实现分配结果提交的方法(一)使用split()函数进行数据分割“split()函数返回一个以零为基数的一维数组,这个数组会包含特定个数的子字符串,语法:Split(expression,delimiter,count,compare)5。” 其中,expression为必需项,由子字符串及分隔符构成的字符串;delimiter为子字符串之间的分隔符,若省略,则将指定空白字符()为分隔符;count表示要被返回的子字符串的个数;compare指定字符串比较的种类。常用语法格式为:Split(expression,delimiter)。在本模块中,使用session(zuyuan)储存已选择学生的id和分隔符“,”所组成的字符串。提交数据库的时候需要在每个人的数据信息中都添加指导老师的信息,也就是说提交数据库单元的对象从学生组变成了学生个人。此时,就需要将长字符串用分隔符“,”分隔成组合前的一个个单独的学生id值,才可以向每个学生的数据库信息中提交导师字段的修改信息。具体的代码书写:qiege=split(session(zuyuan),)。其实在模块中多处都使用了qiege=split(session(zuyuan),)这条语句。例如,在组员列表单元中,选择组员的判断条件中出现了ubound(qiege),它的意思是指qiege可用的最大下标,即qiege中所含数组的数量。所以在这段程序之前肯定出现了qiege=split(session(zuyuan),)语句,将session(zuyuan)分隔成了一个个独立的学生id值后再加以计数。(二)使用while循环结构多次查询“while循环的作用是当满足循环条件时就执行语句6。”while循环结构适用于需要进行多次同一程序块操作时使用,有效避免了程序的繁琐冗杂,使得代码简洁明了,操作简便可行性强。语法如下:while 条件式程序代码块wend在本模块中,因为每一个学生组内成员的数量不定,且大部分均不为一人,若分别针对组内每个成员写修改数据库的程序过于繁琐,所以决定使用while循环结构进行多次查询,并依次修改数据信息。循环变量初值为i=0,循环变量的增量i=i+1,循环条件为当循环变量i增长至qiege的最大下标,当循环变量大于ubound(qiege)时,结束循环结构。当程序为改变数据库中数据表时,原有结构rs.Open querySQL,conn,1,1中最后的1要更改为3,即rs.Open querySQL,conn,1,3。将从首页选择导师时获取的session(daoshi)赋值给rs表中的导师字段,使用rs.update语句对原有表进行修改。选择对原有表进行修改而不是新建表,是因为新表的文件大小远超对原有表进行修改的文件大小。这样的操作不仅节省了更多的存储空间,同时相关的操作也变得简便直接。i=0while i=ubound(qiege)querySQL=SELECT * FROM 学生 WHERE id= & qiege(i)Set rs=Server.CreateObject(ADODB.RecordSet) rs.Open querySQL,conn,1,3rs(导师)=session(daoshi)rs.updaters.closeset rs=nothingi=i+1wend结 论一个完善成功的系统的诞生,必将经历一段很长的开发测试时间,同时会对传统的人工运作模式产生影响,甚至取而代之。这就要求开发者具有很

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论