版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、E参赛作品打印处全国高校德育分管理系统说明文档Document of Manager of College Moral Branch 全国高校德育分管理系统说明文档目录0.前言:31.概述52.使用现状63.开发方法74.可行性分析75.总体设计95.1系统框架95.2分数统计105.3名单添加/宿舍115.4样式风格136.开发环境147.运行环境148.XML设计158.1活动列表158.2班级管理员信息168.3学生会管理员信息178.4宿舍列表178.5反馈信息178.6学生列表189.关键代码分析199.1AJAX199.2分数计算代码22 0.前言: 山东师范大学 物理与电子科学学
2、院 学生德育分管理系统网址: /系统主界面:现提供部分学生账号与密码,以方便使用,登陆系统,点击相应的图片链接,输入账号即可:学号:8班级号:密码:00100该系统于2012年春季开发完成,并在作者所在学院进行了为期一个学期的稳定性测试、改良性测试。参与测试的人员有学院领导、作者本人、学生会各部门的德育分负责人、各班级德育分负责人、学生会德育分总管以及记者团人员。由于该系统在测试期间表现良好,2012年夏季学期伊始,该系统便在作者所在学院正式投入使用。我们想通过这次机会,将其推广成为一套适用于全国高校德育分管理系统.希望得到您的支持与指导! 1.概述现
3、代大学为培养学生的综合素质,常常使用德育分等其他类型的考核标准来评价大学生课余生活的丰富程度。而往往学院或者大学的人数众多、数据量极大,所以德育分管理成为了一个让老师、学生头疼的问题。因而我们开发了一套德育分管理系统来辅助学院管理德育分。这套系统是基于WEB服务的,我们使用PHP/HTML为主要语言来制作这套系统,因而无论是管理者还是普通学生都能随时随地管理和查询。并且为了减少要求对服务器的要求,我们并没有使用MySQL数据库,而是使用XML作为数据储存方式。这套系统具有宿舍管理、反馈系统、自定义活动加分项等功能。它还具有计算能力强大、管理方便快捷、查询公开透明等特点。这套德育分系统分为了四个
4、部分,分别是公共查询、学生会管理、班级管理和老师管理。在系统运行过程中,各部分各司其职达到德育分管理目的。Summary In modern universities or colleges,leaders and teachers tend to train their student to be high-quality,so there usually use something kind of Moral Branch(MB follows) to judge students after-class activities.Howe-ver,there are usually larg
5、e numbers of students in common colleges,so we developed a system of MB to assist our teachers and students to manage the MB. This system is based on WEB service,we use PHP/HTML as the main language,so no matter you are a manager of an ordinary student,you can operate everywhere and whensoever.And d
6、ue to reduce the requirement of servers,wed choose XML instead of MySQL to store the data. This system has the functions of Dorm Manager/Feedback/User-Defined Grade Item.And it also has the features of Powerful Calculation Ability/Fast Manage/Open and Transparent Public Inquiry. The system has 4 log
7、in entrances,they are public inquiry/class management/Student Unit management and Super Administration.And each part performs its own functions to achieve the purpose of management.2.使用现状本系统目前正在为山东师范大学物理与电子科学学院提供德育分统计服务,学生人数超过1500人,超过30个班级、300个宿舍,拥有12个学生会部门。使用的是阿里云(ALIYUN.COM)的弹性计算(云服务器)服务。Service R
8、uning The system is providing service for Physics & Electric College of Shandong Normal University,and for more than 1500 students/30 classes/300 dorms and 12 Student Union Departments. And The server is provided by Aliyun Cloud Service(A).3.开发方法本系统是采用PHP语言开发的,具有良好的跨平台性,能在Windows和Linux内核服务器
9、系统下运行。本系统的数据储存方式是使用标记语言Xml,并使用PHP库中自带的Dom组件来操作Xml。说到了Xml,便不得不提及本系统特殊的HTML框架,本系统广泛使用Ajax技术,大大提高了用户体验。每一个管理界面的操作均是由Ajax完成,而他们请求的PHP页面是各自统一的,这意味着使用者更容易这对学院实际情况定制系统。4.可行性分析本系统针对的人群都是在校学生和老师,目标群体单一,所需功能变化不大,在收集了学院主管德育分方面的同学和老师的提议之后,再针对开发系统能达到较好的可用性。(1) 经济可行性:本系统对服务器要求较低,并且增加了避免资源浪费的功能,所以具有经济可行性。(2) 技术可行性
10、:本系统的构架清晰,易于开发,开发周期仅为2个星期。并且,本系统采用PHP+XML,并不依赖于某种服务器。虽然XML并不能被当作数据库使用,但是在经过前期对数据量的估计之后,我们认为在学生数量不超过5000人的情况下,使用XML并不会出现性能和稳定性方面的问题。再者,由于使用XML标记语言,方便了数据备份和特殊情况下的数据还原工作,易于维护。因此也具有技术可行性。(3) 实际可行性:随着笔记本电脑、平板电脑甚至手机的普及,基于B/S的任务完成方式已被大众接受;并且现在网络(有线、WLAN、3G)也已经覆盖到了教学楼、办公楼和宿舍,人们使用基于B/S的工作方式能更快更方便、随时随地地完成任务。5
11、.总体设计5.1系统框架本系统是由公共查询、学生会管理、班级管理、老师管理员四个部分组成:公共查询是提供普通同学查询自己的德育分情况的,同学只用输入自己的学号,便能查看自己的详细德育分情况,并计算出总分。并且分数算法支持多种特殊要求,例如同类型分数封顶,职务分数折半等。学生会管理是负责创建加分项、编辑加分名单的。本系统支持多部门独立操作。学生会管理员还可以处理反馈求请求。班级管理是为班级管理员设立,用来辅助编辑加分名单的。它同时可以提交班级内的反馈请求。而老师管理员的管理功能较多,主要有添加编辑加分项,编辑宿舍分布,编辑学生会管理员/班级管理员账户,新学期设置,设置各种辅助功能。5.2分数统计
12、本系统采用的分数储存和统计方式是采用以下方式:学生会管理员和教师管理员可以新建加减分活动,这些家访活动有一些特殊属性,它们是活动名称、活动级别、所属管理部门、日期等,而每一个加减分活动独立地对应着一个或多个加减分项目,这些加分项也都对应着一些特殊属性,它们是项目名字、加分类型和加分分值,而每一个加减分项目又独立地对应着一个名单。并且每一个加减分项都可以自定义加减分值,这意味着被添加到该加减分项所属名单的学号,都受到了此加减分项的分数调整。需要说明的是,“加减分活动”虽名为活动,但却不是一定要添加活动类型的加分项,它的添加是任意的,例如证书、奖学金、职务等都可以添加。而上面所用的“调整”一词,意
13、为加分项所赋予的分值,并不一定就是该同学最终得到的分值。原因是考虑到了不同学院的限制,例如类型封顶,这是说的同样类型的分数(比如志愿者)的封顶分数为n分,因而在学生会和教师管理员添加加减分项目的时候,会为每一个加减分项赋予类型(例如:志愿者、卫生分、证书分、礼义分等),若某同学的某种类型分数(a分)超过上限(n分),系统在计算分数的时候会自动舍去多余的分数(a-n分)。下图是作者所在学院的详细规定,当然,这些特殊算法都是可以自定义的。5.3名单添加/宿舍为方便加减分项目名单的添加,我们制作了多种名单编辑方式,如下图:管理员可以使用三种方式添加名单:第一种是按照名字或学号列表添加,例如“张三 李
14、四”或“8 7”或“张三 李四 8”.第二种是按照名字或学号逐一添加,例如“张三”、“zhangsan”、“zs”、“9”。如图:第三种是按照宿舍添加,例如输入“14525”(意为14号楼525宿舍),将会在右端出现该宿舍的所有成员,点击即可添加。如图:5.4样式风格 本系统以浅灰色为主题颜色,并搭配灰蓝色作为部分装饰颜色,给人以清爽干净的视觉效果。其中,德育分系统的LOGO和一些装饰图片使用Flash制作,并让其能够在是视觉上打到统一的效果。6.开发环境Adobe Dreamweaver CS5.5VMware 6.0(APACHE2.2 PHP5.3)7.运行环境服务器:APACHE2.0
15、/IIS6.0/Centos6.0 以上,并搭配PHP,支持XML。部分功能需要有Perl支持。处理器内存256MB,储存空间10GB以上。虚拟主机亦可,需支持PHP。客户端:IE6.0以上,支持Chrome/FireFox/Safari等主流浏览器。8.XML设计本系统使用XML文件储存数据的地方有三处,分别是活动列表、班级管理员信息、学生会管理员信息、宿舍列表、反馈信息和学生列表。8.1活动列表活动列表使用作为root标签,term属性表示当前学年。作为父标签,department属性表示管理部门;mname属性表示活动名称;aorb属性表示学期;mtime属性表示创建时间,date属性表
16、示活动日期;level属性指的是活动的级别。而标签下的自标签储存的是当前活动的所属加分项信息。每一个item标签的TEXT值代表受到此加分项加分或减分的学生学号名单。Stime代表创建/修改时间;subname标签表示此加分项的名字;type标签表示该加分项的分数类型;而scale标签表示该加分项加减分的分值。 8.2班级管理员信息班级管理员信息以master标签作为root标签,而grade属性表示该列表下的班级所属的年级。每一个班级使用一个标签储存密码信息。Class标签表示该班级的班级号码,pw标签表示管理员密码的32位MD5码。8.3学生会管理员信息班级管理员信息以department
17、_list标签作为root标签。每一个部门使用一个de标签储存信息,nm属性表示部门名称,pw表示管理员密码的32位MD5码,mail标签表示登陆验证邮箱。8.4宿舍列表宿舍列表以library标签作为root标签。每一个宿舍使用一个d标签储存信息,m属性表示宿舍成员的学号,每一个学号使用逗号分割,a标签表示宿舍的号码,#之前的数字表示楼号,#之后的数字表示房间号。8.5反馈信息反馈信息以library标签作为root标签,每一条反馈请求使用一个p标签;b属性表示该反馈提交的部门;d表示请求提交的时间;a属性表示提交申请人学号;c表示提交申请的活动和加分项目标,横杠左边的数据表示活动号码,横杠
18、右端的数字表示该活动下属的加分项序号;stat属性表示该反馈请求的处理状态,“OK”属性表示请求生效,“重复”表示已经该学号已经存在于该加分项下,“待审核”表示请求尚未处理,若管理员驳回申请,系统将会自动删除此条目。8.6学生列表学生列表以stulist标签作为root标签,而grade标签表示当前列表中学生所属年级;每一个学生使用一个s标签储存信息,a属性表示该学生的学号;b表示该学生的姓名;c属性表示该学生姓名的拼音,前两个或三个字母表示名字拼音首字母,后部分是姓名全拼,这样的目的是方便姓名搜索。9.关键代码分析在此我们分析一下在程序中使用到的关键代码。9.1AJAX 此段JS代码首先使用
19、showpos()、showpos_post()函数调用msxml的各种方法。其中showpos()函数使用GET方法提交http请求,而showpos_post函数使用POST方法提交http请求,它们获取响应之后,使用eval执行可能带有javascript的html代码并呈现到页面上。var xmlhttp = false;var currentPos = null;if(window.XMLHttpRequest) xmlhttp = new XMLHttpRequest(); if (xmlhttp.overrideMimeType) xmlhttp.overrideMimeType
20、(text;charset=UTF-8); else if (window.ActiveXObject) try xmlhttp = new ActiveXObject(Msxml2.XMLHTTP); catch (e) try xmlhttp = new ActiveXObject(Microsoft.XMLHTTP); catch (e) function sendRequest(url) if (!xmlhttp) window.alert(Error.); return false; xmlhttp.open(GET, url, true); xmlhttp.onreadystate
21、change = processRequest; xmlhttp.send(null);function processRequest() if (xmlhttp.readyState = 4) if (xmlhttp.status = 200) ajax_a=xmlhttp.responseText; ajax_a=ajax_a.split(ferryrunjs); var ajax_out_str=; for(ajax_i=0;ajax_iajax_a.length;ajax_i+) if(ajax_i%2=0) ajax_out_str=ajax_out_str+ajax_aajax_i
22、; else if(ajax_i%2=1) var run_res; run_res=eval(ajax_aajax_i); if (run_res) ajax_out_str=ajax_out_str+run_res; else document.getElementById(currentPos).innerHTML=ajax_out_str; else alert(Error.); function showPos(obj,ttlink) document.getElementById(obj).innerHTML= 正在载入.; currentPos = obj; sendReques
23、t(ttlink);function showPos_Post(currentPos,url,postStr) var msg = document.getElementById(msg); var f = document.user_info; var ajax = false; if(window.XMLHttpRequest) /Mozilla 浏览器 ajax = new XMLHttpRequest(); if (ajax.overrideMimeType) /设置MiME类别 ajax.overrideMimeType(text/xml); else if (window.Acti
24、veXObject) / IE浏览器 try ajax = new ActiveXObject(Msxml2.XMLHTTP); catch (e) try ajax = new ActiveXObject(Microsoft.XMLHTTP); catch (e) if (!ajax) / 异常,创建对象实例失败 window.alert(不能创建XMLHttpRequest对象实例.); return false; ajax.open(POST, url, true); ajax.setRequestHeader(Content-Type,application/x-www-form-ur
25、lencoded); ajax.send(postStr); ajax.onreadystatechange = function() if (ajax.readyState = 4 & ajax.status = 200) ajax_a=ajax.responseText; ajax_a=ajax_a.split(ferryrunjs); var ajax_out_str=; for(ajax_i=0;ajax_iUserID=$userid; $dom_list=new DOMDocument; $add_scale_type=split(,$setup_addscale_type); $
26、add_scale_type_upboard=split(,$setup_addscale_up); $add_scale; $dom_list-load(xmldoc/activity_list_.$inquire_year._.xml); $list_xpath=new DOMXPath($dom_list); if($inquire_type) $list_xpath_mtime=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:a
27、ctivity/mtime); $list_xpath_mname=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:activity/mname); $list_xpath_department=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:activity/departmen
28、t); $list_xpath_date=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:activity/date); $itemlength=$list_xpath_mtime-length; $jobscale_count=0; $this-tmp_activity_list=; for ($j=0;$jitem($j)-nodeValue; $list_final_subname=$list_xpath-query(/activ
29、ity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/subname); $list_final_scale=$list_xpath-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/scale); $list_final_type=$list_xpa
30、th-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/type); $list_thisnamelist=$list_xpath-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/text(); $itemlength2=
31、$list_final_subname-length; for($k=0;$kitem($k)-nodeValue; if ($list_final_type_s=学生会职务 or $list_final_type_s=其他职务 or $list_final_type_s=班级职务(不平分) $jobs_scale$jobscale_count=$list_final_scale-item($k)-nodeValue; $jobscale_count+; $this-tmp_say=$this-tmp_say. 职务类加分:.$list_xpath_mname-item($j)-nodeVal
32、ue. 的 .$list_final_subname-item($k)-nodeValue. 为 .$list_final_scale-item($k)-nodeValue.。; else if ($list_final_type_s=班级职务(班里平分) $list_thisnamelist_str=$list_thisnamelist-item($k)-nodeValue; $list_thisnamelist_str_count=count(split(,.substr($this-UserID,0,10),$list_thisnamelist_str)-1; $this_scale=$
33、list_final_scale-item($k)-nodeValue; $jobs_scale$jobscale_count=$this_scale; if ($list_thisnamelist_str_count1) $this_scale=$this_scale/$list_thisnamelist_str_count; $this-tmp_say=$this-tmp_say. 职务类加分:.$list_xpath_mname-item($j)-nodeValue. 的 .$list_final_subname-item($k)-nodeValue. 为 班级职务(班里平分),搜索到同
34、班相同职务 .$list_thisnamelist_str_count. 名,实际得分 .$this_scale.。(不包括折半政策); $jobs_scale$jobscale_count=$this_scale; $jobscale_count+; $this-tmp_say=$this-tmp_say. 职务类加分:.$list_xpath_mname-item($j)-nodeValue. 的 .$list_final_subname-item($k)-nodeValue. 为 .$this_scale.。; else $this_index=array_search($list_fi
35、nal_type_s,$add_scale_type); $add_scale$this_index=$list_final_scale-item($k)-nodeValue+$add_scale$this_index; $department_str=$list_xpath_department-item($j)-nodeValue; $this-tmp_activity_list=$this-tmp_activity_list.substr($department_str,1,strlen($department_str)-1).$list_xpath_date-item($j)-node
36、Value.$list_xpath_mname-item($j)-nodeValue. 的 .$list_final_type_s. 类的 .$list_final_subname-item($k)-nodeValue.$list_final_scale-item($k)-nodeValue.; $this-tmp_activity_list=$this-tmp_activity_list.; $all_count; for ($i=0;$icount($add_scale_type);$i+) if ($add_scale_type_upboard$i0) if ($add_scale_ty
37、pe_upboard$i=$add_scale$i) if ($add_scale$i=) $add_scale$i=0; $scale_count_tmp=$add_scale_type_upboard$i.>.$add_scale$i.; $all_count=$add_scale$i+$all_count; else $this-tmp_say=$this-tmp_say. .$add_scale_type$i. 类总得分为 .$add_scale$i.,大于上限 .$add_scale_type_upboard$i.,因而有效分值为 .$add_scale_type_upboar
38、d$i. 。; $scale_count_tmp=$add_scale$i>.$add_scale_type_upboard$i.; $all_count=$add_scale_type_upboard$i+$all_count; else $scale_count_tmp=$add_scale$i; $all_count=$all_count+$add_scale$i; /计算职务类最终得分: $max_one=0; for ($i=0;$i$max_one) $result_scale_jobs=$result_scale_jobs+$max_one/2; $max_one=$job
39、s_scale$i; else $result_scale_jobs=$jobs_scale$i/2+$result_scale_jobs; $result_scale_jobs=$result_scale_jobs+$max_one; $this-ResultScale=$all_count+$result_scale_jobs; if($this-tmp_say=) $this-tmp_say=暂无。; else $list_xpath_mtime=$list_xpath-query(/activity_list/activity/*local-name()=item and contai
40、ns(text(),.$this-UserID.)/parent:activity/mtime); $list_xpath_mname=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:activity/mname); $list_xpath_department=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-
41、UserID.)/parent:activity/department); $list_xpath_date=$list_xpath-query(/activity_list/activity/*local-name()=item and contains(text(),.$this-UserID.)/parent:activity/date); $itemlength=$list_xpath_mtime-length; $jobscale_count=0; for ($j=0;$jitem($j)-nodeValue; $list_final_subname=$list_xpath-quer
42、y(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/subname); $list_final_scale=$list_xpath-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/scale); $list_final_type=$list_xpath-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/type); $list_thisnamelist=$list_xpath-query(/activity_list/activity/*local-name()=item and stime=.$list_xpath_mtime_str. and contains(text(),.$this-UserID.)/text
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生院廉政风险防控制度
- 乡卫生院艾滋病规章制度
- 肝纤维化无创诊断模型建立与验证
- 小学卫生检查员工作制度
- 周五爱国卫生大扫除制度
- 阑尾切除术后患者整体护理的质量控制
- 中国湖仓一体行业市场规模及发展前景研究报告(智研咨询)
- 2026年营销策划师技能测试题集营销策略制定实战模拟题及答案202X
- 职业苯系物骨髓抑制的健康促进策略
- 公安宣传稿件培训
- 2026重庆高新开发建设投资集团招聘3人备考考试试题及答案解析
- 2026年度宣城市宣州区森兴林业开发有限公司第一批次员工公开招聘笔试参考题库及答案解析
- 老年人管理人员培训制度
- 2025年湖南常德市鼎城区面向全市选调8名公务员备考题库及答案详解(新)
- 2026年高考时事政治时事政治考试题库及答案(名校卷)
- 2026年新能源汽车动力电池回收体系构建行业报告
- 2026四川成都市锦江区国有企业招聘18人笔试备考试题及答案解析
- 2025学年度人教PEP五年级英语上册期末模拟考试试卷(含答案含听力原文)
- 企业内部承包责任制管理办法
- 胰岛细胞瘤课件
- 生鲜采购员知识培训内容课件
评论
0/150
提交评论