网络编程实践(Java)_英语标准化考试系统介绍_第1页
网络编程实践(Java)_英语标准化考试系统介绍_第2页
网络编程实践(Java)_英语标准化考试系统介绍_第3页
网络编程实践(Java)_英语标准化考试系统介绍_第4页
网络编程实践(Java)_英语标准化考试系统介绍_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、英语标准化考试系统介绍一、导读(一) 程序功能介绍1. 客户端1) 与服务端连接2) 选择试题3) 计时考试4) 读取试题内容(新增内容)5) 选择题6) 填空题(新增内容)7) 听力题(新增内容)2. 服务端1) 查看考生ip地址2) 监听考生的考试状态(二) 正文:1. 设计分析1) 新增功能的需求分析2) 新增功能的设计2. 程序结构3. 程序细节分析4. 新增功能的源程序分析5. 系统操作方法6. 调试结果(三) 难点重点总结(四) 结束语二、正文1. 设计分析随着经济和科技的发展,英语四六级考试走向数字化是一个必然趋势。而网络的发展也为英语四六级考试面向大众化提供一种可能。因此,设计

2、一个可以供英语四六级在线考试的系统,具有一定的实践意义。1) 新增功能的需求分析以及设计分析A. 读取试题内容。本系统在未修改之前,题目和选项是同时读取的,这样的做法,无法适应像英语四级考试这一类型的带阅读题目的选择题,因此,修改过后的系统把阅读题的文章和选择题分开读取,当点击“下一题”时,需阅读的文章并不会随之消失,而题目会随之改变。B. 填空题一份正规的英语四六级考试卷子,除了有选择题以外,还包括填空题。而本系统在修改之前,仅仅提供了选择题的实现方法,并没有给出填空题的实现方法。因此,本系统修改后,新增了可供用户输入的文本框来记录填空题的答案。C. 听力题为了适应英语四六级的考试要求,本系

3、统新增了听力播放功能,并且可以根据用户的题号来选择播放的听力片段。2. 程序结构英语标准化考试系统工程一:CStestSystem客户端源程序工程二:CStestSystemServe服务端源程序Client.java主类Server.java主类ChoiceFile.java选择试题文件界面ClientTestArea.java客户端考试界面ReadTestquestion.java读取试题文件计算考试分数1) 客户端A. Client.java:该java文件生成的类负责创建本系统的客户端主窗口。该类含有main方法,程序从该类开始执行。主窗口首先显示服务器IP地址的界面,如果服务器连接成

4、功,就会在窗口中显示选择试题界面;如果连接失败,则不显示。B. ChoiceFile.java:该类创建的对象是Client窗口中的一个成员变量选择试题文件界面,负责获取服务器上试题文件的名字,并将名字添加到客户端界面的下拉式列表中。C. ClinetTestArea.java:该类负责客户端窗口中的考试界面,该界面可以读取服务器的试题、显示试题、向服务器提交答案、显示考试所剩时间等。新增的功能包括读取试题文本、填空题以及听力题的修改都在本java文件中。2) 服务端A. Server.java:负责监听客户的呼叫,为每个客户启动一个线程,在该线程中实现和客户的信息交流。B. ReadTest

5、question.java:该类负责读取试题文件和计算考试分数。新增功能的服务器端响应时所做的修改都在本java文件中。3. 程序细节分析1) Client.javaA. 变量说明:变量名称变量类型描述tfaddressTextFieldIP地址输入框btncallButton呼叫按钮btnstarttestButton开始考试按钮lb1,lb2,lb3Label提示文本socketSocket客户端套接字对象TestChoiceAreaChoiceFile选择试题文件页面TestAreaClientTestArea客户考试界面B. 方法说明:方法名称功能Client()创建客户端窗口,把各个

6、空间布局到界面中actionPerformed(ActionEvent e)处理按钮点击触发事件main(String args)程序入口4. 新增功能的源程序分析1) ClientTestArea.javaA. 新增变量变量名称变量类型描述questionshowTestArea显示题目说明btnmediaButton播放听力的按钮ppublic static int记录当前题目序号mpublic static int记录当播放听力片段的序号TextFieldanswerenter记录用户输入的填空题答案B. 修改思路通过一个全局变量p来记录当前用户点击“下一题”按钮的次数,结合if语句来判

7、断该向服务器发出哪种请求指令。例如:点击第一次时,向服务器发送读取文本请求,从服务器端获取文本输出到questionshow里面,并同时发出读取下一题请求,从服务端获得第一道题目输出到testshow里面。当点击“提交答案”的按钮时,p增大1,再次点击“下一题”按钮时,表示读取第二题的题目,向服务器发出读取下一题请求,则题目选择区的题目会更改为第二题。以此类推,直到p=7时,选择题已经完全读取完毕,那么ABCD四个选项将不能再被点击,再次点击“下一题”时,answerenter会被激活,用户可以输入填空题答案。直到p=10时,第一大题结束,再次点击“下一题”时,又会想服务端发出读取文本请求,从

8、服务器端获取第二大题文本输出到questionshow里面,并同时发出读取下一题请求,从服务端获得第二大题的第一个选择题输出到testshow里面。这时,btnmedia也会被唤醒,用户可以单击“播放第1段听力”收听录音,继续做题。而全局变量m的功能与p类似,都是用来识别用户做题进度的标识。变量m的作用是通过记录btnmedia按钮被点击的次数,来向服务端发出不同的请求,m=1时,发出播放听力1的请求,以此类推。C. 具体代码2) Server.javaA. 新增变量变量名称变量类型描述playerJavaSoundAudioClip播放音频文件B. 修改思路通过修改代码中的if语句的判断标准

9、来响应从服务端中接收的请求。播放听力的实现花了比较多时间,起初,我所知道的能够播放音频文件的方法是基于Applet包的,但是本系统并不是Applet的程序,因此无法调用Applet包里的newAudioClip()方法来实现。因此,查了一些java的书和实例,最后发现了com.sun.media.sound这一个包里面的方法可以实现播放音频文件和对音频文件进行控制。还有其他的方法,但是都没有这个方法的代码简洁,所以本系统中我就采用了这一方法。实现了播放听力之后又出现一个新的问题就是,当我再次点击播放听力的按钮时,若前一段听力还没有结束播放,就会导致两段听力重叠播放。而服务器端在接收客户端发来的

10、请求时才会新建一个player来播放听力,因此无法在player还没有实例化的情况下对player进行stop()操作。为了解决这个问题,我只好重新写了一个if判断语句,专门实例化一个声音文件,并在实例化结束后马上停止它的播放来解决这一个问题。C. 具体代码3) ReadTestquestion.javaA. 新增变量变量名称变量类型描述selectionsString数组记录用户输入的答案correctAnswersString数组正确答案B. 修改思路把字符串用split()方法截取成字符串数组的一个个元素,通过equals()方法来进行字符串数组元素值的比较,来实现用户答案与标准答案的对

11、照,计算得分。输出答案的时候也是同上述的方法,C. 具体代码5. 系统操作方法1) 放开两个工程分别运行Client.java文件与Server.java文件。2) 在客户端输入IP地址,例如:127.0.0.1,点击“呼叫”按钮与服务器端连接。3) 成功连接后出现“选择试题文件界面”。4) 选择试题文件“A”,点击“开始考试”。5) 点击“读取题目”l 考试计时开始。l “读取题目”按钮文本变成“读取下一题”,并且不可点击。l ABCD选项可选。6) 选择一个答案,点击“提交答案”按钮。l “读取下一题”按钮可点击l ABCD按钮清空l “提交答案”按钮不可点击7) 再次点击“读取下一题”按

12、钮l 试题内容变成由第一题变为第二题,阅读文本不变。8) 交替点击“读取下一题”、选择选项、“提交答案”,直到第八题时。l 系统进入填空题答题区l ABCD选项不可选l 文本输入框可输入文本9) 交替点击“读取下一题”、输入答案、“提交答案”,直到第十一题时。l 系统进入第二大题听力题l ABCD选项可选l 输入文本框不可输入文本l “播放听力”按钮可点击10) 点击“播放第1段听力”l 播放听力按钮不可再次点击,一段听力只能播放一次11) 再次点击“读取下一题”l 未播完的听力停止播放l 播放听力按钮的提示变成“播放第2段听力”12) 交替点击“读取下一题”、播放听力、选择选项、“提交答案”

13、,直到第十五题时。l 试题A的全部试题读完,读取下一题按钮不可点击l 播放听力按钮也不可点击13) 点击“查看得分”按钮14) 当考试时间计时结束时,“提交答案”按钮不可点击,考试结束。(五) 难点重点总结1. 使用com.sun.media.sound这一个包里面的方法来实例化一个播放音频文件的player会占用系统很多资源,而且每一次要控制前一段听力的停止都会新建一个player,又浪费了很多系统资源,导致电脑变得很慢。2. 由于程序设计的局限性,这个系统只能播放一套四级题目的听力,换成试题B时,系统还是播放试题A的听力。3. 系统没有实现数据库的连接,无法核对和显示考生信息。4. 缺少登录功能。(六) 结束语经过一个学期的学习,本系统是我第一次修改的比较大型的一个连网java程序,所以,尽管基本功能已经实现,但是局限性很多,并不能很好地体

温馨提示

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

最新文档

评论

0/150

提交评论