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種題型導入。上傳文檔、批量導入、在線編輯,三種錄題方式自由選擇;
組卷:一張試卷同時支持固定試題和隨機試題兩種模式。
發布:組卷完成即可發布考試,隨時隨地實現答題考試。