Java程序设计案例教程模块.ppt_第1页
Java程序设计案例教程模块.ppt_第2页
Java程序设计案例教程模块.ppt_第3页
Java程序设计案例教程模块.ppt_第4页
Java程序设计案例教程模块.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,模块九单机版考试系统的整合与测试,目标该考试系统对各专业课程的问卷进行整理入库,以便在需要的时候能够及时、方便、快速的对学生进行各级测试,从而使考试过程趋于简单化,减少教师在这方面的工作负担。,学习本模块涉及哪些重要内容?,本模块导读本模块是单机版考试系统的整合。主要介绍的是学生单机考试程序的设计过程,提供了试题选取,查看分数,计时器,试题显示读取试题,计算分数等功能。该考试系统对各专业课程的问卷进行整理入库,以便在需要的时候能够及时、方便、快速的对学生进行各级测试,从而使考试过程趋于简单化,减少教师在这方面的工作负担。在以往的教学中,教师通过考试来检验学生的学习成果,而这就需要教师进行大量的工作,编写试题,排版,印刷,还要对学生的考卷进行解析,不仅耗费了大量的时间也花费了大量的精力。这种繁重的工作严重的影响了教师的工作效率,这些都成为教学现代化发展的严重阻碍。在此情况下,急需一个应用计算机来进行标准化考试的系统来实现教务工作的自动化或半自动化管理。,学习本模块涉及哪些重要内容?,本模块要点单机版考试系统的设计单机版考试系统的开发单机版考试系统的发布单机版考试系统的测试,任务一单机版考试系统的设计,子任务1设计内容本系统适用各级院校的考试项目,其主要功能分为:身份验证可以检测用户的身份。试题选择在此可以对考试题进行选择,找到你所要的试题类型。查分系统用于教师或学生对所答题进行核对。计时系统对考试的时间进行规定,可以根据所需来自己制定试题显示对考生多进行的考试内容惊醒显示的区域。本系统适合各级院校的标准考试,可以有效的提高教师的工作效率。整个系统的开发过程严格遵循软件工程的要求,做到模块化设计。,任务一单机版考试系统的设计,子任务2设计要求根据本系统的需要本系统可以进行任何标准化考试,提供了试题选取,查看分数,计时器,试题显示读取试题,计算分数等功能。此考试系统,对各专业课程的问卷进行整理入库,以便在需要的时候能够及时、方便、快速的对学生进行各级测试,从而使考试过程趋于简单化,减少教师在这方面的工作负担。用户可以选择一套标准化考试试题每套试题的考试用时由试题文件或试题数据库给出。开始读取试题后,计时器开始计划时,用户提交答案后,可以读取下一道题目。一个提示栏显示所剩余的考试时间,当规定时间用尽后,用户将不能再读取任何题目。,任务一单机版考试系统的设计,子任务2总体设计试题文件文件内容必须遵守如下的书写规范:试题文件的第一行是全部试题的答案,答案之间不可以有空格。第二行是试题文件的考试用时,如0:36:45第道题目之间用“*”开头的字符串分割。最后一行是endend试题文件信息表设置需如下字段:TXTID试题文件编号,文本类型。TXT试题文件名字,文本类型。TIME试题文件考试用时,数字类型。,任务二单机版考试系统的开发,子任务1身份验证Login类成员变量成员变量的定义见表9-1。,表9-1主要成员变量,任务二单机版考试系统的开发,子任务1身份验证Login类成员方法成员方法的定义见表9-2。,表9-2主要成员方法,任务二单机版考试系统的开发,子任务1身份验证Login类部分代码段trystmt=con.createStatement();ps=con.prepareStatement(selectPWDfromLoginRecordwhereID=?);ps.setString(1,ID);rs=ps.executeQuery();if(rs.next()if(rs.getString(PWD).equals(PWD)newJavaTest();System.out.println(OK);,任务二单机版考试系统的开发,子任务1身份验证Login类elseJOptionPane.showMessageDialog(null,你输入的密码错误!,登录失败,JOptionPane.ERROR_MESSAGE);elseJOptionPane.showMessageDialog(null,你输入的用户名错误!,登录失败,JOptionPane.ERROR_MESSAGE);catch(finalSQLExceptione)System.err.println(SQLException:+e.getMessage();finallyif(stmt!=null)try,任务二单机版考试系统的开发,子任务1身份验证Login类stmt.close();catch(finalSQLExceptione)if(con!=null)trycon.close();catch(finalSQLExceptione),任务二单机版考试系统的开发,子任务2考试系统JavaTest类成员变量成员变量的定义见表9-3。,表9-3主要成员变量,任务二单机版考试系统的开发,子任务2考试系统JavaTest类成员方法成员方法的定义见表9-4。,表9-4主要成员方法,任务二单机版考试系统的开发,子任务2考试系统JavaTest类部分代码importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassJavaTestextendsJFrameimplementsActionListenerTestAreatestPanel=null;Containercon=null;privateJMenuFile=newJMenu(文件);privateJMenuEdit=newJMenu(编辑);privateJMenuHelp=newJMenu(帮助);,任务二单机版考试系统的开发,子任务2考试系统JavaTest类部分代码JMenuItemOpen=newJMenuItem(打开);JMenuItemExit=newJMenuItem(退出);publicJavaTest()super(标准化模拟考试);testPanel=newTestArea();con=getContentPane();con.add(testPanel,BorderLayout.CENTER);addWindowListener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(0);,任务二单机版考试系统的开发,子任务2考试系统JavaTest类部分代码setVisible(true);setBounds(60,40,660,460);con.validate();validate();/添加菜单栏JMenuBarJMB=newJMenuBar();File.add(Open);File.add(Exit);JMB.add(File);JMB.add(Edit);,任务二单机版考试系统的开发,子任务2考试系统JavaTest类部分代码JMB.add(Help);setJMenuBar(JMB);Open.addActionListener(this);Exit.addActionListener(this);/添加结束,任务二单机版考试系统的开发,子任务3考试区域TestArea类成员变量,任务二单机版考试系统的开发,子任务3考试区域TestArea类成员方法成员方法的定义见表9-6。,表9-6主要成员方法,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码publicTestArea()list=newChoice();Stringcurrentdir=System.getProperty(user.dir);System.out.println(currentdir);Filedir=newFile(currentdir);FileNamefileTxt=newFileName(txt);StringfileName=dir.list(fileTxt);for(inti=0;ifileName.length;i+)list.add(fileNamei);,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码testplay=newJTextArea(15,12);testplay.setLineWrap(true);testplay.setWrapStyleWord(true);testplay.setFont(newFont(TimesRoman,Font.PLAIN,14);testplay.setForeground(Color.blue);messagearea=newJTextArea(8,8);messagearea.setForeground(Color.blue);messagearea.setLineWrap(true);messagearea.setWrapStyleWord(true);countTime=newThread(this);Strings=A,B,C,D;,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码box=newJCheckBox4;for(inti=0;i4;i+)boxi=newJCheckBox(si);pauseorcontinuetime=newJButton(暂停计时);pauseorcontinuetime.addActionListener(this);commitresult=newJButton(提交该题答案);readnext=newJButton(读取第一题);readnext.setForeground(Color.blue);commitresult.setForeground(Color.blue);,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码viewscore=newJButton(查看分数);viewscore.setForeground(Color.blue);commitresult.setEnabled(false);commitresult.addActionListener(this);readnext.addActionListener(this);viewscore.addActionListener(this);list.addItemListener(this);readtests=newReadTestquestion();JPanelpAddbox=newJPanel();for(inti=0;i4;i+)pAddbox.add(boxi);,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码BoxboxH1=Box.createVerticalBox(),boxH2=Box.createVerticalBox(),baseBox=Box.createHorizontalBox();boxH1.add(newJLabel(选择试题文件);boxH1.add(list);boxH1.add(newJScrollPane(messagearea);boxH1.add(viewscore);timeShow=newJTextField(20);timeShow.setHorizontalAlignment(SwingConstants.RIGHT);timeShow.setEditable(false);JPanelp1=newJPanel();,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码p1.add(newJLabel(剩余时间:);p1.add(timeShow);p1.add(pauseorcontinuetime);boxH1.add(p1);boxH2.add(newJLabel(试题内容:);boxH2.add(newJScrollPane(testplay);JPanelp2=newJPanel();p2.add(pAddbox);p2.add(commitresult);p2.add(readnext);boxH2.add(p2);baseBox.add(boxH1);,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码baseBox.add(boxH2);setLayout(newBorderLayout();add(baseBox,BorderLayout.CENTER);welcomeLabel=newJLabel(欢迎考试,提高英语水平,JLabel.CENTER);welcomeLabel.setFont(newFont(隶书,Font.PLAIN,24);welcomeLabel.setForeground(Color.blue);add(welcomeLabel,BorderLayout.NORTH);publicvoiditemStateChanged(ItemEvente),任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码timeShow.setText(null);iclosetime=false;ipausetime=false;pauseorcontinuetime.setText(暂停计时);Stringname=(String)list.getSelectedItem();readtests.setFilename(name);readtests.settestover(false);time=readtests.getTime();if(countTime.isAlive()iclosetime=true;countTerrupt();,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码countTime=newThread(this);messagearea.setText(null);testplay.setText(null);readnext.setText(读取第一题);commitresult.setEnabled(false);readnext.setEnabled(true);welcomeLabel.setText(欢迎考试,你选择的试题:+readtests.getFilename();publicvoidactionPerformed(ActionEvente)if(e.getSource()=readnext),任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码readnext.setText(读取下一题);commitresult.setEnabled(true);StringcontentTest=readtests.getTestContent();testplay.setText(contentTest);messagearea.setText(null);readnext.setEnabled(false);trycountTime.start();catch(Exceptionevent),任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码if(e.getSource()=commitresult)readnext.setEnabled(true);commitresult.setEnabled(false);Stringanswer=?;for(inti=0;i4;i+)if(boxi.isSelected()answer=boxi.getText();boxi.setSelected(false);break;,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码readtests.setSelection(answer);if(e.getSource()=viewscore)intscore=readtests.getScore();Stringmessages=readtests.getMessages();messagearea.setText(分数:+score+n+messages);if(e.getSource()=pauseorcontinuetime)if(ipausetime=false)pauseorcontinuetime.setText(继续计时);ipausetime=true;elseif(ipausetime=true),任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码pauseorcontinuetime.setText(暂停计时);ipausetime=false;countTerrupt();publicsynchronizedvoidrun()while(true)if(time=1)time=time-1000;longleftTime=time/1000;longleftHour=leftTime/3600;longleftMinute=(leftTime-leftHour*3600)/60;longleftSecond=leftTime%60;timeShow.setText(+leftHour+小时+leftMinute+分+leftSecond+秒);,任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码tryThread.sleep(1000);catch(InterruptedExceptionee)if(iclosetime=true)return;while(ipausetime=true)trywait();catch(InterruptedExceptionee)if(ipausetime=false),任务二单机版考试系统的开发,子任务3考试区域TestArea类文本文件方式部分代码notifyAll();,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.io.*;importjava.sql.*;publicclassTestAreaextendsJPanelimplementsActionListener,ItemListener,RunnableChoicelist=null;JTextAreatestplay=null,messagearea=null;JCheckBoxbox;,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码JButtoncommitresult,readnext,viewscore;ReadTestquestionreadtests=null;JLabelwelcomeLabel=null;ThreadcountTime=null;longtime=0;JTextFieldtimeShow=null;booleaniclosetime=false,ipausetime=false;JButtonpauseorcontinuetime=null;,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码privatestaticfinalStringDBDRIVER=sun.jdbc.odbc.JdbcOdbcDriver;privatestaticfinalStringDBURL=jdbc:odbc:DBQTEST;publicTestArea()list=newChoice();Connectioncon=null;Statementstmt=null;ResultSetrs=null;tryClass.forName(DBDRIVER);con=DriverManager.getConnection(DBURL);,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码System.out.println(与数据库建立连接成功!sas);catch(finalClassNotFoundExceptione)System.err.println(ClassNotFoundException:+e.getMessage();System.exit(1);catch(finalSQLExceptione)System.err.println(SQLException:+e.getMessage();System.exit(1);try,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(select*fromTXT);rs.last();intn=rs.getRow();Stringtxtname=newStringn;intj=0;rs.beforeFirst();while(rs.next()txtnamej=rs.getString(3);,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码j+;for(inti=0;itxtname.length;i+)System.out.println(txtnamei);list.add(txtnamei);catch(finalSQLExceptione1)System.err.println(SQLException:+e1.getMessage();finallyif(stmt!=null)try,任务二单机版考试系统的开发,子任务3考试区域TestArea类数据库方式部分代码stmt.close();catch(finalSQLExceptione)if(con!=null)trycon.close();catch(finalSQLExceptione),任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类成员变量成员变量的定义见表9-7。,表9-7主要成员变量,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类成员方法,表9-8主要成员方法,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码importjava.io.*;importjava.util.*;publicclassReadTestquestionStringfilename=,correctAnswer=,testContent=,selection=;intscore=0;longtime=0;booleantestover=false;Filef=null;FileReaderin=null;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码BufferedReaderread=null;publicvoidsetFilename(Stringname)filename=name;score=0;selection=;tryif(in!=null,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码read=newBufferedReader(in);correctAnswer=(read.readLine().trim();Stringtemp=(read.readLine().trim();StringTokenizertoken=newStringTokenizer(temp,:);inthour=Integer.parseInt(token.nextToken();intminute=Integer.parseInt(token.nextToken();intsecond=Integer.parseInt(token.nextToken();time=1000*(second+minute*60+hour*60*60);catch(Exceptione)testContent=没有选择试题;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码publicStringgetFilename()returnfilename;publiclonggetTime()returntime;publicvoidsettestover(booleanb)testover=b;publicbooleangettestover()returntestover;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码publicStringgetTestContent()tryStrings=null;StringBuffertemp=newStringBuffer();if(read!=null)while(s=read.readLine()!=null)if(s.startsWith(*)break;temp.append(n+s);,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码if(s.startsWith(endend)in.close();read.close();testover=true;testContent=newString(temp);elsetestContent=newString(没有选择试题);catch(Exceptione)testContent=试题内容为空,考试结束!;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码returntestContent;publicvoidsetSelection(Strings)selection=selection+s;publicintgetScore()score=0;intlength1=selection.length();intlength2=correctAnswer.length();intmin=Math.min(length1,length2);for(inti=0;imin;i+)try,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码if(selection.charAt(i)=correctAnswer.charAt(i)score+;catch(StringIndexOutOfBoundsExceptione)i=0;returnscore;publicStringgetMessages()intlength1=selection.length();intlength2=correctAnswer.length();intlength=Math.min(length1,length2);,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类文本文件方式部分代码Stringmessage=正确答案:+correctAnswer.substring(0,length)+n+你的回答:+selection+n;returnmessage;数据库方式部分代码importjava.io.*;importjava.util.*;importjava.sql.*;publicclassReadTestquestion,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码Stringfilename=,correctAnswer=,testContent=,first=,second=,third=,fourth=,selection=;intscore=0;longtime=0;intrecord=0;booleantestover=false;privatestaticfinalStringDBDRIVER=sun.jdbc.odbc.JdbcOdbcDriver;privatestaticfinalStringDBURL=jdbc:odbc:DBQTEST;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码Connectioncon=null;ResultSetrs=null;publicvoidsetFilename(Stringname)filename=name;score=0;selection=;tryClass.forName(DBDRIVER);con=DriverManager.getConnection(DBURL);catch(finalClassNotFoundExceptione),任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码System.err.println(ClassNotFoundException:+e.getMessage();System.exit(1);catch(finalSQLExceptione)System.err.println(SQLException:+e.getMessage();System.exit(1);trystmt=con.prepareStatement(select*fromtxtwheretxt.TXT=?);stmt.setString(1,filename);rs=stmt.executeQuery();if(rs.next(),任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码time=1000*rs.getInt(TIME);catch(finalSQLExceptione1)System.err.println(SQLException:+e1.getMessage();catch(Exceptione)testContent=试题内容为空,考试结束!;trystmt=con.prepareStatement(select*fromtestsINNERJOINtxtontxt.TXTID=tests.TXTIDwheretxt.TXT=?);,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码stmt.setString(1,filename);rs=stmt.executeQuery();catch(finalSQLExceptione1)System.err.println(SQLException:+e1.getMessage();publicStringgetFilename()returnfilename;publiclonggetTime()returntime;publicvoidsettestover(booleanb),任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码testover=b;publicbooleangettestover()returntestover;publicStringgetTestContent()tryStrings=null;StringBuffertemp=newStringBuffer();if(rs.next()temp.append(rs.getRow()+.);s=rs.getString(title);,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码temp.append(s);s=rs.getString(first);temp.append(n+s);s=rs.getString(second);temp.append(n+s);s=rs.getString(third);temp.append(n+s);s=rs.getString(fourth);temp.append(n+s);testContent=newString(temp);,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码correctAnswer+=rs.getString(result);elsetestContent=newString(试题内容为空,考试结束!);catch(Exceptione)testContent=请选择试题文件!;return(testContent);publicvoidsetSelection(Strings)selection=selection+s;,任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码publicintgetScore()score=0;intlength1=selection.length();intlength2=correctAnswer.length();intmin=Math.min(length1,length2);for(inti=0;imin;i+)tryif(selection.charAt(i)=correctAnswer.charAt(i)score+;catch(StringIndexOutOfBoundsExceptione),任务二单机版考试系统的开发,子任务4读取试题ReadTestquestion类数据库方式部分代码i=0;returnscore;publicStringgetMessages()intlength1=selection.length();intlength2=correctAnswer.length();intlength=Math.min(length1,length2);Stringmessage=正确答案:+correctAnswer.substring(0,length)+n+你的回答:+selection+n;returnmessage;,任务三单机版考试系统的发布和布署,知识导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论