A. 在线考试系统源码分享
Springboot+vue在线考试系统源码
开发语言:java
数据库:Mysql
开发工具:Eclipse
使用技术:
后端:SpringBoot
前端:VUE 和 Element-UI
源码免费分享!
该项目是一个前后端分离,后端使用 SpringBoot,前端使用 VUE 和 Element-UI 组件库配合完成开发。共有三种角色:管理员、教师、学生。
运行环境:
1.运行环境:最好是java jdk 1.8
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可;
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目;
6.数据库:MySql 8.0版本。
主要功能有
一、管理员登录:
1. 考试管理:功能介绍、考试查阅、添加考试
2. 题库管理:功能介绍、所有题库、增加题库
3. 成绩查询:学生成绩查询
4. 学生管理:学生管理、添加学生
5. 教师管理:教师管理、添加教师
二、教师登录: 考试管理、题库管理、成绩查询、学生管理
三、学生登录: 我的试卷(试卷列表、考试)、我的练习、我的分数
源码免费分享!需要源码用来学习的小伙伴可以私信我:在线考试
如果您也喜欢这篇文章,记得点赞+关注+转发+评论哦![比心]
B. 学生考试管理系统,JAva源代码
//主类EnglishTest——
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EnglishTest extends JFrame
{
TestArea testPanel=null;
Container con=null;
public EnglishTest()
{
super("模拟考试");
testPanel=new TestArea();
con=getContentPane();
con.add(testPanel,BorderLayout.CENTER);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
setVisible(true);
setBounds(60,40,660,460);
con.validate();
validate();
}
public static void main(String args[])
{
new EnglishTest();
}
}
//读取试题 ReadTestquestion
import java.io.*;
import java.util.*;
public class ReadTestquestion
{ String filename="",
correctAnswer="",
testContent="" ,
selection="" ;
int score=0;
long time=0;
boolean 完成考试=false;
File f=null;
FileReader in=null;
BufferedReader 读取=null;
public void setFilename(String name)
{ filename=name;
score=0;
selection="";
try {
if(in!=null&&读取!=null)
{
in.close();
读取.close();
}
f=new File(filename);
in=new FileReader(f);
读取=new BufferedReader(in);
correctAnswer=(读取.readLine()).trim();
String temp=(读取.readLine()).trim() ;
StringTokenizer token=new StringTokenizer(temp,":");
int hour=Integer.parseInt(token.nextToken()) ;
int minute=Integer.parseInt(token.nextToken());
int second=Integer.parseInt(token.nextToken());
time=1000*(second+minute*60+hour*60*60);
}
catch(Exception e)
{
testContent="没有选择试题";
}
}
public String getFilename()
{
return filename;
}
public long getTime()
{
return time;
}
public void set完成考试(boolean b)
{
完成考试=b;
}
public boolean get完成考试()
{
return 完成考试;
}
public String getTestContent()
{ try {
String s=null;
StringBuffer temp=new StringBuffer();
if(读取!=null)
{
while((s=读取.readLine())!=null)
{
if(s.startsWith("**"))
break;
temp.append("\n"+s);
if(s.startsWith("endend"))
{
in.close();
读取.close();
完成考试=true;
}
}
testContent=new String(temp);
}
else
{
testContent=new String("没有选择试题");
}
}
catch(Exception e)
{
testContent="试题内容为空,考试结束!!";
}
return testContent;
}
public void setSelection(String s)
{
selection=selection+s;
}
public int getScore()
{ score=0;
int length1=selection.length();
int length2=correctAnswer.length();
int min=Math.min(length1,length2);
for(int i=0;i<min;i++)
{ try{
if(selection.charAt(i)==correctAnswer.charAt(i))
score++;
}
catch( e)
{
i=0;
}
}
return score;
}20:10 03-8-31
public String getMessages()
{
int length1=selection.length();
int length2=correctAnswer.length();
int length=Math.min(length1,length2);
String message="正确答案:"+correctAnswer.substring(0,length)+"\n"+
"你的回答:"+selection+"\n";
return message;
}
}
//考试区域TestArea
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
class FileName implements FilenameFilter
{
String str=null;
FileName (String s)
{
str="."+s;
}
public boolean accept(File dir,String name)
{
return name.endsWith(str);
}
}
public class TestArea extends JPanel implements ActionListener,ItemListener,Runnable
{
Choice list=null;
JTextArea 试题显示区=null,消息区=null;
JCheckBox box[];
JButton 提交该题答案,读取下一题,查看分数;
ReadTestquestion 读取试题=null;
JLabel welcomeLabel=null;
Thread countTime=null;
long time=0;
JTextField timeShow=null;
boolean 是否关闭计时器=false,
是否暂停计时=false;
JButton 暂停或继续计时=null;
public TestArea()
{
list= new Choice();
String 当前目录=System.getProperty("user.dir");
File dir=new File(当前目录);
FileName fileTxt=new FileName("txt");
String fileName[]=dir.list(fileTxt);
for(int i=0;i<fileName.length;i++)
{
list.add(fileName[i]);
}
试题显示区=new JTextArea(15,12);
试题显示区.setLineWrap(true);
试题显示区.setWrapStyleWord(true);
试题显示区.setFont(new Font("TimesRoman",Font.PLAIN,14));
试题显示区.setForeground(Color.blue);
消息区=new JTextArea(8,8);
消息区.setForeground(Color.blue);
消息区.setLineWrap(true);
消息区.setWrapStyleWord(true);
countTime=new Thread(this);
String s[]={"A","B","C","D"};
box=new JCheckBox[4];
for(int i=0;i<4;i++)
{
box[i]=new JCheckBox(s[i]);
}
暂停或继续计时=new JButton("暂停计时");
暂停或继续计时.addActionListener(this);
提交该题答案=new JButton("提交该题答案");
读取下一题=new JButton("读取第一题");
读取下一题.setForeground(Color.blue);
提交该题答案.setForeground(Color.blue);
查看分数=new JButton("查看分数");
查看分数.setForeground(Color.blue);
提交该题答案.setEnabled(false);
提交该题答案.addActionListener(this);
读取下一题.addActionListener(this);
查看分数.addActionListener(this);
list.addItemListener(this);
读取试题=new ReadTestquestion();
JPanel pAddbox=new JPanel();
for(int i=0;i<4;i++)
{
pAddbox.add(box[i]);
}
Box boxH1=Box.createVerticalBox(),
boxH2=Box.createVerticalBox(),
baseBox=Box.createHorizontalBox();
boxH1.add(new JLabel("选择试题文件"));
boxH1.add(list);
boxH1.add(new JScrollPane(消息区));
boxH1.add(查看分数);
timeShow=new JTextField(20);
timeShow.setHorizontalAlignment(SwingConstants.RIGHT);
timeShow.setEditable(false);
JPanel p1=new JPanel();
p1.add(new JLabel("剩余时间:"));
p1.add(timeShow);
p1.add(暂停或继续计时);
boxH1.add(p1);
boxH2.add(new JLabel("试题内容:"));
boxH2.add(new JScrollPane(试题显示区));
JPanel p2=new JPanel();
p2.add(pAddbox);
p2.add(提交该题答案);
p2.add(读取下一题);
boxH2.add(p2);
baseBox.add(boxH1);
baseBox.add(boxH2);
setLayout(new BorderLayout());
add(baseBox,BorderLayout.CENTER);
welcomeLabel=new JLabel("欢迎考试,提高英语水平",JLabel.CENTER);
welcomeLabel.setFont(new Font("隶书",Font.PLAIN,24));
welcomeLabel.setForeground(Color.blue);
add(welcomeLabel,BorderLayout.NORTH);
}
public void itemStateChanged(ItemEvent e)
{
timeShow.setText(null);
是否关闭计时器=false;
是否暂停计时=false;
暂停或继续计时.setText("暂停计时");
String name=(String)list.getSelectedItem();
读取试题.setFilename(name);
读取试题.set完成考试(false);
time=读取试题.getTime();
if(countTime.isAlive())
{
是否关闭计时器=true;
countTime.interrupt();
}
countTime=new Thread(this);
消息区.setText(null);
试题显示区.setText(null);
读取下一题.setText("读取第一题");
提交该题答案.setEnabled(false);
读取下一题.setEnabled(true);
welcomeLabel.setText("欢迎考试,你选择的试题:"+读取试题.getFilename());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==读取下一题)
{
读取下一题.setText("读取下一题");
提交该题答案.setEnabled(true);
String contentTest=读取试题.getTestContent();
试题显示区.setText(contentTest);
消息区.setText(null);
读取下一题.setEnabled(false);
try {
countTime.start();
}
catch(Exception event)
{
}
}
if(e.getSource()==提交该题答案)
{
读取下一题.setEnabled(true);
提交该题答案.setEnabled(false);
String answer="?";
for(int i=0;i<4;i++)
{
if(box[i].isSelected())
{
answer=box[i].getText();
box[i].setSelected(false);
break;
}
}
读取试题.setSelection(answer);
}
if(e.getSource()==查看分数)
{
int score=读取试题.getScore();
String messages=读取试题.getMessages();
消息区.setText("分数:"+score+"\n"+messages);
}
if(e.getSource()==暂停或继续计时)
{
if(是否暂停计时==false)
{
暂停或继续计时.setText("继续计时");
是否暂停计时=true;
}
else if(是否暂停计时==true)
{
暂停或继续计时.setText("暂停计时");
是否暂停计时=false;
countTime.interrupt();
}
}
}
public synchronized void run()
{
while(true)
{
if(time<=0)
{
是否关闭计时器=true;
countTime.interrupt();
提交该题答案.setEnabled(false);
读取下一题.setEnabled(false);
timeShow.setText("用时尽,考试结束");
}
else if(读取试题.get完成考试())
{
是否关闭计时器=true;
timeShow.setText("考试效果:分数*剩余时间(秒)="+1.0*读取试题.getScore()*(time/1000));
countTime.interrupt();
提交该题答案.setEnabled(false);
读取下一题.setEnabled(false);
}
else if(time>=1)
{
time=time-1000;
long leftTime=time/1000;
long leftHour=leftTime/3600;
long leftMinute=(leftTime-leftHour*3600)/60;
long leftSecond=leftTime%60;
timeShow.setText(""+leftHour+"小时"+leftMinute+"分"+leftSecond+"秒");
}
try
{
Thread.sleep(1000);
}
catch(InterruptedException ee)
{
if(是否关闭计时器==true)
return ;
}
while(是否暂停计时==true)
{
try
{
wait();
}
catch(InterruptedException ee)
{
if(是否暂停计时==false)
{
notifyAll();
}
}
}
}
}
}
C. 有没有什么在线考试系统软件推荐一下
一般的在线考试系统就很好,按照考试系统的文字指引,使用系统的考试相关功能就可以顺利组织一场在线考试。考试系统能让管理员从筹备试题到阅卷统分等整个考试流程都用在线完成,操作简单明了,系统将组织过程简化,管理员可以高效完成。具体的操作步骤如下,可以作为参考。
一、将考试的试题导入系统试题库中,方便后续的管理和操作。
管理员可以先根据试题的科目、知识点、题型等类别,在系统的试题库中分级创建试题分类,导题时将试题导入对应分类下,方便管理和查找。再根据试题的题型、数量,选择模板导入、单个新增、或批量新增试题的方式,快速导入需要的考试试题。
二、创建一场线上考试,通知考生参加。
创建考试、填写考试的名称和分类,再选择考试的参加方式,不同方式需要填写的信息不同。如果有需要,可以让考生在手动签名后再进入答题。
创建试卷大题组卷,三种类型的大题可以自由组合使用。每个大题都能从试题库中选择已经导入的试题添加,快速设计完整的试卷。
设置考试时间、答题试卷、答题设备、及格分、试题、试卷、防作弊措施等考试所需的相关配置,让线上考试能顺利进行。
让系统智能生成考试须知,或从模板库中匹配须知,在生成的内容上进行编辑修改,也能全部都自行编辑,提醒考生在考试时的注意事项。就能发布考试的入口,通知考生按时参加。
三、考生进行线上考试答题。
考生可以使用电脑等智能设备通过发布的考试入口进入答题,每个步骤系统都有文字进行指引和解释,还有相应的提示信息,考生可以方便快速地参加线上考试。
四、交卷后智能阅卷统分,直观掌握考试情况。
试卷中设置好了答案、分数和相应判分机制的试题,系统会在考生交卷后自动阅卷打分,如果有主观性的试题,管理员也可以在系统后台进行人工评卷,快速完成阅卷工作。系统还会自动统计分析考试数据,并生成相应的报表,管理员可以直接查看考试结果,掌握考试情况。
D. 有什么好用的在线考试系统吗Java的。
好用的在线考试系统,可以参考如下:
一、系统稳定:
在线讲课过程中最怕的就是系统卡顿或掉线,考试系统稳定,安全可靠,能同时容纳超大规模成员在线考试。
二、功能齐全
拥有强大的后台管理功能:
多种成员录入方式,无限级组织架构助力分类管理;灵活分配管理权限,多个子管理员各司其职;独有的签到管理功能,让线下活动与网课直播的参与情况有据可查。教师可以对学生进行统一管理,包括信息发送、数据分析等。
教学功能丰富:
1、支持多端口多平台在线考试,与钉钉、微信、QQ、飞书等平台无缝对接;
2、人脸识别、音频视频监控、禁止切屏等智能防作弊技术,保障每场考试的公平;
3、强大的判卷分析功能,多维度多方面数据分析设置,一键生成分析结果;
三、操作简单
操作简单是考试系统的最大优势。以轻速云考试系统为例,导题、组卷、发布三步骤即可实现考试。
其官网免费提供大量考试题库,也支持创建专属题库,为用户提供Word及Excel模板,利用模板即可将想要进行考核的试题一键快速批量导题建立题库,多种组卷方式只需鼠标点点就能轻松组卷。
导题:支持选择、判断、多选等多达6种题型导入。上传文档、批量导入、在线编辑,三种录题方式自由选择;
组卷:一张试卷同时支持固定试题和随机试题两种模式。
发布:组卷完成即可发布考试,随时随地实现答题考试。