软件工程课程设计试卷管理系统.doc

上传人:小** 文档编号:23161668 上传时间:2021-06-05 格式:DOC 页数:26 大小:1.54MB
返回 下载 相关 举报
软件工程课程设计试卷管理系统.doc_第1页
第1页 / 共26页
软件工程课程设计试卷管理系统.doc_第2页
第2页 / 共26页
软件工程课程设计试卷管理系统.doc_第3页
第3页 / 共26页
点击查看更多>>
资源描述
科 技 学 院课程设计报告( 2011- 2012年度第2学期)名 称: 软件工程课程设计 院 系: 信息工程系 班 级: 软件09K2 学 号: 091909020211 学生姓名: 何少华 指导教师: 宋雨 郭丰娟 设计周数: 2 成 绩: 日期:2012年 6 月28软件工程课程设计任 务 书一、 目的、要求通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。二、 主要内容要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照计算机综合实践指导,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。三、 进度计划序号设计(实验)内容完成时间备注1软件计划、软件需求分析、软件设计,制定出软件测试计划,软件测试用例第1周第1,2,3天要求上机前做好充分的文档准备2各模块录入、编码、编译及单元测试第1周的第4、5天3联调及整体测试,第2周的第1、2天4验收,学生讲解、演示、回答问题第2周的第3天四、 设计成果要求1至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考计算机综合实践指导中给出的要求及格式)、图表规范;2独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。五、 考核方式(1)提交的文档规范,工作量大,文档逻辑性强、正确,按计算机综合实践指导标准考核(附软件工程课程设计实验报告评分表) 占60%(2)系统验收、讲解、答辩 占25%(3)考勤 占15%学生姓名: 指导教师: 2012年6 月17 日软件工程课程设计实验报告评分表姓名专业班级学号题目标准分数得分()标准分数得分()标准分数得分()报告规范,符合要求20报告较规范,基本符合要求17报告不规范,不符合要求1110169819157614541813321210工作量大,报告完整20工作量适中,报告较完整17工作量较小,报告不完整14191613181512文档逻辑性强、正确,语言流畅20文档逻辑性较强,无明显错误,文字表述较流畅16文档有逻辑性,有明显错误,语言表述不顺畅12111915109181487171365实验报告成绩评分教师签字1 需求分析所谓需求分析是软件工程数据库信息管理系统开发的很重要的一步,在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能,下面重两个方面来说明试卷管理系统的需求分析。1.1 市场需求分析学校教务管理工作中一项重要的工作是考试管理工作,每学期从各科目考试,从组织出卷到试卷的印刷及试卷的管理等工作非常繁琐且工作量大,这种组织管理方式不仅工作任务繁重而且试卷的标准化程度、难易程度、题量大小等各方面难以控制,难以形成有效的试题库,不利于充分发挥历年来的优秀试题以及试卷的作用,给试题和试卷的管理带来很多问题和困难。鉴于这种情况,利用计算机进行试卷的自动生成并逐步积累形成有效的试题库,对试题和试卷的管理将变的高效和快捷,对提高工作效率,使试卷管理逐步走向正规化和自动化将起到十分重要的作用。它解决传统手动出卷的很多问题。例如:避免了不必要的重复劳动,节约了人力资源及时间;使用科学的衡量、评价及统一试卷难易度、试卷的质量的有效手段;大幅度降低了试卷出现错漏缺的机率,减少了不必要的麻烦。1.2 功能需求分析 题库管理:根据用户需求,系统应该能够维持一个存有数千道以上试题的题库。系统应当允许教师在获得权限的情况下随时能够进行试题补充且试题的题型可有多种多样试题难度、区分度也有不同。操作员能够按照自己的需要,随时可以对题库中已有的试题进行修改、删除,同时还可以查询和浏览试题。出卷管理:根据用户提出的要求,可以进行人工组卷。另外,从题库中抽取全部所需的试题之后,要求系统能够按照一般试卷的编排要求,将抽取的试题进行排版,并以标准的格式输出到Word文档中。同时,也应能够生成试卷的标准答案并输出到Word文档中。权限管理:系统管理员可以增加或删除操作人员并指定操作人员的权限,可对用户权限进行修改,从而保证系统在实施中的灵活性。该系统已基本满足教学需要,为实现教学改革,改变传统的出卷方式,实现教考分离起到了积极的促进作用。但程序仍还有诸多有待完善的地方,程序并未充分优化。随着计算机技术的不断发展和普及,将会对教学工作提出更高的要求,该系统必须要不断地改进,从而使得教学工作更加合理和快捷。具体的功能实现l 试题库的建立和基本维护,包括试题的录入、删除、修改以及查看题库中试题的基本信息、试题所带图形的装入与维护。l 指定出题,包括试题的手工移入、移出等;l 自动出题,试卷组装,word编辑,包括选定试题类型后通过随机函数执行自动出题功能并输出到word进行编辑;l 系统管理,包括用户权限的设置和修改,增加和删除用户。1) 试题库管理 试题管理的主要目的是维护题库中的试题及各项参数输出及题库查询。其中包括题库编辑、试题查询。题库编辑;其内容包括创建题库,题库中试题的修改和增添、删除。试题查询:本模块的主要功能是按照用户设置的查询条件对试题进行快速查询。用户可以根据章节号、题型、难度、试题编号等信息来查询试题的内容及答案等信息。2) 试卷管理 该模块可根据要求实现试卷的自动/人工出卷,自动生成的试卷试题由系统随机抽取,由于题库中的试题按照试题的类型分类,故随机抽出的试题难易适中,既可满足一般考试的要求又避免了人为因素,增强了试卷的可信度,尽管自动生成试卷符合规范化考试的要求,但为了满足不同用户的特殊需要,特设置了手工出卷的操作,这样就增加了系统的通用性与灵活性。此外,该模块还可根据用户的要求生成关于相应试卷的文档。3) 系统管理可增加删除系统操作人员,并设定操作人员的权限。通过对用户进行权限管理范围设定,减轻操作内容,也可对单个用户权限及范围进行修订,从而保证系统在实施中的灵活性。同时用户也对密码进行修改,保证安全性。1.3 技术可行性分析现在计算机几乎是全国所有公司上班的必备物品,计算机以后和人们的生活工作息息相关了,在加上现在做WEB服务的软件也越来越成熟,为我能成功的租出这套系统提供很高的硬件环境及技术上的基础。本系统主要是使用JSP + Servlet+ sqlserver2008实现,Web服务器用tomcat。这些技术都是现在比较发展快而且很成熟的技术,所以也为我能更好更快的做出此系统提供了大量的现成的代码和思想。1.4 性能分析所开发的系统集试题管理和试卷命题等功能为一体可以使教师便捷地对试卷库中的试题进行管理。按要求命题生成试卷以及对试卷质量做综合评价。使每套试卷都具有结构合理性和覆盖全面性。系统为教师和学生提供了一个功能强大的平台,通过这个平台,教师可以根据实际教学状况来组成相应的试题和试卷,学生可以对课程进行有效的复习。在实际应用中不仅可以减轻教师工作量,而且还为学生提供了一种新的学习途径。2各子系统的数据流程图2.1系统管理子系统图2-1 系统管理子系统的数据流程图2.2题库管理子系统图2-2 题库管理子系统的数据流程图23总的流程图3概要设计和逻辑设计3.1概要设计根据需求分析和数据流图的结果:由于各个表之间是否具有索引关系,因此得到各E-R图以及关系模型:图3-1 用户的E-R 图图3-2 题库的E-R图图3-3 注册的E-R图. 图3-4 系统总的E-R 图3.2 逻辑设计根据总E-R图中的实体与实体之间的联系以及转换的一般原则,得到如下的关系模型:1. 用户表(用户名,用户密码,用户类型)2. 注册表(用户名,用户密码,用户证件号,用户类型)3.题库表(试题编号,试题科目,试题难度,试题类型,知识点,试题答案,)函数依赖关系分别为:1.图3-5 用户表的依赖关系图3-6 题库表的依赖关系4数据库设计数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型等。SQL server2008就是一种关系型数据库管理系统。根据概要设计和逻辑设计,数据库原理试卷库生成系统后台数据库有3张表组成,分别为用户表,注册表,题库表。4.1 用户表的设计用户表主要包含系统用户的基本信息:用户名、用户密码、用户类型。用户类型有三种,分别为学生,老师和管理员,不同的用户身份权限不一样。如系统管理员可以进入系统管理、题库管理、试卷管理和辅助功能,但学生只能进入系统管理的修改密码,试卷管理和辅助功能。考虑到char和varchar的类型的不同。Varchar的字节数可变,而且char的字节数固定,如果输入的字符少于规定的字节数,会自动填充。因此,选择了varchar类型,这样比较容易判断用户名和密码是否正确。表4-1 用户表列名数据类型允许为空主键用户名Varchar(50)noyes用户密码Varchar(50)nono用户类型Varchar(50)nono4.2 题库表的设计题库表主要包含了题目的各项信息,如试题编号,试题难度,章节,类型,试题内容以及答案。考虑到在自动出卷的时候,要根据试题难度进行选题,所以试题难度的数据类型为varchar。试题内容和试题答案都可以插入图片,因此数据类型为image。试题编号设置为自动编号。试题类型主要为五种,分别为选择题、填空题、简答题、设计题和综合题。试题难度分为难、中、易。试题分值一般规定为选择题和填空题为3分,后面类型的题目由系统管理员自行定义。表4-2 题库表的设计列名数据类型可否为空主键试题编号int(4)Noyes试题科目char(20)Nono试题难度Varchar(50)Nono试题类型char(10)Nono知识点Image(16)Nono试题答案Image(16)Nono4.3注册信息表的设计注册信息表主要是用来注册新用户的各项信息。它包含了用户名,用户密码,用户证件号,用户类型各项属性。且信息表号是采用自动编号。表4-3 注册信息表列名数据类型可否为空主键用户名Varchar(50)Noyes用户密码Varchar(50)Noyes用户类型Varchar(50)Nono用户证件号Varchar(50)Nono5.系统的详细设计和实现该系统设计主要包括五大模块,分别为登录模块、注册模块、主界面模块、系统管理模块、题库管理模块、在与各种数据库建立连接的时候,用到了通过编写DB类存储Web应用所用到常用据库操作的方法,供Web调用; 代码:import java.sql.*;public class DBConn Connection conn=null;Statement state=null;String sql=;String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; /加载JDBC驱动String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=PaperManagerDB; /连接服务器和数据库sampleString userName = sa; /默认用户名String userPwd = ; /密码public static Connection getConnection()Connection conn=null;Statement state=null;String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=PaperManagerDB; String userName = sa; /默认用户名String userPwd = ; /密码try Class.forName(driverName); conn = DriverManager.getConnection(dbURL, userName, userPwd); /System.out.println(Connection Successful!); /如果连接成功 控制台输出Connection Successful! catch (Exception e) e.printStackTrace(); return conn;public static void closeStatement(PreparedStatement pstate)tryif(pstate!=null)pstate.close();pstate=null;catch(SQLException e)e.printStackTrace();public static void closeConnection(Connection conn)tryif(conn !=null&!conn.isClosed()conn.isClosed();catch(SQLException e)e.printStackTrace();public static void closeResultSet(ResultSet res)try if (res!=null) res.close();res=null; catch (SQLException e) e.printStackTrace();5.1 登录模块的设计登录模块主要是认证登录人的身份是否合法,登录权限也要进行认证。当用户名用户密码错误时会进行报错,当用户身份合法后会进行权限检查,根据权限开放或者限制其能使用的功能。根据登录模块主要功能,可得流程图:图5-2 登录流程图登录模块: 接受用户输入,通过javascript判断输入的合法性,若合法,则提交到登录页的jsp处理,通过查询数据库,判断是否存在此用户,或存在,刚进入主功能页面,并保存登录信息,若不存在则显示:密码错误或用户名不正确。窗体的运行界面:图5-3 用户登录界面相关代码:function on_submit()if(form1.username.value=)alert(用户名不能为空,请输入用户名!);form1.username.focus();return false;if(form1.password.value=)alert(用户密码不能为空,请输入用户密码!);form1.password.focus();return false;5.2 主界面模块设计当输入密码验证成功后,就进入系统主程序界面,主程序界面主要实现如下功能:(1)选择主界面的菜单,调用相应程序,进行相应的系统操作。(2)显示用户名、权限、登录时间和设计主题。当系统管理员登录到主界面时,所有的菜单项显示为可用;以用户身份登录时候,系统管理下的用户管理以及题库管理不可用。主程序界面如下:图5-4 主界面窗体5.3注册模块的设计注册用户的流程图为:图5-5 修注册用户的流程图图5-6 注册用户的界面5.4用户管理模块的设计用户管理模块主要是系统管理员对用户的管理,包括对用户的相关信息的修改和删除用户。一般用户不可用。相关流程图如下:图5-7 用户删除的流程图5.5查看试题查看试题主要是看试题的难度,知识点等等,相关流程图如下:图5-8 查看试题的流程图图5-9 查看试卷的界面5.6增加试题主要完成增加试题的功能,相关流程图如下:图5-10 增加试题的流程图图5-11 增加试题的界面5.7删除试题主要执行对试题的删除功能,相关流程图如下:图5-12 删除试题的流程图图5-13 删除试题的界面5.7试卷管理的模块试卷管理模块是整个试卷生成系统的核心。试卷生成主要是自动生成试卷。自动出卷是通过用户选择的生成试卷的条件,随机地选择试题,自动完成试卷的生成。自动生成试卷最重要的是要掌握自动出卷的算法。算法概要:自动组卷得的过程是根据某些约束条件,在试题库中选择满足约束条件试题的过程。这些约束条件一般是指题型、难度、分值、考试所需章节等约束。这些约束条件如果看作是局部约束条件,那么试卷将达到各项指标的均衡,这样就形成了全局的约束条件。从这个意义上,计算机的自动组卷实际上就是一个约束满足的过程。在自动出卷过程中,笔者为了排除同一份试卷中出现重复试题。采取方法是将满足要求试题的试题编号保存到一个数组里面,下次随机抽取的时候,将试题编号与数组里面的进行比较,如果出现重复,重新进行抽题。如果不同,将该试题编号保存到数组。如此类推,只到完成抽题。在该过程,为了防止死循环,笔者设置了循环次数,如果超过该次数,将显示没有满足该要求的试题。实现自动生成试卷的流程图:图5-14 自动出卷的流程图图5-15 自动出卷界面5.8 输出到word当生成试卷后,如果觉得字体或者内容存在问题,笔者可以进行修改。点击文件中,可以对试卷按照指定的地址以word文档的形式进行保存。图5-16输出到word界面6、软件测试6.1 软件功能测试以及方法介绍软件测试就是为了发现程序中的错误而执行的必要过程,它的目标是尽可能多的发现并排除软件中潜在的错误,最终把一个高质量的系统交给用户使用。测试任何软件产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照产品规格说明书的规定正常进行。前一个方法称为黑盒测试,后一种方法称为白盒测试。黑盒测试是把程序看成一个黑盒子,可以不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按产品规格说明书的规定正常运行。白盒测试可以把程序看成装在一个透明的白盒里,这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否能按预定要求正常运行。6.2 本系统的测试在测试主要是通过快捷键F4运行,快捷键F7进行单步调试。在调试过程中,可以通过看里面参数的变化是否正确。本系统在开发中出现的问题和调试方法如下:(1)在测试登录界面时,虽然笔者输入的用户名和密码都正确,但是仍然显示输入的用户名和密码错误。最后,发现后台的数据库的数据类型定义错误。笔者把用户名和用户密码定义为char类型,字符长度为20。而char类型是固定的,如果当输入的字符长度小于定义的长度,将会以空格填充。例如后台数据库中输入abc,在数据库中将会保存为“abc ”,因此当用户名输入为”abc”,进行字符串比较,就会显示不相等,因此就不能登录成功。后来,笔者将数据类型定义为varchar类型。Varchar类型存储时,只存入数据的实际值。定义的数据长度代表能够存入的数据的最大长度。(2)在测试试卷自动生成过程中,发现生成的试题存在重复,于是通过定义一个数组存放选中试题的试题编号,然后每次抽取试题,并将试题编号与数组的进行比较,如果出现相同,将重新抽取。如果,没有出现相同,就将该试题编号进行保存。当把该数组定义到局部函数中,笔者通过查看该数组中的内容,发现每次重新进入该过程时,数组中的内容就会清零,原来保存的内容被释放。因此,即使你想剔除重复题,也没有到达效果。最后,笔者将该数组定义为全局变量,系统按预期的情况运行。(3)在用户管理界面中,刚开始是先输入用户名和用户密码以及用户身份,然后按添加和修改,而且删除的时候,也不给与提示。很容易造成误删除。考虑到用户的思维,觉得这样设计不符合逻辑思维。正常思维应该是点击添加和修改,然后显示你需要添加和修改的内容,再进行数据录入。如果,你临时又不想修改和添加,可以取消录入。在点击删除时,会弹出提示框,如果你确定要删除,就点击“是”,如果不想的话,就点击“否”。这样的设计就更加人性化,满足人的思维。(4)在调试过程中,也遇到了一些数据类型的定义不一致以及数据之间的类型忘记转化。这些都是小问题,由于粗心造成,仔细检查就容易发现。 本系统的调试中的错误主要是对理论知识认识不够透彻以及理论不能够于实践紧密结合。7、总结7.1系统开发总结这次的课程设计,在经历失败调试成功,历时两周顺利地完成了JSP试卷生成系统。回顾这次课程设计,从刚开始的茫然,对JSP的认识非常少,到后来能够编写程序以及完成程序的调试。我感觉到自己进步很大,虽然离把系统做的更完美的程度还有很大的差距,并且在很多地方需要完善,但是在将来的学习中,不断提高对自身的要求,及时掌握新的知识,多多参与编程实践,在实践中锻炼和提高自己的软件设计水平,相信我们会做的更好。7、2心得体会在设计数据库时,首先必须进行需求分析,了解到用户的需求,然后进行概要设计和逻辑设计,最后建数据库。但由于我之前根本未曾接触过软件的整体开发设计,所以前期的准备工作做得很不充分,想问题简单化,查看的资料比较少,导致由于数据库的设计不当出现了很多问题。但是在同学的提示之下、在软件功能实现过程中,不断对数据库进行完善,最终获得了比较完美的结果。多和同学交流们,从整体入手考虑,是我这次课程设计的最大收获! 26
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!