java網(wǎng)絡(luò)測(cè)試系統(tǒng)_課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  網(wǎng)絡(luò)測(cè)試系統(tǒng)</b></p><p><b>  需求分析</b></p><p>  現(xiàn)在,網(wǎng)絡(luò)早已是人們?nèi)粘I畈豢苫蛉钡囊徊糠?,網(wǎng)絡(luò)性能的好壞,各個(gè)路由節(jié)點(diǎn)之間連接是否暢通也是人們所需解決的最基本問(wèn)題,由此,一個(gè)網(wǎng)絡(luò)測(cè)試系統(tǒng)的需求也就產(chǎn)生了。</p><p><b>  題目要

2、求</b></p><p>  使用圖形用戶(hù)界面;客戶(hù)端登錄,獲取服務(wù)器試卷文件列表,選取顯示試卷,提交答案,查詢(xún)分?jǐn)?shù)。</p><p><b>  設(shè)計(jì)思想</b></p><p>  代碼分兩個(gè)部分,一個(gè)客戶(hù)端,一個(gè)服務(wù)器。客戶(hù)端部分,負(fù)責(zé)圖形用戶(hù)界面,客戶(hù)端登錄,連接服務(wù)器,獲取試卷,答題,顯示分?jǐn)?shù);服務(wù)器部分,負(fù)責(zé)和客戶(hù)端連

3、接,向客戶(hù)端傳試卷,給予分?jǐn)?shù),其中試卷是通過(guò)sqlserver數(shù)據(jù)庫(kù)給出的。</p><p><b>  系統(tǒng)流程</b></p><p><b>  流程截圖及說(shuō)明</b></p><p>  圖表 1啟動(dòng)服務(wù)器,控制臺(tái)顯示連接成功</p><p><b>  圖表 2啟動(dòng)客戶(hù)端<

4、/b></p><p>  圖表 3輸入服務(wù)器IP,點(diǎn)擊登錄按鈕</p><p>  圖表 4客戶(hù)端登陸后,服務(wù)器顯示客戶(hù)端的信息</p><p>  圖表 5單擊登陸完畢,選擇試卷按鈕彈出試卷選擇窗口</p><p>  圖表 6有兩種試卷可以選擇</p><p>  圖表 7選擇試卷1,單擊開(kāi)始答題按鈕彈出答

5、題窗口</p><p>  圖表 8輸入答案,單擊開(kāi)始答題按鈕,進(jìn)入下一道題</p><p><b>  圖表 9第二題</b></p><p><b>  圖表 10第三題</b></p><p><b>  圖表 11第四題</b></p><p>

6、  圖表 12第二,四題答對(duì),第一,三題答錯(cuò),最后顯示如上結(jié)果</p><p>  圖表 13重復(fù)上述步驟,選擇試卷二答題</p><p><b>  圖表 14第一題</b></p><p><b>  圖表 15第二題</b></p><p><b>  圖表 16第三題</b&

7、gt;</p><p><b>  圖表 17第四題</b></p><p><b>  圖表 18第五題</b></p><p>  圖表 19第一,三,五題答對(duì),二,四題答錯(cuò),最后顯示如上結(jié)果</p><p>  圖表 20數(shù)據(jù)庫(kù)中的試卷類(lèi)型,題目及答案信息</p><p&g

8、t;<b>  設(shè)計(jì)體會(huì)</b></p><p>  通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)java編程方面的知識(shí),在設(shè)計(jì)過(guò)程中雖然遇到了一些問(wèn)題,但經(jīng)過(guò)一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過(guò)編程,使我們掌握的知識(shí)不再是紙上談兵。</p><p>  過(guò)而能改,善莫大焉。在課程設(shè)計(jì)過(guò)程中

9、,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的指導(dǎo)下,終于游逆而解。在今后社會(huì)的發(fā)展和學(xué)習(xí)實(shí)踐過(guò)程中,一定要不懈努力,不能遇到問(wèn)題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問(wèn)題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上披荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也

10、永遠(yuǎn)不可能得到社會(huì)及他人對(duì)你的認(rèn)可!</p><p>  課程設(shè)計(jì)誠(chéng)然是一門(mén)專(zhuān)業(yè)課,給我很多專(zhuān)業(yè)知識(shí)以及專(zhuān)業(yè)技能上的提升,同時(shí)又是一門(mén)講道課,一門(mén)辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時(shí),設(shè)計(jì)讓我感觸很深。使我對(duì)抽象的理論有了具體的認(rèn)識(shí)。</p><p>  我認(rèn)為,在這學(xué)期的課程設(shè)計(jì)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在課程

11、設(shè)計(jì)上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對(duì)于我們的將來(lái)也有很大的幫助。以后,不管有多苦,我想我們都能變苦為樂(lè),找尋有趣的事情,發(fā)現(xiàn)其中珍貴的事情。就像中國(guó)提倡的艱苦奮斗一樣,我們都可以在實(shí)驗(yàn)結(jié)束之后變的更加成熟,會(huì)面對(duì)需要面對(duì)的事情。</p><p>  回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說(shuō)得

12、是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,但可喜的是最終都得到了解決。 </p><p><

13、;b>  參考文獻(xiàn)</b></p><p>  java語(yǔ)言程序設(shè)計(jì)</p><p><b>  java編程思想</b></p><p><b>  源代碼</b></p><p>  client.java:</p><p>  package clie

14、nt;</p><p>  import java.net.*;</p><p>  import java.io.*;</p><p>  import javax.swing.*;</p><p>  import java.awt.event.*;</p><p>  import java.awt.*;<

15、/p><p>  public class client extends JFrame</p><p><b>  {</b></p><p>  private JTextField t1;</p><p>  private JButton button1;</p><p>  private J

16、Button button2;</p><p>  private JLabel label1;</p><p>  private JLabel label2;</p><p>  static Socket server=null;</p><p>  static InputStream inputdata=null;</p&g

17、t;<p>  static OutputStream outputdata=null;</p><p>  static BufferedReader in=null;</p><p>  static PrintStream out=null;</p><p>  static String sentence=null;</p>&l

18、t;p>  public client(JFrame f)</p><p><b>  {</b></p><p>  f.setVisible(true);</p><p>  f.setBounds(200,200,500,400);</p><p>  Container c= getContentPane(

19、);</p><p>  c.setBackground(Color.WHITE);</p><p><b>  f.add(c);</b></p><p>  t1 =new JTextField("請(qǐng)輸入服務(wù)器IP",20);</p><p>  t1.setFont(new Font("

20、;Serif",Font.PLAIN,12));</p><p>  button1=new JButton("登陸");</p><p>  button1.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  button2=new JButton("登

21、陸完畢,選擇試卷");</p><p>  button2.setFont(new Font("Serif",Font.PLAIN,16));</p><p>  BHandler h=new BHandler();</p><p>  button1.addActionListener(h);</p><p>

22、  BHandler2 h2=new BHandler2();</p><p>  button2.addActionListener(h2);</p><p>  label1 =new JLabel("你還未選擇服務(wù)器");</p><p>  label1.setFont(new Font("Serif",Font.PL

23、AIN,14));</p><p>  label2 =new JLabel("服務(wù)器還沒(méi)有試卷給你");</p><p>  label2.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  c.add(button1,BorderLayout.WEST);</p&g

24、t;<p>  c.add(button2,BorderLayout.SOUTH);</p><p>  c.add(t1,BorderLayout.CENTER);</p><p>  c.add(label1,BorderLayout.EAST);</p><p>  c.add(label2,BorderLayout.NORTH);</p&

25、gt;<p><b>  }</b></p><p>  public class BHandler implements ActionListener</p><p><b>  {</b></p><p>  public void actionPerformed(ActionEvent event)&l

26、t;/p><p><b>  {</b></p><p>  label1.setText("你選擇了服務(wù)器IP地址為" + t1.getText() );</p><p><b>  try</b></p><p><b>  {</b></p>

27、<p>  server=new Socket("localhost",7000);//構(gòu)造Socket實(shí)例,連接本地服務(wù)器,端口號(hào)為7000</p><p>  inputdata=server.getInputStream(); //實(shí)例化對(duì)象返回服務(wù)器套接字的輸入流</p><p>  outputdata=server.getOutputStrea

28、m();//實(shí)例化對(duì)象返回服務(wù)器套接字的輸出流</p><p>  in=new BufferedReader(new InputStreamReader(inputdata) );//實(shí)例化對(duì)象讀取數(shù)據(jù)輸入流</p><p>  out=new PrintStream(outputdata); //實(shí)例化對(duì)象讀取數(shù)據(jù)輸出流</p><p>  sentenc

29、e=in.readLine();//得到讀取的一個(gè)文本行 </p><p>  label2.setText(sentence);</p><p><b>  }</b></p><p>  catch (Exception e){}</p><p><b>  }</b></p>

30、<p><b>  }</b></p><p>  public class BHandler2 implements ActionListener</p><p><b>  {</b></p><p>  public void actionPerformed(ActionEvent event)<

31、/p><p><b>  {</b></p><p>  Jlb d =new Jlb(new JF0("選擇試卷窗口"));</p><p><b>  }</b></p><p><b>  }</b></p><p>  class

32、 JF0 extends JFrame</p><p><b>  {</b></p><p>  public JF0(String s)</p><p><b>  {</b></p><p><b>  super(s);</b></p><p>

33、  setBounds(200,200,500,400);</p><p>  setVisible(true);</p><p><b>  try</b></p><p><b>  {</b></p><p>  UIManager.setLookAndFeel(UIManager.getSy

34、stemLookAndFeelClassName());</p><p>  }catch(Exception e){}</p><p>  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b>  }</b></p><p><b>  }&l

35、t;/b></p><p>  class Jlb extends JFrame</p><p><b>  {</b></p><p>  private JComboBox lbk;</p><p>  private JLabel label;</p><p>  private JB

36、utton button3;</p><p>  private String shijuan[]= {"1","2"};</p><p>  public Jlb(JFrame f)</p><p><b>  {</b></p><p>  Container c=getCon

37、tentPane();</p><p>  c.setBackground(Color.WHITE);</p><p><b>  f.add(c);</b></p><p>  lbk = new JComboBox(shijuan);//創(chuàng)建下拉列表對(duì)象</p><p>  lbk.setMaximumRowCoun

38、t(2);//設(shè)置下拉列表所能顯示列表項(xiàng)的最大數(shù)目</p><p>  lbk.setSelectedIndex(0);//設(shè)置默認(rèn)的選擇項(xiàng)</p><p>  lbk.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  lbk.addItemListener(new lbHandler());

39、//注冊(cè)Label監(jiān)聽(tīng)器</p><p>  label =new JLabel("你選擇了:試卷1");</p><p>  label.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  button3=new JButton("開(kāi)始答題");<

40、/p><p>  button3.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  lbHandler2 h2=new lbHandler2();</p><p>  button3.addActionListener(h2);//注冊(cè)Button監(jiān)聽(tīng)器</p><p> 

41、 c.add(lbk, BorderLayout.NORTH);</p><p>  c.add(label, BorderLayout.CENTER);</p><p>  c.add(button3, BorderLayout.SOUTH);</p><p><b>  }</b></p><p>  public

42、class lbHandler implements ItemListener</p><p><b>  {</b></p><p>  public void itemStateChanged(ItemEvent e)</p><p><b>  {</b></p><p>  if(e.get

43、StateChange() == e.SELECTED)</p><p><b>  {</b></p><p>  label.setText("你選擇了:試卷 " + shijuan[lbk.getSelectedIndex()]);</p><p><b>  }</b></p>&

44、lt;p><b>  }</b></p><p><b>  }</b></p><p>  public class lbHandler2 implements ActionListener </p><p><b>  {</b></p><p>  public

45、void actionPerformed(ActionEvent event)</p><p><b>  {</b></p><p>  out.println(shijuan[lbk.getSelectedIndex()]);</p><p>  Jlb2 m =new Jlb2(new JF0("答題窗口"));<

46、;/p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  class Jlb2 extends JFrame</p><p><b>  {</b&

47、gt;</p><p>  private JLabel labe2;</p><p>  private JTextField t2;</p><p>  private JButton button3;</p><p>  public Jlb2(JFrame f)</p><p><b>  {<

48、/b></p><p>  Container c=getContentPane();</p><p>  c.setBackground(Color.WHITE);</p><p><b>  f.add(c);</b></p><p>  labe2 =new JLabel("題目是: ")

49、;</p><p>  labe2.setFont(new Font("Serif",Font.PLAIN,14));</p><p>  t2 =new JTextField("此處填寫(xiě)答案",20);</p><p>  t2.setFont(new Font("Serif",Font.PLAIN,12

50、));</p><p>  button3=new JButton("開(kāi)始答題");</p><p>  lbHandler3 h3=new lbHandler3();</p><p>  button3.addActionListener(h3);</p><p>  c.add(labe2, BorderLayout.

51、NORTH);</p><p>  c.add(t2,BorderLayout.CENTER);</p><p>  c.add(button3,BorderLayout.SOUTH);</p><p><b>  try</b></p><p><b>  {</b></p><

52、;p>  sentence=in.readLine();</p><p>  labe2.setText(sentence);</p><p>  }catch (Exception e){}</p><p><b>  }</b></p><p>  public class lbHandler3 implem

53、ents ActionListener </p><p><b>  {</b></p><p>  public void actionPerformed(ActionEvent event)</p><p><b>  {</b></p><p><b>  try</b>

54、</p><p><b>  {</b></p><p>  String bmsg =new String(); </p><p>  bmsg=t2.getText();</p><p>  if(!bmsg.equals("quit"))</p><p> 

55、 { </p><p>  out.println(bmsg);</p><p>  sentence=in.readLine();</p><p>  labe2.setText(sentence); </p><p>  } </p><p>  }

56、catch (Exception e){} </p><p><b>  }</b></p><p><b>  } </b></p><p>  } </p><p>  public static void main(String args[])</p

57、><p><b>  {</b></p><p>  client d=new client(new JFrame("登陸"));</p><p><b>  }</b></p><p><b>  }</b></p><p>  ser

58、vice.java:</p><p>  package service;</p><p>  import java.io.*;</p><p>  import java.net.*;</p><p>  import java.util.*;</p><p>  import java.sql.*;</p&

59、gt;<p>  public class service</p><p><b>  {</b></p><p>  static public void main(String args[]) throws IOException</p><p><b>  {</b></p><p&

60、gt;  Connection conn=null;</p><p>  Statement stmt=null;</p><p>  ResultSet rs=null;</p><p>  String driverName = "sun.jdbc.odbc.JdbcOdbcDriver"; //加載JDBC驅(qū)動(dòng)</p><

61、;p>  String dbURL = "jdbc:odbc:dnt31"; //連接服務(wù)器和數(shù)據(jù)庫(kù)</p><p>  String userName = "sa"; //默認(rèn)用戶(hù)名</p><p>  String userPwd = "199618"; //安裝sqlserver 2008時(shí)的密碼</p>

62、<p><b>  try</b></p><p><b>  {</b></p><p>  Class.forName(driverName);//聲明使用的驅(qū)動(dòng)程序</p><p>  conn=DriverManager.getConnection(dbURL,userName,userPwd);//創(chuàng)

63、建連接數(shù)據(jù)庫(kù)對(duì)象</p><p>  System.out.println("Connection Successful!"); </p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p

64、><p>  System.err.println("OpenConn:"+e.getMessage());</p><p><b>  }</b></p><p>  ServerSocket svrsoc=null;</p><p>  Socket client=null;</p>&

65、lt;p>  InputStream inputdata=null;</p><p>  OutputStream outputdata=null;</p><p>  BufferedReader in=null;</p><p>  PrintStream out=null;</p><p><b>  try</b

66、></p><p><b>  {</b></p><p>  svrsoc=new ServerSocket(7000);</p><p>  client=svrsoc.accept(); </p><p>  inputdata=client.getInputStream(); //實(shí)例化對(duì)象返回客戶(hù)端

67、套接字的輸入流</p><p>  in=new BufferedReader(new InputStreamReader(inputdata) );//實(shí)例化對(duì)象讀取數(shù)據(jù)輸入流 </p><p>  outputdata=client.getOutputStream(); //實(shí)例化對(duì)象返回客戶(hù)端套接字的輸出流 </p><p>  out=new

68、 PrintStream(outputdata); //實(shí)例化對(duì)象讀取數(shù)據(jù)輸出流</p><p>  InetAddress clientIP=client.getInetAddress();//得到客戶(hù)端IP</p><p>  System.out.println("Client's IP address:"+clientIP);//顯示客戶(hù)端IP

69、</p><p><b>  int port;</b></p><p>  port=client.getPort(); //得到客戶(hù)端端口號(hào)</p><p>  System.out.println("Client's port:"+port);//顯示客戶(hù)端端口號(hào)</p><p>  

70、out.println("Welcome!...輸入你想要的文件名 1或2...輸入quit退出");</p><p>  String str=in.readLine(); //得到讀取的一個(gè)文本行 </p><p>  System.out.println(str);</p><p>  while(!str.equals("q

71、uit"))</p><p>  { </p><p>  System.out.println("Client said:"+str);//得到讀取的一個(gè)文本行</p><p>  if(str.equals("1"))</p><p><b>  {&l

72、t;/b></p><p>  stmt=(Statement)conn.createStatement();//創(chuàng)建操作SQL語(yǔ)句的對(duì)象</p><p>  String sql1="select * from dnt31.dbo.java where name='1'";</p><p>  rs=stmt.execut

73、eQuery(sql1);</p><p><b>  int n=0;</b></p><p>  while(rs.next())</p><p><b>  { </b></p><p>  out.println("問(wèn)題"+rs.getString("

74、problem"));</p><p>  str=in.readLine();</p><p>  System.out.println(str);</p><p>  if(str.equals(rs.getString("answer")))</p><p><b>  n++;</b>

75、;</p><p><b>  }</b></p><p>  out.println("你答對(duì)題數(shù)是: "+n);</p><p>  rs.close();</p><p>  stmt.close(); </p><p>  conn.close();</p>

76、<p><b>  }</b></p><p>  if(str.equals("2"))</p><p><b>  {</b></p><p>  stmt=(Statement)conn.createStatement();//創(chuàng)建操作SQL語(yǔ)句的對(duì)象</p><

77、p>  String sql2="select * from dnt31.dbo.java where name='2'";</p><p>  rs=stmt.executeQuery(sql2);</p><p><b>  int n=0;</b></p><p>  while(rs.next(

78、))</p><p><b>  {</b></p><p>  out.println("問(wèn)題"+rs.getString("problem"));</p><p>  str=in.readLine(); </p><p>  if(str.equals(rs.getStrin

79、g("answer")))</p><p><b>  n++;</b></p><p><b>  }</b></p><p>  out.println("你答對(duì)題數(shù)是: "+n);</p><p>  rs.close();</p><

80、;p>  stmt.close(); </p><p>  conn.close();</p><p><b>  } </b></p><p>  str="quit";</p><p><b>  }</b></p><p>  System.

81、out.println("Client want to leave.");</p><p><b>  }</b></p><p>  catch(Exception e)</p><p><b>  {</b></p><p>  System.out.println(&quo

82、t;Error:"+e);</p><p><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p><p>  inputdata.close(); </p>

83、<p>  outputdata.close(); </p><p>  client.close(); </p><p>  System.exit(0);</p><p><b>  }</b></p><p><b>  }</b&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論