java課程方案設(shè)計(jì)書(shū)學(xué)生信息管理系統(tǒng)_第1頁(yè)
java課程方案設(shè)計(jì)書(shū)學(xué)生信息管理系統(tǒng)_第2頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余18頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、封面作者:PanHongliang僅供個(gè)人學(xué)習(xí)Java程序設(shè)計(jì)錄入學(xué)生1W息查詢(xún)學(xué)生信息刪除學(xué)生信息*課程設(shè)計(jì)一、總體設(shè)計(jì)1.1學(xué)生信息系統(tǒng)結(jié)構(gòu)圖 .1。1.2本系統(tǒng)的主要功能 .2。1.3 Java源文件及其功能 .2。二、詳細(xì)設(shè)計(jì)2.1主類(lèi)StudentManager . 3.2.2類(lèi)StudentSituation . 52.3類(lèi)ModifySituation . .82.4類(lèi)in quest .102.5類(lèi)Delete. 122.6類(lèi)Student. .13三、 功能測(cè)試及運(yùn)行效果3.1系統(tǒng)主界面.153.2錄入信息界面 .153.3修改信息界面.163.3查詢(xún)信息界面.163.3刪除

2、信息界面.17程序總結(jié).17參考文獻(xiàn).17一、總體設(shè)計(jì)1.1學(xué)生信息系統(tǒng)結(jié)構(gòu)圖學(xué)生信息管理系統(tǒng)彳亍。2. Stude ntSituati on .java該類(lèi)創(chuàng)建的對(duì)象是StudentManager類(lèi)的重要成員之一,負(fù)責(zé)提供錄入、重置學(xué)生基本信息的界面。3. ModifySituatio n.java該類(lèi)創(chuàng)建的對(duì)象是StudentManager類(lèi)的重要成員之一,負(fù)責(zé)提供修改學(xué)生基本信息的界面。4. Delete.java該類(lèi)創(chuàng)建的對(duì)象是StudentManager類(lèi)的重要成員之一,負(fù)責(zé)提供刪除學(xué)生基本信息的界面。5.in quest.java創(chuàng)建的對(duì)象是StudentManager類(lèi)的重要成員

3、之一,該類(lèi)負(fù)責(zé)提供查詢(xún)學(xué)生基本信息的 界面。6.Stude nt.java錄入學(xué)號(hào)錄入姓名錄入專(zhuān)業(yè)錄入年級(jí)出生日期1.2 本系統(tǒng)的主要功能運(yùn)行該系統(tǒng)成功后,會(huì)出現(xiàn)一個(gè)歡迎使用的主界面, 分別是錄入基本信息、修改基本信息、查詢(xún)基本信息 同的界面,分別有不同的功能:顯顯顯顯上示0的1菜單選項(xiàng)示會(huì) 彈示出,名1除基本信息級(jí)點(diǎn)擊它們刪除生日1. Stude ntManager.java該類(lèi)負(fù)責(zé)創(chuàng)建學(xué)生信息管理系統(tǒng)的主窗口,該類(lèi)還有main方法,程序從該類(lèi)開(kāi)始執(zhí)門(mén)會(huì)出現(xiàn)刪除年級(jí)該類(lèi)創(chuàng)建的對(duì)象是StudentManager類(lèi)的重要成員之一,該類(lèi)在做上面操作時(shí)可以返回學(xué)生的基本信息,主要起到一個(gè)返回的作用。

4、本系統(tǒng)是基于數(shù)據(jù)庫(kù)的學(xué)生信息管理系統(tǒng),實(shí)現(xiàn)了連接數(shù)據(jù)庫(kù),錄入、修改、查詢(xún)、 刪除學(xué)生信息的功能。1.3 Java 源文件及其功能1.icon .jpg該文件是窗口最小化時(shí)的窗口圖標(biāo),Stude ntSituation需要調(diào)用該文件。2.專(zhuān)業(yè).txt該文件為專(zhuān)業(yè)組合的組合鍵提供下拉菜單的內(nèi) 容,StudentSituationModifySituation調(diào)用該文件。二、詳細(xì)設(shè)計(jì)2.1 主類(lèi) StudentManager表2-1主要成員變量(屬性)成員變量描述變量類(lèi)型名稱(chēng)面板Stude ntSituati onNULL面板ModifySituatio nNULL面板in questNULL面板D

5、eleteNULL菜單欄JMe nuBarbar菜單組JMe nufileMe nu菜單項(xiàng)JMe nultemStude ntSituatio n,ModifySituatio nIn quest.Delete布局管理器CardLayoutcard表2-2主要方法方法名稱(chēng)返回類(lèi)型功能備注Stude ntMa nager無(wú)類(lèi)型創(chuàng)建窗口構(gòu)造方法actio nPerformed無(wú)類(lèi)型處理響應(yīng)事件繼承自父類(lèi)抽象方法mai n無(wú)類(lèi)型執(zhí)行程序程序的主函數(shù)源代碼StudentManager.javaimport java.awt.* 。import java.awt.eve nt.* 。import jav

6、ax.swi ng.*。import java.io.* 。import java.util.Hashtable。public class Stude ntMa nager exte nds JFrame impleme nts Acti on Liste nerStude ntSituati onModifySituationIn questDeleteJMen uBar barJMe nu fileMe nuJMenultem錄入,修改,查詢(xún),刪除。Container con=n ull。Hashtable基本信息=null。File file=null。CardLayout card=n

7、 ull JLabel label=n ullJPa nel pCe nter。public Stude ntMa nager() 錄入=n ew JMe nultem( 錄入基本信息修改=new JMenuItem(修改基本信息 查詢(xún)=n ew JMe nultem(” 查詢(xún)基本信息 刪除=new JMe nultem(刪除基本信息 bar=newJMe nuBar()。=null=null基本信息錄入基本信息修改基本信息查詢(xún)基本信息刪除)fileMenu=new JMenu( 菜單選項(xiàng) ) 。 fileMenu.add(錄入 ) 。fileMenu.add(修改 ) 。fileMenu.a

8、dd(查詢(xún) ) 。fileMenu.add(刪除 ) 。bar.add(fileMenu) 。 setJMenuBar(bar) 。label=new JLabel(welcome to use students system!,JLabel.CENTER) label.setFont(new Font(楷體 ,Font.BOLD, 22)。label.setForeground(Color.black) 。基本信息 =new Hashtable() 。錄入 .addActionListener(this)。修改 .addActionListener(this)。查詢(xún) .addActionLi

9、stener(this)。刪除 .addActionListener(this)。card=new CardLayout() 。 con=getContentPane() 。 pCenter=new JPanel() 。 pCenter.setLayout(card) 。file=new File( 基本信息 .txt) 。 if(!file.exists()tryFileOutputStream out=new FileOutputStream(file) ObjectOutputStream objectOut=newObjectOutputStream(out) objectOut.wr

10、iteObject( 基本信息 ) 。 objectOut.close() 。out.close() 。catch(IOException e)基本信息錄入 =new StudentSituation(file)?;拘畔⑿薷?=new ModifySituation(file)?;拘畔⒉樵?xún) =new Inquest(this,file)?;拘畔h除 =new Delete(file)。pCenter.add(歡迎語(yǔ)界面,label) 。pCenter.add(錄入界面 ,基本信息錄入 ) 。pCenter.add(修改界面 ,基本信息修改 ) 。pCenter.add(刪除界面 ,基本信

11、息刪除 ) 。con.add(pCenter,BorderLayout.CENTER) 。 con.validate() 。addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)System.exit(0) 。 setVisible(true) 。 setBounds(100,50,420,380) 。 validate() 。public voidactionPerformed(ActionEvent e)if(e.getSource()=card.show(pCenter,else if(

12、e.getSource()= card.show(pCenter,else if(e.getSource()=基本信息查詢(xún)else if(e.getSource()=錄入 )錄入界面 )修改)修改界面 ) 查詢(xún) ) .setVisible(true)刪除)card.show(pCenter,刪除界面)public static void main(String args)new Stude ntMa nager()。2.2 類(lèi) StudentSituation表2-3主要成員變量成員變量描述變量類(lèi)型名稱(chēng)Hashtable對(duì)象類(lèi)型HashtableNULL文本域JTextField學(xué)號(hào)、姓名、專(zhuān)

13、業(yè)、年級(jí)、出生組合框JComboBoxSmajor單選框Butt on Group男、女按鈕多斥作用域Butt on Groupgroup按鈕JButt on錄入、重置表2-4主要方法方法名稱(chēng)返回類(lèi) 型功能備注Stude ntSituati on無(wú)類(lèi)型創(chuàng)建錄入學(xué)生信息界面構(gòu)造方法actio nPerformed無(wú)類(lèi)型處理響應(yīng)事件繼承自父類(lèi)抽象方法Hashtable 基本信息表=n ull 。JTextField學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),岀生JRadioButton男,女。Stude nt學(xué)生=null 。Butt on Groupgroup =n ull 。JButton錄入,重置。public

14、 StudentSituation(File file)this . file =file 。學(xué)號(hào)=newJTextField(10)。姓名=newJTextField(10)。專(zhuān)業(yè)=newJTextField(10)。年級(jí)=newJTextField(10)。岀生=newJTextField(10)。源代碼StudentSituation.javaimportjava.awt.*。importjava.awt.eve nt.*。importjavax.swi ng.*。importjava.io.*。importjava.util.*。publicclassStude ntSituati o

15、nextendsimpleme ntsActio nListe nerFileI nputStreamObjectI nputStreamFileOutputStreamObjectOutputStreamFile file =nullinOne =n ull 。in Two =n ull 。out One =n ull 0)try inOne =new FileInputStream( file ) 。 inTwo =new ObjectInputStream( inOne ) 基本信息表 =(Hashtable)inTwo .readObject() inOne .close()。inTw

16、o .close()。catch (Exception ee)if ( 基本信息表 .containsKey(number)String warning=JOptionPane. 該生基本信息已存在 , 請(qǐng)到修改頁(yè)面修改 ! 。 showMessageDialog( this ,warning, 警告 ,JOptionPane. WARNING_MESSAGE) elseString m= intok=JOptionPane. 基本信息將被錄入 ! 。 showConfirmDialog( this ,m, 確認(rèn) ,JOptionPane. YES_NO_OPTIONJOptionPane.

17、INFORMATION_MESSAGE ) if (ok=JOptionPane. YES_OPTION ) ,JOptionPane. WARNING_MESSAGE)if (e.getSource()=String name=String discipling=String grade=String borth=String sex= if( 男 .isSelected()sex= else姓名 .getText() 。專(zhuān)業(yè) .getText()年級(jí) .getText()。出生 .getText()。null 。男.getText()sex=學(xué)生 =new Student()。學(xué)生 .se

18、tNumber(number) 。 學(xué)生 .setName(name)。學(xué)生 .setDiscipling(discipling) 學(xué)生 .setGrade(grade)。學(xué)生 .setBorth(borth)。學(xué)生 .setSex(sex) 。 try outOne=new FileOutputStream(file )outTwo .writeObject(基本信息表 ) 。outTwo .close()。outOne .close()。學(xué)號(hào) .setText(null )。姓名 .setText(專(zhuān)業(yè) .setText(null )。年級(jí) .setText(null )。出生 .setT

19、ext(null )。女.getText()catch (Exception ee)System.elseString warning=JOptionPane.out .println(ee) 必須要輸入學(xué)號(hào) ! 。showMessageDialog ( this ,warning,I! 警告重置 )outTwo =new ObjectOutputStream(outOne )基本信息表 .put(number, 學(xué)生 ) 。null )學(xué)號(hào) .setText(null) 。姓名 .setText(null) 。專(zhuān)業(yè) .setText(null) 。年級(jí) .setText(null) 。出生

20、.setText(null) 。2.3 類(lèi) ModifySituation表2-5主要成員變量成員變量描述變量類(lèi)型名稱(chēng)Hashtable對(duì)象類(lèi)型HashtableNULL文本域JTextField學(xué)號(hào)、姓名、專(zhuān)業(yè)、年級(jí)、出生組合框JComboBoxSmajor單選框Butt on Group男、女按鈕多斥作用域Butt on Groupgroup按鈕JButton開(kāi)始修改、錄入修改、重置表2-6主要方法方法名稱(chēng)返回類(lèi)型功能備注ModifySituatio n無(wú)類(lèi)型創(chuàng)建修改學(xué)生信息界面構(gòu)造方法actio nPerformed無(wú)類(lèi)型處理響應(yīng)事件繼承自父類(lèi)抽象方法clearMess無(wú)類(lèi)型清除文本框內(nèi)

21、容無(wú)8核心源代碼ModifySituation.javapublic class ModifySituatio n exte nds JPa nel impleme nts Actio nListe ner Hashtable 基本信息表=null。JTextField 學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),岀生。JRadioButton男,女。Butt on Group group=n ull。JButton開(kāi)始修改,錄入修改,重置。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。FileOutputStream out One=

22、n ull。ObjectOutputStream outTwo=n ull。File file=n ull。public ModifySituatio n(File file)this.file=file。學(xué)號(hào)=new JTextField(10)。姓名=new JTextField(1o)。專(zhuān)業(yè)=new JTextField(1o)。年級(jí)=new JTextField(1o)。岀生=new JTextField(1o)。group=new Butt on Group()。男= =門(mén)門(mén) ew JRadioButt on (” 男,true)。女=new JRadioButt on (女fals

23、e)。group.add( 男)。group.add( 女)。開(kāi)始修改=new JButton(開(kāi)始修改)。錄入修改=new JButton(”錄入修改)。錄入修改.setEnabled(false)。重置=new JButton(” 重置)。學(xué)號(hào).addActionListener(this)。開(kāi)始修改.addActionListener(this)。錄入修改.addActionListener(this)。重置.addActionListener(this)。Box box1=Box.createHoriz on talBox()。. 部分源代碼省略.學(xué)號(hào).setText(null)。姓名

24、.setText(null)。專(zhuān)業(yè).setText(null)。年級(jí).setText(null)。岀生.setText(null)。 catch(Excepti on ee) System.out.pr intln( ee)。錄入修改.setEnabled(false) 。else if(ok=JOpti onPan e.NO_OPTION) _錄入修改.setEnabled(true) 。elseString warning=該學(xué)號(hào)沒(méi)有基本信息,不能修改!。錄入修改.setEnabled(false) 。elseString warning=必須要輸入學(xué)號(hào)!。JoptionPane.show

25、messageDialog(this,waring,警告,JoptionPane.WARNING錄入修改.setEnabled(false)。if(e.getSource()= 重置)學(xué)號(hào).setText(null)。姓名.setText(null)。專(zhuān)業(yè).setText(null)。年級(jí).setText(null)。岀生.setText(null)。2.4 類(lèi) inquest表2-7主要成員變量成員變量描述變量類(lèi)型名稱(chēng)Hashtable對(duì)象類(lèi)型Hashtablein quest文本域JTextField學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),出生啟動(dòng)并執(zhí)行打印作業(yè)Prin tJobpri單選框Butt on

26、 Group男,女按鈕多斥作用域Butt on Groupgroup按鈕JButt on查詢(xún)表2-8主要方法方法名稱(chēng)返回類(lèi)型功能備注in quest無(wú)類(lèi)型創(chuàng)建錄入學(xué)生信息界面構(gòu)造方法actio nPerformed無(wú)類(lèi)型處理響應(yīng)事件繼承自父類(lèi)抽象方法核心源代碼inquest.javaimport java.awt.* 。import java.awt.eve nt.* 。import javax.swi ng.* 。import java.io.* 。import java.util.* 。public class In quest exte nds JDialog impleme nts A

27、cti on Liste nerHashtable基本信息表=null。JTextField 學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),岀生。JRadioButton男,女。JButt on 查詢(xún)。Butt on Group group=n ull。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。File file=n ull。public In quest(JFrame f,File file) . 部分源代碼省略.inOn e.close()。in Two.close()。catch(Excepti on ee)if(基本信息表.c

28、ontainsKey(number)Student stu=(Student)基本信息表.get(number)姓名.setText(stu.getName() 。專(zhuān)業(yè).setText(stu.getDisciping()。年級(jí).setText(stu.getGrade()。岀生.setText(stu.getBorth()。if(stu.getSex().equals(男)男.setSelected(true) 。else女.setSelected(true)。elseString warning=該學(xué)號(hào)不存在!2.5 類(lèi) Delete表2-9主要成員變量成員變量描述變量類(lèi)型名稱(chēng)Hashta

29、ble對(duì)象類(lèi)型HashtabledelStu queryStu文本域JTextField學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),出生單選框Butt on Group男,女按鈕多斥作用域Butt on Groupgroup按鈕JButt ondel表2-10主要方法方法名稱(chēng)返回類(lèi) 型功能備注In putStude nt無(wú)類(lèi)型創(chuàng)建錄入學(xué)生信息界面構(gòu)造方法actio nPerformed無(wú)類(lèi)型處理響應(yīng)事件繼承自父類(lèi)抽象方法核心源代碼 Delete .javapublic class Delete exte nds JPa nel impleme nts Actio nListe nerHashtable基本信息表=

30、null。JTextField 學(xué)號(hào),姓名,專(zhuān)業(yè),年級(jí),岀生 JRadioButton男,女。JButt on刪除。Butt on Group group=n ull。File In putStream inOne=n ull。ObjectI nputStream in Two=n ull。FileOutputStream out One=n ull。ObjectOutputStream outTwo=n ull。File file=n ull。public Delete(File file)this.file=file。學(xué)號(hào)=new JTextField(10) 。刪除=new JButto

31、n( 刪除)。 學(xué)號(hào).addActionListener(this) 。刪除.addActionListener(this)。姓名=new JTextField(10)。姓名.setEditable(false)。專(zhuān)業(yè) =new JTextField(10) 。專(zhuān)業(yè) .setEditable(false) 。年級(jí) =new JTextField(10) 。年級(jí) .setEditable(false) 。出生 =new JTextField(10) 。出生 .setEditable(false) 。男 =new JRadioButton( 男 ,false) 。女 =new JRadioButt

32、on( 女 ,false) 。AGE)。部分源代碼省略 . if(ok=JOptionPane.YES_OPTION)基本信息表 .remove(number) 。tryoutOne=new FileOutputStream(file) outTwo=new ObjectOutputStream(outOne)outTwo.writeObject( 基本信息表 ) outTwo.close()。outOne.close()。學(xué)號(hào) .setText(null)。姓名 .setText(null)。專(zhuān)業(yè) .setText(null)。年級(jí) .setText(null)。出生 .setText(nu

33、ll)。catch(Exception ee)System.out.println(ee) 。else if(ok=JOptionPane.NO_OPTION)學(xué)號(hào) .setText(null)。姓名 .setText(null)。專(zhuān)業(yè) .setText(null)。年級(jí) .setText(null)。出生 .setText(null)。elseString warning= 該學(xué)號(hào)不存在 ! 。 JOptionPane.showMessageDialog(this,warning,JOptionPane.WARNING_MESSAGE)。elseString warning= 必須要輸入學(xué)號(hào)

34、 ! 。JOptionPane.showMessageDialog(this,warning, ,JOptionPane.WARNING_MESSAGE)。2.6 類(lèi) Student核心源代碼 Student .javapublicclass Student implements java.io.SerializableString number,name,discipling,grade,borth,sex public Student()publicvoid setNumber(String number)this .n umber=n umber。public String getNum

35、ber()retur n n umber。publicvoid setName(Stri ng n ame)this .n ame=n ame。public Stri ng getName()return n ame。publicvoid setDiscipli ng(Stri ng discipli ng)this.discipli ng=discipli ngpublic String getDiscip in g()retur n discipli ng。publicvoid setGrade(Stri ng grade)this.grade=grade。public String ge

36、tGrade()retur n grade 。publicvoid setBorth(String borth)this.borth=borth。public Stri ng getBorth()return borth 。publicvoid setSex(Stri ng sex) this.sex=sex 。public String getSex()retur n sex 。三、功能測(cè)試及運(yùn)行效果3.1 系統(tǒng)主界面圖3-2學(xué)生信息錄入界面15圖3-1.3.2 錄入學(xué)生信息界面系統(tǒng)主窗口3.3 修改學(xué)生信息界面圖3-3學(xué)生信息修改界面3.4 查詢(xún)學(xué)生信息界面圖3-4學(xué)生信息查詢(xún)界面163.

37、5 刪除學(xué)生信息界面圖3-4學(xué)生信息刪除界面.程序總結(jié):通過(guò)這次課程設(shè)計(jì),我們了解到j(luò)ava也是可以分工合作的,雖然最后的整合過(guò)程非常麻煩,但是在整合完后,我們發(fā)現(xiàn),課本被翻過(guò)很多遍,很多以前不知道的東西就這樣豁然 開(kāi)朗了。我們還引用了很多從來(lái)沒(méi)有用過(guò)的語(yǔ)句塊,大多是從網(wǎng)上找到,然后自己整合進(jìn) 入代碼,再實(shí)現(xiàn)我們想要的功能。編程是個(gè)艱難的過(guò)程,很多功能語(yǔ)句都需要上網(wǎng)或者是查其他書(shū)籍來(lái)查看他們的用法,課 本上的東西對(duì)我們來(lái)說(shuō)遠(yuǎn)遠(yuǎn)不夠,我們要把目光放長(zhǎng)遠(yuǎn)一些。這次的課程設(shè)計(jì)使我對(duì)JAVA的許多東西都有了更深一步的了解,以前對(duì)自己的要求是看得懂就行,現(xiàn)在才發(fā)現(xiàn),光能看懂是遠(yuǎn)遠(yuǎn)不夠的,能看懂并不代表你會(huì)!只有自己真的親身體驗(yàn)到了,才會(huì)知道。這個(gè)禮拜的課程設(shè)計(jì)是這個(gè)學(xué)期最累的一個(gè)禮拜,但是,我們的付出總算有回報(bào),雖然我 們的計(jì)算器可能還存在不少的問(wèn)題,但是,至少它可以正常運(yùn)行四則運(yùn)算,基本達(dá)到了我 們預(yù)期的要求,所以,這個(gè)禮拜同樣是我最充實(shí)的一個(gè)禮拜。.參考文獻(xiàn)1耿祥義,張躍平Java 2實(shí)用教程(第三版)M.北京:清華大學(xué)出版社,20062(美)霍斯特曼(Horstmann C.S.)&nbs. Java2核心技

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論