1、网络考试系统说明书1计算机与软件工程学院课程设计说明书课 程 名 称: 面向对象程序设计-课程设计 课 程 代 码: 106086459 题 目: 网上考试系统 年级/专业/班: 13 级物联网工程 2 班 学 生 姓 名: 陈凯锋 学 号: 3120130911227 开 始 时 间: 2016 年 5 月 6 日完 成 时 间: 2008 年 5 月 16 日课程设计成绩:学习态度及平 技术水平与实际 创新 说明书撰写质量(45) 总 分网络考试系统说明书1时成绩(30) 能力(20) (5) (100)指导教师签名: 年 月 日网络考试系统说明书目录1. 引言 .11.1 问题的提出 1
2、1.2 国内外研究的现状 11.3 国内网上考试系统的问题 .21.5 任务与分析 32. 程序的主要功能 .42.1 选择身份登陆功能: .42.2 编写试卷功能: 42.3 修改试卷功能: 42.4 查询考生成绩功能: .42.5 在线阅卷功能: 42.6 在线考试功能: 42.7 查询自己成绩功能: .42.8 查看学生信息功能: .42.9 修改学生信息功能: .52.10 查询教师信息功能: .52.11 修改教师信息功能: .52.12 查看管理员信息: 52.13 添加管理员信息: 53. 程序运行平台 .6网络考试系统说明书Eclipse IDE for Java EE Dev
3、elopers.64. 总体设计 .74.1 需求分析 74.2 数据表信息 74.3 系统业务流程图 94.4 E-R 模型 95. 程序说明 .106.模块分析 .186.1 登陆验证模块 196.2 查询并显示模块 206.3 修改模块 217. 系统测试 .237.1 学生可执行功能 247.3 管理员可执行功能 268. 总结 .28参考文献 .29网络考试系统说明书网络考试系统说明书11.引言1.1 问题的提出随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。在数字化的网络环境下,学生希望能够有更方便,公平的考试方式,并且希望能够在网上随时查询自己的
4、成绩,老师希望能够在线编辑,修改试卷,以及在线阅卷,系统管理员希望能够方便地查询,修改学生,教师的信息,以此来提高工作效率,以适应互联网时代的高速发展。我国历来采用手工出卷的方式作为老师的例行工作之一,试卷的编辑,整理工作占了很大份额。随着计算机网络技术的不断提高,学校对于学生的各方面管理也更加趋于网络化,网上考试系统就是其中一例。在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为考生创造一种新的考试环境,提高考试工作效率和标准化水平。1.2 国内外研究的现状 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的
5、位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,作为民族发展的重要推动力。在国外,美国心理协会在 1986 年出版了关于如何开发、使用计算机化考试以及解释考分的指南,成为了考试和软件开发者的事实标准。投入实际使用的例子有:1982 年采用远距离教育方式的美国学院(American College)考试使用计算机进行测试;1993 年美国教育考试中心(Eraduade Record Examination 简称 ETS)考试;从 1994 年开始,美国护理证书考试完全在计算机上进行。目前,国外许多大网络考试系统说明书2型测验出版机构、地区教育主管部门和专业资格认证机构都以某种测
6、量理论为指导建立题库、设计考试系统,并进行各项相关研究。除了这类行业专用的大型考试系统之外,供普通教师使用的通用考试系统软件也有相应的研究和产品。如英国 Question Mark Computing,Ltd 公司出品的 Question Mark,就是一种基于项目反应理论的,可供广大教师使用的通用的考试系统。在我国,计算机考试系统和题库的理论研究和实践应用起步比较晚。但发展也比较迅速,研究和开发活动比较活跃。北京师范大学、华北师范大学等高等院校都有教师在进行教育测量理论应用于题库建设方面的研究。清华大学、上海交通大学、北京师范大学等高校,也有教师在组织力量致力于实用考试系统的研究和开发工作。
7、其中使用专用在线考试系统影响较大的考试有:1994 年开始,国家教务组织的全国计算机等级考试;1996 年开始,教育部考试中心举办的全国算机应用技术证书考试(National Applide Information Technology Certificate 简称 NIT);微软授权培训中心(Microsoft Authorized Training Center 简称 ATC)组织的认证考试等。1.3 国内网上考试系统的问题我国的专用考试系统主要针对计算机考试,其他行业和科目的考试系统太少。计算机在线考试系统由于操作类题目自动出题有较大的难度,基本没有实现题库化的管理。系统对传统的客观题虽
8、然一般建有题库但不大,多采用随机抽题组卷的网络考试系统说明书3方式,缺乏教育测量理论作为依。多数的在线考试系统是 C/S 模式的,也就是说需要安装客户端之后才能使用,这样就带来了很多的不方便之处。考试完成后,分数和试题统计分析比较简单,没有充分挖掘数据所包含的信息。通过考试系统或题库系统对最终用户即教师的需求分析做的不够透彻,忽略老师们渴望能自由地操纵试题库的需求,没有完全实现用户自主初始化试题库、自主维护试题库、自主调用试题库的功能。加上软件实用水平和商品化工作方面的不足。通用系统并没有被广大教师认可和使用。1.5 任务与分析本课题主要的目的是:利用网络进行无软盘、无纸化的在线考试,大大提高
9、考试的可靠性、有效性,降低考试成本,提高工作效率。1. 用户类别:登录系统的身份定为三种,一是管理员,二是普通老师,四是学生,只有被授权的用户才可以使用本系统的资源。2. 权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;普通教师可以在线制作试卷,控制考试、成绩查询、添加试题、阅卷等。管理员可添加系系部、教师、专业、科目信息、查询修改管理员信息及审批试卷、查询考生成绩。3. 在线考试功能:考生输入学号密码登陆系统后,选择对应的试卷可进行考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷,系统将自动对客观题进行评分。4. 考生管理
10、功能:可注册新增学生用户,同时查看考生及班级考生的信息。 5. 考生成绩查询功能:提供考生各科目成绩的详细查询。可选:将成绩导出到 Excel 等 网络考试系统说明书46. 试卷审批功能:只有管理员有此权限。教师制作试卷完毕,只有经过管理员审批后才能发布,发布后学生才能开考。7. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;2.程序的主要功能2.1 选择身份登陆功能:可以根据不同的身份进行登陆,登陆后会有不同的操作界面。2.2 编写试卷功能:教师可以在线编写试卷,并将试卷添加到试卷库中。2.3 修改试卷功能:教师可以将已经编写好的试卷从试卷库中提取出来并进行完善,修改后重
11、新添加到试卷库中。2.4 查询考生成绩功能:教师可以查询某个科目的所有学生的成绩。2.5 在线阅卷功能:教师可以查询在线批改试卷,并进行打分。2.6 在线考试功能:学生登陆后可以选择试卷进行考试。网络考试系统说明书52.7 查询自己成绩功能:学生可以查询自己已考科目的成绩。2.8 查看学生信息功能:管理员可以查询所有学生信息。2.9 修改学生信息功能:管理员可以修改指定学生的信息。2.10 查询教师信息功能:管理员可以查询所有教师的信息。2.11 修改教师信息功能:管理员可以修改制定教师的信息。2.12 查看管理员信息:管理员可以查看所有管理员的信息。2.13 添加管理员信息:管理员可以添加管
12、理员。网络考试系统说明书63.程序运行平台Eclipse IDE for Java EE Developers jdk1.7MySQLMySQL 的 JDBC 驱动My Eclipse运行方式:打开 eclipse(或者 My Eclipse),将动态网页工程 ExamOnNet 导入到eclipse 中。然后找到 src 文件夹下的 jdbc.properties 配置文件,将里面的user=rootpassword=1214758100修改为本机的数据库用户名和密码。网络考试系统说明书7找到 WebContent 文件夹下的 login.jsp,右键RunAsRunOnServer输入用户
13、名和密码并选择登陆身份,点击登陆。图 3-14.总体设计4.1 需求分析首先该系统针对不同身份的人提供了不同的功能,当以某种身份登陆时,不能执行其他身份的功能,因此登录时需要进行身份验证。其次,管理员可以执行的功能有:查看,更新教师,学生,管理员的信息。教师可以执行的功能有:在线编写试卷,修改试卷,批改试卷,查询某门课程的学生的成绩。学生可以执行的功能有:在线考试,成绩查询。根据可以得出:学生信息,教师信息,管理员信息,分别需要一张表。根据可以得出:试卷,分数,课程信息,分别需要一张表。网络考试系统说明书84.2 数据表信息admin(管理员信息表)列名 数据类型 长度 备注adminno c
14、har 10 管理员号password char 10 密码aname char 10 姓名age int 11 年龄sex char 1 性别表 4.2.1teacher(教师信息表)列名 数据类型 长度 备注teacherno char 10 教师号password char 20 密码tname char 10 姓名rank char 10 职称age int 11 年龄sex char 1 性别表 4.2.2网络考试系统说明书9Student(学生信息表)列名 数据类型 长度 备注studentno char 10 学生信息password char 20 密码sname char 1
15、0 姓名age int 11 年龄sex char 10 性别classno char 10 班级grade char 10 年级major char 20 专业表 4.2.3paper(试卷信息表)列名 数据类型 长度 备注paperno char 10 试卷信息courseno char 10 课程号score_value int 11 分值time int 10 时间papercotain text 无 试卷题目内容表 4.2.4网络考试系统说明书10course(课程信息表)列名 数据类型 长度 备注courseno char 10 课程号cname char 20 课程名称表 4.2
16、.5score(分数信息表)列名 数据类型 长度 备注studentno char 10 学号courseno char 10 课程号paperno char 10 试卷号answer text 无 答案score int 3 分数表 4.2.6网络考试系统说明书114.3 系统业务流程图网络考试系统说明书124.4 E-R 模型网络考试系统说明书135.程序说明JDBCTools 类(实现数据库连接,和数据库更新的方法 )public class JDBCTools /* 1. 获取连接的方法 . 通过读取配置文件从数据库服务器获取一个连接 .* * return* throws Excep
17、tion*/public static Connection getConnection() throws Exception / 1. 准备连接数据库的 4 个字符串./ 1). 创建 Properties 对象Properties properties = new Properties();/ 2). 获取 jdbc.properties 对应的输入流InputStream in = 网络考试系统说明书14JDBCTools.class.getClassLoader().getResourceAsStream(“jdbc.properties“);/ 3). 加载 2) 对应的输入流pro
18、perties.load(in);/ 4). 具体决定 user, password 等 4 个字符串.String user = properties.getProperty(“user“);String password = properties.getProperty(“password“);String jdbcUrl = properties.getProperty(“jdbcUrl“);String driver = properties.getProperty(“driver“);/ 2. 加载数据库驱动程序( 对应的 Driver 实现类中有注册驱动的静态代码块.)Class.
19、forName(driver);/ 3. 通过 DriverManager 的 getConnection() 方法获取数据库连接.return DriverManager.getConnection(jdbcUrl, user, password);/* 执行 SQL 语句, 使用 PreparedStatement* param sql* param args: 填写 SQL 占位符的可变参数*/public static void update(String sql, Object . args)Connection connection = null;网络考试系统说明书15Prepar
20、edStatement preparedStatement = null;try connection = JDBCTools.getConnection();preparedStatement = connection.prepareStatement(sql);/遍历占位符对应的对象for(int i = 0; i getAll()List students=new ArrayList();Connection connection=null;PreparedStatement preparedStatement=null; ResultSet resultSet=null; try St
21、ring driverClass=“com.mysql.jdbc.Driver“;String url=“jdbc:mysql:/localhost:3306/nettest“;String user=“root“;String password=“1214758100“;Class.forName(driverClass);connection=DriverManager.getConnection(url, user, password);String sql=“select * from student“;preparedStatement=connection.prepareStatement(sql);resultSet=preparedStatement.executeQuery();while(resultSet.next()String studentno = resultSet.getString(1);String pwd = resultSet.getString(2);String sname = resultSet.getString(3);int age = resultSet.getInt(4);