Java程序設(shè)計實驗_第1頁
Java程序設(shè)計實驗_第2頁
Java程序設(shè)計實驗_第3頁
Java程序設(shè)計實驗_第4頁
Java程序設(shè)計實驗_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué) 生 實 驗 報 告 冊(理工類)課程名稱:Java程序設(shè)計 專業(yè)班級: 學(xué)生學(xué)號: 學(xué)生姓名: 所屬院部: 指導(dǎo)教師: 20 20 學(xué)年 第 學(xué)期 金陵科技學(xué)院教務(wù)處制實驗報告書寫要求實驗報告原則上要求學(xué)生手寫,要求書寫工整。若因課程特點需打印的,標(biāo)題采用四號黑體,正文采用小四號宋體,單倍行距。紙張一律采用A4的紙張。實驗報告書寫說明實驗報告中實驗?zāi)康暮鸵?、實驗儀器和設(shè)備、實驗內(nèi)容與過程、實驗結(jié)果與分析這四項內(nèi)容為必需項。教師可根據(jù)學(xué)科特點和實驗具體要求增加項目。填寫注意事項(1)細(xì)致觀察,及時、準(zhǔn)確、如實記錄。(2)準(zhǔn)確說明,層次清晰。(3)盡量采用專用術(shù)語來說明事物。(4)外文、符號

2、、公式要準(zhǔn)確,應(yīng)使用統(tǒng)一規(guī)定的名詞和符號。(5)應(yīng)獨立完成實驗報告的書寫,嚴(yán)禁抄襲、復(fù)印,一經(jīng)發(fā)現(xiàn),以零分論處。實驗報告批改說明實驗報告的批改要及時、認(rèn)真、仔細(xì),一律用紅色筆批改。實驗報告的批改成績采用五級記分制或百分制,按金陵科技學(xué)院課堂教學(xué)實施細(xì)則中作業(yè)批閱成績評定要求執(zhí)行。實驗報告裝訂要求實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報告以自然班為單位、按學(xué)號升序排列,裝訂成冊,并附上一份該門課程的實驗大綱。35 / 35文檔可自由編輯打印實驗項目名稱: 面向?qū)ο缶幊虒嶒?實驗學(xué)時: 6 同組學(xué)生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間: 實驗1 面向?qū)ο?/p>

3、編程實驗一、實驗?zāi)康暮鸵螅?)熟悉Java幾種IDE(集成開發(fā)環(huán)境);重點是Eclipse(2)掌握接口的編寫及使用(3)理解繼承、多態(tài)(4)掌握包的編寫以及如何使用包中的類二、實驗儀器和設(shè)備奔騰以上個人計算機(jī),裝有JAVA語言工具軟件 (Eclipse ),windows操作系統(tǒng)。三、實驗內(nèi)容與過程接口的編寫(1) 編輯Interfaceclass.java,設(shè)保存在D:myjava目錄下。interface Interfaceclass int i=4; int k=5; void func1(); int func2(int x);(2) 編輯UseInterface.java,設(shè)保存

4、在D:myjava目錄下。class UseInterface implements Interfaceclass int j;public void func1() /在使用接口的類中一定要實現(xiàn)接口中的所有抽象方法 System.out.println("func1="+1); public int func2(int i) System.out.println("func2="+1);return i; public static void main(String srgs ) /Interfaceclass.class x=new Interfac

5、eclass.class();不能對接口進(jìn)行實例化UseInterface x=new UseInterface();x.func1();x.func2(k);多態(tài)在工資系統(tǒng)中的應(yīng)用下面給出一個根據(jù)雇員類型利用abstract方法和多態(tài)性完成工資單計算的程序。 Employee是抽象類,Employee的子類有Boss(每星期發(fā)給他固定工資,而不計工作時間)、 CommissionWorker(除基本工資外還根據(jù)銷售額發(fā)放浮動工資)、PieceWorker(按其生產(chǎn)的產(chǎn)品數(shù)發(fā)放工資)、HourlyWorker(根據(jù)工作時間長短發(fā)放工資)。該例的Employee的每個子類都聲明為final,因為

6、不需要再繼承它們生成子類。對所有雇員類型都使用earnings()方法,但每個人掙的工資按他所屬的雇員類計算,所有雇員類都是從超類Earnings()派出生的。所有在超類中聲明earnings()為抽象方法,并且對于每個子類都提供恰當(dāng)?shù)膃arnings()的實現(xiàn)方法。為了計算雇員的工資,程序僅僅使用雇員對象的一個超類引導(dǎo) 并調(diào)用earnings()方法。在一個實際的工資系統(tǒng)中,各種Employee對象的引用可以通過一個Employee引用數(shù)組來實現(xiàn)。程序依次使用數(shù)組的每個元素(Employee引用)調(diào)用每個對象的employee()方法。(1)編輯Test.java,設(shè)保存在D:myjava目

7、錄下。 abstract class Employee private String firstName; private String lastName; public Employee(String first,String last) firstName=first; lastName=last; public String getEmployeeName() return firstName;public String getLastName() return lastName;public String toString() return firstName+lastName;pub

8、lic abstract String earnings();/定義Boss類,為Employee的子類final class Boss extends Employee private double weeklySalary; public Boss(String frist,String last,double s) super(frist,last);setWeeklySalary(s); public void setWeeklySalary(double s) weeklySalary=(s>0?s:0); public String earnings() return &qu

9、ot;Boss"+super.toString();/定義CommissiomWorker類,為Employee的子類final class CommissionWorker extends Employee private double salary; private double commission; private int quantity; public CommissionWorker(String first,String last,double s,double c,int q) super(first,last); setSalary(s); setCommissi

10、on(c); setQusntily(q); /*public String earnings() */public void setQusntily(double s) salary=(s>0?s:0);public double setCommission(double c) return commission=(c>0?c:0); public String earnings() double i=salary+commission+quantity; return Double.valueOf(i).toString(); public String toString()

11、return"CommissionWorker"+super.toString(); public void setSalary(double s) salary=s; /定義PieceWorker類,為Employee的子類 final class PieceWorker extends Employee private double wagePiece;private int quantity;public PieceWorker(String first,String last,double w,int q) super(first,last); setWage(w)

12、; setQuantity(q); public void setWage(double w) wagePiece=(w>0?w:0); public double setQuantity(int q) return q+wagePiece; public String toString() return "PieceWoeker"+super.toString(); public String earnings() returnDouble.valueOf(wagePiece+quantity).toString(); /定義HourlyWorker類,為Emplo

13、yee的子類 class HourlyWorker extends Employee private double wage; private double hours; public HourlyWorker(String first,String last ,double w,double h) super(first,last); setWage(w); setHours(h); public void setWage (double w) wage=(w>0?w:0); public void setHours(double h) hours=(h>=0&&

14、h<168?h:0); public String earnings() return "HourlyWorker"+super.toString(); class Text public static void main(String args ) /使用超類聲明ref Employee ref; String out=""/分別定義各子類 Boss b=new Boss("Hohn","Smith",800.00); CommissionWorker c=new CommissionWorker(&quo

15、t;Sue","Hones",400.00,3.0,150); PieceWorker p=new PieceWorker("Bob","Lewis",2.5,200); HourlyWorker h=new HourlyWorker("Karen","price",13.75,40);/使用子類分別實例化ref=b;out+=ref.toString()+"earned $"+ref.earnings()+"n"+b.toString()+&q

16、uot;earned $"+b.earnings()+"n"System.out.print(out);ref=c;out+=ref.toString()+"earned $"+ref.earnings()+"n"+c.toString()+"earned $"+c.earnings()+"n"System.out.print(out);ref=p;out+=ref.toString()+"earned $"+ref.earnings()+"n"

17、+p.toString()+"earned $"+p.earnings()+"n"System.out.print(out);ref=h;out+=ref.toString()+"earned $"+ref.earnings()+"n"+h.toString()+"earned $"+h.earnings()+"n"System.out.print(out); 包的建立與使用(1) 編輯Calculate.java,設(shè)保存在D:myjava目錄下。package mypack

18、age;public class Calculate private int a; public Calculate(int a) this.a=a;System.out.println("from constrartion"+this.a); public double volume(double height,double width,double depth) return height*width*depth; int add(int x, int y) return x+y; protected void a() System .out.println("

19、;from constration"+a); 編譯,查看D:myjava目錄下是否生成了myoackage文件夾,在該文件夾中是否有Calculate.class文件。 (2) 編輯Interfaceclass.java,設(shè)保存在D:myjava目錄下。 import mypackage.Calculate;class PackageDemo public static void main(string ags ) Calculate c=new Calculate(10); double s=c.volume(5,6,7); System.out.println(s); /int

20、b=c.add(5,6); /c.a(); 四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)五、實驗體會(遇到問題及解決辦法,編程后的心得體會)多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計的核心!在對Java語言和設(shè)計模式有簡單的了解后,我覺得多態(tài)性是OOP核心中的核心,正是因為多態(tài)具有的表示獨立性,才使得程序具有很好的可擴(kuò)展性和可復(fù)用性。實驗項目名稱: 異常處理 實驗學(xué)時: 4 同組學(xué)生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間: 實驗2 異常處理一、實驗?zāi)康暮鸵螽惓5纳a(chǎn)及捕獲自定義異常及其使用二、實驗儀器和設(shè)備奔騰以上個人計算機(jī),裝有JAVA語言工具軟件 (Eclipse ),window

21、s操作系統(tǒng)。三、實驗內(nèi)容與過程異常的捕獲計算兩數(shù)相除并輸出結(jié)果。使用兩個catch子句,分別捕捉除數(shù)為0的異常和參數(shù)輸入有誤異常。編輯Ex1.java,保存在D:myjava目錄下。import java.io.*;class Ex1public static void main(String args ) try BufferedReader strin=new BufferedReader( new InputStreamReader(System.in); System.out.print("請輸入除數(shù):"); String cl=strin.readLine();

22、int a=Integer .parseInt(cl); System .out .print("請輸入被除數(shù):"); cl=strin .readLine(); int b=Integer .parseInt(cl); int c=b/a; System .out .println("商為:"+c); /捕獲與I/O有關(guān)的異常 catch(IOException e)e .printStackTrace () ; /捕獲數(shù)值轉(zhuǎn)化時的異常,如不能將字符轉(zhuǎn)化成數(shù)值 catch(NumberFormatException e) System.out.prin

23、tln("請輸入整數(shù)!"); /e .printStackTrace(); /捕獲除數(shù)為0的異常 catch(ArithmeticException e) System .out .println("除數(shù)不可以0!"); /e .printstackTrace(); 編譯并運行,當(dāng)輸入除數(shù)為0時,將有異常出現(xiàn),當(dāng)輸入的不是整數(shù)時,如將30輸成了3o,出現(xiàn)的是另一種異常。定義異常編寫程序包含自定義異常,當(dāng)輸入數(shù)值為13和4時拋出該異常。編輯Ex2.java,設(shè)保存在D:myjava目錄下。 class Ex2 extends Exception Ex2(S

24、tring msg) super(msg); class MyEx private int x; void setX(int x) this.x=x; void f1() throws Ex2 if(x=13) throw new Ex2("I don't like 13!"); else if(x=4) throw new Ex2("I don't like 4!"); else System .out.println(100/x);public static void main(String args ) MyEx a=new MyE

25、x(); try a.setX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1(); catch(Exception e) System.out.println("get message:"+e.getMessage(); 編譯并運行,分別取消注釋上面程序中被注釋的語句。當(dāng)釋放a.setX(13)語句后,查看運行結(jié)果,當(dāng)釋放a.setX(4)語句后,查看運行結(jié)果。四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)五、實驗體會(遇到問題及解決辦法,編程后的心得體會)實驗項目名稱: 圖形用戶接口 實驗學(xué)時: 6 同組學(xué)生姓名: 實驗地點: 實驗日期

26、: 實驗成績: 批改教師: 批改時間: 實驗3 圖形用戶接口一、實驗?zāi)康暮鸵笳莆沼肕ouseListener和MouseMotionListener接口處處理鼠標(biāo)事件Mouse Event的方法。掌握制作菜單及處理菜單事件的方法掌握創(chuàng)建對話框及定位、顯示、激活和關(guān)閉對話框的方法二、實驗儀器和設(shè)備奔騰以上個人計算機(jī),裝有JAVA語言工具軟件 (Eclipse ),windows操作系統(tǒng)。三、實驗內(nèi)容與過程制作一個簡單的畫板編輯Mou.java,設(shè)保存在D:myjava目錄下。import java.applet.*;import java.awt.*;import java.awt.event

27、.*;public class Mou extends Applet implements MouseMotionListener int x= -1,y= -1; public void init() setBackground(Color.cyan); addMouseMotionListener(this); public void paint(Graphics g) if(x!= -1&&y!= -1) g.setColor(Color.red); g.drawLine(x,y,x,y); public void mouseDragged(MouseEvent e) x

28、=(int)e.getX(); y=(int)e.getY(); public void mouseMoved(MouseEvent e) /由于使用的是Listener,需要將其他不重載的方/法,列舉在這里 public void update(Graphics g) paint(g); public static void main(String args) Mou mou=new Mou(); mou.setVisible(true); mou.init(); mou.paint() 編譯并運行查看結(jié)果.菜單的編寫編輯TestMenu.java,設(shè)保存在D:myjava目錄下。impor

29、t java.awt.*;import java.awt.event.*;import java.awt.event.ItemEvent;class MyMenhFrame extends Frame implements ActionListener,ItemListener MenuBar m_MenuBar; Menu menu; MenuItem mi_; MenuItem pi_New,pi_Del,pi_Pro,mi_Paste_All,mi_Paste_Part; CheckboxMenuItem mi_Edit_Cut; PopupMenu popM; TextArea ta;

30、 public void itemStateChanged(ItemEvent e) MyMenhFrame() super("擁有菜單的窗口"); /指定窗口標(biāo)題 ta=new TextArea("no choice",5,20); ta.addMouseListener(new HandleMouse(this); /文本域響應(yīng)鼠標(biāo)事件 add("Center",ta); /創(chuàng)建彈出式菜單 popM=new PopupMenu(); pi_New=new MenuItem("新建"); pi_New.addAc

31、tionListener(this); popM.add(pi_New); pi_Del=new MenuItem("刪除"); pi_Del.addActionListener(this); popM.add(pi_Del); pi_Pro=new MenuItem("屬性"); pi_Pro.addActionListener(this); popM.add(pi_Pro); /將彈出式菜單加在文本域上 ta.add(popM); m_MenuBar=new MenuBar(); /創(chuàng)建菜單欄 menu Menu("文件"); /

32、創(chuàng)建菜單項、菜單自項并指定快捷鍵 mi_ MenuItem("打開",new MenuShortcut('o'); mi_ MenuItem("關(guān)閉"); mi_ MenuItem("退出"); mi_(new MenuShortcut('x'); mi_("打開"); mi_("退出"); mi_(this); mi_(this); /自身作為監(jiān)視器 mi_(this); menu(mi_); menu(mi_); menu(); menu(mi_); m_Me

33、nuBar.add(menuFile); menuEdit=new Menu("編輯"); mi_Edit_Copy=new MenuItem("復(fù)制"); mi_Edit_Cut=new CheckboxMenuItem("剪切"); m_Edit_Paste=new Menu("粘貼"); mi_Paste_All=new MenuItem("全部粘貼"); mi_Paste_Part=new MenuItem("部分粘貼"); mi_Edit_Copy.addActio

34、nListener(this); mi_Edit_Cut.addItemListener(this); m_Edit_Paste.add(mi_Paste_Part);/ m_Edit_Paste.addItemListener(mi_Paste_All); mi_Paste_Part .addActionListener(this); mi_Paste_All.addActionListener(this); menuEdit.add(mi_Edit_Copy); menuEdit.add(mi_Edit_Cut); menuEdit.addSeparator(); menuEdit.add

35、(m_Edit_Paste); m_MenuBar.add(menuEdit); this.setMenuBar(m_MenuBar); /在窗口中添加菜單欄 public void actionPerformed(ActionEvent e) if(e.getActionCommand()="退出") dispose(); System.exit(0); elseta.setText(e.getActionCommand(); public void itenStateChanged(ItemEvent e) if(e.getSource()=mi_Edit_Cut)if

36、(CheckboxMenuItem)e.getSource().getState() ta.setText("choose"+(CheckboxMenuItem)e.getSource().getLabel();/將時間小時在文/本框中顯示else ta.setText("no choose"+(CheckboxMenuItem)e.getSource().getLabel(); class HandleMouse extends MouseAdapter /處理鼠標(biāo)事件類 MyMenhFrame m_Parent; HandleMouse(MyMenh

37、Frame mf) m_Parent=mf; public void mouseReleased(MouseEvent e) /鼠標(biāo)按鍵松開事件彈出菜單 if(e.isPopupTrigger()/檢查鼠標(biāo)事件是否是由彈出菜單引發(fā)的m_Parent.popM.show(Component)e.getSource(),e.getX(),e.getY();public static void main(String args)MyMenhFrame mmf=new MyMenhFrame();mmf.setSize(400,300);mmf.setVisible(true);編譯并運行TestMe

38、nu.class查看結(jié)果。使用Dialog實驗消息對話框和一般對話框編輯TestDialog.java,設(shè)保存在D:myjava目錄下。 import java.awt.*;import java.awt.event.*;public class TestDialog public static void main(String args ) MyDialogFrame df=new MyDialogFrame(); class MyDialogFrame extends Frameimplements ActionListener,ComponentListener Dialog MegDl

39、g,InOutDlg; Button btn1,btn2,btnY,btnN,btnR; TextField tf=new TextField("no imformation",45); TextField getMeg=new TextField("inout imformation",10); MyDialogFrame() super("use dialog"); btn1=new Button("隱藏"); btn2=new Button("詢問"); btnY=new Button(&

40、quot;是"); btnN=new Button("否"); btnR=new Button("返回"); setLayout(new FlowLayout(); add(tf); add(btn1); add(btn2); btn1.addComponentListener(this); this.addWindowListener(new WinAdpt();/Frame響應(yīng)窗口關(guān)閉事件 btn1.addActionListener(this); btn2.addActionListener(this); btnY.addActionLi

41、stener(this); btnN.addActionListener(this); btnR.addActionListener(this); setSize(350,150); show(); public void actionPerformed(ActionEvent e) /實現(xiàn)Action Listener中的方法 if(e.getActionCommand()="隱藏") MegDlg=new Dialog(this, "true?",true); Panel p1=new Panel(); p1.add(new Label("

42、continue?"); MegDlg.add("Center",p1); Panel p2=new Panel(); p2.add(btnY); p2.add(btnN); MegDlg.add("South",p2); MegDlg.setSize(200,100); MegDlg.show();else if(e.getActionCommand()="響應(yīng)") InOutDlg=new Dialog(this, "input the imformation"); InOutDlg.add(&quo

43、t;Center",getMeg); InOutDlg.add("South",btnR); InOutDlg.setSize(200,100); /InOutDlg.addFocusListener(new MyDialogFrame();/addFocusListener(this); InOutDlg.show(); else if(e.getActionCommand()="是") MegDlg.dispose(); btn1.setVisible(false); else if(e.getActionCommand()="否

44、") MegDlg.dispose(); else if(e.getActionCommand()="返回") tf.setText(getMeg.getText()+"是對話框的輸入"); InOutDlg.dispose(); /列舉Component Listener中未重載的方法public void componentShown(ComponentEvent e) public void componentResized(ComponentEvent e) public void componentMoved(ComponentEve

45、nt e) public void componentHidden(ComponentEvent e) /實現(xiàn)ComponentListener中的方法 tf.setText("按鈕"+(Button)e.getComponent().getLabel()+"獲得了注意的焦點"); public void fousGained(FocusEvent e) /處理FocusListener中的方法 getMeg.setText("對話框"+(Dialog)e.getComponent().getTitle()+"獲得了注意的焦

46、點"); public void focusLost(FocusEvent e) class WinAdpt extends WindowAdapter public void windowClosing(WindowEvent e) /處理關(guān)閉窗口事件 (Frame)e.getWindow().dispose();System.exit(0);編譯并運行查看結(jié)果四、實驗結(jié)果與分析(程序運行結(jié)果及其分析)五、實驗體會(遇到問題及解決辦法,編程后的心得體會)實驗項目名稱: 多線程 實驗學(xué)時: 4 同組學(xué)生姓名: 實驗地點: 實驗日期: 實驗成績: 批改教師: 批改時間: 實驗4 多線程

47、一、實驗?zāi)康暮鸵笳莆斩嗑€程的實現(xiàn)方法學(xué)會利用多線程來顯示動畫二、實驗儀器和設(shè)備奔騰以上個人計算機(jī),裝有JAVA語言工具軟件 (Eclipse ),windows操作系統(tǒng)。三、實驗內(nèi)容與過程使用Runnable接口的方法實現(xiàn)多線程編輯TestRunnable.java,保存在D:myjava目錄下。import java.applet.*;import java.awt.*;public class TestRunnable extends Applet implements Runnable Label prompt1=new Lable(“the first thread”); Label

48、 prompt2=new Lable(“the second thread”); TextField threadFirst=new TextField(14); TextField threadSecond=new TextField(14);Thread Thread1, Thread2;int count1=0,count2=o0;public void inin() add(prompt1); add(threadFirst); add(prompt2); add(threadSecond); public void start() thread1=new Thread(this, “

49、FirstThread”); thread2=new Thread(this, “SecondThread”); thread1.start(); thraed2.start(); public void run() String currentRunning; While(true) try Thread.sleep(int)(Math.random()*10000); catch(Exception e) currentRunning=Thread.currebtTheard().getName(); if(currentRunning.equals(“FirstTheard”) coun

50、t1+; threadFirst.setText(“the first thread”+count1+“use”); else if(currentRunning.equals(“SecondThread”) count2+; threadSecond.setText(“the second thread”+count2+“use”); (1) 編譯TestRunnable.java。(2) 編輯TestRunnable.htm,要求與TestRunnable.class在同一目錄下。<applet code=TestRunnable.class height=300 width=400

51、></applet>(3) 運行TestRunnable.htm。 實現(xiàn)簡單動畫實現(xiàn)一個簡單動畫,效果為一個球由小到大,從屏幕左側(cè)滾動到右側(cè)。編輯TestRunnable.java,設(shè)保存在D:myjava目錄下。import java.applet.*;import java.awt.*;public class Mov extends Applet int x1=50,x2=5,y1=25,y2=5; public void paint(Graphics g) int w=this.getWhidth(); int h=this.get.height(); if(x1>=w) x1=50; if(x2>h) x2=5; g.setColor(Color.BLUE); g.fillOval(x1,y1,x2,x2); g.drawOval(x1,y1,x2,x

溫馨提示

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

評論

0/150

提交評論