C++課程設計:店鋪電子產(chǎn)品管理系統(tǒng)_第1頁
C++課程設計:店鋪電子產(chǎn)品管理系統(tǒng)_第2頁
C++課程設計:店鋪電子產(chǎn)品管理系統(tǒng)_第3頁
C++課程設計:店鋪電子產(chǎn)品管理系統(tǒng)_第4頁
C++課程設計:店鋪電子產(chǎn)品管理系統(tǒng)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、.課 程 設 計 報 告 課程名稱:面向?qū)ο蟪绦蛟O計C+ 設計題目:店鋪電子產(chǎn)品管理系統(tǒng) 專 業(yè):計算機科學與技術 姓 名: 學 號: 指導教師:李 曉 虹2015 年 1 月 10 日1、 需求分析 此程序面向的對象主要是電子產(chǎn)品商鋪,針對于客戶對電子產(chǎn)品的需求量,店主可以對店鋪的產(chǎn)品管理更加方便,更加方便檢閱產(chǎn)品的剩余量,以便于準確的給與用戶所需產(chǎn)品的準確信息。如此就更加便于產(chǎn)品的銷售。2、 總體設計2.1、C+語言編程 利用C+語言編寫模板,并利用MFC建立與數(shù)據(jù)庫的連接。圖2.1-1圖2.1-22.2、數(shù)據(jù)庫后臺支持 數(shù)據(jù)庫內(nèi)建立需要用到的三個表格:dbo.classify、dbo.d

2、epartment、dbo.equipment。(表內(nèi)內(nèi)容僅為參考)表dbo.classify:表2.2.1表dbo.department:表2.2.2表dbo.equipment:表2.2.33、 詳細設計3.1、查詢電子產(chǎn)品型號及庫存量圖3.1-1具體代碼如下:/ Classify.cpp : implementation file/#include "stdafx.h"#include "ems.h"#include "Classify.h"#include "Dialog3.h"#include "

3、;Dialog6.h"#include "Dialog7.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CClassifyIMPLEMENT_DYNCREATE(CClassify, CRecordView)CClassify:CClassify(): CRecordView(CClassify:IDD)/AFX_DATA_INIT(CClassify)m_pSet = NULL;/AFX_DATA_INITCClassify:C

4、Classify()if (m_pSet)delete m_pSet;void CClassify:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CClassify)DDX_Control(pDX, IDC_LIST1, m_Grid3);DDX_FieldText(pDX, IDC_EDIT_age3, m_pSet->m_Eno, m_pSet);DDX_FieldText(pDX, IDC_EDIT_class3, m_pSet->m_Cclass, m_pSet

5、);DDX_FieldText(pDX, IDC_EDIT_id3, m_pSet->m_Cuseage, m_pSet);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CClassify, CRecordView)/AFX_MSG_MAP(CClassify)ON_BN_CLICKED(IDC_BUTTON_inquire3, OnBUTTONinquire3)ON_BN_CLICKED(IDC_BUTTON_alter3, OnBUTTONalter3)ON_BN_CLICKED(IDC_BUTTON_add3, OnBUTTONadd3)ON_BN_CLICKED(

6、IDC_BUTTON_delete3, OnBUTTONdelete3)ON_BN_CLICKED(IDC_BUTTON_refresh3, OnBUTTONrefresh3)ON_BN_CLICKED(IDC_BUTTON_scan3, OnBUTTONscan3)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CClassify diagnostics#ifdef _DEBUGvoid CClassify:AssertValid() constCRecordView:AssertValid();void CClassify:Dump(CDumpContext& dc)

7、 constCRecordView:Dump(dc);#endif /_DEBUG/ CClassify message handlersCRecordset* CClassify:OnGetRecordset()if (m_pSet != NULL)return m_pSet;m_pSet = new Classify_set(NULL);m_pSet->Open();return m_pSet;Classify_set* CClassify:GetRecordset()Classify_set* pData = (Classify_set*) OnGetRecordset();ASS

8、ERT(pData = NULL | pData->IsKindOf(RUNTIME_CLASS(Classify_set);return pData;void CClassify:OnInitialUpdate()BeginWaitCursor();GetRecordset();CRecordView:OnInitialUpdate();if (m_pSet->IsOpen()CString strTitle = m_pSet->m_pDatabase->GetDatabaseName();CString strTable = m_pSet->GetTableN

9、ame();if (!strTable.IsEmpty()strTitle += _T(":") + strTable;GetDocument()->SetTitle(strTitle);EndWaitCursor();void CClassify:OnBUTTONinquire3() Dialog6 search;/dlg6.DoModal();UpdateData(TRUE);if(search.DoModal()=IDOK)m_pSet->Edit();search.m_11.TrimLeft();/search.m_2.TrimLeft();if(m_p

10、Set->IsOpen()m_pSet->Close();if(!(search.m_11.IsEmpty()m_pSet->m_strFilter.Format("Eno='%s'",search.m_11);/*if(!(search.m_1.IsEmpty()m_pSet->m_strFilter.Format("Sname='%s'",search.m_2);*/m_pSet->Open();if(!m_pSet->IsEOF()m_pSet->Requery();Upda

11、teData(FALSE);OnInitialUpdate();elseMessageBox("沒有找到!");void CClassify:OnBUTTONalter3() Dialog7 dlg7;/Dialog6 dlg6;OnBUTTONinquire3();dlg7.m_id111=m_pSet->m_Eno;dlg7.m_class111=m_pSet->m_Cclass;dlg7.m_age111=m_pSet->m_Cuseage;if(dlg7.DoModal()=IDOK)m_pSet->Edit();m_pSet->m_E

12、no=dlg7.m_id111;m_pSet->m_Cclass=dlg7.m_class111;m_pSet->m_Cuseage=dlg7.m_age111;m_pSet->Update();UpdateData(FALSE);m_pSet->m_strFilter.Format("Eno!='0000'");if(!m_pSet->IsEOF()m_pSet->Requery();UpdateData(FALSE);void CClassify:OnBUTTONadd3() Dialog7 dlg;if (dlg.D

13、oModal()=IDOK)/m_pSet->Open();m_pSet->AddNew();m_pSet->m_Eno=dlg.m_id111;m_pSet->m_Cclass=dlg.m_class111;m_pSet->m_Cuseage=dlg.m_age111;m_pSet->Update();m_pSet->Requery();void CClassify:OnBUTTONdelete3() OnBUTTONinquire3();Dialog3 dlg3;if(dlg3.DoModal()=IDOK)CRecordsetStatus sta

14、tus;m_pSet->GetStatus(status);m_pSet->Delete();if (status.m_lCurrentRecord=0)m_pSet->MoveNext();elsem_pSet->MoveFirst();UpdateData(FALSE);void CClassify:OnBUTTONrefresh3() Dialog7 dlg7;dlg7.m_id111=m_pSet->m_Eno;dlg7.m_class111=m_pSet->m_Cclass;dlg7.m_age111=m_pSet->m_Cuseage;if

15、 (dlg7.DoModal()=IDOK)m_pSet->Edit();m_pSet->m_Eno=dlg7.m_id111;m_pSet->m_Cclass=dlg7.m_class111;m_pSet->m_Cuseage=dlg7.m_age111;m_pSet->Update();UpdateData(FALSE);void CClassify:OnBUTTONscan3() CString s1; s1.Format("%f",m_pSet->m_Cuseage);/類型轉(zhuǎn)換 /s2.Format("%d"

16、,m_pSet->m_Esum);while(!m_pSet->IsEOF()m_pSet->MoveNext();m_pSet->GetRecordCount();m_pSet->MoveFirst();int i=0;m_Grid3.DeleteAllItems();m_Grid3.InsertItem(i,"");m_Grid3.SetItemText(i+,0,"設備編號");m_Grid3.InsertItem(i,"");m_Grid3.SetItemText(i+,0,"設備類型&

17、quot;);m_Grid3.InsertItem(i,"");m_Grid3.SetItemText(i+,0,"使用年限");while(!m_pSet->IsEOF()m_Grid3.InsertItem(i,"");m_Grid3.SetItemText(i+,0,m_pSet->m_Eno);m_Grid3.InsertItem(i,"");m_Grid3.SetItemText(i+,0,m_pSet->m_Cclass);m_Grid3.InsertItem(i,"&quo

18、t;);m_Grid3.SetItemText(i+,0,s1);m_pSet->MoveNext();m_pSet->MoveFirst();3.2、查詢電子產(chǎn)品具體信息圖3.2-1具體代碼如下:/ emsView.cpp : implementation of the CEmsView class/#include "stdafx.h"#include "ems.h"#include "emsSet.h"#include "emsDoc.h"#include "emsView.h"

19、; #include "Dialog1.h"#include "Dialog2.h"#include "Dialog3.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CEmsViewIMPLEMENT_DYNCREATE(CEmsView, CRecordView)BEGIN_MESSAGE_MAP(CEmsView, CRecordView)/AFX_MSG_MAP(CEmsView)ON_BN_C

20、LICKED(IDC_BUTTON_scan, OnBUTTONscan)ON_BN_CLICKED(IDC_BUTTON_inquire, OnBUTTONinquire)ON_BN_CLICKED(IDC_BUTTON_alter, OnBUTTONalter)ON_BN_CLICKED(IDC_BUTTON_add, OnBUTTONadd)ON_BN_CLICKED(IDC_BUTTON_delete, OnBUTTONdelete)ON_BN_CLICKED(IDC_BUTTON_refresh, OnBUTTONrefresh)/AFX_MSG_MAP/ Standard prin

21、ting commandsON_COMMAND(ID_FILE_PRINT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView:OnFilePrintPreview)END_MESSAGE_MAP()/ CEmsView construction/destructionCEmsView:CEmsView(): CRecordView(CEmsView:IDD)/AFX_DATA_INIT(CE

22、msView)m_pSet = NULL;/AFX_DATA_INIT/ TODO: add construction code hereCEmsView:CEmsView()void CEmsView:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(CEmsView)DDX_Control(pDX, IDC_LIST1, m_Grid1);DDX_FieldText(pDX, IDC_EDIT_department, m_pSet->m_Did, m_pSet);DDX_Fi

23、eldText(pDX, IDC_EDIT_name, m_pSet->m_Ename, m_pSet);DDX_FieldText(pDX, IDC_EDIT_no, m_pSet->m_Eno, m_pSet);DDX_FieldText(pDX, IDC_EDIT_outdate, m_pSet->m_Eoutdate, m_pSet);DDX_FieldText(pDX, IDC_EDIT_sum, m_pSet->m_Esum, m_pSet);DDX_FieldText(pDX, IDC_EDIT_price, m_pSet->m_Eprice, m_

24、pSet);/AFX_DATA_MAPBOOL CEmsView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CRecordView:PreCreateWindow(cs);void CEmsView:OnInitialUpdate()m_pSet = &GetDocument()->m_emsSet;CRecordView:OnInitialUpdate();ResizePar

25、entToFit();/ CEmsView printingBOOL CEmsView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CEmsView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add extra initialization before printingvoid CEmsView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo*

26、 /*pInfo*/)/ TODO: add cleanup after printing/ CEmsView diagnostics#ifdef _DEBUGvoid CEmsView:AssertValid() constCRecordView:AssertValid();void CEmsView:Dump(CDumpContext& dc) constCRecordView:Dump(dc);CEmsDoc* CEmsView:GetDocument() / non-debug version is inlineASSERT(m_pDocument->IsKindOf(R

27、UNTIME_CLASS(CEmsDoc);return (CEmsDoc*)m_pDocument;#endif /_DEBUG/ CEmsView database supportCRecordset* CEmsView:OnGetRecordset()return m_pSet;/ CEmsView message handlersvoid CEmsView:OnBUTTONscan() CString s1,s2; s1.Format("%f",m_pSet->m_Eprice);/類型轉(zhuǎn)換 s2.Format("%d",m_pSet-&g

28、t;m_Esum);while(!m_pSet->IsEOF()m_pSet->MoveNext();m_pSet->GetRecordCount();m_pSet->MoveFirst();int i=0;m_Grid1.DeleteAllItems();m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"設備編號");m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"設備名稱");m_G

29、rid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"設備價格");m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"設備數(shù)量");m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"使用部門");m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,"出廠日

30、期");while(!m_pSet->IsEOF()m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,m_pSet->m_Eno);m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,m_pSet->m_Ename);m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,s1);m_Grid1.InsertItem(i,"");m_Grid1.S

31、etItemText(i+,0,s2); m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,m_pSet->m_Did);m_Grid1.InsertItem(i,"");m_Grid1.SetItemText(i+,0,m_pSet->m_Eoutdate);m_pSet->MoveNext();m_pSet->MoveFirst();void CEmsView:OnBUTTONinquire() Dialog1 search;/dlg6.DoModal();UpdateData

32、(TRUE);if(search.DoModal()=IDOK)m_pSet->Edit();search.m_id1.TrimLeft();/search.m_2.TrimLeft();if(m_pSet->IsOpen()m_pSet->Close();if(!(search.m_id1.IsEmpty()m_pSet->m_strFilter.Format("Eno='%s'",search.m_id1);/*if(!(search.m_1.IsEmpty()m_pSet->m_strFilter.Format("

33、;Sname='%s'",search.m_2);*/m_pSet->Open();if(!m_pSet->IsEOF()m_pSet->Requery();UpdateData(FALSE);OnInitialUpdate();elseMessageBox("沒有找到!");void CEmsView:OnBUTTONalter() Dialog2 dlg2;/Dialog6 dlg6;OnBUTTONinquire();dlg2.m_no11=m_pSet->m_Eno;dlg2.m_name11=m_pSet->

34、m_Ename;dlg2.m_price11=m_pSet->m_Eprice;dlg2.m_sum11=m_pSet->m_Esum;dlg2.m_department11=m_pSet->m_Did;dlg2.m_outdate11=m_pSet->m_Eoutdate;if(dlg2.DoModal()=IDOK)m_pSet->Edit();m_pSet->m_Eno=dlg2.m_no11;m_pSet->m_Ename=dlg2.m_name11;m_pSet->m_Eprice=dlg2.m_price11;m_pSet->m

35、_Esum=dlg2.m_sum11;m_pSet->m_Did=dlg2.m_department11;m_pSet->m_Eoutdate=dlg2.m_outdate11;m_pSet->Update();UpdateData(FALSE);m_pSet->m_strFilter.Format("Eno!='0000'");if(!m_pSet->IsEOF()m_pSet->Requery();UpdateData(FALSE);void CEmsView:OnBUTTONadd() Dialog2 dlg;if

36、(dlg.DoModal()=IDOK)/m_pSet->Open();m_pSet->AddNew();m_pSet->m_Eno=dlg.m_no11;m_pSet->m_Ename=dlg.m_name11;m_pSet->m_Eprice=dlg.m_price11;m_pSet->m_Esum=dlg.m_sum11;m_pSet->m_Did=dlg.m_department11;m_pSet->m_Eoutdate=dlg.m_outdate11;m_pSet->Update();m_pSet->Requery();vo

37、id CEmsView:OnBUTTONdelete() OnBUTTONinquire();Dialog3 dlg3;if(dlg3.DoModal()=IDOK)CRecordsetStatus status;m_pSet->GetStatus(status);m_pSet->Delete();if (status.m_lCurrentRecord=0)m_pSet->MoveNext();elsem_pSet->MoveFirst();UpdateData(FALSE);void CEmsView:OnBUTTONrefresh() Dialog2 dlg2;dl

38、g2.m_no11=m_pSet->m_Eno;dlg2.m_name11=m_pSet->m_Ename;dlg2.m_price11=m_pSet->m_Eprice;dlg2.m_sum11=m_pSet->m_Esum;dlg2.m_department11=m_pSet->m_Did;dlg2.m_outdate11=m_pSet->m_Eoutdate;if (dlg2.DoModal()=IDOK)m_pSet->Edit();m_pSet->m_Eno=dlg2.m_no11;m_pSet->m_Ename=dlg2.m_n

39、ame11;m_pSet->m_Eprice=dlg2.m_price11;m_pSet->m_Esum=dlg2.m_sum11;m_pSet->m_Did=dlg2.m_department11;m_pSet->m_Eoutdate=dlg2.m_outdate11;m_pSet->Update();UpdateData(FALSE);3.3、查詢商鋪不同負責區(qū)的管理人員信息圖3.3-1具體代碼如下:/ Department1.cpp : implementation file/#include "stdafx.h"#include &qu

40、ot;ems.h"#include "Department1.h"#include "Dialog3.h"#include "Dialog4.h"#include "Dialog5.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ Department1IMPLEMENT_DYNCREATE(Department1, CRecordView)Department1:Depar

41、tment1(): CRecordView(Department1:IDD)/AFX_DATA_INIT(Department1)m_pSet = NULL;/AFX_DATA_INITDepartment1:Department1()if (m_pSet)delete m_pSet;void Department1:DoDataExchange(CDataExchange* pDX)CRecordView:DoDataExchange(pDX);/AFX_DATA_MAP(Department1)DDX_Control(pDX, IDC_LIST1, m_Grid2);DDX_FieldTe

42、xt(pDX, IDC_EDIT_departmentid, m_pSet->m_Did, m_pSet);DDX_FieldText(pDX, IDC_EDIT_departmentname, m_pSet->m_Dname, m_pSet);DDX_FieldText(pDX, IDC_EDIT_principal, m_pSet->m_Dprincipal, m_pSet);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(Department1, CRecordView)/AFX_MSG_MAP(Department1)ON_BN_CLICKED(IDC_

43、BUTTON_alter1, OnBUTTONalter1)ON_BN_CLICKED(IDC_BUTTON_inquire1, OnBUTTONinquire1)ON_BN_CLICKED(IDC_BUTTON_add1, OnBUTTONadd1)ON_BN_CLICKED(IDC_BUTTON_delete1, OnBUTTONdelete1)ON_BN_CLICKED(IDC_BUTTON_refresh1, OnBUTTONrefresh1)ON_BN_CLICKED(IDC_BUTTON_scan1, OnBUTTONscan1)/AFX_MSG_MAPEND_MESSAGE_MA

44、P()/ Department1 diagnostics#ifdef _DEBUGvoid Department1:AssertValid() constCRecordView:AssertValid();void Department1:Dump(CDumpContext& dc) constCRecordView:Dump(dc);#endif /_DEBUG/ Department1 message handlersCRecordset* Department1:OnGetRecordset()if (m_pSet != NULL)return m_pSet;m_pSet = n

45、ew Department_set(NULL);m_pSet->Open();return m_pSet;Department_set* Department1:GetRecordset()Department_set* pData = (Department_set*) OnGetRecordset();ASSERT(pData = NULL | pData->IsKindOf(RUNTIME_CLASS(Department_set);return pData;void Department1:OnInitialUpdate()BeginWaitCursor();GetReco

46、rdset();CRecordView:OnInitialUpdate();if (m_pSet->IsOpen()CString strTitle = m_pSet->m_pDatabase->GetDatabaseName();CString strTable = m_pSet->GetTableName();if (!strTable.IsEmpty()strTitle += _T(":") + strTable;GetDocument()->SetTitle(strTitle);EndWaitCursor();void Departme

47、nt1:OnBUTTONalter1() Dialog4 dlg4;/Dialog6 dlg6;OnBUTTONinquire1();dlg4.m_departmentid11=m_pSet->m_Did;dlg4.m_departmentname11=m_pSet->m_Dname;dlg4.m_principal11=m_pSet->m_Dprincipal;if(dlg4.DoModal()=IDOK)m_pSet->Edit();m_pSet->m_Did=dlg4.m_departmentid11;m_pSet->m_Dname=dlg4.m_de

48、partmentname11;m_pSet->m_Dprincipal=dlg4.m_principal11;m_pSet->Update();UpdateData(FALSE);m_pSet->m_strFilter.Format("Did!='0000'");if(!m_pSet->IsEOF()m_pSet->Requery();UpdateData(FALSE);void Department1:OnBUTTONinquire1() Dialog5 search;/dlg6.DoModal();UpdateData(TR

49、UE);if(search.DoModal()=IDOK)m_pSet->Edit();search.m_findid.TrimLeft();/search.m_2.TrimLeft();if(m_pSet->IsOpen()m_pSet->Close();if(!(search.m_findid.IsEmpty()m_pSet->m_strFilter.Format("Did='%s'",search.m_findid);/*if(!(search.m_1.IsEmpty()m_pSet->m_strFilter.Format

50、("Sname='%s'",search.m_2);*/m_pSet->Open();if(!m_pSet->IsEOF()m_pSet->Requery();UpdateData(FALSE);OnInitialUpdate();elseMessageBox("沒有找到!");void Department1:OnBUTTONadd1() Dialog4 dlg;if (dlg.DoModal()=IDOK)/m_pSet->Open();m_pSet->AddNew();m_pSet->m_Did=dlg.m_departmentid11;m_pSet->m_Dname=dlg.m_departmentname11;m_pSet->m_Dprincipal=dlg.m_principal11;m_pSet->Update();m_pSet->Requery();void Department1:OnBUTTONdelete1() OnBUTTONinquire1();Dialog3 dlg3;if(dlg3.DoModal()=IDOK)CRecordsetStatus

溫馨提示

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

評論

0/150

提交評論