1、重庆邮电大学毕业设计报告毕业设计报告(论文) 题目: 教师在线作业批改系统 所属系 专 业 学 号 姓 名 指导教师 起讫日期 设计地点 毕业设计报告(论文)诚信承诺 本人承诺所呈交的毕业设计报告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。如论文涉及任何知识产权纠纷,本人承担一切责任。 学生签名: 日 期: 教师在线批改作业系统摘要众所周知,传统的办公模式以纸为主,且需靠人力实现传送。近几十年来,信息技术飞速发展,信息革命不断冲击,传统办公模式远远不能满足高效率、快节奏的现代工作和生活的需要。实现办公自动化逐步得到了人们的重视与认可。办公自动化(Office A
2、utomation,简称OA)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式,是当前新技术革命中一个非常活跃和具有很强生命力的技术应用领域,是信息化社会的产物。通过网络,组织机构内部的人员可以跨越时间、地点协同工作。通过办公自动化系统所实施的交换式网络应用,使信息的传递更加快捷,从而极大地扩展了办公手段,实现办公的高效率。教师在线批改作业系统是各类学校内的教师和学生共同使用的实用性系统。这个系统结束了传统的手工管理模式,在一定程度上极大提升了办事效率,同时也大大节约了成本,还使得教师批改学生的作业实现了实时性。这大大节省了教师和学生的时间和精力,也提高教师的办事效率,是现代学校教师
3、不可或缺的作业批改工具。本系统采用了JSP语言和MySql数据库来进行开发,系统使用人员包括:学校的学生、学校的教师、以及数据库管理员。学生的功能包括:登录、上传作业、查询成绩、下载作业。教师的功能包括:下载学生的作业、给学生打分、上传学生的作业、对两份作业进行重复率比对;管理员:添加教师和学生用户、批量上传用户信息、删除用户信息、对用户密码进行重置。关键词:JSP MySql;数据库;用户;功能Teachers Online correcting homework systemAbstractAs we all know, the traditional paper-based office
4、 model, and the need to achieve by human transmission. In recent decades, the rapid development of information technology, the information revolution continue to impact the traditional office model can not meet the need for high efficiency, fast-paced modern work and life. Office automation and grad
5、ually get peoples attention and recognition. OA (Office Automation, referred to as OA) is a modern office and computer network functions to combine a new way of office, the new technology revolution is currently a very active and has a strong vitality of the technology applications, is information s
6、ociety product. Through the network, the internal organization can span time and place to work. By switching network application implemented office automation system, making the transmission of information more quickly, thus greatly expanding the office means to achieve office efficiency.Teachers On
7、line correcting homework system is practicability of teachers and students in the various schools of common use. This system ended the traditional manual management mode, to a certain extent, greatly enhance the work efficiency, but also significant cost savings, but also so that the teacher correct
8、ing student work to achieve a real-time. This saves the teachers and students time and energy, but also improve the efficiency of teachers, modern school teachers job correcting an indispensable tool.The system uses a JSP language and MySql database development, system personnel include: school stud
9、ents, school teachers, as well as a database administrator. Students features include: log on, upload operations, query results, download the job. Teachers features include: downloading of students work, giving students scoring, upload students work, repetition rate of two jobs than; Administrator:
10、Adding teachers and student users, bulk upload user information, delete user information, the user password reset.Key words: JSP ;MySql; databases; user; functionIV目 录第一章 系统开发背景11.1 办公自动化11.2 系统研究意义11.3 系统研究方法11.4 论文章节安排1第二章 系统需求分析22.1可行性分析22.2 系统目标22.3 系统功能需求分析22.4 本章小结3第三章 系统结构与模型43.1 系统的体系结构设计43.
11、2 系统流程图53.3数据库设计63.3.1用户信息表(users)63.3.2班级信息表(bjbh)63.3.3作业信息表(homework)73.3.4教师对应的学生信息表(jsdyxs)73.3.5课程编号表(kcbh)83.3.6专业编号表(zybh)83.3 数据库连接文件83.4 本章小结8第四章 系统功能模块详细设计及实现104.1 模块设计104.2 功能模块的说明104.3 系统界面与关键代码的设计104.3.1 系统登录界面的设计104.3.2 学生上传作业界面114.3.3学生查看成绩界面124.3.4 教师查看学生作业134.3.5 管理员管理用户信息164.4 本章小
12、结19第五章 系统的功能测试与性能测试205.1 测试目标205.2 系统运行环境配置205.3 功能测试205.3.1 测试系统登录功能205.3.2 系统管理员添加新用户信息模块测试215.3.3 用户信息模块增加、删除、修改测试235.3.4 学生上传作业测试255.3.5 下载测试265.3.6打分测试265.3.7作业重复率比对测试275.4 性能测试285.5 测试结果分析305.5.1 功能测试结果分析305.5 .2本章小结30第六章 系统评价316.1 系统的特点316.2 系统展望316.3 本章小结32结束语33参考文献35第一章 系统开发背景1.1 办公自动化历史的轮子
13、已经悄然进入21世纪十几个念头了,同时人类也进入科技高度发达的信息时代。PC机的方便、快捷带动了日常办公的进步,办公自动化被人们提上日程,传统的手工式的、作坊式的办公方式已经跟不上时代的步伐了。以数据库为开发平台的信息管理系统越来越得到大家的欢迎。1.2 系统研究意义本系统为学校的教师和学生就作业的交互提供了一个平台,这关系着教师和学生双方的工作。然而很久以来大多数的学校使用的都是早已大大落后的、已经退出历史舞台的人工办公方式,这种办公模式效率不高,安全性也不好,难以实现实时性、高效性,为教师和学生都带来了极大的不便利。利用计算机进行日常的业务处理、信息保存,这大大提高了业务的处理速度同时也实
14、现了实时性。使用计算机代替人的日常工作能够实现物业处理的科学化和自动化,这在很大程度上提高了工作的速度和准确性。批改学生的日常作业是一件非常繁琐又不得不及时处理的工作,因为教师必须要充分了解学生的学习情况。这就使得这项工作要求教师能及时的看见学生的作业,以便能及时的处理。所以,为了能实现对学生上传作业的及时处理,同时有助于教师能及时的掌握学生的学习状况,因此设计这样的一个教师在线批改作业系统是一件很有意义和必要的事情。1.3 系统研究方法从系统使用者的角度出发,我利用JSP和Mysql数据库,结合数据库技术,MVC、Servlet框架开发了这个web系统。下面是整个系统的设计思路。1.4 论文
15、章节安排第一章主要介绍系统的开发背景、意义以及研究方法。第二章主要对系统的设计进行可行性分析,描述系统目标,从而对系统进行需求分析。第三章主要介绍系统的体系结构,设计数据库。第四章主要介绍在总体设计基础上,对系统分模块详细设计。第五章主要针对系统进行功能测试和性能测试。第六章主要介绍系统的特点以及对未来的展望。第二章 系统需求分析2.1可行性分析本系统使用JDK+tomcat+Myeclipse+Mysql搭建的开发平台。JSP采用的事当今比较流行的面向对象的编程思想把我们需要操作的数据封装成一个类,并且为每一个类定义相应的属性和方法,当然我们还可以利用第三方软件进行功能的扩充;JSP把后台代
16、码和前台的页面设计实现分离,支持可重用的基于组件的设计,这样就把web开发变得简单和方便起来了。另外,JSP技术具备了一个无与伦比和充满吸引力的优点:一次编写,处处运行、系统的多平台支持、强大的可伸缩性、多样化和功能强大的开发工具支持。因此,这里采用Jsp技术完全可以实现我们的系统。本系统使用SQLServer搭建后台的开发环境。SQLServer微软推出的一套数据库管理工具,其图形化界面可以使人们轻易的进行数据库的管理和操作,同时这个数据库还提供了强大的接口,这个能为我们的程序开发提供强大的支持。由于本系统的使用人员是教师和学生,数据库之间的关系都是比较密切的,因此整个程序的设计过程不是很复
17、杂。所有,我决定采用数据库管理模式。这个系统就是一个单纯的web系统,所有对PC机的要求不是很高,平常我们用的PC机就可以完全满足我们的要求。最后,得到结论:这个系统是可行的。2.2 系统目标一个基于web的教师在线批改作业系统,使用人群主要是学校的教师和学生,这个系统可以实现在网络环境下学生进行上传作业、下载作业、查看成绩等操作。而教师可以下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对等操作,管理员可以对用户信息进行管理。2.3 系统功能需求分析教师在线批改作业系统上网服务人群主要是学校教师和学生,这是两种不同的使用人群,本系统主要是为教师和学生之间提供一个相互
18、交流的平台,学生可以很方便的上传自己的作业,而教师也可以很方便的处理相关事宜。本系统具体要实现的功能如下:(1)统使用人员包括:教师、学生、系统管理员。(2)教师功能包括:登录、下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对。(3)学生功能包括:上传作业、下载作业、查看成绩。(4)系统管理员:添加用户信息、删除用户信息、用户密码重置、批量上添加用户信息;2.4 本章小结这一章主要是对系统进行了可行性研究,然后在技术可行性、经济可行性以及操作可行性这个三个不同的角度进行了分析,并且还对系统使用的软硬件环境也进行了可行性分析。最后,对系统所要实现的系统进行了简要的阐述
19、,这也是对系统的一个简单的需求分析。第三章 系统结构与模型3.1 系统的体系结构设计系统体系结构如图3.1所示:图3-1 系统体系结构通过图3.1我可以很清楚的了解到使用本系统的人群主要是:学校教师和学生、系统管理员。下面列出各个功能的详细描述:1. 管理用户信息:管理员可以添加、删除一个新用户,还可以对用户密码进行重置。2. 下载学生作业:教师可以对自己的课程对于的作业下载。3. 上传学生作业:教师可以对自己查看过的作业批改过了可以上传。4. 学生作业打分:对学生的作业进行评分。5. 比对作业重复率:可以比对两份学生的作业,定义关键字得到重复率是多少。6. 学生上传作业:学生选择一门课程然后
20、上传对应的作业。7. 学生下载作业:对教师批改完的作业下载查看。8. 学生分数查询:对自己的成绩进行查看。3.2 系统流程图系统流程图如图3.2所示:图3-2 系统流程图本系统采用账号和密码验证的方式,对登录的用户进行身份验证,系统中不存在的用户需要管理员来进行添加,而用户名和密码输入不对的需要重新输入。这里的用户可以分为三种:教师、学生以及系统管理员,教师和学生的账号需要管理员来提供。最后,当用户操作完成之后可以完全退出系统。3.3数据库设计本系统采用MySql进行数据库的设计。根据系统功能需求及功能模块的划分要求,创建一个数据库文件zxpg。数据库一共包含了六个表:用户信息表(users)
21、、班级信息表(bibh)、作业信息表(homework)、教师对应学生信息表(jsdyxs)、课程信息表(kcbh)、专业信息表(zybh)。接下来详细的介绍一下这六个表的结构。3.3.1用户信息表(users)对用来进行数据存取的所有7个表的数据项和数据结构见表1到表7所示:用户信息表(users):用户账号、密码、姓名等基本信息。结构如表3.1所示。表3.1 用户信息表(users)字段名称数据类型说明usernamevarchar用户名(主键)passwordvarchar密码namevarchar姓名用户信息表是对用户的基本信息的记录。在这里对相关字段进行简要的介绍:username字
22、段为文本,记录的是用户的登录用户名;Password 字段为文本,记录的是用户的登录密码;name 字段为文本,记录的是用户的姓名;3.3.2班级信息表(bjbh)班级信息表(bjbh):记录的是班级的基本信息。结构如表3.2所示。表3.2 班级信息表(bjbh)字段名称数据类型说明Bjbhvarchar班级编号Bjmcvarchar班级名称班级信息表是针对使用本系统的班级信息的信息记录。Bjbh班级编号,主键。Bjmc 字段为文本,记录班级名称;3.3.3作业信息表(homework)作业信息表(homework):存放学生上传作业的信息。结构如表3.3所示。表3.3 作业信息表(homew
23、ork)字段名称数据类型说明Xsnamevarchar学生账号Kcbhvarchar课程编号worknamevarchar作业名称scnamevarchar作业在服务器上的名称workurlvarchar作业URLcjdouble成绩作业信息表用来记录学生上传作业的信息。Xsname学生编号,主键;kcbh字段为文本,记录的是学生的作业针对那门课程;workname字段为文本,记录的是学生上传作业的名称;scname字段为文本,记录的是作业在服务器上的名称;workurl字段为文本,记录的是作业URL;cj 字段为double,记录的是学生的作业成绩;3.3.4教师对应的学生信息表(jsdyx
24、s)教师对应的学生信息表(jsdyxs):存放的是教师针对某门课程对应的学生信息。结构如表3.4所示。表3.4 教师对应学生信息表(jsdyxs)字段名称数据类型说明Jsnamevarchar教师账号Xsnamevarchar学生账号Zybhvarchar专业编号Bjbh varchar班级编号kcbhvarchar课程编号教师对应的学生信息表中记录是教师针对某门课程对应的学生信息。下面是各个字段的简要介绍:jsname字段为文本,记录教师账号;xsname字段为文本,记录教师对应的学生账号;zybh字段为文本,记录学生所在的专业编号;bjbh字段为文本,记录学生所在的班级;kcbh字段为文本
25、,记录是学生上课的课程编号;3.3.5课程编号表(kcbh)课程编号表(kcbh):存放的是学生的上课课程信息。结构如表3.5所示。表3.5 课程编号表(kcbh)字段名称数据类型说明kcbhvarchar课程编号Kcmcvarchar课程名称下面是对主要字段的叙述:kcbh字段为文本,记录课程信息的课程编号,为主键;kcmc字段为文本,记录课程信息的课程名称;3.3.6专业编号表(zybh)专业编号表(zybh):存放学生所在专业的信息。结构如表3.6所示。表3.6 处理负责人表(clfzr)字段名称数据类型说明zybhvarchar专业编号Zymcvarchar专业名称专业编号表是对学生所
26、在专业的信息描述。下面是对主要字段的叙述:zybh 字段为文本,学生所在专业的专业编号,为主键;zymc 字段为文本,学生所在专业的专业名称;3.3 数据库连接文件因为本系统在运行过程中时时刻刻都和数据库打交道,如果每一次连接数据库我们都要写一段代码来进行连接,这样就增加的了代码的量,也会降低效率。因此,我就专门写了一个专门链接数据库类,用来连接数据库。 3.4 本章小结本章主要是对系统做了一个大体的介绍,让读者对这个系统要实现一个什么样的系统做到心中有数。本系统主要实现了如下几个功能:教师功能包括:登录、下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对。学生功能包
27、括:上传作业、下载作业、查看成绩。系统管理员:添加用户信息、删除用户信息、用户密码重置、批量上添加用户信息。第四章 系统功能模块详细设计及实现4.1 模块设计教师在线批改作业系统主要包括了如下几个功能模块:教师功能包括:登录、下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对。学生功能包括:上传作业、下载作业、查看成绩。系统管理员:添加用户信息、删除用户信息、用户密码重置、批量上添加用户信息。4.2 功能模块的说明教师在线批改作业系统包含的几个功能模块的详细介绍如下:教师用户功能包括:登录、下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对:
28、教师用户在使用系统之前必须要有一个账号,否则要联系管理员有管理员来分配一个账号给教师,这个时候教师就具备了使用系统的通行证。就像其他大多系统一样,我们同样是用用户名和密码来控制,登录成功之后教师可以进行下载学生作业、上传学生作业、对学生作业进行打分、对两份学生作业进行重复率比对。学生用户功能包括:上传作业、下载作业、查看成绩:这是本系统的学生用户具有的权限,同样学生用户也需要管理员对其分配账号,然后学生用户才能登录系统进行上传作业、下载作业、查看成绩等操作。 系统管理员:添加用户信息、删除用户信息、用户密码重置、批量上添加用户信息。4.3 系统界面与关键代码的设计4.3.1 系统登录界面的设计
29、系统的登录界面是一个系统的门面,是系统默认的欢迎界面。这个功能的设计也是对系统的一种保护,确保数据的安全性。该界面的设计主要是对用户名和密码的验证。其界面如图4-1所示。图4-1 系统登录页面使用教师在线批改作业系统时,本系统给出的第一个界面就是这个登录界面,用户填写完用户名和密码之后并且提交这个表单之后,系统会自动到数据库中查找这个用户名和密码,看是否存在。如有误,那么系统将会再次返回登录界面,这时候用户就要再次输入用户名和密码,相反数据库存中在这个用户名和密码,那么这个用户就会进入到这个系统中。4.3.2 学生上传作业界面用户通过验证之后,就会进入这个作业上传界面,此时就可以进行上传操作了
30、。如图4-2所示。图4-2 作业上传界面核心代码如下:Servlet里面的代码:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException / 判断from表单的enctype属性值是否设置为multipart/form-databoolean isMultipart = FileUpload.isMultipartContent(request);if (!isMultipart) return;try DiskFileItem
31、Factory factory = new DiskFileItemFactory();/ 设置缓冲区大小factory.setSizeThreshold(flushSize);factory.setRepository(new File(tempPath);/ 创建FileUpload对象FileUpload fupload = new FileUpload(factory);/ 设置文件最大大小fupload.setSizeMax(fileSize);List items = fupload.parseRequest(request);Iterator iter = items.itera
32、tor();while (iter.hasNext() String desc=;FileItem item = (FileItem) iter.next();/ 判断是否是file表单元素if (!item.isFormField() String name = new String(item.getName().getBytes(),utf-8);/获得文件路径及名称name = name.substring(name.lastIndexOf(File.separator) + 1,name.length();/获得文件名String fileType = name.substring(n
33、ame.indexOf(.);/获得文件后缀名String filename = getFileName();/随机产生一个文件名防止文件名重复long size = item.getSize();/如果文件名不存在 则不处理if (name = null | name.equals() & size = 0) continue;item.write(new File(uploadPath + filename + fileType);UploadDao userdao=new UploadDao();HttpSession session = request.getSession();Str
34、ing username=(String) session.getAttribute(username);userdao.insertwork(username, kcbh, name, uploadPath,filename+fileType); else /获得文件描述 desc = item.getString(UTF-8); kcbh=desc;System.out.println(desc);response.sendRedirect(Upload_Success.jsp); catch (Exception e) e.printStackTrace();response.sendR
35、edirect(upload.jsp?code=002);private String getFileName() /根据时间产生文件名SimpleDateFormat df = new SimpleDateFormat(yyyyMMddhhmmssms);return df.format(new Date(); 4.3.3学生查看成绩界面这个功能主要提供得学生查看自己的成绩。如图4-3所示图4-3 学生查看成绩页面核心代码:Servlet里面的代码: ArrayList list=new ArrayList(); HttpSession session = request.getSessio
36、n(); String username=(String) session.getAttribute(username); XsckcjxxDao mydao=new XsckcjxxDao(); list=mydao.getCxcjlist(username); request.setAttribute(list, list);request.getRequestDispatcher(xsckcjxx.jsp).forward(request, response);/教师查看学生上传作业信息Dao里面的代码:ArrayList list=new ArrayList(); PreparedSt
37、atement ps=null; ResultSet rs=null; String sql=SELECT homework.xsname,users.xm,homework.kcbh,kcbh.kcmc,homework.cj,homework.workname,homework.scname FROM homework,users,kcbh where homework.xsname=users.username AND homework.kcbh=kcbh.kcbh AND homework.xsname=?; try ps=db.getConn().prepareStatement(s
38、ql);ps.setString(1, username);rs=ps.executeQuery();while(rs.next() zypgbo bo=new zypgbo(); bo.setXsname(rs.getString(xsname); bo.setXm(rs.getString(xm); bo.setKcbh(rs.getString(kcbh); bo.setKcmc(rs.getString(kcmc); bo.setWorkname(rs.getString(workname); bo.setScname(rs.getString(scname); if(!rs.getS
39、tring(cj).equals(0) bo.setCj(rs.getString(cj); else bo.setCj(未打分); list.add(bo); catch (SQLException e) e.printStackTrace(); catch (Exception e) e.printStackTrace();4.3.4 教师查看学生作业这个模块主要是供教师来查询自己的学生作业的详细信息,包括投打分、下载和作业重复率比对等,具体界面如图4-44-6所示:图4-4 所有作业的详细信息图4-5 打分界面核心代码:Servlet: ArrayList list=new ArrayL
40、ist(); String xsname=request.getParameter(xsname).split(,)0; String kcbh=request.getParameter(xsname).split(,)1;HttpSession session=request.getSession(); session.setAttribute(xsname, xsname);session.setAttribute(kcbh, kcbh);response.sendRedirect(jsdf.jsp);Dao: PreparedStatement ps=null; String sql=u
41、pdate homework set cj=? where xsname=? and kcbh=?; try ps=db.getConn().prepareStatement(sql);if(cj=)ps.setString(1, 0);elseps.setString(1, cj);ps.setString(2, xsname);ps.setString(3, kcbh);ps.executeUpdate(); catch (SQLException e) e.printStackTrace(); catch (Exception e) e.printStackTrace();图4-6 学生
42、作业重复率比较核心代码:Servlet: String zynr1=new String(request.getParameter(zynr1).getBytes(ISO8859_1),GBK);String zynr2=new String(request.getParameter(zynr2).getBytes(ISO8859_1),GBK);String gjglc=new String(request.getParameter(gjglc).getBytes(ISO8859_1),GBK);int n=0;int m=0;double cfl;for(int i=0;im)cfl=(double) m)/(double) n);elsecfl=(double) n)/(double) m); zypgbo bo=new zypgbo(); bo.setCfl(cfl); ArrayList list=new ArrayList(); list.add(bo); request.setAttribute(list