在线考试系统开源源码在线考试系统源代码

在线考试系统开源源码  时间:2021-06-25  阅读:()

在线考试系统毕业论文和源代码

摘 要 随着教育事业的发展和计算机技术的发展和普及,各种考试类型的不断增加和考试要求的不断提高,传统的考试方式己经不能适应现代考试的需要,计算机无纸化考试的趋势给我们提出了一系列新的课题。

基于web的中学英语在线考试系统结合了中学英语考试的特点,能帮助教师从烦琐、重复、容易出错的教师出卷、学生考试、教师阅卷、教师统计成绩等烦琐工作中解脱出来,它的实现能为学校的教学带来积极的作用。

本文主要论述了中学英语在线考试系统的研究现状和系统开发的意义、总体设计、体系结构、主要技术手段及其实现方法。

本文作者在详细研究计算机考试系统的发展和应用现状的基础上,用ASP技术设计了一种实用的在线考试系统方案。

该系统用ess作为后台数据库,通过将ASP技术与ess技术相结合,很好的实现了安全性、稳定性以及考试时间判断、考试结束自动交卷等功能。

关键词:在线考试系统,ASP技术,ess数据库

目 录 第一章 绪论 1 1.1 背景和意义 1 1.2 国内外研究现状 1 1.3开发趋势 1 第二章 系统各功能模块总体设计 2 2.1 系统的开发环境与工具 2 2.2 系统设计的预期目标 2 2.3 系统功能分析 2 2.4 面向客户端前台功能模块 2 2.5 面向管理终端的后台管理模块 4 2.6 系统工作构架 5 2.7 系统实用性设计 6 2.8 系统数据库设计 6 第三章 相关技术综述 12 3.1 关键技术――ASP(Active Server Pages) 12 3.1.1 ASP及其含义 12 3.1.2 ASP特点及其功能 12 3.1.3 ASP内置对象介绍 13 3.1.4 ASP的工作原理 13

参考资料: /search.asp?m=0&s=0&word=%BF%BC%CA%D4%CF%B5%CD%B3&x=34&y=8

开发在线考试系统后台答案怎样验证?

答案提交之后系统会进行答案匹配,网站的数据都是保存在数据库当中。

一般保存试卷的设置是整份做完之后保存。

其实这是看题目的性质,若是题目是做完一题答案马上显示的话,那必须是单题提交。

以上答案来自KESIONIEXAM。

学生考试管理系统,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(" "+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(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)+" "+ "你的回答:"+selection+" "; 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 ept(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 eLabel=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); eLabel=new JLabel("欢迎考试,提高英语水平",JLabel.CENTER); eLabel.setFont(new Font("隶书",Font.PLAIN,24)); eLabel.setForeground(Color.blue); add(eLabel,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); eLabel.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+" "+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(); } } } } } }

如何搭建myexam在线考试系统

如果代码是php 最好装一个xampp5.6.3,是一个网站集成开发环境,提供WEB服务,MYSQL服务,PHP解析。

可装在几乎所有windows平台上,操作简单、稳定; 如果代码是asp就用IIS

myexam在线开源考试系统怎样搭建和使用

如果学校或单位确实想使用,那么建议用“教学测试一体化处理WEB版”。

1. 开源发售; 2. 在线考卷与传统制卷两误; 3. 带试题批录入的考试系统; 4. 能自动考卷恢复的在线考试系统; 5. 能进行考卷分析的在线考试系统; 6. 兼在线学习与训练,在线作业于一体的在线考试系统; 平台实例:

在线考试系统源代码

Asp.Net+Ef+MVC+Bootstrap 在线考试,试题维护,各种统计分析,试卷导出Word。

支持PC端和手机端。

271853837@qq.om

RAKsmart 年中活动 独立服务器限时$30秒杀 VPS主机低至$1.99

RAKsmart 虽然是美国主机商,但是商家的主要客户群还是在我们国内,于是我们可以看到每次的国内节日促销活动期间商家也会发布促销。包括这次年中大促活动,RAKsmart商家也有发布为期两个月的年终活动,其中有商家擅长的独立服务器和便宜VPS主机。服务器包括站群服务器、特价服务器、高达10G带宽不限制流量的美国服务器。商家优惠活动,可以看到对应商品的优惠,同时也可以使用 优惠码 RAKBL9 同时...

Hostodo商家提供两年大流量美国VPS主机 可选拉斯维加斯和迈阿密

Hostodo商家算是一个比较小众且运营比较久的服务商,而且还是率先硬盘更换成NVMe阵列的,目前有提供拉斯维加斯和迈阿密两个机房。看到商家这两年的促销套餐方案变化还是比较大的,每个月一般有这么两次的促销方案推送,可见商家也在想着提高一些客户量。毕竟即便再老的服务商,你不走出来让大家知道,迟早会落寞。目前,Hostodo有提供两款大流量的VPS主机促销,机房可选拉斯维加斯和迈阿密两个数据中心,且都...

NameCheap黑色星期五和网络礼拜一

如果我们较早关注NameCheap商家的朋友应该记得前几年商家黑色星期五和网络星期一的时候大促采用的闪购活动,每一个小时轮番变化一次促销活动而且限量的。那时候会导致拥挤官网打不开迟缓的问题。从去年开始,包括今年,NameCheap商家比较直接的告诉你黑色星期五和网络星期一为期6天的活动。没有给你限量的活动,只有限时六天,这个是到11月29日。如果我们有需要新注册、转入域名的可以参加,优惠力度还是比...

在线考试系统开源源码为你推荐
订房系统常用的酒店管理软件有哪些ipv6电视ipv6网络电视播放器无处不在的意思心无所住是什么意思java程序员招聘Java程序员,一般招聘都要求些啥云办公平台Gleasy云办公平台解决了哪些问题?cc防火墙web防火墙有什么作用微盟价格为什么这么多人用微盟,微盟都有哪些优势在线操作系统TOMOS在线操作系统是什么?元宝汇传奇续章开了几个区?元宝汇热血传奇怎么冲元宝的
双线服务器租用 vps是什么意思 ftp空间 linode代购 免费主机 kddi l5520 京东云擎 长沙服务器 南昌服务器托管 国外网站代理服务器 元旦促销 域名转向 免费高速空间 个人免费主页 www789 空间申请 云服务是什么意思 阿里云邮箱个人版 睿云 更多