职高计算机作业管理系统的开发与应用.doc_第1页
职高计算机作业管理系统的开发与应用.doc_第2页
职高计算机作业管理系统的开发与应用.doc_第3页
职高计算机作业管理系统的开发与应用.doc_第4页
职高计算机作业管理系统的开发与应用.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

职高计算机作业管理系统的开发与应用摘要本文通过详实的介绍计算机作业管理系统的前期分析、中期开发过程、及后期应用,展现了作业管理系统在职高计算机教学中的意义和作用。一、背景及意义:职高计算机教学是职高教学活动的重要组成部分。计算机专业课程的设置与教学,以就业为导向,注重学生整体意识、实践能力的培养。学生不能继续上次的作业 由于课程设置、教学设施等诸多因素的影响,使得教学不能像培训一样连续的进行。而计算机专业课的教学内容和学生作业往往在一、二节课内不能完成,要继续上节课未完成的作业,必须先取得原稿。而为了安全,学生机都设有保护系统,学生无法在硬盘保存数据,未完成的作业必须保存在教师机或服务器上。由于教学软件的局限,学生要再次取得已提交的作业是一件非常麻烦的事,教师须一个一个的发送到对应学生的电脑上,效率非常低,所以教师一般很少再将提交的作业发还给学生,导致很多学生没有几件完整的作品。未完成的作业手工一一发放学生机学生机学生机教师备课资料的传输不流畅 教师准备的教学材料及学生完成的作业传输存在问题。教师在自己办公室准备的材料,通过优盘或ftp传递到教师机上,然后发放到学生机上;学生上交作业到教师机,教师需要通过优盘或ftp带回到办公室,这些中间步骤无形中增加了教师的工作成本,降低了工作效率。教 师 备 课 资 料复制到 复制到 发放到 复制到 复制到 复制到学 生 作 业 资 料办公室优盘FTP教师机学生机如果直接通过ftp上传下载,就需要为每位学生开通ftp账号,工作量非常大,而且极难进行管理。网上同类软件的局限网络上存在一些类似系统,通过试用发现,并不适合我校实际情况。主要因素有:一、功能不全的试用版;二、需要收费;三、操作不合理等等。为解决上述问题,我校计算机组教师决定开发一款作业管理系统,以帮助教师提高工作效率,降低工作成本;帮助学生更好的学习计算机专业知识,管理好自己的作品;帮助学校节约一定办公资源(如优盘),充分利用已有资源(如服务器)。二、系统开发过程(一)需求分析根据各位计算机教师多年的教学经验,经过分析讨论,总结出计算机作业管理系统应具备的模块及功能,如下表:公用模块学生模块教师模块系统管理模块登录选择课程选择课程课程设置注销查看作业、下载附件发布作业班级设置密码修改提交作业及附件学生作业管理用户管理学生密码恢复教学任务分配密码恢复(二)概要设计概要设计是根据需求分析,对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。 1、公用模块设计A、登录 任何用户必须登录才能进入系统。登录功能根据用户名和密码判断用户是否有权利登录系统;对成功登录的用户根据,数据库中已设定的用户组,对接到相应的功能模块,显示相应的界面。B、注销 用户安全退出系统,返回到登录界面。C、密码修改 修改当前登录用户的密码。在具有原密码的情况下,才能修改密码,以防止学生在不留意时被其他同学篡改密码。学生组教师组管理员组用户登陆所属用户组修改密码登出显示管理员菜单显示教师菜单显示学生菜单用户登陆验证成功后,系统根据用户所在的用户组,显示出相应的菜单,以便用户完成相应的任务。其中修改密码、登出为公用模块,将同时显示在菜单中。2、学生模块设计学生用户登录系统后,系统根据当前用户所在的用户组为学生组,显示出学生组的基本功能按钮,并从数据库中查询出所学的课程,供学生选择。学生登陆课程选择查看作业说明密码修改登出上交新作业查看自己的已交作业查看、下载、删除已交作业下载作业附件A、选择课程 显示该课程下教师布置的作业,供学生查看作业内容、作业要求等,如果作业有教师准备的附件,可以在此页面下载。B、提交作业 学生完成作业后,进入作业提交页面,上传作业、填写作业说明。同时可以对已经提交的作业进行管理。学生用户登录后,立即显示学生菜单,包括:学生首页、 修改密码、注销,同时显示该生学习的计算机课程。选择课程后首页显示该课程下的教师已布置的作业(被教师隐藏的作业不显示),作业分左中右三列显示,左侧以垂直方式显示编号、标题、布置时间、操作(提交作业,查看已交作业)、讨论(参与到讨论组)等信息;中间显示教师提供的可供下载的作业附件;右侧显示作业说明。3、教师模块设计教师用户登录系统后,系统根据当前用户所在的用户组为教师组,显示教师组的基本功能按钮,并从数据库中查询出任教的课程,供教师选择。A、选择课程 一位教师可能任教多门课程,选择课程后才能查看和管理该课程下的作业情况。B、发布作业 首先填写作业名称,填写作业说明,选择作业附件,指定布置到的班级,然后单击“提交”发布作业。C、作业管理 查看作业提交情况,修改作业说明,下载学生作业,管理学生作业。D、学生密码恢复 根据学生姓名查询密码。教师登陆课程选择作业说明修改作业布置密码修改登出学生作业查看、删除及下载学生密码查询选择作业教师用户登录后,立即显示教师菜单,包括:教师首页、布置作业、修改密码、找回学生密码、注销,同时显示该教师的任教课程。布置作业需在选择课程后进行;教师首页在未选择课程时显示:“请先选择课程”的提示,在选择课程后显示改课程下最新布置的作业,每页显示10个作业,按时间倒序排列;每个作业分左中右三列显示,左侧包括编号、状态(状态切换)、标题、时间、操作(查看已交情况)、讨论(参与到讨论组)等信息和链接,中间显示教师发布的作业信息,右侧显示教师发布的作业附件,供学生下载。4、系统管理模块设计管理员用户登录系统后,系统根据当前用户所在的用户组为管理组,显示管理组的基本功能按钮,供管理员选择。A、课程设置 添加、删除课程,一次可增加一门课程,增加的课程立刻显示出来,并在其后显示删除链接,点击删除链接就可以删除对应课程。B、班级设置 添加、删除班级,一次可增加一门班级,增加的班级立刻显示出来,并在其后显示删除链接,点击删除链接就可以删除对应班级。当班级中已经有成员的情况下,删除班级时将同时删除该班级下的所有成员。C、用户管理 添加、删除用户。添加用户时,先选择用户组,将同用户组的用户信息(包括登录账号、用户姓名、登录密码)按指定格式填在文本框中,即可批量增加用户。不同用户组的输入格式设置完全相同,只是所在的用户组不同。D、教学任务分配 将教师、班级、课程进行关联。即设置每位教师任教的课程和班级。删除分配只删除关联,不会删除教师账号、班级和课程。E、密码恢复 查看用户的密码,同时还可看到其他用户信息。管理员用户登陆后,立即显示管理员菜单,包括:用户管理、课程管理、班级管理、任务管理、修改密码、注销。任务管理需在教师、班级和课程设置完成后进行;学生用户管理需在班级设置完成后进行。管理员登陆课程管理用户组(班级)管理教师用户管理教学任务管理学生用户管理密码修改登出5、数据库设计根据需求分析,数据库需要以下表格保存信息。A、用户表 用于存储用户信息,包括登录名、用户姓名、登录密码、所属用户组,共4个字段;B、用户组表 用于存储用户组信息,包括用户组编号、用户组名称,共3个字段;C、课程表 用于存储课程信息,包括课程编号、课程名称,共2个字段;D、教学任务关联表 用于存储教学任务的关联信息,包括关联编号、教师用户登录名、课程编号、用户组(班级),共4个字段;E、作业信息表 用于存储教师发布的作业信息,包括作业编号,发布者、课程编号、作业标题、作业详细信息、附件(学生上交的作业)保存目录、发布时间、最后编辑详细信息的时间、是否隐藏,共9个字段;F、作业附件信息表 用于存储教师发布的作业附件信息,包括作业附件文件编号、发布者(教师用户)登录名、作业编号、文件名、文件大小、服务器上的保存路径、服务器上的对应文件名,上传时间、上传IP地址,共9个字段;G、作业提交信息表 用于存储学生提交作业的信息,包括提交编号、提交者(学生用户)登录名、作业编号、提交说明、最后编辑时间,共5个字段;H、提交附件信息表 用于存储学生提交的作业附件文件信息,包括附件文件编号、提交编号、文件名、文件大小、服务器上的保存路径、服务器上的对应文件名、上传时间、上传IP地址,共8个字段;I、作业分配表 用于存储作业分配到班级的信息记录,包括作业编号、用户组编号(班级),共2个字段。(三)详细设计在概要设计的基础上,进行软件作业管理系统的详细设计。描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,说明作业管理系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。以保证系统的需求完全符合整个作业管理系统。1、数据库系统的选择因本系统对数据库读写新能要求不高,选择SQLServer、MYSQL等数据库服务器产品是极大的浪费。考虑到开发语言为PHP,因此选择管理方便、性能卓越的SQLite作为本系统的数据库。SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQLite还具有以下优点:首先,SQLite是零配置的,无需安装和管理配置,这给系统的安装和部署带来极大的便利;其次,数据储存在单一磁盘文件中,即一个SQLite数据库文件就是一个完整的数据库,这给系统数据的备份带来极大的便利;再次,支持足够大的数据量,SQLite支持数据库大小至2TB,管理一个作业管理系统绰绰有余;第四,PHP5默认支持SQLite数据库,无需额外配置。第五,SQLite是完全免费的,没有软件版权及使用许可协议的问题。综合考虑,SQLite成为本系统数据库管理系统不二的选择。2、开发语言的选择Web开发语言琳琅满目,ASP、JSP、C#、PHP、PERL等等。从性能角度考虑ASP被淘汰,ASP的性能远不如PHP等其他Web开发语言;从系统规模角度考虑JSP、C#被淘汰,本作业管理系统的规模非常小,没有必要运用复杂的架构,使用JSP、C#太大材小用。PHP和PERL都是适合本系统的,因个人喜好选择PHP作为作业管理系统的开发语言。为提高开发效率,选择合适的开发框架是一个至关重要的环节。近几年来,随着PHP作为一门被许多开发者选作他们的脚本语言而不断演化,PHP开发框架如雨后春笋般展现出来,其中最受欢迎的包括:The Zend Framework、CakePHP、Symfony、Codelgniter等,都是国外流行的PHP开发框架,同时也受到国内PHP开发者的青睐。国内的PHP开发框架的佼佼者应属ThinkPHP和CanPHP,同样都是开源免费的,而且有完整详实的中文文档。本着支持国内PHP开发框架的发展,我们选择ThinkPHP作为本作业管理系统的开发框架。ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业级应用开发而诞生的。ThinkPHP借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,采用单一入口模式等,融合了Struts的Action思想和JSP的TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,封装了CURD和一些常用操作,在项目配置、类库导入、模版引擎、查询语言、自动验证、视图模型、项目编译、缓存机制、SEO支持、分布式数据库、多数据库连接和切换、认证机制和扩展性方面均有独特的表现。使用ThinkPHP,可以更方便和快捷的开发和部署应用。3、数据表设计根据概要设计中,数据库的设计,建立以下9张数据表,包括数据表名称、字段名称、字段类型及大小、中文说明:A、用户表:jsjzy_useruser_idvarchar(18)用户登录名主键group_idvarchar (8)用户组编号外键user_namevarchar (8)用户姓名passwordvarchar (40)登录密码B、用户组表:jsjzy_groupgroup_idvarchar (8)用户组编号主键group_namevarchar (8)用户组名称C、课程表:jsjzy_curriculumcurriculum_idInteger课程编号主键curriculum_namevarchar(20)课程名称D、教学任务关联表:jsjzy_arrangearrange_idInteger任务关联编号主键user_idvarchar(18)用户登录名curriculum_idvarchar(20)课程编号group_idVarchar(4)用户组编号E、作业信息表:jsjzy_jobjob_idinteger作业编号主键user_idvarchar(18)发布者登录名外键curriculum_idvarchar(20)课程编号外键titlevarchar(200)标题contenttext作业详情save_pathvarchar(256)附件保存目录publish_timedate发布时间last_edit_timetmestamp说明最后编辑时间hidedinteger时候隐藏默认值0,不隐藏F、作业附件信息表:jsjzy_jobfilejobfile_idInteger作业附件编号主键user_idVarchar(18)发布者登录名外键job_idInteger作业编号外键file_namevarchar(60)作业附件文件名file_sizeInteger作业附件文件大小save_pathvarchar(256)服务器上保存的路径save_namevarchar(60)服务器上对应文件名upload_timetmestamp上传时间upload_ipvarchar(15)上传IP地址G、作业提交信息表:jsjzy_submitsubmit_idInteger作业提交编号主键user_idvarchar(18)提交者登录名外键job_idinteger作业编号外键contenttext提交说明last_edit_timetimestamp说明最后编辑时间H、提交附件信息表:jsjzy_submit_filesubmit_file_idinteger提交附件编号主键submit_idinteger作业提交编号外键file_namevarchar(60)附件文件名file_sizeinteger附件文件大小save_pathvarchar(256)服务器上的保存路径save_namevarcha(60)服务器上对应文件名upload_timetimestamp上传时间upload_ipvarchar(15)上传IP地址I、作业分配表:jsjzy_job_groupjob_idinteger分配编号主键group_idvarchar(4)教师用户登录名主键表间关系如图:(ACCESS模拟)(四)编码在软件编码阶段,开发者根据软件系统详细设计报告中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。以ThinkPHP为开发框架,至少必须理解ThinkPHP的两个原理:第一,ThinkPHP基于MVC模式设计,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。视图是用户看到并与之交互的界面。在视图中没有真正的处理发生,它只作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则,在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理,它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。 ThinkPHP的基本处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。第二,ThinkPHP的数据库操作机制CURD。CURD是一种数据库处理机制。C表示Create,即创建操作;U表示Update,即更新操作;R表示read,即读取操作;D表示Delete,即删除操作。ThinkPHP使用add、save、select和delete方法实现CURD操作。编码举例:全局配置文件confconfig.php,设置作业管理系统的全局变量,包括ThinkPHP框架全局变量和自定义全局变量,源码如下:配置值 SOFT_NAME =计算机作业管理系统, /软件名称(自定义配置项) SOFT_VERSIONS =v2.2.0,/软件版本号(自定义配置项)DB_TYPE = PDO,/数据库类型DB_DSN = sqlite:Data/jsjzy.s3db,/数据库DSNDB_PREFIX=jsjzy_,/数据表前缀TMPL_CACHE_ON=TRUE,/模板缓存TMPL_CACHE_TIME=-1,/模板缓存刷新时间FILE_SAVE_PATH= F:,/附件保存的根路径(自定义配置项) ALLOW_FILE_EXT =array(rar,zip, doc, xls, mdb,ppt,txt,html),/允许上传的文件扩展名(自定义配置项) / APP_DEBUG = true,/调试模式);?视图文件举例样例文件一,TpldefaultIndexlogin.html,默认视图-公用模块-用户登录视图,源码如下:你好,请登录!登陆账号:登陆密码: 运行效果:样例文件二,TpldefaultAdminsetGroup.html,默认视图-管理员模块-用户组(班级)设置视图,源码如下:/*班级管理*/ 新增班级班级编号:例如:0805班级编号操作$vo.group_id删除运行效果:控制器文件举例样例文件一,LibActionIndexAction.class.php,此控制器负责控制公共模块,包括用户登录、登出、密码检测、登录后根据用户组跳转等控制,源码如下:redirect(Index/login); else switch ($_SESSIONuserGroupgroup_name) case teacher: $this-redirect(Teacher/index); break; case admin: $this-redirect(Admin/index); break; default: $this-redirect(Student/index); break; public function login() $this-display(); public function checklogin() if(isset($_POSTuserId) and isset($_POSTpassword) if(NULL=$_POSTuserId or NULL=$_POSTpassword) $this-error(登陆编号和登陆密码都必须填); else $User=D(User); $u=$User-where(user_id=.$_POSTuserId. and password=.$_POSTpassword.)-relation(Group)-find(); if(is_null($u) $this-error(用户不存在,或密码错误!); else $_SESSIONuser=$u; $this-redirect(index); public function logout() if(isset($_SESSIONuseruser_id) unset($_SESSION);session_destroy(); $this-redirect(Index/index); ?模型文件举例样例文件一,LibModelUserModel.class.php,此模型文件负责用户的业务逻辑,源文件如下:BELONGS_TO,/属于哪个组Job=HAS_MANY,/布置了哪些作业,对管理员和学生无用Arrange=HAS_MANY,/有哪些教学任务,对学生无用/Subfile=HAS_MANY,/上传了哪些附件Submit=HAS_MANY,/完成了哪些作业,对教师无用);public function getCurriculumList()$Arrange=D(Arrange);if($this-group_id=teacher)$arrangeList=$Arrange-where(user_id=.$this-user_id.)-group(curriculum_id)-relation(TRUE)-select();elseif ($this-group_id!=admin)$arrangeList=$Arrange-where(group_id=.$this-group_id.)-group(curriculum_id)-relation(TRUE)-select();return $arrangeList;public function getGroupId()return $this-group_id;?(五)测试测试分为三个阶段。第一阶段,开发测试。即开发过程即将结束时,开发者根据正常的软件操作流程,全面完整的执行各项操作,发现问题及时修正。通过此过程,开发者可以发现大量明显的bug,并及时修改源代码。第二阶段,应用环境模拟运行测试。此阶段是将软件部署到一个与应用环境完全相同的模拟环境中。请多位计算机教师和学生,进行模拟应用。此阶段中,教师和学生能发现一定数量的bug,同时能提出一些建议和意见,比如操作易用性上的建议等。开发者综合这些建议和意见,进行优化。第三阶段,应用环境实际运行测试,也称为是运行阶段。此阶段承担任务包括:l 实际运行环境是否适合作业管理系统的运行要求。在测试中发现,PHP需要加载curl扩展才能完成作业存储目录的创建。l 压力测试,即当大量学生同时提交是服务器能否承受。测试中,整个机房同时提交未发现服务器卡机现象,所有学生都能正常提交,表示当前运行环境完全能承受整个机房的提交压力。至此开发阶段结束。三、安装部署1、服务器端运行环境:l 操作系统:windows server 2000或

温馨提示

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

评论

0/150

提交评论