线考试系统毕业设计说明书Word文件下载.docx
《线考试系统毕业设计说明书Word文件下载.docx》由会员分享,可在线阅读,更多相关《线考试系统毕业设计说明书Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
![线考试系统毕业设计说明书Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/24/5731f8ec-f289-4538-ada8-cbcb55ee17d8/5731f8ec-f289-4538-ada8-cbcb55ee17d81.gif)
在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。
与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。
通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。
可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。
传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。
这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。
在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。
2可行性分析
2.1概述
开发任何一个基于计算机的软件,都会受到时间和资源上的限制。
因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发风险,避免人力、物力和财力的浪费[1]。
由于本系统是作为一个毕业设计,在可行性分析中,经济可行性可以不用考虑,只考虑技术可行性和操作可行性,重点分析技术可行性。
2.2技术可行性
现在网络上的流行的动态网页编程语言有许多,但比较流行的有三种动态页面编辑语言,分别是JSP,ASP和PHP。
虽然PHP是近几年才发展开发出来的,不像Java和C#那样是IT业内的老资格,但是它所具备的强大功能使得他越来越受IT业内人士的喜爱。
本系统是基于Internet和PHP实现的在线考试系统,无论何时何地只要有网络,有电脑,学生们都能随时随地的进行测验,PHP又是一门开源的服务器脚本语言,能在网上查到大量的资料,所以本系统在技术上是可行的。
2.3操作可行性
本系统是一款网络系统,在操作系统、开发平台、硬件环境上并无特殊要求。
3需求分析
3.1系统需求分析
本系统分为前台和后台,后台用于管理员或教师登录,主要负责进行基本资料、试卷、成绩的管理以及查询等;
前台用于学生登录,主要负责在线考试、查询以往考试成绩。
从总体上考虑,系统应该实现下列功能:
对管理员来说,包括试卷管理、成绩管理、学生基本信息管理。
1、试卷管理:
管理员或教师可以自己添加试卷。
同时,管理员或老师还可以对库中已有的试卷进行修改和删除,添加新试卷等。
3、成绩管理:
管理员或教师可以查看考生的考试成绩。
4、学生管理:
管理员可以对用户的资料进行查询、删除。
对学生用户来说,包括在线考试、查询以往考试成绩、修改基本资料和注册等。
1、在线考试:
学生可以任选时间进行在线测试,考试结束后,系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩。
2、查询以往考试成绩:
学生可以在线查询以前参加过的每门课程的考试相关信息。
3、修改资料:
学生可以修改自己的基本资料。
4、注册:
未注册的学生可以注册登录本系统。
3.2数据库需求分析
针对一般考试系统的需求,设计如下所示的数据项和数据结构:
管理员信息,包括的数据项有:
管理员姓名、密码等。
学生用户信息,包括的数据项有:
用户名、密码、性别、班号、学号等。
试卷信息,包括的数据项有:
试卷名称等。
考题信息,包括的数据项有:
考题ID、考题所属试卷、考题类型、考题题目、考题内容,考题答案,考题分值。
学生答题表:
ID、学生学号、考题ID、学生答题回答。
3.2.1数据字典
图3-1管理员表
图3-2成绩表
图3-3考题信息表
图3-4考题类型表
图3-5学生答题答案表
图3-5学生表
3.2.2数据库E-R图
图3-6系统E-R图
本系统应该建立一个稳定的后台数据库系统,通过该数据库管理整个考试系统所需的信息(用户信息、试题信息、试卷信息、考试信息等)。
本系统还应该包括学生和教师的账号、后台数据库的安全机制、考试过程的控制机制。
4系统设计
4.1概述
金山在线考试系统主要分为两个部分,一个为前台,一个为后台。
前台主要是为学生准备的,学生可以在前台登陆,注册。
在登陆以后同学还可以进入考场进行考试,查询成绩,修改密码等操作。
后台主要是为管理员和教师准备的,教师在后台登陆以后可以进行试卷管理、学生信息管理、成绩信息管理。
如果登陆的是管理员,除了拥有教师的权限功能以外,还能使用管理员信息管理,在管理员信息管理中能对教师信息进行管理。
4.2开发工具介绍
本设计是用PHP语言借助CI(CodeIgniter)框架开发完成的。
PHP,是英文超级文本预处理语言HypertextPreprocessor的缩写。
PHP是一种HTML内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速的执行动态网页。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
最重要的是PHP可以用C、C++进行程序的扩展!
CI(CodeIgniter)框架是一个为用PHP编写网络应用程序的人员提供的工具包。
它的目标是实现让你比从零开始编写代码更快速地开发项目,为此,CI提供了一套丰富的类库来满足通常的任务需求,并且提供了一个简单的接口和逻辑结构来调用这些库。
CodeIgniter可以将需要完成的任务代码量最小化,这样你就可以把更多的精力放到项目的开发上了。
4.3前台功能实现
CI(CodeIgniter)框架是一个MVC模式的框架,我们一般在控制器文件中控制需要载入的页面,以及对提交的信息进行处理、输出。
我将前台控制器文件命名为online.php。
模型主要是和数据库打交道,在这里我将模型文件命名为monline.php。
以下是前台功能流程图:
图4-1前台功能流程图
4.3.1学生登陆模块实现
学生登录模块中主要实现的是学生能通过学号和密码登录本系统,以便能使用本系统的一些功能。
具体的实现步骤是:
1)输出表单。
2)获取用户填写完的表单元素。
3)将获取的表单元素与服务器上的学生表信息进行比对、判断。
4)如果信息符合数据库内学生信息表的数据则登录成功,将学号、姓名、学生ID记录在SESSION变量中,否则输出登录错误的信息。
控制器代码如下:
$data=array(
'
number'
=>
$this->
input->
post('
),
pw'
md5($this->
))
);
$table="
student"
;
$query=$this->
monline->
select($table,$data);
if($query->
num_rows()==1){
foreach($query->
result()as$row){
$name=$row->
name;
$u_id=$row->
u_id;
$number=$row->
number;
}
$session['
is_login'
]=true;
name'
]=$name;
u_id'
]=$u_id;
w_name'
]=$number;
$this->
session->
set_userdata($session);
redirect(site_url('
online/index'
));
echo'
<
script>
alert("
欢迎您'
.$name.'
同学"
)<
/script>
'
}else{
echo'
登陆失败,请重试"
4.3.2学生注册模块实现
学生注册模块中主要实现的是学生能通过注册选项注册本系统的账户,以便能登录本系统使用本系统的功能。
1)输出注册表单。
2)获取游客填写完后提交的表单上的元素。
3)将获取的表单元素与服务器上的学生表信息进行比对、判断,是否存在同学号的学生。
4)如果不存在同学号的用户,将表单上的用户信息添加到学生信息表上,否则返回注册页面,输出错误提示信息。
$data=array(
sex'
age'
address'
tel'
md5($this->
);
$table='
student'
$u_id=$this->
add($table,$data);
if($u_id){
zhuce'
]=11;
$name=$this->
);
$number=$this->
$this->
redirect(site_url('
$session['
]=10;
4.3.3修改密码模块实现
修改密码模块中主要实现的是已经登录的学生能通过修改密码选项修改自己的账户密码,以便能保证自己信息的安全。
1)输出修改密码表单。
2)获取学生用户填写完后提交的表单上的元素。
4)如果存在该同学号的用户,将表单上的密码更新到相应的学生信息上。
$id=$this->
userdata('
$data=array(
if($this->
edit($table,$data,$id)){
edit'
}
4.3.4成绩查询模块实现
成绩查询模块中主要实现的是学生能通过成绩查询选项,以便能登录本系统使用本系统的功能。
1)获取学生登录后保存在SESSION中的学生ID。
2)按学生ID查询学生数据库,并输出。
$data['
title'
]='
金山在线考试系统----成绩查询'
$this->
load->
view('
header'
$data);
chaxun'
页面关键代码:
?
php
$tablea='
grade'
$querya=$this->
query($tablea);
if($querya->
num_rows()>
0){
foreach($querya->
$number=$this->
if($number==$row->
g_number){?
>
<
tr>
td>
phpecho$row->
g_ktlb;
/td>
g_grade?
/tr>
php}
}
}
4.3.5进入考场模块实现
进入考场模块是本系统在前台中最主要的模块,它能使学生们在线考试,完成对自己能力的测试。
实现步骤是:
1)当点击进入考场选项时会跳转到一个试卷选择页面,给学生选择试卷。
2)悬着完试卷后就会跳转到答题页面。
3)学生做完试卷点击提交后,系统会自动核对后台数据库,计算出分数保存在成绩表中。
控制器代码:
functionkaochang(){
if($this->
)){
$data['
金山在线考试系统----考试考场'
kaochang'
}else{
}
functionks_begin(){
'
ktlb'
)
);
$sjdata['
]=$this->
data'
]=$data;
ks_begin'
$sjdata);
functionks_end(){
$table='
kaxx'
$query=$this->
madmin->
tmquery($table,$data);
$grade=0;
$daan='
if($query->
num_rows()>
0){
foreach($query->
if($row->
ktlx==0){
$daan=$this->
ktda'
.$row->
x_id);
if($daan==$row->
ktda){
$grade=$grade+$row->
grade;
}elseif($row->
ktlx==1){
}
ktlx==2){
for($i=0;
$i<
count($daan)-1;
$i++){
$daana='
if($i<
1){
$daanb=$daana;
$daanz=$daanb;
}else{
$daanb=$daana.'
*'
.$daan[$i];
if($daanz==$row->
}
$g_data=array(
g_ktlb'
g_grade'
$grade,
g_number'
b_time'
time'
$g_table='
add($g_table,$g_data)){
echo'
数据存储出错(成绩)'
}else{echo'
没有该试卷'
}
选择试卷页面代码:
$table='
ktfl'
$query=$this->
lbquery($table);
?
phpechoform_open('
online/ks_begin'
请选择考题分类:
selectname="
ktlb"
phpif($query->
result()as$row){?
optionvalue="
ktlb;
"
/option>
}?
4.3.6退出注销模块实现
退出注销模块实现的是清空会话中的数据,使用户回到重新登录的状态。
控制器实现代码如下:
functiontuichu(){
sess_destroy();
4.4后台功能实现
后台主要是为管理员和教师准备的,教师在后台登陆以后可以进行试卷管理、学生信息管理、成绩信息管理。
如果登陆的