数据库课程设计报告网上考试系统.docx
- 文档编号:1191347
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:36
- 大小:319.81KB
数据库课程设计报告网上考试系统.docx
《数据库课程设计报告网上考试系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告网上考试系统.docx(36页珍藏版)》请在冰点文库上搜索。
数据库课程设计报告网上考试系统
计算机与软件工程学院
课程设计说明书
课程名称:
面向对象程序设计-课程设计
课程代码:
106086459
题目:
网上考试系统
年级/专业/班:
13级物联网工程2班
学生XX:
凯锋
学 号:
27
开场时间:
2016年5月6日
完成时间:
2008年5月16日
课程设计成绩:
学习态度及平时成绩〔30〕
技术水平与实际能力〔20〕
创新〔5〕
说明书撰写质量〔45〕
总分〔100〕
指导教师签名:
年月日
1.引言
1.1问题的提出
随着计算机技术的开展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。
在数字化的网络环境下,学生希望能够有更方便,公平的考试方式,并且希望能够在网上随时查询自己的成绩,教师希望能够在线编辑,修改试卷,以及在线阅卷,系统管理员希望能够方便地查询,修改学生,教师的信息,以此来提高工作效率,以适应互联网时代的高速开展。
我国历来采用手工出卷的方式作为教师的例行工作之一,试卷的编辑,整理工作占了很大份额。
随着计算机网络技术的不断提高,学校对于学生的各方面管理也更加趋于网络化,网上考试系统就是其中一例。
在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为根底的考试模式。
通过这种新的模式,为考生创造一种新的考试环境,提高考试工作效率和标准化水平。
1.2国外研究的现状
世界各国对教育的开展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会开展的前列,为此许多国家都把信息技术应用于教育,作为民族开展的重要推动力。
在国外,美国心理协会在1986年出版了关于如何开发、使用计算机化考试以及解释考分的指南,成为了考试和软件开发者的事实标准。
投入实际使用的例子有:
1982年采用远距离教育方式的美国学院〔AmericanCollege〕考试使用计算机进展测试;1993年美国教育考试中心〔EraduadeRecordExamination简称ETS〕考试;从1994年开场,美国护理证书考试完全在计算机上进展。
目前,国外许多大型测验出版机构、地区教育主管部门和专业资格认证机构都以某种测量理论为指导建立题库、设计考试系统,并进展各项相关研究。
除了这类行业专用的大型考试系统之外,供普通教师使用的通用考试系统软件也有相应的研究和产品。
如英国QuestionMarkputing,Ltd公司出品的QuestionMark,就是一种基于工程反响理论的,可供广阔教师使用的通用的考试系统。
在我国,计算机考试系统和题库的理论研究和实践应用起步比拟晚。
但开展也比拟迅速,研究和开发活动比拟活泼。
师大学、华北师大学等高等院校都有教师在进展教育测量理论应用于题库建立方面的研究。
清华大学、交通大学、师大学等高校,也有教师在组织力量致力于实用考试系统的研究和开发工作。
其中使用专用在线考试系统影响较大的考试有:
1994年开场,国家教务组织的全国计算机等级考试;1996年开场,教育部考试中心举办的全国算机应用技术证书考试〔NationalApplideInformationTechnologyCertificate简称NIT〕;微软授权培训中心〔MicrosoftAuthorizedTrainingCenter简称ATC〕组织的认证考试等。
1.3国网上考试系统的问题
我国的专用考试系统主要针对计算机考试,其他行业和科目的考试系统太少。
计算机在线考试系统由于操作类题目自动出题有较大的难度,根本没有实现题库化的管理。
系统对传统的客观题虽然一般建有题库但不大,多采用随机抽题组卷的方式,缺乏教育测量理论作为依。
多数的在线考试系统是C/S模式的,也就是说需要安装客户端之后才能使用,这样就带来了很多的不方便之处。
考试完成后,分数和试题统计分析比拟简单,没有充分挖掘数据所包含的信息。
通过考试系统或题库系统对最终用户即教师的需求分析做的不够透彻,忽略教师们渴望能自由地操纵试题库的需求,没有完全实现用户自主初始化试题库、自主维护试题库、自主调用试题库的功能。
加上软件实用水平和商品化工作方面的缺乏。
通用系统并没有被广阔教师认可和使用。
1.5任务与分析
本课题主要的目的是:
利用网络进展无软盘、无纸化的在线考试,大大提高考试的可靠性、有效性,降低考试本钱,提高工作效率。
1.用户类别:
登录系统的身份定为三种,一是管理员,二是普通教师,四是学生,只有被授权的用户才可以使用本系统的资源。
2.权限管理:
系统需要经过有效的身份验证可以登录。
用户的身份不同,使用的系统资源也不同。
考生只可以参加在线考试;普通教师可以在线制作试卷,控制考试、成绩查询、添加试题、阅卷等。
管理员可添加系系部、教师、专业、科目信息、查询修改管理员信息及审批试卷、查询考生成绩。
3.在线考试功能:
考生输入学号密码登陆系统后,选择对应的试卷可进展考试。
答题中,有倒计时的功能,考试完毕时还没提交就自动交卷,系统将自动对客观题进展评分。
4.考生管理功能:
可注册新增学生用户,同时查看考生及班级考生的信息。
5.考生成绩查询功能:
提供考生各科目成绩的详细查询。
可选:
将成绩导出到Excel等
6.试卷审批功能:
只有管理员有此权限。
教师制作试卷完毕,只有经过管理员审批后才能发布,发布后学生才能开考。
7.系统维护:
如数据平安管理〔含备份与恢复〕、操作员管理、权限设置等;
2.程序的主要功能
2.1选择身份登陆功能:
可以根据不同的身份进展登陆,登陆后会有不同的操作界面。
2.2编写试卷功能:
教师可以在线编写试卷,并将试卷添加到试卷库中。
2.3修改试卷功能:
教师可以将已经编写好的试卷从试卷库中提取出来并进展完善,修改后重新添加到试卷库中。
2.4查询考生成绩功能:
教师可以查询某个科目的所有学生的成绩。
2.5在线阅卷功能:
教师可以查询在线批改试卷,并进展打分。
2.6在线考试功能:
学生登陆后可以选择试卷进展考试。
2.7查询自己成绩功能:
学生可以查询自己已考科目的成绩。
2.8查看学生信息功能:
管理员可以查询所有学生信息。
2.9修改学生信息功能:
管理员可以修改指定学生的信息。
2.10查询教师信息功能:
管理员可以查询所有教师的信息。
2.11修改教师信息功能:
管理员可以修改制定教师的信息。
2.12查看管理员信息:
管理员可以查看所有管理员的信息。
2.13添加管理员信息:
管理员可以添加管理员。
3.程序运行平台
EclipseIDEforJavaEEDevelopers
jdk1.7
MySQL
MySQL的JDBC驱动
MyEclipse
运行方式:
①翻开eclipse(或者MyEclipse),将动态网页工程ExamOnNet导入到eclipse中。
②然后找到src文件夹下的jdbc.properties配置文件,将里面的
user=root
password=1214758100
修改为本机的数据库用户名和密码。
③找到WebContent文件夹下的login.jsp,
右键→RunAs→RunOnServer
④输入用户名和密码并选择登陆身份,点击登陆。
图3-1
4.总体设计
4.1需求分析
首先该系统针对不同身份的人提供了不同的功能,当以某种身份登陆时,不能执行其他身份的功能,因此登录时需要进展身份验证。
其次,
①管理员可以执行的功能有:
查看,更新教师,学生,管理员的信息。
②教师可以执行的功能有:
在线编写试卷,修改试卷,批改试卷,查询某门课程的学生的成绩。
③学生可以执行的功能有:
在线考试,成绩查询。
根据①可以得出:
学生信息,教师信息,管理员信息,分别需要一表。
根据②可以得出:
试卷,分数,课程信息,分别需要一表。
4.2数据表信息
admin(管理员信息表)
列名
数据类型
长度
备注
adminno
char
10
管理员号
password
char
10
密码
aname
char
10
age
int
11
年龄
sex
char
1
性别
表4.2.1
teacher(教师信息表)
列名
数据类型
长度
备注
teacherno
char
10
教师号
password
char
20
密码
tname
char
10
rank
char
10
职称
age
int
11
年龄
sex
char
1
性别
表4.2.2
Student(学生信息表)
列名
数据类型
长度
备注
studentno
char
10
学生信息
password
char
20
密码
sname
char
10
age
int
11
年龄
sex
char
10
性别
classno
char
10
班级
grade
char
10
年级
major
char
20
专业
表4.2.3
paper(试卷信息表)
列名
数据类型
长度
备注
paperno
char
10
试卷信息
courseno
char
10
课程号
score_value
int
11
分值
time
int
10
时间
papercotain
text
无
试卷题目容
表4.2.4
course(课程信息表)
列名
数据类型
长度
备注
courseno
char
10
课程号
ame
char
20
课程名称
表4.2.5
score(分数信息表)
列名
数据类型
长度
备注
studentno
char
10
学号
courseno
char
10
课程号
paperno
char
10
试卷号
answer
text
无
答案
score
int
3
分数
表4.2.6
4.3系统业务流程图
4.4E-R模型
5.程序说明
JDBCTools类(实现数据库连接,和数据库更新的方法)
publicclassJDBCTools{
/**
*1.获取连接的方法.通过读取配置文件从数据库效劳器获取一个连接.
*
*return
*throwsException
*/
publicstaticConnectiongetConnection()throwsException{
//1.准备连接数据库的4个字符串.
//1).创立Properties对象
Propertiesproperties=newProperties();
//2).获取jdbc.properties对应的输入流
InputStreamin=JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
//3).加载2〕对应的输入流
properties.load(in);
//4).具体决定user,password等4个字符串.
Stringuser=properties.getProperty("user");
Stringpassword=properties.getProperty("password");
StringjdbcUrl=properties.getProperty("jdbcUrl");
Stringdriver=properties.getProperty("driver");
//2.加载数据库驱动程序(对应的Driver实现类中有注册驱动的静态代码块.)
Class.forName(driver);
//3.通过DriverManager的getConnection()方法获取数据库连接.
returnDriverManager.getConnection(jdbcUrl,user,password);
}
/**
*执行SQL语句,使用PreparedStatement
*paramsql
*paramargs:
填写SQL占位符的可变参数
*/
publicstaticvoidupdate(Stringsql,Object...args){
Connectionconnection=null;
PreparedStatementpreparedStatement=null;
try{
connection=JDBCTools.getConnection();
preparedStatement=connection.prepareStatement(sql);
//遍历占位符对应的对象
for(inti=0;i preparedStatement.setObject(i+1,args[i]); } //执行SQL语句 preparedStatement.executeUpdate(); }catch(Exceptione){ e.printStackTrace(); }finally{ JDBCTools.release(null,preparedStatement,connection); } } /** *释放数据库资源的方法 * *paramresultSet *paramstatement *paramconnection */ publicstaticvoidrelease(ResultSetresultSet,Statementstatement, Connectionconnection){ if(resultSet! =null){ try{ resultSet.close(); }catch(SQLExceptione){ e.printStackTrace(); } } if(statement! =null){ try{ statement.close(); }catch(SQLExceptione){ e.printStackTrace(); } } Student类〔封装Student的各种属性,并赋值〕 publicclassStudent{ //定义变量 privateStringstudentno; privateStringpassword; privateStringsname; privateintage; privateStringsex; privateStringclassno; privateStringgrade; privateStringmajor; publicStringgetStudentno(){ returnstudentno; } //定义Set和Get方法 publicvoidsetStudentno(Stringstudentno){ this.studentno=studentno; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ this.sname=sname; } publicintgetAge(){ returnage; } publicvoidsetAge(intage){ this.age=age; } publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringsex){ this.sex=sex; } publicStringgetClassno(){ returnclassno; } publicvoidsetClassno(Stringclassno){ this.classno=classno; } publicStringgetGrade(){ returngrade; } publicvoidsetGrade(Stringgrade){ this.grade=grade; } publicStringgetMajor(){ returnmajor; } publicvoidsetMajor(Stringmajor){ this.major=major; } //定义构造方法 publicStudent(Stringstudentno,Stringpassword,Stringsname,intage,Stringsex,Stringclassno,Stringgrade, Stringmajor){ super(); this.studentno=studentno; this.password=password; this.sname=sname; this.age=age; this.sex=sex; this.classno=classno; this.grade=grade; this.major=major; } publicStudent(){ super(); //TODOAuto-generatedconstructorstub } } StudentDao类〔实现对Student对象的添加,删除,修改,查找〕 publicclassStudentDao{ //插入 publicvoidinsertAll(Stringstudentno,Stringpassword,Stringsname,intage, Stringsex,Stringclassno,Stringgrade,Stringmajor){ Connectionconn=null; Statementstatement=null; ResultSetresultSet=null; try{ //1.获取Connection conn=JDBCTools.getConnection(); //2.获取Statement statement=conn.createStatement(); //statement2=conn.createStatement(); //3.准备SQL Stringsql="SELECT*fromstudentwherestudentno="+studentno; //4.执行查询,得到ResultSet resultSet=statement.executeQuery(sql); //判断此学生账号是否存在 if(resultSet.next()){ //测试方法 System.out.println("已存在的学生员账号! "); }else{ //插入新的学生信息 Stringsql1="insertintoadmin(studentno,password,sname,age,sex,classno,grade,major)" +"values(? ? ? ? ? ? ? ? )"; JDBCTools.update(sql1,studentno,password,sname,age,sex,classno,grade,major); statement.executeUpdate(sql1); System.out.println(sql1); System.out.println("已执行添加操作。 "); } }catch(Exceptione){ e.printStackTrace(); }finally{ //6.关闭数据库资源. JDBCTools.release(resultSet,statement,conn); } } //删除 publicvoiddeleteByStudentno(Stringstudentno){ Connectionconnection=null; Statementstatement=null; try{ StringdriverClass=".mysql.jdbc.Driver"; Stringurl="jdbc: mysql: ///atguigu"; Stringuser="root"; Stringpassword="1230"; Class.forName(driverClass); connection=DriverManager.getConnection(url,user,password); statement=connection.createStatement(); Stringsql="DELETEFROMadminWHEREstudentno=? "; JDBCTools.update(sql,studentno); statement.executeUpdate(sql); System.out.println("已执行删除操作"); System.out.println(sql); }catch(Exceptione){ e.printStackTrace(); }finally{ try{ if(statement! =null){ statement.close(); } }catch(SQLExceptione){ e.printStackTrace(); } try{ if(connection! =null){ connection.close(); } }catch(SQLExceptione){ e.printStackTrace(); } } } //修改 publicvoidchangeByStudent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 网上 考试 系统