学生考试管理系统,JAva源代码

Python019

学生考试管理系统,JAva源代码,第1张

//主类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=0i<mini++)

{ try{

if(selection.charAt(i)==correctAnswer.charAt(i))

score++

}

catch(StringIndexOutOfBoundsException 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=0i<fileName.lengthi++)

{

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=0i<4i++)

{

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=0i<4i++)

{

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=0i<4i++)

{

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()

}

}

}

}

}

}

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. 教师管理:教师管理、添加教师

二、教师登录: 考试管理、题库管理、成绩查询、学生管理

三、学生登录: 我的试卷(试卷列表、考试)、我的练习、我的分数

源码免费分享!需要源码用来学习的小伙伴可以私信我:在线考试

如果您也喜欢这篇文章,记得点赞+关注+转发+评论哦![比心]