JAVA网络测试系统 课程设计.docx

上传人:b****5 文档编号:11854356 上传时间:2023-04-06 格式:DOCX 页数:25 大小:390.89KB
下载 相关 举报
JAVA网络测试系统 课程设计.docx_第1页
第1页 / 共25页
JAVA网络测试系统 课程设计.docx_第2页
第2页 / 共25页
JAVA网络测试系统 课程设计.docx_第3页
第3页 / 共25页
JAVA网络测试系统 课程设计.docx_第4页
第4页 / 共25页
JAVA网络测试系统 课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

JAVA网络测试系统 课程设计.docx

《JAVA网络测试系统 课程设计.docx》由会员分享,可在线阅读,更多相关《JAVA网络测试系统 课程设计.docx(25页珍藏版)》请在冰豆网上搜索。

JAVA网络测试系统 课程设计.docx

JAVA网络测试系统课程设计

网络测试系统

1.需求分析

现在,网络早已是人们日常生活不可或缺的一部分,网络性能的好坏,各个路由节点之间连接是否畅通也是人们所需解决的最基本问题,由此,一个网络测试系统的需求也就产生了。

 

2.题目要求

使用图形用户界面;客户端登录,获取服务器试卷文件列表,选取显示试卷,提交答案,查询分数。

 

3.设计思想

代码分两个部分,一个客户端,一个服务器。

客户端部分,负责图形用户界面,客户端登录,连接服务器,获取试卷,答题,显示分数;服务器部分,负责和客户端连接,向客户端传试卷,给予分数,其中试卷是通过sqlserver数据库给出的。

4.系统流程

 

5.流程截图及说明

图表1启动服务器,控制台显示连接成功

图表2启动客户端

图表3输入服务器IP,点击登录按钮

图表4客户端登陆后,服务器显示客户端的信息

图表5单击登陆完毕,选择试卷按钮弹出试卷选择窗口

图表6有两种试卷可以选择

图表7选择试卷1,单击开始答题按钮弹出答题窗口

图表8输入答案,单击开始答题按钮,进入下一道题

图表9第二题

图表10第三题

图表11第四题

图表12第二,四题答对,第一,三题答错,最后显示如上结果

图表13重复上述步骤,选择试卷二答题

图表14第一题

图表15第二题

图表16第三题

图表17第四题

图表18第五题

图表19第一,三,五题答对,二,四题答错,最后显示如上结果

图表20数据库中的试卷类型,题目及答案信息

6.设计体会

通过此次课程设计,使我更加扎实的掌握了有关java编程方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践出真知,通过编程,使我们掌握的知识不再是纸上谈兵。

过而能改,善莫大焉。

在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。

最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。

这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上披荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!

课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。

同时,设计让我感触很深。

使我对抽象的理论有了具体的认识。

我认为,在这学期的课程设计中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在课程设计上,我们学会了很多学习的方法。

而这是日后最实用的,真的是受益匪浅。

要面对社会的挑战,只有不断的学习、实践,再学习、再实践。

这对于我们的将来也有很大的帮助。

以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。

就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。

回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。

7.参考文献

(1)java语言程序设计

(2)java编程思想

 

 

8.源代码

client.java:

packageclient;

import.*;

importjava.io.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.awt.*;

publicclassclientextendsJFrame

{

privateJTextFieldt1;

privateJButtonbutton1;

privateJButtonbutton2;

privateJLabellabel1;

privateJLabellabel2;

staticSocketserver=null;

staticInputStreaminputdata=null;

staticOutputStreamoutputdata=null;

staticBufferedReaderin=null;

staticPrintStreamout=null;

staticStringsentence=null;

publicclient(JFramef)

{

f.setVisible(true);

f.setBounds(200,200,500,400);

Containerc=getContentPane();

c.setBackground(Color.WHITE);

f.add(c);

t1=newJTextField("请输入服务器IP",20);

t1.setFont(newFont("Serif",Font.PLAIN,12));

button1=newJButton("登陆");

button1.setFont(newFont("Serif",Font.PLAIN,14));

button2=newJButton("登陆完毕,选择试卷");

button2.setFont(newFont("Serif",Font.PLAIN,16));

BHandlerh=newBHandler();

button1.addActionListener(h);

BHandler2h2=newBHandler2();

button2.addActionListener(h2);

label1=newJLabel("你还未选择服务器");

label1.setFont(newFont("Serif",Font.PLAIN,14));

label2=newJLabel("服务器还没有试卷给你");

label2.setFont(newFont("Serif",Font.PLAIN,14));

c.add(button1,BorderLayout.WEST);

c.add(button2,BorderLayout.SOUTH);

c.add(t1,BorderLayout.CENTER);

c.add(label1,BorderLayout.EAST);

c.add(label2,BorderLayout.NORTH);

}

publicclassBHandlerimplementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

label1.setText("你选择了服务器IP地址为"+t1.getText());

try

{

server=newSocket("localhost",7000);//构造Socket实例,连接本地服务器,端口号为7000

inputdata=server.getInputStream();//实例化对象返回服务器套接字的输入流

outputdata=server.getOutputStream();//实例化对象返回服务器套接字的输出流

in=newBufferedReader(newInputStreamReader(inputdata));//实例化对象读取数据输入流

out=newPrintStream(outputdata);//实例化对象读取数据输出流

sentence=in.readLine();//得到读取的一个文本行

label2.setText(sentence);

}

catch(Exceptione){}

}

}

publicclassBHandler2implementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

Jlbd=newJlb(newJF0("选择试卷窗口"));

}

}

classJF0extendsJFrame

{

publicJF0(Strings)

{

super(s);

setBounds(200,200,500,400);

setVisible(true);

try

{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}catch(Exceptione){}

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

classJlbextendsJFrame

{

privateJComboBoxlbk;

privateJLabellabel;

privateJButtonbutton3;

privateStringshijuan[]={"1","2"};

publicJlb(JFramef)

{

Containerc=getContentPane();

c.setBackground(Color.WHITE);

f.add(c);

lbk=newJComboBox(shijuan);//创建下拉列表对象

lbk.setMaximumRowCount

(2);//设置下拉列表所能显示列表项的最大数目

lbk.setSelectedIndex(0);//设置默认的选择项

lbk.setFont(newFont("Serif",Font.PLAIN,14));

lbk.addItemListener(newlbHandler());//注册Label监听器

label=newJLabel("你选择了:

试卷1");

label.setFont(newFont("Serif",Font.PLAIN,14));

button3=newJButton("开始答题");

button3.setFont(newFont("Serif",Font.PLAIN,14));

lbHandler2h2=newlbHandler2();

button3.addActionListener(h2);//注册Button监听器

c.add(lbk,BorderLayout.NORTH);

c.add(label,BorderLayout.CENTER);

c.add(button3,BorderLayout.SOUTH);

}

publicclasslbHandlerimplementsItemListener

{

publicvoiditemStateChanged(ItemEvente)

{

if(e.getStateChange()==e.SELECTED)

{

label.setText("你选择了:

试卷"+shijuan[lbk.getSelectedIndex()]);

}

}

}

publicclasslbHandler2implementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

out.println(shijuan[lbk.getSelectedIndex()]);

Jlb2m=newJlb2(newJF0("答题窗口"));

}

}

}

classJlb2extendsJFrame

{

privateJLabellabe2;

privateJTextFieldt2;

privateJButtonbutton3;

publicJlb2(JFramef)

{

Containerc=getContentPane();

c.setBackground(Color.WHITE);

f.add(c);

labe2=newJLabel("题目是:

");

labe2.setFont(newFont("Serif",Font.PLAIN,14));

t2=newJTextField("此处填写答案",20);

t2.setFont(newFont("Serif",Font.PLAIN,12));

button3=newJButton("开始答题");

lbHandler3h3=newlbHandler3();

button3.addActionListener(h3);

c.add(labe2,BorderLayout.NORTH);

c.add(t2,BorderLayout.CENTER);

c.add(button3,BorderLayout.SOUTH);

try

{

sentence=in.readLine();

labe2.setText(sentence);

}catch(Exceptione){}

}

publicclasslbHandler3implementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

try

{

Stringbmsg=newString();

bmsg=t2.getText();

if(!

bmsg.equals("quit"))

{

out.println(bmsg);

sentence=in.readLine();

labe2.setText(sentence);

}

}catch(Exceptione){}

}

}

}

publicstaticvoidmain(Stringargs[])

{

clientd=newclient(newJFrame("登陆"));

}

}

service.java:

packageservice;

importjava.io.*;

import.*;

importjava.util.*;

importjava.sql.*;

publicclassservice

{

staticpublicvoidmain(Stringargs[])throwsIOException

{

Connectionconn=null;

Statementstmt=null;

ResultSetrs=null;

StringdriverName="sun.jdbc.odbc.JdbcOdbcDriver";//加载JDBC驱动

StringdbURL="jdbc:

odbc:

dnt31";//连接服务器和数据库

StringuserName="sa";//默认用户名

StringuserPwd="199618";//安装sqlserver2008时的密码

try

{

Class.forName(driverName);//声明使用的驱动程序

conn=DriverManager.getConnection(dbURL,userName,userPwd);//创建连接数据库对象

System.out.println("ConnectionSuccessful!

");

}

catch(Exceptione)

{

System.err.println("OpenConn:

"+e.getMessage());

}

ServerSocketsvrsoc=null;

Socketclient=null;

InputStreaminputdata=null;

OutputStreamoutputdata=null;

BufferedReaderin=null;

PrintStreamout=null;

try

{

svrsoc=newServerSocket(7000);

client=svrsoc.accept();

inputdata=client.getInputStream();//实例化对象返回客户端套接字的输入流

in=newBufferedReader(newInputStreamReader(inputdata));//实例化对象读取数据输入流

outputdata=client.getOutputStream();//实例化对象返回客户端套接字的输出流

out=newPrintStream(outputdata);//实例化对象读取数据输出流

InetAddressclientIP=client.getInetAddress();//得到客户端IP

System.out.println("Client'sIPaddress:

"+clientIP);//显示客户端IP

intport;

port=client.getPort();//得到客户端端口号

System.out.println("Client'sport:

"+port);//显示客户端端口号

out.println("Welcome!

...输入你想要的文件名1或2...输入quit退出");

Stringstr=in.readLine();//得到读取的一个文本行

System.out.println(str);

while(!

str.equals("quit"))

{

System.out.println("Clientsaid:

"+str);//得到读取的一个文本行

if(str.equals("1"))

{

stmt=(Statement)conn.createStatement();//创建操作SQL语句的对象

Stringsql1="select*fromdnt31.dbo.javawherename='1'";

rs=stmt.executeQuery(sql1);

intn=0;

while(rs.next())

{

out.println("问题"+rs.getString("problem"));

str=in.readLine();

System.out.println(str);

if(str.equals(rs.getString("answer")))

n++;

}

out.println("你答对题数是:

"+n);

rs.close();

stmt.close();

conn.close();

}

if(str.equals("2"))

{

stmt=(Statement)conn.createStatement();//创建操作SQL语句的对象

Stringsql2="select*fromdnt31.dbo.javawherename='2'";

rs=stmt.executeQuery(sql2);

intn=0;

while(rs.next())

{

out.println("问题"+rs.getString("problem"));

str=in.readLine();

if(str.equals(rs.getString("answer")))

n++;

}

out.println("你答对题数是:

"+n);

rs.close();

stmt.close();

conn.close();

}

str="quit";

}

System.out.println("Clientwanttoleave.");

}

catch(Exceptione)

{

System.out.println("Error:

"+e);

}

finally

{

inputdata.close();

outputdata.close();

client.close();

System.exit(0);

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1