一种基于C/S模式的电子作业上传管理系统的设计和实现

时间:2022-05-28 04:33:35

一种基于C/S模式的电子作业上传管理系统的设计和实现

摘 要: 介绍了常见的三种电子作业上传方式,分析了这三种方式的不足之处,并提出了解决办法,同时设计和实现了相应的作业上传管理软件。该软件分为三个子模块:学生作业上传模块、教师管理模块和配置文件加密模块。该软件经过两年的使用,结果证明可以有效地避免电子作业抄袭现象,提高了学生的作业质量,减轻了教师的工作量,达到了预期目的。

关键词: 作业上传; 管理系统; C/S模式; FTP

中图分类号:TP315 文献标志码:A 文章编号:1006-8228(2013)11-74-03

0 引言

我院旅游电子商务和酒店信息管理专业的课程主要由旅游软件开发技术、数据库技术等骨干课程和多门选修课程组成,根据高职院校的特点,教学形式主要采用课堂讲授和机房实验相结合,必修课和选修课均是如此,学生在每次机房实验结束后,均需要将当堂课的作业以文件形式提交给教师,供教师批改和打分。过去,学生提交作业主要有以下几种方式[1]。

⑴ 文件夹共享方式

这种方式最简单,只需要将教师机的某一文件夹设为共享,然后再指定共享连接数,学生把作业直接复制到共享文件夹即可。但这种方式也最容易导致抄袭作业:因为权限完全开放,学生可以把其他同学的作业复制到自己机器上,然后修改后再复制到共享文件夹,“轻松”地抄袭作业;另外,由于共享文件夹有固定连接数的限制,如果有些同学打开共享文件夹后,不及时关闭,占用连接不释放,会导致其他同学不能打开共享文件夹。

⑵ 电子邮件提交作业方式

这种方式需要机房连接互联网,学生直接将作业通过电子邮件的方式发送至教师信箱,教师每次上完课,要打开信箱,下载学生的作业,并按照班级进行分类,存储在本地计算机中,操作比较麻烦。这种方式和文件夹共享方式一样,无法避免抄袭作业:如学生A完成作业发给教师,同时,发一份作业给学生B,学生B把作业修改一下,再发给教师,即可以“轻松”抄袭作业。

⑶ FTP方式

这种方式似乎比较好,学生借助浏览器即可完成作业的提交;实现起来也很容易,只需架设FTP服务器即可。但是,最大的问题仍然是无法完全防止学生“抄袭”作业。在每次的随堂实验中,一般不方便给每个学生都分配一个账号,而是采用统一的账号和密码,虽然操作上方便,但是,所有学生都可以看到其他同学上传的作业,也可以下载别人的作业,然后修改后作为自己的作业上传,这样就可以直接抄袭作业;有些学生恶作剧,故意删除别人的作业。虽然可以通过权限设置,防止删除和下载,但也造成学生不能对自己以前上传的文件进行修改,如果要上传修改后的文件,只能临时请教师开放权限,这样操作非常不方便。另外,权限设置不能防止学生主动“帮助”式的抄袭方式:如学生A自己上传作业后,把文件名改成学生B的姓名,再上传一次,就可以轻松骗过服务器,提交了A、B两个人的作业。

总之,以上三种作业提交方式都存在不少缺点,无论对于学生还是教师使用起来都不方便,更主要的问题是很难避免学生互相抄袭作业。本文设计和实现一种基于C/S模式电子作业提交工具软件,可以解决以上问题,并且可以避免学生抄袭作业。

1 系统设计

1.1 设计思路

本文采用的防止学生抄袭作业的方式是,上实验课时,学生座位固定,将学生与其使用的计算机的网卡物理地址绑定,因为网卡的物理地址是全球惟一的,所以可以把网卡的物理地址作为提交作业者的身份识别标志。具体的算法思路是:对于通过A网卡提交的文件,首先在数据库中查找该网卡是否是首次提交文件,如果是首次提交,则直接通过FTP服务器上传文件,如果不是首次提交,则先删除原来提交的文件,再将新文件上传至服务器,这样即可以防止学生帮别人上传作业,也不禁止学生重新上传自己的作业:假设A同学已经上传自己的作业,如果他将文件改为B同学的上传,则根据前述算法,会删除A同学之前上传的作业,再将改过的作业提交到服务器,所以A同学“帮助”B同学结果是:自己的作业被删除,只剩B同学的作业。但如果A同学只是重新提交自己的作业则无妨,算法只是删除了A同学之前的作业,新提交的作业会继续保留在服务器上。

根据算法思想,前台程序使用Delphi开发,数据库系统采用MySQL,设计和实现了一套管理信息系统,可以对学生提交的作业进行有效的管理。

虽然快速开发工具Delphi目前已经不流行了,但本次开发还是了选择Delphi,其原因主要是:Delphi可以直接编译生成原生机代码,而不是虚拟机代码,所以可以在Windows操作系统下直接运行,不需要像Java和C#那样事先安装虚拟机环境,学生只要把软件拷贝到学生机就可以直接运行,非常方便。并且Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。

在开发管理信息系统应用程序时,对数据库的操作是必不可少的,所以先要选择一个合适的数据库管理系统产品。对于学校来说,选用的数据库最好是免费的,这样可以节约学校的经费。本系统选用了MySQL数据库,MySQL是使用最广泛的开源数据库系统,其突出的优点有以下[2-3]。

⑴ 适用面广,可在多种操作系统上运行。

⑵ 性能优异,运行稳定。使用MySQL的成功案例很多,另外MySQL对硬件性能的要求也不苛刻,完全可以在一般的教师机上运行。

⑶ 性价比高。MySQL是一个开源软件产品,一般非商业项目均可以免费使用MySQL数据库。

1.2 数据库设计

1.2.1 表设计

如表1和表2所示,这两张表是系统中最重要的表,用来保存当次课的学生登录情况和上传文件情况,每次系统启动时,先将这两张表的数据(前次课的上传数据)转移到历史表中去,然后清空两张表,以备写入本节课的作业数据。另外的表格,限于篇幅,不再详细介绍。

1.2.2 存储过程设计

前台程序访问数据库时,如果是简单的业务操作,尽量利用一条SQL语句完成;如果是需要用多条SQL语句来完成比较复杂的业务操作,一般可以通过MySql的存储过程来完成,以提高效率[2]。调用存储过程时,只需要提供若干个参数(有时也可以不用参数),就可以在存储过程中集中完成多条SQL语句,并且在数据库服务器端直接执行完成,可以节省数据在网络上反复传输的时间,从而获得更快的速度,提高业务处理效率。另外,存储过程可以实现数据库回滚等操作,提高了数据的安全性和程序的健壮性。电子作业上传管理系统在进行数据库操作时,有些SQL操作在失败的情况下,需要进行回滚操作,故在数据库设计时,需要引入存储过程。

例如,清空上节课的数据,并将其复制到历史表的存储过程代码如下:

CREATE DEFINER=`root`@`localhost`

PROCEDURE `SP_Clear`(out v_msg varchar(1))

BEGIN

declare v_error integer default 0;

declare continue handler for sqlexception set v_error =1;

set autocommit =0;

start transaction;

insert into tb_history_rz select * from tb_rz;

delete from tb_rz;

delete from tb_loginfo;

if v_error =1 then

rollback;

else

commit;

end if;

set autocommit=1;

END;

1.3 功能设计

1.3.1 配置文件加密模块

访问数据库和FTP服务器的用户名和密码以配置文件的形式保存在客户端,为了不让学生看到用户名和密码,故不能以明文的形式保存用户名和密码,而要先进行加密处理。加密功能的界面如图1所示,手工输入数据库和FTP服务器的用户名及密码,即可对明文加密为密文,并可以进行预览,按下“保存”,可以将密文写入配置文件。该模块的加密算法采用DES(Data Encryption Standard,数据加密标准)算法,这是一种对称加密算法,该算法由IBM公司于1975年研发成功,并公开发表,其算法思想与第二次世界大战时期的德国恩格玛密码机类似。DES算法属于密码学中的分组密码算法,DES的分组是64位的,密钥是56位的(因为要去掉每个第8位的校验码)。在DES算法中,用到了两个加密的基本技术[4]:混乱和扩散。其基本组建分组是这两种技术的组合,同时密钥作用于明文,形成轮。DES共有16轮。其设计着重于尽可能快地使密文的每一位依赖明文和密钥的每一位。DES采用了标准的算术和逻辑运算,系统的安全性全由密钥保证。使用Delphi编程,可以比较方便地实现DES加密算法[5]。

1.3.2 作业上传模块

学生先要下载客户端软件,如图2所示,该软件界面十分简单,操作非常简单,实验时,一台机器只允许一个学生使用,实验期间不得随意更换机器,以避免学生互相“帮助”完成作业。由于电子作业文件可能很大,所以需要采用FTP方式上传。由于课程不一样,所以文件的类型可能是多种多样的,为了提高效率,要求学生先将文件压缩,默认文件类型是RAR格式,以学生的姓名为主文件名,界面中的姓名无需学生填写,由系统自动从文件名中解析,模块中使用了nmftp控件,以方便实现FTP功能。

当按下提交按钮后,执行以下算法。

⑴ 获取本地机名称及网卡物理地址。

⑵ 执行SQL语句,检查本地机是否已经提交过文件(通过检查本地机的网卡物理地址是否已经存在于表中)。

⑶ 如果是首次提交文件,则调用相应的存储过程,向tb_loginfo表中插入当前网卡物理地址、当前机器名、学生姓名,向tb_rz表中插入当前网卡地址、当前时间、文件名。执行存储过程成功后,执行FTP控件的上传文件功能。

⑷ 如果不是首次提交文件,则调用相应的存储过程,修改tb_loginfo表中的相应的学生姓名,向tb_rz表中插入当前网卡地址、当前时间、文件名。执行存储过程成功后,先删除服务器已经存在的该学生的文件,然后重新上传文件。

1.3.3 管理端

管理端模块如图3所示。该模块的主要功能是监控学生上传作业。

按下“刷新”按钮后,从tb_loginfo表读取信息,并在网格控件中显示。当选中某一行时,则可以显示相应的细节,上传次数是通过统计tb_rz表中以网卡物理地址为主键的相应的元组出现的次数得到的。

2 结束语

本文所介绍的作业上传管理系统已经运行了两年,主要为我校电子商务专业和酒店信息管理专业,以及全校计算机应用公共基础课提供教学服务。目前该系统运行稳定,学生和教师使用反馈良好,有效地避免了抄袭作业现象,提高了学生作业质量,减轻了教师的工作量,达到设计要求。

参考文献:

[1] 刘瑞冰.基于Asp的计算机上机作业上传系统研究[J].软件导刊,2012.12:119-120

[2] 王新宇,陈婕.旅游电子商务专业“旅游管理软件开发技术”课程教学设计——以“小型客房管理系统”学习情境设计为例[J].电子商务,2012.7:78-80

[3] Michael Kofler.MySQL 5权威指南[M].人民邮电出版,2008.

[4] 王立胜,王磊,顾训穰.数据加密标准DES分析及其攻击研究[J].计算机工程,2003.8:130-132

上一篇:基于ARM/GPRS的宿舍信息发送系统 下一篇:汉长沙国玉器之精粹