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

在线考试系统开源源码  时间: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

妮妮云(119元/季)日本CN2 2核2G 30M 119元/季

妮妮云的知名度应该也不用多介绍了,妮妮云旗下的云产品提供商,相比起他家其他的产品,云产品还是非常良心的,经常出了一些优惠活动,前段时间的八折活动推出了很多优质产品,近期商家秒杀活动又上线了,秒杀产品比较全面,除了ECS和轻量云,还有一些免费空间、增值代购、云数据库等,如果你是刚入行安稳做站的朋友,可以先入手一个119/元季付的ECS来起步,非常稳定。官网地址:www.niniyun.com活动专区...

Virmach$7.2/年,新款月抛vps上线,$3.23/半年,/1核640M内存/10 GB存储/ 1Gbps/1T流量

Virmach自上次推出了短租30天的VPS后,也就是月抛型vps,到期不能续费,直接终止服务。此次又推出为期6个月的月抛VPS,可选圣何塞和水牛城机房,适合短期有需求的用户,有兴趣的可以关注一下。VirMach是一家创办于2014年的美国商家,支持支付宝、PayPal等方式,是一家主营廉价便宜VPS服务器的品牌,隶属于Virtual Machine Solutions LLC旗下!在廉价便宜美国...

Megalayer(159元 )年付CN2优化带宽VPS

Megalayer 商家我们还算是比较熟悉的,商家主要业务方向是CN2优化带宽、国际BGP和全向带宽的独立服务器和站群服务器,且后来也有增加云服务器(VPS主机)业务。这次中秋节促销活动期间,有发布促销活动,这次活动力度认为还是比较大的,有提供香港、美国、菲律宾的年付VPS主机,CN2优化方案线路的低至年付159元。这次活动截止到10月30日,如果我们有需要的话可以选择。第一、特价限量年付VPS主...

在线考试系统开源源码为你推荐
订房系统求酒店开房系统旺旺群发软件旺旺群发软件哪个比较好最好的翻译网站求最好的翻译网站和软件sms是什么短信确认码是什么全局钩子delphi 键盘全局钩子云办公平台Gleasy云办公平台解决了哪些问题?空间导航怎么把空间的导航变成只有留言板跟相册acceptchangesaltium designer 6.0如何给元件重新编号btest请教SpringSide到底是做什么用的driversbackup电脑里有个“Backup”文件夹是干什么的
花生壳免费域名 hostmaster 新加坡服务器 12306抢票攻略 北京主机 169邮箱 美国在线代理服务器 新世界服务器 smtp服务器地址 成都主机托管 winds 最新优惠 防盗链 gotoassist cloudflare pptpvpn 德国代理 shuangshiyi 火山互联 挂马检测工具 更多