合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃_第1頁
合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃_第2頁
合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃_第3頁
合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃_第4頁
合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃23/23合工大JAVA實(shí)驗(yàn)報(bào)告計(jì)劃Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)一:2016年10月11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程名稱Java技術(shù)實(shí)驗(yàn)項(xiàng)目名稱實(shí)驗(yàn)一Java開發(fā)環(huán)境的安裝與配置指導(dǎo)教師教師評(píng)語教師署名:年代日一、實(shí)驗(yàn)?zāi)康?掌握J(rèn)DK的安裝步驟(有條件的話能夠在Linux系統(tǒng)下安裝)。2理解環(huán)境變量PATH,CLASSPATH的作用,以及它們的設(shè)置方法(Win98和Win2000/XP下的不同樣設(shè)置方法)。3熟習(xí)TextPad(或JCreator)編寫環(huán)境,編寫簡(jiǎn)單的Application程序,并編譯和解說履行。4記錄編譯和履行Ja

2、va程序中間的系統(tǒng)錯(cuò)誤信息提示,并給出解決方法。二、實(shí)驗(yàn)原理1掌握安裝Jdk1.6的過程。2安裝JCreator軟件,用于編譯java程序。3.在Textpad環(huán)境下編寫一個(gè)HelloWorld.java程序,在DOS提示符下編譯并履行這個(gè)程序。4.設(shè)置環(huán)境變量PATH,CLASSPATH,使得Java程序能正確編譯和履行。5.編寫一個(gè)類A,它位于包a中,保留到A.java中,再編寫一個(gè)類B,它位于包b中,保存到B.java中。在類B中實(shí)例化類A的一個(gè)對(duì)象。分別編譯類A和類B。三、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝WindowsXP操作

3、系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實(shí)驗(yàn)過程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)1安裝Jdk1.6.0集成環(huán)境,安裝成功后,配置path,classpath路徑,讓用戶在任何目錄下均可用到Java的系統(tǒng)資源。先配置%JAVA_HOME%環(huán)境變量,路徑為jdk的目錄;配置path環(huán)境變量,路徑為%JAVA_HOME%bin;再配置classpath環(huán)境變量,路徑為%JAVA_HOME%jrelib;2在記事本編寫helloworld程序,并在DOS命令行下編譯運(yùn)轉(zhuǎn)。在JCreator中寫出以下代碼,并保留為HelloWorld.java:publicclas

4、sHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!);在命令行中進(jìn)入到該文件路徑,并輸入javacHelloWorld.java達(dá)成編譯,再輸入javaHelloWorld達(dá)成運(yùn)轉(zhuǎn)。3用記事本編寫包a包b的程序,并用DOS命令行運(yùn)轉(zhuǎn)。履行過程:將兩個(gè)記事本,更名為A.java和B.java,并寫出以下程序:Ajava文件的源程序:packagea;publicclassApublicvoidsay()System.out.println(Succeed!);javab.BB.java文件中的源程序:

5、packageb;importa.*;publicclassBpublicstaticvoidmain(Stringargs)Aaa=newA();aa.maker();先在DOS命令行中編譯A.java文件,在命令行中輸入javacA.javad.再編譯B.java文件,在命令行中輸入javacB.java-d.在命令行中輸入即可達(dá)成。五、實(shí)驗(yàn)結(jié)論、分析、思慮題與心得意會(huì)經(jīng)過本次實(shí)驗(yàn),我有以下幾方面的收獲、認(rèn)識(shí)和意會(huì):1、學(xué)會(huì)了在記事本和命令行,JCreator,等環(huán)境下編寫程序及運(yùn)轉(zhuǎn)程序的方法;2、學(xué)會(huì)了怎樣安裝JDK,以及怎樣配置%JAVA_HOME%,path,classpath等環(huán)境

6、變量3、加深了Java中有關(guān)語法的認(rèn)識(shí):文件名必然與public類的類名同樣,而且一個(gè)文件中只贊成有一個(gè)public類。Java對(duì)大小寫敏感,如String中的S就嚴(yán)格劃分大小寫;對(duì)中文標(biāo)點(diǎn)符號(hào)和英文標(biāo)點(diǎn)符號(hào)敏感,java只好鑒識(shí)英文標(biāo)點(diǎn)符號(hào)。在用記事本編寫包a包b的程序,并用DOS命令行運(yùn)轉(zhuǎn)時(shí)。要將兩個(gè)類分別放在兩個(gè)文件中,要先編譯A.java再編譯B.java,在編譯時(shí)必然要在命令行中輸入javacA.javad.和javacB.javad.才能自動(dòng)打包;兩個(gè)文件都編譯完成此后,在命令行的父目錄中輸入javab.B來履行,輸入。、思慮題1).什么是JVM,它的作用是什么?JVM就是java

7、虛假機(jī)的英文簡(jiǎn)寫,java虛假機(jī)就是為任何的平臺(tái)供給一個(gè)編譯java程序的接口。就是將編譯的java程序翻譯,以供不同樣的平臺(tái)去鑒識(shí)。2).怎樣理解PATH和CLASSPATH,,怎樣設(shè)置它們。PATH和CLASSPATH分別是JavaJDK和JRE的路徑。設(shè)置是在計(jì)算機(jī)屬性中的高級(jí)系統(tǒng)設(shè)置的環(huán)境變量,配置方法以下:先配置%JAVA_HOME%環(huán)境變量,路徑為jdk的目錄;配置path環(huán)境變量,路徑為%JAVA_HOME%bin;再配置classpath環(huán)境變量,路徑為%JAVA_HOME%jrelib;Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二:2016年10月11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程

8、實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)二類的封裝、繼指導(dǎo)Java技術(shù)名稱名稱承、多態(tài)教師教師評(píng)語教師署名:年代日一、實(shí)驗(yàn)?zāi)康膹?fù)習(xí)、理解OOP的三大特點(diǎn)封裝、繼承和多態(tài)。學(xué)會(huì)使用Java編寫簡(jiǎn)單的類。理解類的屬性和方法。3.掌握重點(diǎn)字private,protected,public的作用,掌握靜態(tài)類,內(nèi)部類的見解。掌握多態(tài)的見解。二、實(shí)驗(yàn)原理分別編寫兩個(gè)類Point2D,Point3D來表示二維空間和三維空間的點(diǎn),使之知足以下要求:(1)Point2D有兩個(gè)整型成員變量x,y(分別為二維空間的X,Y方向坐標(biāo)),Point2D的構(gòu)造方法要實(shí)現(xiàn)對(duì)其成員變量x,y的初始化。(2)Point2D有一個(gè)void型成員方法offse

9、t(inta,intb),它能夠?qū)崿F(xiàn)Point2D的平移。(3)Point3D是Point2D的直接子類,它有有三個(gè)整型成員變量x,y,z(分別為三維空間的X,Y,Z方向坐標(biāo)),Point3D有兩個(gè)結(jié)構(gòu)方法:Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),二者均可實(shí)現(xiàn)對(duì)Point3D的成員變量x,y,z的初始化。(4)Point3D有一個(gè)void型成員方法offset(inta,intb,intc),該方法能夠?qū)崿F(xiàn)Point3D的平移。(5)在Point3D中的主函數(shù)main()中實(shí)例化兩個(gè)Point2D的對(duì)象p2d1,p2d2,打印出它們之間的距

10、離,再實(shí)例化兩個(gè)Point3D的對(duì)象p3d1,p3d2,打印出他們之間的距離。(提示:java.lang.Math.sqrt()方法)三、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝WindowsXP操作系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實(shí)驗(yàn)過程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)利用類的繼承寫一個(gè)point2D類,其子類是point3D。子類Point3D的結(jié)構(gòu)函數(shù)調(diào)用了父類的結(jié)構(gòu)函數(shù);計(jì)算平面兩點(diǎn)的距離函數(shù)和計(jì)算空間兩點(diǎn)的距離函數(shù)寫在父類Point2D中,而且他們是靜態(tài)方法,在子類繼承后,在其主方法(主

11、方法是靜態(tài)的)中能夠直接調(diào)用(或許經(jīng)過類名調(diào)用);其他平移函數(shù)能夠?qū)c(diǎn)進(jìn)行平移。源程序以下:classPoint2Dintx,y;publicPoint2D(intx,inty)/有參結(jié)構(gòu)函數(shù),對(duì)x,y初始化this.x=x;this.y=y;voidoffset(inta,intb)/平移函數(shù)x=x+a;y=y+b;publicstaticdoubledistance2D(Point2Da,Point2Db)returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2);/靜態(tài)方法,求平面兩點(diǎn)的距離publicstaticdoubledis

12、tance3D(Point3Da,Point3Db)returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2)+Math.pow(a.z-b.z),2);/靜態(tài)方法,求空間兩點(diǎn)的距離publicclassPoint3DextendsPoint2Dintz;Point3D(intx,inty,intz)/結(jié)構(gòu)函數(shù),對(duì)x,y,z初始化super(x,y);this.z=z;Point3D(Point2Dp,intz)/結(jié)構(gòu)函數(shù),對(duì)x,y,z初始化super(p.x,p.y);this.z=z;voidoffset(inta,intb,intc

13、)/平移函數(shù)x+=a;y+=b;z+=c;publicstaticvoidmain(Stringargs)Point2Dp2d1=newPoint2D(10,3);Point2Dp2d2=newPoint2D(2,2);Point3Dp3d1=newPoint3D(10,11,0);Point3Dp3d2=newPoint3D(1,6,0);Point3Dp3d3=newPoint3D(p2d1,16);System.out.println(distance2D=+distance2D(p2d1,p2d2);System.out.println(distance3D=+distance3D(p

14、3d1,p3d2);運(yùn)轉(zhuǎn)結(jié)果:五、實(shí)驗(yàn)結(jié)論、分析、思慮題與心得意會(huì)經(jīng)過本次實(shí)驗(yàn),我有以下幾方面的收獲、認(rèn)識(shí)和意會(huì):1、學(xué)會(huì)了類的繼承、封裝、多態(tài)的基本應(yīng)用,學(xué)會(huì)了兩個(gè)方法aqrt()和pow()在程序中的運(yùn)用。2、加深了Java中有關(guān)語法的認(rèn)識(shí):子類繼承父類的非私有成員,但是不可以夠繼承結(jié)構(gòu)方法,必然用super()來調(diào)用父類的結(jié)構(gòu)方法。結(jié)構(gòu)方法能夠經(jīng)過形參的個(gè)數(shù)、種類、擺列不同樣來重載。Math類屬于java.lang包,而且pow()和sqrt()都是static靜態(tài)方法,可以直接經(jīng)過Math.pow()和Math.sqrt()來調(diào)用。Static靜態(tài)方法只好直接調(diào)用靜態(tài)成員,不可以夠直接

15、調(diào)用非靜態(tài)成員。3、思慮題1).什么是類的多態(tài)性。接口的多種不同樣的實(shí)現(xiàn)方式即為多態(tài)。同一段代碼在不同樣的地方,會(huì)履行不同樣的操作。Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三:2016年10月11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)三鑒于GUI的網(wǎng)指導(dǎo)Java技術(shù)名稱名稱絡(luò)通訊程序設(shè)計(jì)教師教師評(píng)語教師署名:年代日一、實(shí)驗(yàn)?zāi)康恼莆認(rèn)ava中GUI程序的編寫,包含事件監(jiān)聽系統(tǒng)。2掌握J(rèn)ava的網(wǎng)絡(luò)通訊編程,ServerSocket,Socket類的使用。3掌握J(rèn)ava中多線程的編程,Thread類,Runnable接口的使用。4掌握用面向?qū)ο蟮姆椒ǚ治龊徒鉀Q復(fù)雜問題。二、實(shí)驗(yàn)原理編寫程序達(dá)成以下

16、功能:1.設(shè)計(jì)一個(gè)鑒于GUI的客戶-服務(wù)器的通訊應(yīng)用程序,如圖1,圖2所示。圖1Socket通欽佩務(wù)器端界面2Socket通訊客端界面2.1Socket通欽佩器端界面,點(diǎn)界面中的【Start】按,啟服器聽服(在1界面中的多行文當(dāng)?shù)貐^(qū)示“Serverstarting字”)。2Socket通訊客端界面,點(diǎn)界面中的【Connect】按與服器成立接,并在2所示界面中的多行文當(dāng)?shù)貐^(qū)示“Connecttoserver字,當(dāng)服器端聽到客端的接后,在1界面中的多行文當(dāng)?shù)貐^(qū)追加一行“Clientconnected字,”并與客端成立Socket接。3.當(dāng)1所示的服器端和2所示的客機(jī)端成立Socket接后,程兩頭的

17、數(shù)據(jù)通訊,每次將接收到方的數(shù)據(jù)追加示在多行文本框中。三、思慮題整個(gè)行,寫出心得。在達(dá)成上述內(nèi)容的基上,服器端能與多個(gè)客機(jī)行通訊。、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝WindowsXP操作系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實(shí)驗(yàn)過程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)分別編寫兩個(gè)文件Client.javaServer.java;這兩個(gè)代碼的結(jié)構(gòu)十分相像,都是先寫一個(gè)主類,再寫另一個(gè)實(shí)現(xiàn)類,主類經(jīng)過創(chuàng)立實(shí)現(xiàn)類的對(duì)象來調(diào)用其結(jié)構(gòu)方法來實(shí)現(xiàn)功能。實(shí)現(xiàn)類中寫了好多方法,也寫了好多內(nèi)部類,方法層層調(diào)用。實(shí)現(xiàn)類在

18、結(jié)構(gòu)方法中寫了調(diào)用了實(shí)現(xiàn)GUI的函數(shù),也為按鈕注冊(cè)了監(jiān)聽器。在不同樣的內(nèi)部類中寫了不同樣監(jiān)聽器所調(diào)用的actioPerformed()方法。在服務(wù)器中創(chuàng)立ServerSocket對(duì)象來接受客戶端的連結(jié)懇求,并指定端口號(hào),客戶端通過Socket對(duì)象來向服務(wù)器的ip和端口發(fā)送連結(jié)懇求。服務(wù)器在接到連結(jié)懇求后,服務(wù)器會(huì)創(chuàng)立一個(gè)新的Socket對(duì)象與客戶端的Socket對(duì)象連結(jié)。連結(jié)成功后經(jīng)過IO流來通信,服務(wù)器的輸入流是客戶端的輸出流,服務(wù)器的輸出流時(shí)客戶端的輸入流。服務(wù)器代碼以下:importjava.awt.*;importjava.awt.event.*;importjava.util.*;i

19、mportjava.io.*;.*;importjavax.swing.*;publicclassServerpublicstaticvoidmain(Stringargs)MyFrameserve=newMyFrame();serve.setVisible(true);serve.setResizable(false);/設(shè)置此窗體能否可由用戶調(diào)整大小serve.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/設(shè)置默認(rèn)封閉操作classMyFrameextendsJFrameJTextFieldport;JButtonstart;JTextAr

20、eacontent;JTextFieldcin;JButtonsay;Socketsocket;MyFrame()init();StartListensListen=newStartListen();SayListenstListen=newSayListen();start.addActionListener(sListen);/為按鈕start注冊(cè)一個(gè)監(jiān)聽器say.addActionListener(stListen);/為按鈕say注冊(cè)一個(gè)監(jiān)聽器voidinit()setLayout(newFlowLayout();/設(shè)置窗體為流式布局setSize(400,400);setLocati

21、on(400,100);add(newJLabel(Port:);port=newJTextField(8888,25);add(port);start=newJButton(Start);add(start);content=newJTextArea(15,35);JScrollPanescroll=newJScrollPane(content);/設(shè)置轉(zhuǎn)動(dòng)條add(scroll);add(newJLabel(Say:);cin=newJTextField(26);add(cin);say=newJButton(Say);add(say);classStartListenimplements

22、ActionListenerpublicvoidactionPerformed(ActionEvente)start.setEnabled(false);tryServerSockets=newServerSocket(Integer.parseInt(port.getText();創(chuàng)立一個(gè)服務(wù)器套接字對(duì)象s,形參為從port文本框中讀取的整型(端口號(hào))socket=s.accept();PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/創(chuàng)立

23、一個(gè)打印輸出流對(duì)象,其形參為從套接字socket對(duì)象中獲得的輸出流out.println(Connected);content.append(Clientconnected+n);/對(duì)兩個(gè)字符串進(jìn)行拼接ServerThreadst=newServerThread();/創(chuàng)立一個(gè)ServerThread對(duì)象st,并調(diào)用其結(jié)構(gòu)方法st.start();/啟動(dòng)一個(gè)線程,并調(diào)用run()方法catch(Exceptionex)classSayListenimplementsActionListenerStringstr;publicvoidactionPerformed(ActionEvente)tr

24、yPrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/創(chuàng)立一個(gè)打印輸出流,形參為從套接字socket中獲得的輸出流str=cin.getText();if(!str.isEmpty()out.println(newDate()+n+str);/打印輸出日期和發(fā)送的信息(str)content.append(newDate()+nme:+str+n);out.flush();/清空緩存區(qū)cin.setText();catch(Exceptione

25、x)classServerThreadextendsThreadpublicvoidrun()tryBufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream();/創(chuàng)立一個(gè)緩沖輸出流,其形參為從套接字socket中獲得的輸入流Stringstr;while(true)str=in.readLine();content.append(str+n);/按行讀取catch(Exceptionex)客戶端代碼以下:importjava.awt.*;importjava.awt.event.*;import

26、java.util.*;importjava.io.*;.*;importjavax.swing.*;importjava.util.Calendar;publicclassClientpublicstaticvoidmain(Stringargs)MyFrameclient=newMyFrame();client.setVisible(true);client.setResizable(false);/設(shè)置此窗體能否可由用戶調(diào)整大小client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/設(shè)置封閉操作classMyFrameextendsJ

27、FrameJTextFieldip;JTextFieldport;JTextFieldcin;JTextAreacontent;JButtonconnect;JButtonsay;Socketsocket;MyFrame()init();ConnectListencListener=newConnectListen();SayListensListener=newSayListen();connect.addActionListener(cListener);/注冊(cè)監(jiān)聽器say.addActionListener(sListener);/注冊(cè)監(jiān)聽器voidinit()setLayout(new

28、FlowLayout();setSize(440,500);setLocation(800,100);add(newJLabel(Server:ip);/設(shè)置窗體為流式布局ip=newJTextField(,8);add(ip);add(newJLabel(Server:port);port=newJTextField(8888,8);add(port);connect=newJButton(connect);add(connect);content=newJTextArea(16,35);JScrollPanescroll=newJScrollPane(content);add(scroll

29、);add(newLabel(Say:);cin=newJTextField(25);add(cin);say=newJButton(say);add(say);classConnectListenimplementsActionListenerintportNum;publicvoidactionPerformed(ActionEvente)/設(shè)置轉(zhuǎn)動(dòng)條connect.setEnabled(false);/按下connect按鈕后,connect不可以再次點(diǎn)擊trycontent.setText(Connecttoservern);/在文本區(qū)中顯示ConnecttoservernportNu

30、m=Integer.parseInt(port.getText();/讀取port文本框中的字符串,并將字符串轉(zhuǎn)變?yōu)檎唾x給portNumsocket=newSocket(ip.getText(),portNum);/定義對(duì)象socket,并指定主機(jī)號(hào)(host)和端口號(hào)portNumClientThreadct=newClientThread();/定義一個(gè)ClientThread類的對(duì)象ctct.start();/啟動(dòng)一個(gè)線程,并調(diào)用ClientThread類中的run()方法catch(Exceptionex)classSayListenimplementsActionListenerS

31、tringstr;publicvoidactionPerformed(ActionEvente)tryPrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/從socket獲得字節(jié)輸出流,并將其最后轉(zhuǎn)變?yōu)镻rintWriterstr=cin.getText();/從文本框中獲得字符串賦給strif(!str.isEmpty()out.println(newDate()+n+str);/打印日期和strcontent.append(newDate()+nme:+str+n);out.flush(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論