ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:310.12KB ,
资源ID:5834222      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5834222.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课程设计网上考试系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库课程设计网上考试系统.docx

1、数据库课程设计网上考试系统计算机与软件工程学院课程设计说明书课 程 名 称: 面向对象程序设计-课程设计 课 程 代 码: 106086459 题 目: 网上考试系统 年级/专业/班: 13级物联网工程2班 学 生 姓 名: 陈凯锋 学 号: 3120130911227 开 始 时 间: 2016 年 5 月 6 日完 成 时 间: 2008 年 5 月 16 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总 分(100)指导教师签名: 年 月 日1.引言1.1问题的提出 随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或

2、是数字化时代。在数字化的网络环境下,学生希望能够有更方便,公平的考试方式,并且希望能够在网上随时查询自己的成绩,老师希望能够在线编辑,修改试卷,以及在线阅卷,系统管理员希望能够方便地查询,修改学生,教师的信息,以此来提高工作效率,以适应互联网时代的高速发展。我国历来采用手工出卷的方式作为老师的例行工作之一,试卷的编辑,整理工作占了很大份额。随着计算机网络技术的不断提高,学校对于学生的各方面管理也更加趋于网络化,网上考试系统就是其中一例。在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为考生创造一种新的考试环境,提高考试工作效率和标准化水平。1.2

3、国内外研究的现状 世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,作为民族发展的重要推动力。在国外,美国心理协会在1986年出版了关于如何开发、使用计算机化考试以及解释考分的指南,成为了考试和软件开发者的事实标准。投入实际使用的例子有:1982年采用远距离教育方式的美国学院(American College)考试使用计算机进行测试;1993年美国教育考试中心(Eraduade Record Examination简称ETS)考试;从1994年开始,美国护理证书考试完全在计算机上进行。目前,国

4、外许多大型测验出版机构、地区教育主管部门和专业资格认证机构都以某种测量理论为指导建立题库、设计考试系统,并进行各项相关研究。除了这类行业专用的大型考试系统之外,供普通教师使用的通用考试系统软件也有相应的研究和产品。如英国Question Mark Computing,Ltd公司出品的Question Mark,就是一种基于项目反应理论的,可供广大教师使用的通用的考试系统。在我国,计算机考试系统和题库的理论研究和实践应用起步比较晚。但发展也比较迅速,研究和开发活动比较活跃。北京师范大学、华北师范大学等高等院校都有教师在进行教育测量理论应用于题库建设方面的研究。清华大学、上海交通大学、北京师范大学

5、等高校,也有教师在组织力量致力于实用考试系统的研究和开发工作。其中使用专用在线考试系统影响较大的考试有:1994年开始,国家教务组织的全国计算机等级考试;1996年开始,教育部考试中心举办的全国算机应用技术证书考试(National Applide Information Technology Certificate 简称NIT);微软授权培训中心(Microsoft Authorized Training Center 简称ATC)组织的认证考试等。1.3国内网上考试系统的问题我国的专用考试系统主要针对计算机考试,其他行业和科目的考试系统太少。计算机在线考试系统由于操作类题目自动出题有较大的

6、难度,基本没有实现题库化的管理。系统对传统的客观题虽然一般建有题库但不大,多采用随机抽题组卷的方式,缺乏教育测量理论作为依。多数的在线考试系统是C/S模式的,也就是说需要安装客户端之后才能使用,这样就带来了很多的不方便之处。考试完成后,分数和试题统计分析比较简单,没有充分挖掘数据所包含的信息。通过考试系统或题库系统对最终用户即教师的需求分析做的不够透彻,忽略老师们渴望能自由地操纵试题库的需求,没有完全实现用户自主初始化试题库、自主维护试题库、自主调用试题库的功能。加上软件实用水平和商品化工作方面的不足。通用系统并没有被广大教师认可和使用。1.5任务与分析本课题主要的目的是:利用网络进行无软盘、

7、无纸化的在线考试,大大提高考试的可靠性、有效性,降低考试成本,提高工作效率。1. 用户类别:登录系统的身份定为三种,一是管理员,二是普通老师,四是学生,只有被授权的用户才可以使用本系统的资源。2. 权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;普通教师可以在线制作试卷,控制考试、成绩查询、添加试题、阅卷等。管理员可添加系系部、教师、专业、科目信息、查询修改管理员信息及审批试卷、查询考生成绩。3. 在线考试功能:考生输入学号密码登陆系统后,选择对应的试卷可进行考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷,系统将自动对客观

8、题进行评分。4. 考生管理功能:可注册新增学生用户,同时查看考生及班级考生的信息。 5. 考生成绩查询功能:提供考生各科目成绩的详细查询。可选:将成绩导出到Excel等 6. 试卷审批功能:只有管理员有此权限。教师制作试卷完毕,只有经过管理员审批后才能发布,发布后学生才能开考。7. 系统维护:如数据安全管理(含备份与恢复)、操作员管理、权限设置等;2.程序的主要功能2.1选择身份登陆功能:可以根据不同的身份进行登陆,登陆后会有不同的操作界面。2.2编写试卷功能:教师可以在线编写试卷,并将试卷添加到试卷库中。2.3修改试卷功能:教师可以将已经编写好的试卷从试卷库中提取出来并进行完善,修改后重新添

9、加到试卷库中。2.4查询考生成绩功能:教师可以查询某个科目的所有学生的成绩。2.5在线阅卷功能:教师可以查询在线批改试卷,并进行打分。2.6在线考试功能:学生登陆后可以选择试卷进行考试。2.7查询自己成绩功能:学生可以查询自己已考科目的成绩。2.8查看学生信息功能:管理员可以查询所有学生信息。2.9修改学生信息功能:管理员可以修改指定学生的信息。2.10查询教师信息功能:管理员可以查询所有教师的信息。2.11修改教师信息功能:管理员可以修改制定教师的信息。2.12查看管理员信息:管理员可以查看所有管理员的信息。2.13添加管理员信息:管理员可以添加管理员。3.程序运行平台Eclipse IDE

10、 for Java EE Developers jdk1.7MySQLMySQL的JDBC驱动My Eclipse运行方式:打开eclipse(或者My Eclipse),将动态网页工程ExamOnNet导入到eclipse中。然后找到src文件夹下的jdbc.properties配置文件,将里面的user=rootpassword=1214758100修改为本机的数据库用户名和密码。找到WebContent文件夹下的login.jsp,右键RunAsRunOnServer输入用户名和密码并选择登陆身份,点击登陆。图3-14.总体设计4.1需求分析首先该系统针对不同身份的人提供了不同的功能,当

11、以某种身份登陆时,不能执行其他身份的功能,因此登录时需要进行身份验证。其次,管理员可以执行的功能有:查看,更新教师,学生,管理员的信息。教师可以执行的功能有:在线编写试卷,修改试卷,批改试卷,查询某门课程的学生的成绩。学生可以执行的功能有:在线考试,成绩查询。根据可以得出:学生信息,教师信息,管理员信息,分别需要一张表。根据可以得出:试卷,分数,课程信息,分别需要一张表。4.2数据表信息admin(管理员信息表)列名数据类型长度备注adminnochar10管理员号passwordchar10密码anamechar10姓名ageint11年龄sexchar1性别表4.2.1teacher(教师

12、信息表)列名数据类型长度备注teachernochar10教师号passwordchar20密码tnamechar10姓名rankchar10职称ageint11年龄sexchar1性别表4.2.2Student(学生信息表)列名数据类型长度备注studentnochar10学生信息passwordchar20密码snamechar10姓名ageint11年龄sexchar10性别classnochar10班级gradechar10年级majorchar20专业表4.2.3paper(试卷信息表)列名数据类型长度备注papernochar10试卷信息coursenochar10课程号score

13、_valueint11分值timeint10时间papercotaintext无试卷题目内容表4.2.4course(课程信息表)列名数据类型长度备注coursenochar10课程号cnamechar20课程名称表4.2.5score(分数信息表)列名数据类型长度备注studentnochar10学号coursenochar10课程号papernochar10试卷号answertext无答案scoreint3分数表4.2.64.3系统业务流程图4.4 E-R模型5.程序说明JDBCTools类(实现数据库连接,和数据库更新的方法)public class JDBCTools /* * 1.

14、获取连接的方法. 通过读取配置文件从数据库服务器获取一个连接. * * return * throws Exception */ public static Connection getConnection() throws Exception / 1. 准备连接数据库的 4 个字符串. / 1). 创建 Properties 对象 Properties properties = new Properties(); / 2). 获取 jdbc.properties 对应的输入流 InputStream in = JDBCTools.class.getClassLoader().getResou

15、rceAsStream(jdbc.properties); / 3). 加载 2) 对应的输入流 properties.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); /

16、 2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.) Class.forName(driver); / 3. 通过 DriverManager 的 getConnection() 方法获取数据库连接. return DriverManager.getConnection(jdbcUrl, user, password); /* * 执行 SQL 语句, 使用 PreparedStatement * param sql * param args: 填写 SQL 占位符的可变参数 */ public static void update(String sql, Ob

17、ject . args) Connection connection = null; PreparedStatement preparedStatement = null; try connection = JDBCTools.getConnection(); preparedStatement = connection.prepareStatement(sql); /遍历占位符对应的对象 for(int i = 0; i args.length; i+) preparedStatement.setObject(i + 1, argsi); /执行SQL语句 preparedStatement

18、.executeUpdate(); catch (Exception e) e.printStackTrace(); finally JDBCTools.release(null, preparedStatement, connection); /* * 释放数据库资源的方法 * * param resultSet * param statement * param connection */ public static void release(ResultSet resultSet, Statement statement, Connection connection) if (resul

19、tSet != null) try resultSet.close(); catch (SQLException e) e.printStackTrace(); if (statement != null) try statement.close(); catch (SQLException e) e.printStackTrace(); Student类(封装Student的各种属性,并赋值)public class Student /定义变量 private String studentno; private String password; private String sname; p

20、rivate int age; private String sex; private String classno; private String grade; private String major; public String getStudentno() return studentno; /定义Set和Get方法 public void setStudentno(String studentno) this.studentno = studentno; public String getPassword() return password; public void setPassw

21、ord(String password) this.password = password; public String getSname() return sname; public void setSname(String sname) this.sname = sname; public int getAge() return age; public void setAge(int age) this.age = age; public String getSex() return sex; public void setSex(String sex) this.sex = sex; p

22、ublic String getClassno() return classno; public void setClassno(String classno) this.classno = classno; public String getGrade() return grade; public void setGrade(String grade) this.grade = grade; public String getMajor() return major; public void setMajor(String major) this.major = major; /定义构造方法

23、 public Student(String studentno, String password, String sname, int age, String sex, String classno, String grade, String major) super(); this.studentno = studentno; this.password = password; this.sname = sname; this.age = age; this.sex = sex; this.classno = classno; this.grade = grade; this.major

24、= major; public Student() super(); / TODO Auto-generated constructor stub StudentDao类(实现对Student对象的添加,删除,修改,查找)public class StudentDao /插入 public void insertAll(String studentno,String password,String sname,int age, String sex,String classno,String grade,String major) Connection conn = null; Stateme

25、nt statement = null; ResultSet resultSet = null; try /1. 获取 Connection conn = JDBCTools.getConnection(); /2. 获取 Statement statement = conn.createStatement();/ statement2=conn.createStatement(); /3. 准备 SQL String sql = SELECT * from student where studentno=+studentno; /4. 执行查询, 得到 ResultSet resultSet

26、 = statement.executeQuery(sql); /判断此学生账号是否存在 if(resultSet.next() /测试方法 System.out.println(已存在的学生员账号!); else /插入新的学生信息 String sql1=insert into admin (studentno,password,sname,age,sex,classno,grade,major) + values(?,?,?,?,?,?,?,?); JDBCTools.update(sql1,studentno,password,sname,age,sex,classno,grade,m

27、ajor); statement.executeUpdate(sql1); System.out.println(sql1); System.out.println(已执行添加操作。); catch (Exception e) e.printStackTrace(); finally /6. 关闭数据库资源. JDBCTools.release(resultSet, statement, conn); /删除 public void deleteByStudentno(String studentno) Connection connection = null; Statement state

28、ment=null; try String driverClass = com.mysql.jdbc.Driver; String url = jdbc:mysql:/atguigu; String user = root; String password = 1230; Class.forName(driverClass); connection = DriverManager.getConnection(url, user, password); statement=connection.createStatement(); String sql = DELETE FROM admin WHERE studentno = ?; JDBCTools.update(sql, studentno); statement.executeUpdate(sql); System.out

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1