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

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

Advinservers:美国达拉斯便宜VPS/1核/4GB/80GB SSD/1Gbps不限流量/月付$2.5/美国10Gbps高防服务器/高达3.5TBDDos保护$149.99元/月

Advinservers,国外商家,公司位于新泽西州,似乎刚刚新成立不久,主要提供美国和欧洲地区VPS和独立服务器业务等。现在有几款产品优惠,高达7.5TB的存储VPS和高达3.5TBDDoS保护的美国纽约高防服务器,性价比非常不错,有兴趣的可以关注一下,并且支持Paypal付款。官方网站点击直达官方网站促销产品第一款VPS为预购,预计8月1日交付。CPU为英特尔至强 CPU(X 或 E5)。官方...

半月湾hmbcloud升级500Mbps带宽,原生VPS,$4.99/月

关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...

WebHorizon($10.56/年)256MB/5G SSD/200GB/日本VPS

WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...

在线考试系统开源源码为你推荐
国家法规数据库哪个常用的法律APP比较好用?5e5e5e计算器里5.55556e-5是什么意思averagesPoisson-Arrivals-See-Time-Averages是什么意思comexceptionapro exception是什么意思网络安全密钥一般路由器是网络安全密钥是多少selectintooracle有select into临时表的用法吗医院排队系统请问医院采血排队的设备系统是独立的吗?backupexec怎样在vmware vcenter上安装backup exec agent for windowsacceptchangesaltium designer 6.0如何给元件重新编号pass是什么锒行卡上的闪付pass是什么意思?
西安服务器租用 warez diahosting 国外服务器网站 新世界电讯 2017年黑色星期五 搜狗12306抢票助手 e蜗 tna官网 isp服务商 搜索引擎提交入口 服务器监测 常州联通宽带 安徽双线服务器 百度云加速 上海电信测速 免费的域名 广州虚拟主机 工信部icp备案查询 广东主机托管 更多