java面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第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>  面向?qū)ο蟪绦蛟O(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  系 (院) 計(jì)算機(jī)科學(xué)技術(shù)系 </p><p>  專(zhuān) 業(yè) 軟件技術(shù)

2、 </p><p>  班 級(jí) </p><p>  學(xué)生姓名 </p><p>  學(xué) 號(hào) </p><p>  指導(dǎo)教師 &

3、lt;/p><p>  二〇一二年六月十二日</p><p><b>  目 錄</b></p><p>  1課程設(shè)計(jì)目的與要求1</p><p>  1.1 課程設(shè)計(jì)目的1</p><p>  1.2課程設(shè)計(jì)要求1</p><p>  2問(wèn)題描述與分析2<

4、;/p><p><b>  2.1問(wèn)題描述2</b></p><p><b>  2.2問(wèn)題分析2</b></p><p><b>  3總體設(shè)計(jì)3</b></p><p><b>  3.1開(kāi)發(fā)環(huán)境3</b></p><p>

5、<b>  3.2功能設(shè)計(jì)3</b></p><p><b>  3.3界面設(shè)計(jì)3</b></p><p><b>  3.4類(lèi)的設(shè)計(jì)4</b></p><p><b>  4詳細(xì)設(shè)計(jì)5</b></p><p>  4.1 主要類(lèi)的說(shuō)明5<

6、/p><p>  4.2 主要方法說(shuō)明10</p><p>  4.3 程序流程圖15</p><p>  5程序測(cè)試分析15</p><p>  5.1 程序運(yùn)行情況16</p><p>  5.2 程序異常處理17</p><p><b>  6總結(jié)與體會(huì)19</b&

7、gt;</p><p><b>  參考資料19</b></p><p>  1課程設(shè)計(jì)目的與要求</p><p>  1.1 課程設(shè)計(jì)目的</p><p>  培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)課程知識(shí)解決實(shí)際問(wèn)題的能力,促進(jìn)學(xué)生動(dòng)手實(shí)踐能力的提高,很好地調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。同時(shí)使學(xué)生 熟練應(yīng)用面向?qū)ο蟮奶匦裕悍庋b、繼承

8、、多態(tài);掌握常量的定義和使用(必需的關(guān)鍵字 -- final);熟練應(yīng)用接口解決實(shí)際問(wèn)題;能使用異常處理處理程序中的異常情況;會(huì)使用log4j工具輸出保存日志信息。</p><p><b>  1.2課程設(shè)計(jì)要求</b></p><p>  能夠應(yīng)用OO思想設(shè)計(jì)并實(shí)現(xiàn)門(mén)禁系統(tǒng)的功能要求,并要求系統(tǒng)具備良好的可擴(kuò)展性、可維護(hù)性和健壯性。鼓勵(lì)在原功能需求上根據(jù)實(shí)際情況進(jìn)行

9、功能的完善和創(chuàng)新。</p><p><b>  2問(wèn)題描述與分析</b></p><p><b>  2.1問(wèn)題描述</b></p><p>  某公司安裝了電子門(mén),要設(shè)計(jì)門(mén)禁系統(tǒng):</p><p>  公司的雇員可以憑借密碼、胸卡或指紋進(jìn)入公司</p><p>  計(jì)算機(jī)根

10、據(jù)雇員的驗(yàn)證方式對(duì)其身份進(jìn)行驗(yàn)證 </p><p>  管理員在監(jiān)控室可以通過(guò)按鈕直接開(kāi)啟電子門(mén),管理員可以為新職員設(shè)置密碼</p><p>  訪客可以按門(mén)鈴請(qǐng)求進(jìn)入,由管理員為其放行</p><p><b>  2.2問(wèn)題分析</b></p><p> ?。?)根據(jù)需求分析對(duì)象 </p><p&g

11、t;  門(mén)禁系統(tǒng)、電子門(mén)、計(jì)算機(jī)、輸入設(shè)備</p><p>  管理員、 雇員、 訪客</p><p><b>  驗(yàn)證接口、驗(yàn)證實(shí)現(xiàn)</b></p><p><b> ?。?)對(duì)象關(guān)系</b></p><p><b>  3總體設(shè)計(jì)</b></p><p&

12、gt;<b>  3.1開(kāi)發(fā)環(huán)境</b></p><p>  Pc機(jī) 與 eclipse軟件</p><p><b>  3.2功能設(shè)計(jì)</b></p><p>  本系統(tǒng)至少要具備以下功能:</p><p>  1、公司的雇員可以憑借密碼、胸卡或指紋進(jìn)入公司; </p><p&

13、gt;  2、計(jì)算機(jī)根據(jù)雇員的驗(yàn)證方式對(duì)其身份進(jìn)行驗(yàn)證; </p><p>  3、管理員在監(jiān)控室可以通過(guò)按鈕直接開(kāi)啟電子門(mén),管理員可以為新職員設(shè)置密碼;</p><p>  4、訪客可以按門(mén)鈴請(qǐng)求進(jìn)入,由管理員為其放行。</p><p><b>  3.3界面設(shè)計(jì)</b></p><p>  在此次的設(shè)計(jì)中,除了在控制

14、臺(tái)輸出外,我組還添加了對(duì)話框形式,如:</p><p><b>  3.4類(lèi)的設(shè)計(jì)</b></p><p><b>  4詳細(xì)設(shè)計(jì)</b></p><p>  4.1 主要類(lèi)的說(shuō)明</p><p><b>  (一)電子門(mén)類(lèi)</b></p><p>  

15、包含屬性:電子門(mén)的開(kāi)啟和關(guān)閉狀態(tài)</p><p>  public final static String OPEN = "門(mén)已開(kāi)啟"; </p><p>  public final static String CLOSE = "門(mén)已關(guān)閉"; </p><p>  private String state = CLOS

16、E; // 電子門(mén)狀態(tài)</p><p>  包含方法:開(kāi)啟電子門(mén) 關(guān)閉電子門(mén)</p><p>  public void open(){</p><p>  this.setState(OPEN);}</p><p>  public void open(){</p><p>  this.setState(clo

17、se);}</p><p><b>  (二)輸入設(shè)備類(lèi)</b></p><p>  包含屬性:用戶(hù)輸入的認(rèn)證信息,密碼、胸卡信息、指紋信息等</p><p>  private String input = null;</p><p>  包含方法:輸入設(shè)備接受認(rèn)證信息</p><p>  pu

18、blic void input(){}</p><p>  public String getInput() {</p><p>  return input;}</p><p>  public void setInput(String input) {</p><p>  this.input = input;}</p>&

19、lt;p><b> ?。ㄈ┯?jì)算機(jī)類(lèi)</b></p><p>  包含屬性:計(jì)算機(jī)存儲(chǔ)的雇員密碼,胸卡號(hào),指紋</p><p>  private String[] passWord = new String[100];</p><p>  private String[] card = new String[100];

20、 </p><p>  private String[] fingerMark = new String[100];</p><p><b>  包含方法:</b></p><p> ?。?)無(wú)參構(gòu)造方法,創(chuàng)建一組測(cè)試用密碼、指紋、卡號(hào)</p><p>  public Computer(){} </p>

21、<p>  (2)驗(yàn)證密碼,胸卡號(hào),指紋</p><p>  public boolean validate(String passStr){}</p><p> ?。?)增加新的密碼,胸卡號(hào),指紋</p><p>  public void addPassWord(int passWord) {}</p><p>  public

22、 void addCard(String card) {}</p><p>  public void addFingerMark(String fingerMark) {}</p><p><b> ?。ㄋ模╅T(mén)禁系統(tǒng)類(lèi)</b></p><p>  包含屬性:電子門(mén)對(duì)象、計(jì)算機(jī)對(duì)象、輸入設(shè)備對(duì)象、門(mén)鈴、開(kāi)門(mén)信號(hào)、日志對(duì)象</p>

23、<p>  private Door door; // 門(mén)禁系統(tǒng)的電子門(mén)</p><p>  private Computer computer; // 門(mén)禁系統(tǒng)的計(jì)算機(jī)</p><p>  private InputEquip inputEquip; // 門(mén)禁系統(tǒng)的輸入設(shè)備</p><p>  privat

24、e int ring; </p><p>  private int openSign; </p><p>  private Logger logger; </p><p><b>  包含方法:工作</b></p><p>  pub

25、lic void work()</p><p> ?。ㄎ澹┰L客 雇員 管理員類(lèi)</p><p>  包含屬性:人員姓名,日志對(duì)象</p><p><b>  包含方法:</b></p><p> ?。?)訪客:初始化 訪客按鈴</p><p>  public Guest(String

26、name){}</p><p>  public void pressRing(ControlSys controlSys){}</p><p> ?。?)雇員:繼承Guest類(lèi) 輸入驗(yàn)證信息</p><p>  public Employee(String name) {super(name);}</p><p>  public v

27、oid input(ControlSys controSys) {}</p><p>  (3)管理員:繼承Employee類(lèi) 工作方法</p><p>  public Admin(String name) {super(name);}</p><p>  管理員的工作方法1,通過(guò)控制室的按鈕開(kāi)啟電子門(mén)</p><p>  publi

28、c void work(ControlSys controlSys) {}</p><p>  管理員的工作方法2,監(jiān)控門(mén)鈴</p><p>  public void work(ControlSys controlSys, Guest guest) {}</p><p>  管理員的工作方法3,錄入驗(yàn)證信息</p><p>  public

29、 void work(ControlSys controlSys, String valType, String valStr) {}</p><p><b>  (六)驗(yàn)證接口類(lèi)</b></p><p>  包含屬性:系統(tǒng)已有的信息和需要驗(yàn)證的信息</p><p>  private Object[] inner;

30、</p><p>  private Object input; </p><p><b>  包含方法:</b></p><p> ?。?)驗(yàn)證接口定義驗(yàn)證方法</p><p>  public boolean check(); // 定義驗(yàn)證方法</p><p> ?。?)編寫(xiě)默認(rèn)的實(shí)現(xiàn)

31、類(lèi):GenericValidate</p><p>  private Object[] inner; // 系統(tǒng)保存的身份信息</p><p>  private Object input; // 需要驗(yàn)證的身份信息</p><p> ?。?)具體的驗(yàn)證類(lèi)繼承默認(rèn)的實(shí)現(xiàn)類(lèi)</p><p>  public class PassW

32、ordVld extends GenericValidate{}</p><p>  public class FingerMarkVld extends GenericValidate{}</p><p>  public class CardVld extends GenericValidate {}</p><p><b> ?。ㄆ撸y(cè)試類(lèi)</

33、b></p><p> ?。?)測(cè)試雇員通過(guò)電子門(mén)</p><p>  public class EmployeeTest {</p><p>  public static void main(String[] args){</p><p>  Employee employee = new Employee("雇員

34、a"); // 管理員</p><p>  ControlSys controlSys = new ControlSys(); // 門(mén)禁系統(tǒng)</p><p>  System.out.println("門(mén)禁系統(tǒng)---雇員測(cè)試");</p><p>  System.out.println("********

35、*******************************************");</p><p>  while(true){</p><p>  employee.input(controlSys);</p><p>  controlSys.work();</p><p><b>  }</b>

36、</p><p><b>  }</b></p><p><b>  }</b></p><p> ?。?)綜合測(cè)試類(lèi)-通過(guò)運(yùn)用switch語(yǔ)句選擇進(jìn)入不同的系統(tǒng)</p><p><b>  (1)訪客測(cè)試</b></p><p>  while(tru

37、e){</p><p>  guest.pressRing(controlSys2);</p><p>  admin1.work(controlSys2, guest);</p><p>  controlSys2.work();</p><p>  break;}break;}</p><p><b> 

38、?。?)管理員測(cè)試</b></p><p>  while(true){</p><p>  admin.work(controlSys);</p><p>  controlSys.work();</p><p>  admin.work(controlSys);</p><p>  break; }b

39、reak;}</p><p><b> ?。?)雇員測(cè)試</b></p><p>  switch(num2){</p><p><b>  case 1:</b></p><p>  JOptionPane.showMessageDialog(null,"你選擇以密碼的形式

40、 進(jìn)入?","title",JOptionPane.PLAIN_MESSAGE);</p><p><b>  Break;}</b></p><p><b>  //此處省略代碼</b></p><p>  4.2 主要方法說(shuō)明 </p><p>  

41、(一)接口-Validate</p><p>  public interface Validate {</p><p>  public boolean check();}</p><p>  (二)接口- GenericValidata</p><p>  public GenericValidate(Object[] inner, Ob

42、ject input){</p><p>  this.inner = inner;</p><p>  this.input = input;</p><p><b>  }</b></p><p>  public boolean check() {</p><p>  for(int i=0

43、;i<this.getInner().length;i++){</p><p>  if(this.getInput()!=null&&this.getInput().equals(this.getInner()[i])){</p><p>  return true;</p><p><b>  }}</b></p

44、><p>  return false;</p><p><b>  }</b></p><p> ?。ㄈ┙涌?CardVld</p><p>  public CardVld(Object[] inner, Object input) {</p><p>  super(inner, input)

45、; }</p><p>  public boolean check() {</p><p>  Logger logger = Logger.getLogger(Admin.class.getName());</p><p>  String inputStr = null;</p><p>  if(this.getInput()!=n

46、ull && this.getInner()!=null){</p><p><b>  try{</b></p><p>  inputStr = ((String) this.getInput()).substring(2);</p><p>  }catch(Exception e){</p><p&g

47、t;  logger.debug("胸卡信息采集失?。?quot;+e.getMessage());</p><p>  return false;}//代碼省略 </p><p> ?。ㄋ模┙涌?FingerMarkVld</p><p>  public FingerMarkVld(Object[] inner, Object input) {<

48、;/p><p>  super(inner, input); }</p><p>  public boolean check() {</p><p>  Logger logger = Logger.getLogger(Admin.class.getName());</p><p>  String inputStr = null;</

49、p><p>  if(this.getInput()!=null && this.getInner()!=null){</p><p><b>  try{</b></p><p>  inputStr = ((String) this.getInput()).substring(2);</p><p>  

50、}catch(Exception e){ logger.debug("指紋信息采集失?。?quot;+e.getMessage()); //代碼省略</p><p>  (五)接口- PassWordVld</p><p>  public PassWordVld(Object[] inner, Object input) {</p><p>  su

51、per(inner, input);}</p><p>  public boolean check() {</p><p>  Logger logger = Logger.getLogger(Admin.class.getName());</p><p>  for(int i=0;i<this.getInner().length;i++){</p

52、><p>  int inputInt = 0;</p><p>  int innerInt = 0;</p><p><b>  //代碼省略 </b></p><p>  (六) 驗(yàn)證人員信息</p><p>  public boolean validate(String passStr){&

53、lt;/p><p>  Validate validate = null;</p><p>  String prefix = passStr.substring(0, 2);</p><p>  if(prefix.equals("pa")){</p><p>  validate = new PassWordVld(pas

54、sWord,passStr);</p><p>  return validate.check();</p><p><b>  }</b></p><p>  else if(prefix.equals("ca")){</p><p>  validate = new CardVld(card,pa

55、ssStr);</p><p>  return validate.check();</p><p><b>  } </b></p><p>  else if(prefix.equals("fi")) {</p><p>  validate = new FingerMarkVld(fingerM

56、ark,passStr);</p><p>  return validate.check();</p><p><b>  } else {</b></p><p>  return false;</p><p><b>  }}</b></p><p><b>

57、  (七)門(mén)禁系統(tǒng)工作</b></p><p>  public void work(){</p><p>  if(inputEquip.getInput()!=null){</p><p>  if(inputEquip.getInput().equals("exit")){</p><p>  logge

58、r.info("門(mén)禁系統(tǒng)關(guān)閉");</p><p>  System.exit(0);</p><p><b>  }</b></p><p>  if(computer.validate(inputEquip.getInput())){</p><p>  door.open();

59、 </p><p>  logger.info("<身份驗(yàn)證成功,"+"雇員小偉"+" 通過(guò)電子門(mén)>"); </p><p>  inputEquip.setInput(null); </p><p>  } //省略代碼</p><p>

60、; ?。ò耍┕芾韱T工作方法</p><p>  public void work(ControlSys controlSys) {</p><p>  Scanner scanner = new Scanner(System.in);</p><p>  System.out.print("管理員(" + this.getName() + &qu

61、ot;)按開(kāi)門(mén)按鈕?[y/n]:");</p><p>  String btn = scanner.nextLine();</p><p>  if (btn.equals("y")) {</p><p>  JOptionPane.showMessageDialog(null,"你管理員確定開(kāi)門(mén)嗎?","

62、;title",JOptionPane.PLAIN_MESSAGE);</p><p>  controlSys.setOpenSign(1);</p><p>  controlSys.getLogger().debug("管理員(" + this.getName() + ")按下開(kāi)門(mén)按鈕");</p><p> 

63、 } //省略代碼 </p><p><b>  4.3 程序流程圖</b></p><p>  雇員 訪客</p><p>  否 是</p><p><b>  否</b></p><p

64、><b>  是</b></p><p><b>  5程序測(cè)試分析</b></p><p>  5.1 程序運(yùn)行情況</p><p>  (運(yùn)行時(shí)首先出現(xiàn)對(duì)話框形式)</p><p>  (點(diǎn)擊“確定”,由控制臺(tái)輸出程序結(jié)果)</p><p>  5.2 程序異常處理

65、</p><p>  以下幾處都采用了異常處理的方法,保證程序可正常運(yùn)行</p><p><b> ?。?)驗(yàn)證胸卡:</b></p><p><b>  try{</b></p><p>  inputStr = ((String) this.getInput()).substring(2);&l

66、t;/p><p>  }catch(Exception e){</p><p>  logger.debug("胸卡信息采集失?。?quot;+e.getMessage());</p><p>  return false;</p><p><b>  }</b></p><p>  for

67、(int i=0;i<this.getInner().length;i++){</p><p>  if( inputStr.equals(this.getInner()[i]) ){</p><p>  return true;</p><p><b>  }} }</b></p><p>  return fa

68、lse;</p><p><b>  驗(yàn)證指紋:</b></p><p><b>  try{</b></p><p>  inputStr = ((String) this.getInput()).substring(2);</p><p>  }catch(Exception e){</p

69、><p>  logger.debug("指紋信息采集失敗:"+e.getMessage());</p><p>  return false;</p><p><b>  } </b></p><p>  for(int i=0;i<this.getInner().length;i++){&

70、lt;/p><p>  if( inputStr.equals(this.getInner()[i]) ){</p><p>  return true; } }</p><p><b>  }</b></p><p>  return false; </p><p><

71、b>  驗(yàn)證密碼:</b></p><p><b>  try{</b></p><p>  inputInt= Integer.parseInt( ((String)this.getInput()).substring(2) ); } catch(NumberFormatException e){</p>

72、<p>  logger.debug("密碼不合格:"+e.getMessage());</p><p>  return false;</p><p><b>  }</b></p><p>  if(this.getInner()[i]!=null){</p><p>  innerIn

73、t = Integer.parseInt( (String)(this.getInner()[i]) ); // 取得已有的密碼</p><p><b>  }</b></p><p>  if(innerInt!=0&&inputInt*2==innerInt){ </p><p>  return t

74、rue;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p><b> ?。?)綜合測(cè)試類(lèi):</b>

75、</p><p><b>  try {</b></p><p>  Thread.sleep(5000); // 讓電子門(mén)開(kāi)啟狀態(tài)維持5秒</p><p>  } catch (InterruptedException e) { </p><p>  System.out.println(&

76、quot;**********歡迎使用門(mén)禁系統(tǒng)**********");</p><p><b>  }</b></p><p><b>  6總結(jié)與體會(huì)</b></p><p>  通過(guò)此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了java方面的知識(shí),在設(shè)計(jì)過(guò)程中雖然遇到了一些問(wèn)題,但經(jīng)過(guò)一次又一次的思考,一遍又一遍的檢查

77、終于找出了原因所在,也暴露了前期我在這方面知識(shí)的欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過(guò)親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。</p><p>  在課程設(shè)計(jì)過(guò)程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷進(jìn)取。最終的檢測(cè)調(diào)試環(huán)節(jié),本身就是在踐行“過(guò)而能改,善莫大焉”的知行觀。課程設(shè)計(jì)是一門(mén)專(zhuān)業(yè)課,給了我很多專(zhuān)業(yè)知識(shí)以及專(zhuān)業(yè)技能上的提高,給了我很多的思考空間,讓我感觸很多。是我對(duì)抽象的理論有了具體的認(rèn)識(shí)。通過(guò)這

78、次課程設(shè)計(jì),我熟練應(yīng)用面向?qū)ο蟮奶匦裕悍庋b、繼承、多態(tài);掌握常量的定義和使用(必需的關(guān)鍵字 -- final);熟練應(yīng)用接口解決實(shí)際問(wèn)題;能使用異常處理處理程序中的異常情況;會(huì)使用log4j工具輸出保存日志信息的知識(shí)。</p><p>  另外,在實(shí)踐過(guò)程中,我們學(xué)到了很多東西,不及鞏固了以前學(xué)過(guò)的知識(shí),還學(xué)到了好多的課外的知識(shí)。經(jīng)過(guò)課程設(shè)計(jì),我明白了理論和實(shí)踐相結(jié)合的重要性。實(shí)踐過(guò)程中,也對(duì)團(tuán)隊(duì)精神進(jìn)行了考察,

79、讓我們?cè)诤献髌饋?lái)更加默契,在成功后一起體會(huì)喜悅的心情。團(tuán)結(jié)就是力量,只有相互之間的默契配合才能換來(lái)最完美的結(jié)果。</p><p><b>  參考資料</b></p><p>  張利國(guó).java實(shí)用教程案例 北京:清華大學(xué)出版社,2004.2</p><p>  李尊朝.java語(yǔ)言程序設(shè)計(jì) 北京:中國(guó)鐵道出版社,2003.10</p&

溫馨提示

  • 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)論