欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    JAVA课程设计报告(标准化考试系统).doc

    • 资源ID:854788       资源大小:377.11KB        全文页数:32页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JAVA课程设计报告(标准化考试系统).doc

    1、Java语言与面向对象技术课程设计目 录目 录21 概 述31.1 课程设计目的31.2 课程设计内容与要求32 系统需求分析42.1 系统目标42.2 主体功能42.3 开发环境43 系统总体设计43.1 系统的功能模块划分43.2 系统流程图54 系统详细设计64.1 客户端模块设计64.1.1 用户登录模块设计(ClientLogin类)64.1.2 选择试卷模块设计(GetTestFile类)114.1.3 回答试卷查询模块设计(ClientTestArea类)154.2 服务器端模块设计234.2.1 Server类234.2.2 ServerThread类254.2.3 ReadT

    2、estquestion类295 代码调试306 软件发布317 小结32参考文献33标准化考试系统1 概 述1.1 课程设计目的1、加深对Java语言与面向对象技术课程基础知识的理解,掌握Java语言面向对象程序设计的开发方法和步骤;2、进一步理解面向对象程序设计的思想和方法,利用Java语言进行程序设计的能力;3、课程设计将课本上的理论知识和实际应用相结合,锻炼学生发现问题、分析问题和解决问题的能力。加强学生研发、编写、调试程序的能力;4、培养学生在项目开发中团队合作精神、创新意识及能力;5、提高学生科技论文写作能力,规范完成课程设计报告。1.2 课程设计内容与要求设计C/S模式的标准化考试

    3、系统,即客户端和服务器端都是Java应用程序,具体要求如下:(1)用户单击选项卡中的“登录”将出现登录界面。用户在登录界面输入学号、姓名以及服务器的IP,并请求服务器建立套接字链接。用户登录的目的是为了将自己的基本信息存放到服务器上,以便服务器记录用户的考试成绩。因此,用户和服务器建立连接后,服务器将创建一个和用户相关的一个文件,该文件的名字由用户的学号、姓名以及用户所在客户端机器的IP所组成。(2)单击端选项卡中的“选择试卷”将出现选择试卷界面。如果用户成功登录,即和服务器建立连接并在服务器端创建了和其相关的文件,那么,用户再选择试卷界面可以将服务器上的试卷文件的名字存放到客户端界面中的下拉

    4、式列表中,然后再在下拉列表中选择一个试卷文件的名字提交给服务器。(3)单击端选项卡中的“答卷”将出现答卷界面。如果用户成功登录,并且用户通过“选择试卷”界面选择了一套试卷,那么用户在答卷界面可以从服务器读入所选试卷的内容,而且在“答卷”界面可以提交自己的答案给服务器、服务器将用户提交的答案存入用户登录时服务器所创建的和该用户相关的文件中。提交答案后,在“答卷”界面可以查询分数。2 系统需求分析2.1 系统目标通过本系统能够实现用户登录,选择试卷,完成试卷,查询分数等功能。2.2 主体功能A.C/S模式,即客户端与服务器端都是Java应用程序;B.输入服务器IP地址,连接服务器功能;C.登录验证

    5、功能;D.学生可以选择所要做的试题;E.开始考试;F.完成考试后,学生可以查看自己的分数、试题、正确答案、分值以及自己所选 择的答案;2.3 开发环境MyEclipse3 系统总体设计3.1 系统的功能模块划分本系统主要有以下几个功能模块:用户登录,选择试卷,完成试卷,查询分数等。标准化考试系统客户端窗口完成试卷用户登录选择试卷提交试卷查询分数退出系统3.2 系统流程图开始连接成功连接服务器输入信息显示登录成功NY选择试卷显示试卷回答试卷提交试卷查看分数退出4 系统详细设计4.1 客户端模块设计4.1.1 用户登录模块设计(ClientLogin类) 1、效果图 2、类的主要成员变量和方法1)

    6、成员变量a、verfyMess是String对象,该字符串的前缀为“学生”,后缀是用户输入学号、姓名以及客户端的IP。用户登录时需将verifyMess提交给服务器。b、inputNumber、inputName和inputServerIP是JtextField创建的文本框,用于用户输入学号、姓名和服务器的IP.。c、hintMess是JLabel创建的标签,用于显示某些提示信息。d、startCon是JButton创建的对象,该按钮将当前容器注册为自己的ActionEvent事件监视器。 2)方法a、ClientLogin()是构造方法,用来创建clientLogin类。b、actionPe

    7、rformed(ActionEvent)方法是ClientLogin类实现ActionListener接口中的方法。ClientLogin创建的容器startCon按钮的ActionEvent事件监视器,当用户单击该按钮时,容器将执行actionPerformed(ActionEvent)方法进行相应的操作。3、主要程序代码import java.awt.*;import java.awt.event.*;import java.io.*;import .*;import javax.swing.*;public class ClientLogin extends JPanel impleme

    8、nts ActionListener String verifyMess; JTextField inputNumber,inputName,inputServerIP; JLabel hintMess; JButton startCon; String number,name,IP; public ClientLogin() inputNumber=new JTextField(10); inputName =new JTextField(10); hintMess=new JLabel(请输入学号、姓名和服务器的IP,JLabel.CENTER); hintMess.setFont(new

    9、 Font(隶书,Font.BOLD,18); inputServerIP=new JTextField(10); startCon=new JButton(提交); startCon.addActionListener(this); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(输入学号:,JLabel.CENTER); box1.add(inputNumber); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(输入姓名:,JLabel.CENTER); box

    10、2.add(inputName); Box box3=Box.createHorizontalBox(); box3.add(new JLabel(输入IP:); box3.add(inputServerIP); Box box4=Box.createHorizontalBox(); box4.add(new JLabel(单击提交按钮,JLabel.CENTER); box4.add(startCon); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); boxH.add(box3); boxH.add(box

    11、4); JPanel pCenter=new JPanel(); pCenter.add(boxH); pCenter.setBackground(new Color(210,210,110); setLayout(new BorderLayout(); add(pCenter,BorderLayout.CENTER); JPanel pNorth=new JPanel(); pNorth.setBackground(Color.green); pNorth.add(hintMess); add(pNorth,BorderLayout.NORTH); public void actionPer

    12、formed(ActionEvent e) if(e.getSource()=startCon) number=inputNumber.getText().trim(); name=inputName.getText().trim(); if(number.length()0&name.length()0) IP=inputServerIP.getText().trim(); try LoginThread thread=new LoginThread(hintMess); if(!(thread.isAlive() thread=new LoginThread(hintMess); thre

    13、ad.makeConnection(number,name,IP); thread.start(); catch (Exception ee) hintMess.setText(无法连接+ee); else JOptionPane.showMessageDialog(this,必须输入学号和姓名,警告, JOptionPane.WARNING_MESSAGE); class LoginThread extends Thread Socket socket; InetSocketAddress socketAddress; DataInputStream in; DataOutputStream

    14、 out; JLabel hintMess; LoginThread(JLabel hint) hintMess=hint; public void makeConnection(String number,String name,String IP) throws IOException InetAddress address=InetAddress.getByName(IP); socketAddress=new InetSocketAddress(address,6666); socket=new Socket(); socket.connect(socketAddress); in=n

    15、ew DataInputStream(socket.getInputStream(); out=new DataOutputStream(socket.getOutputStream(); out.writeUTF(学生+number+name); public void run() String s=null; while(true) try s=in.readUTF(); if(s.startsWith(成功登录:) String verifyMess=s.substring(s.indexOf(:)+1); GetTestFile.setVerifyMess(verifyMess); C

    16、lientTestArea.setVerifyMess(verifyMess); GetTestFile.setSocketAddress(socketAddress); ClientTestArea.setSocketAddress(socketAddress); hintMess.setText(s); String tishi=成功登录,请单击左侧的选择试卷界面; JOptionPane.showMessageDialog(null,tishi,操作提示, JOptionPane.PLAIN_MESSAGE); if(socket.isClosed() return; if(s.star

    17、tsWith(已经成功登录了) hintMess.setText(s); String tishi=已经成功登录了,请单击左侧的选择试卷界面; JOptionPane.showMessageDialog(null,tishi,操作提示, JOptionPane.PLAIN_MESSAGE); if(socket.isClosed() return; catch (Exception ee) hintMess.setText(服务器暂时关闭了,稍后再请求连接); return; 4.1.2 选择试卷模块设计(GetTestFile类)1、效果图2、类的主要成员变量和方法 1)成员变量 a、hin

    18、tMess是JLabel创建的标签,用于显示某些提示信息。b、list是JComboBox创建的下拉列表,用于显示从服务器得到的试卷文件的名字。c、getTestFile和submit是JButton创建的对象,其上的名字分别为“列出试卷的名字”和“提交”,该两个按钮都将当前容器注册为自己的ActionEvent事件监视器。 2)方法a、GetTestFile()是构造方法,用来创建getTestFile类。b、actionPerformed(ActionEvent)方法是GetTestFile类实现ActionListener接口中的方法。GetTestFile创建的容器getTestFil

    19、e和submit按钮的ActionEvent事件监视器,当用户单击getTestFile和submit按钮按钮时,容器都将执行actionPerformed(ActionEvent)方法进行相应的操作。3、主要程序代码import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import .*;public class GetTestFile extends JPanel implements ActionListener,Runnable static String verifyMess;

    20、static InetSocketAddress socketAddress; String fileName; JLabel hintMess; JButton getTestFile,submit; JComboBox list; Socket socket; DataInputStream in; DataOutputStream out; Thread thread; int n=0; public GetTestFile() hintMess=new JLabel(单击列出试卷名字按纽从服务器得到试卷的名字); hintMess.setBackground(Color.green);

    21、 getTestFile=new JButton(列出试卷名字); getTestFile.setBackground(Color.green); submit=new JButton(提交); submit.setBackground(Color.orange); getTestFile.addActionListener(this); submit.addActionListener(this); list=new JComboBox(); Box box1=Box.createHorizontalBox(); box1.add(new JLabel(单击列出按纽:,JLabel.CENT

    22、ER); box1.add(getTestFile); Box box2=Box.createHorizontalBox(); box2.add(new JLabel(选择试卷:,JLabel.CENTER); box2.add(list); box2.add(submit); Box boxH=Box.createVerticalBox(); boxH.add(box1); boxH.add(box2); thread=new Thread(this); JPanel pCenter=new JPanel(); pCenter.add(boxH); setLayout(new BorderL

    23、ayout(); pCenter.setBackground(Color.pink); add(pCenter,BorderLayout.CENTER); JPanel pNorth=new JPanel(); pNorth.add(hintMess); add(pNorth,BorderLayout.NORTH); public static void setVerifyMess(String mess) verifyMess=mess; public static void setSocketAddress(InetSocketAddress address) socketAddress=

    24、address; public void actionPerformed(ActionEvent e) if(e.getSource()=getTestFile) list.removeAllItems(); try makeConnection(); /见后面的makeConnection()方法 out.writeUTF(列出文件:+verifyMess); if(!(thread.isAlive() thread=new Thread(this); thread.start(); catch(Exception ee) JOptionPane.showMessageDialog(this

    25、,请登录,操作提示, JOptionPane.PLAIN_MESSAGE); if(e.getSource()=submit) n=list.getItemCount(); if(n=1) fileName=(String)list.getSelectedItem(); File file=new File(fileName); ClientTestArea.setExaminationFile(file); String tishi=您已经选择了+fileName+试卷,请单击左侧的答卷界面; JOptionPane.showMessageDialog(this,tishi,操作提示, JO

    26、ptionPane.PLAIN_MESSAGE); private void makeConnection() throws IOException socket=new Socket(); socket.connect(socketAddress); in=new DataInputStream(socket.getInputStream(); out=new DataOutputStream(socket.getOutputStream(); public void run() String s=null; while(true) try s=in.readUTF(); if(s.star

    27、tsWith(列出文件:) String listItem=s.substring(s.indexOf(:)+1); list.addItem(listItem); if(s.startsWith(已经全部列出:) hintMess.setText(试卷名字已经全部列出,请在列表中选择试卷); hintMess.setBackground(Color.green); break; if(s.startsWith(请登录) JOptionPane.showMessageDialog(this,请登录,操作提示, JOptionPane.PLAIN_MESSAGE); break; catch (

    28、Exception ee) 4.1.3 回答试卷查询模块设计(ClientTestArea类) 1、效果图2、类的主要成员变量和方法1)成员变量a、hintMess是JLabel创建的标签,用于显示某些提示信息。b、examineArea是JPanel创建的容器,用于显示试题和答题卡。c、handAnswer,startTest和lookScore是JButton创建的对象,其上的名字分别为“提交答案”、“显示试卷” 和“查看分数”,这三个按钮都将当前容器注册为自己的ActionEvent事件监视器。2)方法a、ClientTestArea()是构造方法,用来创建clientTestArea类

    29、。b、actionPerformed(ActionEvent)方法是ClientTestArea类实现ActionListener接口中的方法。ClientTestArea创建的容器是handAnswer,startTest和lookScore按钮的ActionEvent事件监视器,当用户单击handAnswer,startTest和lookScore按钮时,容器都将执行actionPerformed(ActionEvent)方法进行相应的操作。3、主要程序代码 import java.awt.*; import javax.swing.*; import java.awt.event.*;

    30、import java.io.*; import .*; import java.util.*; public class ClientTestArea extends Panel implements ActionListener,Runnable static String verifyMess; static InetSocketAddress socketAddress; static File examinationFile; ArrayList choiceList; Socket socket; DataInputStream in; DataOutputStream out;

    31、Thread thread; static JPanel examineArea; JLabel hintMess; JButton handAnswer,startTest,lookScore; public ClientTestArea() thread=new Thread(this); choiceList=new ArrayList(); examineArea=new JPanel(); examineArea.setForeground(Color.blue); handAnswer=new JButton(提交答案); startTest=new JButton(显示试卷);

    32、lookScore=new JButton(查看分数); handAnswer.setEnabled(false); lookScore.setEnabled(false); hintMess=new JLabel(单击显示试卷按纽从服务器得到试卷); startTest.addActionListener(this); handAnswer.addActionListener(this); lookScore.addActionListener(this); setLayout(new BorderLayout(); JPanel pCenter=new JPanel(); pCenter.

    33、setBackground(Color.yellow); pCenter.setLayout(new BorderLayout(); pCenter.add(new JScrollPane(examineArea),BorderLayout.CENTER); add(pCenter,BorderLayout.CENTER); JPanel pSouth=new JPanel(); pSouth.setBackground(Color.blue); pSouth.add(handAnswer); pSouth.add(startTest); pSouth.add(lookScore); add(

    34、pSouth,BorderLayout.SOUTH); JPanel pNorth=new JPanel(); pNorth.setBackground(Color.green); pNorth.add(hintMess); add(pNorth,BorderLayout.NORTH); public static void setVerifyMess(String mess) verifyMess=mess; public static void setSocketAddress(InetSocketAddress address) socketAddress=address; public

    35、 static void setExaminationFile(File f) examinationFile=f; examineArea.removeAll(); public void actionPerformed(ActionEvent e) if(e.getSource()=startTest) choiceList.clear(); lookScore.setEnabled(false); try makeConnection(); examineArea.removeAll(); out.writeUTF(显示试卷:+verifyMess+#+examinationFile.g

    36、etName(); String m=读入的试题:+examinationFile+将刷新当前的试题,是否确认继续; int ok=JOptionPane.showConfirmDialog(this,m,确认对话框, JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) if(!(thread.isAlive() thread=new Thread(this); thread.start(); handAnswer.setEnabled(true); catch(Exception exp) JOptionPane.showMessageDialog(this,您未登录或选择试卷,操作提示, JOptionPane.PLAIN_MESSAGE); if(e.getSource()=handAnswer) String m=只有一次提交答案的机会!,一旦提交将无法继续答题,


    注意事项

    本文(JAVA课程设计报告(标准化考试系统).doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922