Java期末課程設(shè)計-超市進銷存管理系統(tǒng)_第1頁
Java期末課程設(shè)計-超市進銷存管理系統(tǒng)_第2頁
Java期末課程設(shè)計-超市進銷存管理系統(tǒng)_第3頁
Java期末課程設(shè)計-超市進銷存管理系統(tǒng)_第4頁
Java期末課程設(shè)計-超市進銷存管理系統(tǒng)_第5頁
已閱讀5頁,還剩241頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java程序設(shè)計

期末課程設(shè)計報告

題目超市進銷存管理系統(tǒng)

班級:13級信息安全班__________________

學(xué)號:_____________________

姓名:_____________________

成績:_____________________

完成時間:2014年12月

目錄

Notableolcontentsentrieslomrt.

一,需求分析

企業(yè)進銷存管理系統(tǒng)的主要工作,是對企.業(yè)的進貨、銷售和庫存以信息化的方式進行管理,最

大限度的減少各個環(huán)境中可能出現(xiàn)的錯誤,有效減少盲目采購,降低采購成本、合理控制庫存、減

少資金占用并提高市場靈敏度,使企業(yè)能夠合理安排進、銷、存的每個關(guān)鍵步驟,替身企業(yè)市場競

爭力。針對經(jīng)營管理中存在的問題,蘭州華聯(lián)超市對產(chǎn)品的進銷存合理化提出了更高的要求。

通過實際調(diào)查,要求企業(yè)進銷存管理系統(tǒng)具有以下功能。

?界面設(shè)計美觀大方,方便、快捷、操作靈活。

?實現(xiàn)強大的進銷存管理,包括基本信息、進貨、銷售和庫存管理。

?能夠在不同的操作系統(tǒng)下運行,不局限于特定的平臺。

?提供數(shù)據(jù)庫備份與恢復(fù)功能。

?提供庫存盤點功能。

?提供技術(shù)支持的聯(lián)系方式,可以使用郵件進行溝通,或者直接連接到技術(shù)網(wǎng)站。

二,分析與設(shè)計:

⑴功能模塊劃分:

本進銷存管理系統(tǒng)劃分為六人模塊,分別為系統(tǒng)登陸模塊,系統(tǒng)主窗體設(shè)計模塊,進貨單模塊,

銷售單模塊,庫存盤點模塊和數(shù)據(jù)庫備份與恢復(fù)模塊,

⑵數(shù)據(jù)庫結(jié)構(gòu)描述:

企業(yè)進銷存管理系統(tǒng)需要使用數(shù)據(jù)庫存儲和管理進銷存過程中的所有信息,本企業(yè)進銷存管理系

統(tǒng)使用40^§數(shù)據(jù)庫系統(tǒng)作為后臺數(shù)據(jù)庫,數(shù)據(jù)庫名稱為曲工加油於C28。其中包含了14張數(shù)據(jù)表、兩

個視圖。以下是系統(tǒng)主要涉及的六個數(shù)據(jù)庫表:

1.供應(yīng)商信息表:主要用于存儲供應(yīng)商詳細(xì)信息,其結(jié)構(gòu)如下表所示:

User表:

起user

user_id▼user_name▼password▼u_text▼第擊以添加

|E|3金莉婷520默6管理員

]02root123root

*LLo

Handle表:

!安全誓告部分活動內(nèi)宮已被禁用.單擊此處了嶺洋名信也啟用內(nèi)容

表@?

屈handlerecord

曲product.cancle

由productjnuser_time▼user_name▼handle_text■電擊以添加,

I六22:09:38root

曲product.old.record

I六22:11:11root

斗product.outI六22:11:24admin

^3product_out_recordI六22:13:43admin

^9product.retum_l六22:13:53root

I六22:21:04root

Sproduct.scrap

I六22:21:17admin

?product.stockI六22:28:09admin

期scrap.recordI六22:28:14root

I六22:37:51root

留stuff,n

I六23:06:24admin

馬stuff.old.recordI六23:06:50admin

9stuff_qu!tI六23:08:28root

曲stuff.rtock17;23:08:55root

I六23:11:18root

任user

I六23:12:18root

田yield.draw8:28:00ROOT

myiald_cff8:34:33ROOT

曲yield_scrap9:39:40root

9:46:46root

9:47:08root

Product%:

I安戈?分達加內(nèi)FBWM?.?含此處了*曲即aw*=B

23hendle.record

113product.cjrcW

W

?

nproduct^-u?er_naBch^ndle_teit隼擊以索加?

I/

23product.oH.rec<xd|?

uBproducl.e?l|/product」.|pr&toct_c?Iprgucjn,or0mct」:■|pro4uct」i.prgicjv,iprgct」.I八ock_&t■pr?duct_t.I.

|^

S3product_o<_recofd|7>33peoduct.?n-D

|/>

S3product.rftum|74procMict.ID*IprMtet.cllent?|inodi>ct_na*e-Iproduct.fpec?pro4uct.(mlt-product.value?iprMiuctjuke?1stocK.<hte?pr<

33product.“r”|^隆erd?eerer34.OOrtyry06/6/6里期二33

|7>1

112321322342334erte56.00ve10/3/4星期四em

33product_rtock|

1233ase?erasdasd445.00se10/6/6ITOSaft

Z3?<r?P_reccrd?!,12334wer1212342¥67.00ree10/3/4星期四Jk

■'

日tMf.in尸12c432131122311231wrevqr21.00120/6/28星期一ere

33sMf.dd.recocdl32UIUIIUUY23.00UI0o/7/ii星期日on

443YUKLKYUTYTRE78.00PO10/9/8星期三UJ】

3ttvff.QuitIT4

1/1HJ12JKLIKJKSPEC89.00JK0/6/27宗即日KU

國Uuff.Ucck身qveqweseq,①①Q(mào)3QC9eq,Qg“678.00q?eq09/6/9至明二q”

國nngv^ng?ao8。23.00si9/9/30星期三sdt

3jiekJ.drawveoewefsdsdsdsdfsdsdfssdfs23.OOsds0/7/10里期六Mds

,q23Qfdtr>r>we>e%500.003ds10/2/3至期三

aME

33

product.I-product_c,product_n-product.s-product_u:?product_v?products-stock.dat?product.t■電擊以添加?

謝wedsdsd34345121sd)/7/7星期三dfer

32UIUIIUUY23UIU/7/11星期日UYU

443YUKLKYUTYTRE78PO)/9/8星期三UJI

veiwefvoieveifovevewsd123ew)/7/7星期三sds

veoevefsdsdsdsdfsdsdfssdfs23sds‘7/10星期六sds

vcwqcwervqeverqvvewqwerv56verv*7/10星期六sdss

VIDVI3232SDFSSDSDD34DSD)/7/3星期六123DF

vidvsswefsdsveesdsd45sd)/7/7星期三123

vleiwepsdveosvedosdwlsd34sd)/7/9星期五sds

*

0product_oW_reco*d

3product.outproduct-ID-product.:1:?product_naae-product_spe??product.unit-product.valu-prodi>ct_Ba-stock_date?predict

■sdfssdfssdssdfs23sds10/7/9星明五123

Opcoduct_out_record

IDproduct.return

1/

馬p€oduct_;crap1/

守producl.ftock-3

3tcraoreaxd

Stuff表:

13ncdRrecord

stuff.in-□X

13productqncbZ3

IBproductJnstuff.ID?$tuff_nai.stuff.coastuff.peo?cbeck-peo.?stuff.unl?stuff.val?stuff.spe?stuff.col?stuff_pla?stock-date?stul

■sdfdfsdfgdfgsadf23gddsfgsd”0/7/2星期五fsdf

13product.old.mcofd

HJHHJHIUFFDnt45FCWHC.0/7/10星期六CT

ZSprodoct.outvangveofBO>oeVOwoi34sdsowoiSCO)02/5/4星期六121

13prodoct_out_record

Yields:

stuffID?stuff-nan,stuffcoir?6tuffpe。?cbeckAeo:?stuffuni?stuffval?stuffspe,stuffcol?stuffpla?stockdat?stuff.d

yitid.off□

stuff_ID?stuff-na>?stuff.coM:-stuff.pe^:?check_peo-stuff_uni,stuff.val'?stuff.spc-stuff.col?stuff_pla?stock.dat?s

空表等待插入數(shù)據(jù)。

三,系統(tǒng)詳細(xì)設(shè)計文檔:

1.系統(tǒng)流程圖:

⑴系統(tǒng)功能結(jié)構(gòu)圖:

,-

?

士--

H>

firirirrl£Tn1

聯(lián)

退

術(shù)

退

退

調(diào)

統(tǒng)

一I—

一.

1—1一-

⑵系統(tǒng)業(yè)務(wù)流程圖:

[系分腎錄)

-T商品管理I基本資料的增、

刪、改、查等

----M他本資料I--T客戶管理I

維護操作

2

-H供閽管理I

州忸貨]理I______

聯(lián)」,上」E-存盤點I

懷在?午州~~

銷iLn價格調(diào)整?

存小售和理?

管也據(jù)昨備份與恢復(fù)

系—u系統(tǒng)維“I_________密碼修改一

統(tǒng)

~小技術(shù)支持?H退出系統(tǒng)

?「其他?

??(技術(shù)網(wǎng)站|

關(guān)于I

⑶系統(tǒng)中的主要類及功能:

iJlcm公共類:

Hem公共類是對數(shù)據(jù)表最常用的ID和name屬性的封裝,屬于§wina列表,表格,下拉列表

框等組件的賦值。該類重寫了的方法,在該方法中只輸出name屬性。但是在獲取組件的

內(nèi)容時,獲取的是配m類的對象,從該對象中可以獲取ID的屬性,然后通過該屬性到數(shù)據(jù)庫中

獲取唯一的數(shù)據(jù)。

2?數(shù)據(jù)模型公共類:

數(shù)據(jù)模型公共類對應(yīng)著數(shù)據(jù)庫中不同的數(shù)據(jù)表,這些模型將被訪問數(shù)據(jù)庫的Dao類和程序中

各個模塊甚至各個組件使用,數(shù)據(jù)模型是對數(shù)據(jù)表所有字段的封裝,它是純粹的模型類,他也要

重寫10§1加的方法,另外還要重寫儂Mode。方法和equalO方法。它主要用于存貯數(shù)據(jù),并通過相

應(yīng)的配tXXXO方法和§etXXXO實現(xiàn)不同屬性的訪問原則。

31tao公共類:

Dao類實現(xiàn)了數(shù)據(jù)庫的驅(qū)動,連接,關(guān)閉和多個操作數(shù)據(jù)庫的方法,Dao類不需要創(chuàng)建

對象,可以直接調(diào)用類中的所有數(shù)據(jù)庫操作方法。Dao類自定義的主要方法有醐KhliUoflleinHenO

方法,主要是獲取客戶信息,方法的返回值是tKhlnfo的對象,及客戶信息的數(shù)據(jù)模型。

配lGy§lii[o(岷mHem)方法,主要是獲取供應(yīng)商信息,返回值是Gyshilo類的對象,及供應(yīng)商數(shù)據(jù)表

的模型對象。酸版Hemitem)方法,主要用于獲取商品信息,返回值是WhKo類的對象,及商

品數(shù)據(jù)表的數(shù)據(jù)模型。gelLo^in(Stringname.Stringpa§§wonl)方法《主要適用于判斷登錄用戶的用戶

名與密碼是否正確,返回值是boolean類型。]n§en§e川Moff於ellMalnsellMaln)方法,主要是添加銷

售信息到數(shù)據(jù)庫中。restoreOrBa€kup(String§ql)方法,此方法是設(shè)置數(shù)據(jù)庫的模式為單用戶連接模

式,這樣可以避免數(shù)據(jù)庫恢復(fù)或備份時失敗。checKLo細(xì)領(lǐng)WuserMi都雌咽§沏方法,用于判斷

登錄用戶與密碼是否正確。

⑵各個模塊實現(xiàn)方法描述:

1.系統(tǒng)登錄模塊

實現(xiàn)該模塊的主要代碼如下

packagesrc;

Import|ava.awt.Alpha(omposite;

Import|ava.awt.GradientPaint;

importjava.awt.Graphics;

import)ava.awt.Graphl€s2D;

importJava.awt.GridBagConsiralnls;

Importjava.awl.GridBagLayout;

importjava.awt.lmage;

importjava.awl.RenderingHints;

importjava.awl.Toolkil;

Import]ava.awt.event.AciionEvent;

Importjava.awt.event.AclionLislener;

import]ava.awt.event.KeyEvent;

Importjava.awl.evenl.KeyLislener;

importjavax.swing.J(omponenl;

iHportjavax.swing.JFrame;

importJavax.swingjOptionPane;

importjavax.swing.lllManager;

publicclassAddlser{

privatestaticOnalSiringlogoon-“添加用戶”;

privatestaticOnalsiring配肌="添加”;

privatestaticfinalSiring加%"退出”;

privatestaticnnalStringuser="用戶:n;

privatestaticnnalStringpassword="密碼:;

privatestaticnnalString即/絹他片”再次輸入密碼:“;

privateiavax.swingjTextFielduserText=nnD;

privateiavax.swingjPasswordFielduserpwd=null;

privateiavax.swingjPasswordfleldenterpassword=mUl;

privateiavax.swingjPanelji=newjavax.swlngjPaneKK

ffitalstaticlongsena/VersionND=23095851;

puhlicveldpaint(omponent(Graphi€s&{

siver.pajntcomponent(g);

訓(xùn)1§0網(wǎng)ueOKretum;}

Graphics2Dg2d=(Graphics2D)g;

//inirule=Alpha(omposite.SRC_OVER;

AlphaCompositeopaque=Alphatomposite.JTr^

//AlphaCompositeblend=AlphaComposite.getlnstancefrule,0.6f);

//AlphaCompositeset=AlphaComposite.Src;

intwidth=gelWidthO;

intheight=getHeightO;

GradientPaintgradientpaint=new

GradientPaint(O,OJava.awtIolor.^^widlh/2)height/2Java.awt.Color.M^^lalse);

g2d.setComposlte(opaque);

g2d.setPaint(gradientPainO;

g2d.lillRect(0,0,width,heiihl);

g2(l.§elReii(lennaHlnl(Ren(leilngHln代碎4)m?^WRen(leilngHinK物建倒;

)

};

privatelavax.swingjButtonadd=newjavax.swing.jBullon(^4;

privatelavax.swmgjBunoncancie=newjavax.swingjBunon(/^^;

privatejFramelogo.Frame=newjFrame(/^^;

publicAddUserO(

//TIDO自動生成構(gòu)造函數(shù)存根

try{

lilMana配rje〃〃減切窗網(wǎng)ulMana配r.g勿儂的血〃〃附加陽唬X被物%0);

}catck(Exceptionexe){System.^print(exe.getMessage());}

IFrame.4哂的〃刎倒窗"必切勿加騏true);

Toolkittools=logojrame.getToolkitO;

Imagelogo=tools.getlmageC'res/logojpg");

logojrame=newJFrame(W^;

logojrame.setlconlmageaogo);

jp.setlayoul(newGridBaglayoutO);

javax.swing.lmagelconpic=new]avax.swing.lmagelcon(>>res/logol.jpg");

|avax.swing.jlabelpicture=newfavax.swingjlabel(plc);

§eluMoniponem(plclurM,O,GH(lB褪C(m§lrainl§?4剛陋砌圾曲L的而皈l,troe);

javax.swingjlabelusers=newlavax.swlngjLabel(jZf^);

setupComponent(users,0444Jalse);

favax.swlng.jlabelpas=newjavax.swlngjLaDelg徹阪閣;

setupComponenKpas^O^^ttlalse);

javax.swlng.jlabelenpas=newlavax.swing.jlabeK^viM;

setupComponent(enpas3344>lalse);

userText=newjavax.swing.jTextfield(12);

userText.requestFocusO;

userText.addKeylistener(newKeyLislenerO{

pukllcvoldkeyTypedffieyEvente){}

puMlcvoidkeyReleasedffeyEvente){}

pukllcvoidkeyPressedflieyEvente){

U((e.getKeyCharO==KeyEvenl.)&4(userText.getTextO.lriniO!="')){

userpwd.requestFocusO;

)

)

});

setupComponent(userTextyL1444alse);

userpwd=newjavax.swiiig.JPasswordFieId(12);

userpwd.addKeyListener(newKeylistenerfK

puMlcvoidkeyTyped(KeyEvente){}

puMlcvoidkeyPressed(KeyEvente){

U((e.getKeyCharO==KeyEvent.VKjm&&(!

userpwd.getPasswordO.toStringo.trimO.isEmptyO)H

enterpassword.requesiFocusO;

)

else(

userpwd.requestFocus();

}

)

puMlcvoidkeyReleasedffeyEvente){

)

});

setupComponent(userpwd4,2,tlJalse);

enterpassword=newjavax.swingJPasswordHeld(12);

enterpassword.addKeyLlsiener(newKeyllstener(K

pukllcvoidkeyTypedffieyEvente){}

puMlcvoidkeyReleased(KeyEvenle){}

pukllcvoldkeyPresseflffieyEvenle){

//Stringpwd=usen>wd.getPasswor(lotloSlrlngo.trimo:

//Siringenwd=enterDassword.getPasswordO.toStringO.trimO:

U((e.getKeyCharO==KeyEventVKjm&&

((userpwd.getPasswordO.toStringO.lrimO)==(enterpasswor(l.getPasswordO.toSlringO.lrimO))H

add.requestFocusO;

)

elseU((e.gelKeyCharO==(KeyEvenl.VKjNTCBfy&&

((userpwd.getPasswordO.loSlring().trimO)!=(enterpasswor(l.getPasswordO.toStrlngO.lrimO))K

userpwd.setTextC");

emcrpa梵word.scnw");

userpwd.requestFocusO;

)

)

});

setupComponent(enterpassword4y344Jaise);

//logoln=newiavax.swing.lBmtonflogoon):

add.addKeyListener(newKeylistenerO{

puMlcvoidkeyTyped(KeyEvente){}

pukllcvoldkeyReleasedffeyEvente){}

puMlcvoidkeyPressed(KeyEvente){

tf((e.getKey€harO==KeyEvent.VK_ENTER詼

Stringusers=userText.getTextO.(rimO;

Stringpwd=userpwd.getPasswordO.toS1ringO.trlinO;

Stringepwd=enlerpassword.getPasswordO.toStrlngO.trimO;

U(users.lsBnptyOK

javaxsw腿jOpllonPane.血吸前則加如o虬Frame,“必須輸入用戶名!

輸入用戶名“JOlrtionPaiie./B汲砥欣/

userText.requestFocusO;}

K(pwd.isEmptyOH

mvax.§wlnajomioiiPanc.加.端6?teft^loq(LFraine,“必須輸入密碼!“J

輸入密碼"JomonPane.歐砌區(qū)砥以砌;

userpwd.requestFocusO;

)

IKepwd.isEmptyOH

Javax.swingjOptionPane.§howMe$m酗物/o圓崛。事am%”第二個輸入密碼必

須與第一個密碼相同!“,“密碼不一致"JOplionPane,歐砌上序CM砌;

enterpassword.requestFocusO;

)

booleanb=DBDtll./f£izM"seleclfromuserwhere

user_name=n++users+,,n,);

U(b){

javax.§wing.JomionPane.而劭媯wte加磔(logo_FrameJ用戶已經(jīng)存在,請另

夕卜輸入!不能添力口“JOplkrnPane.癡級圈;

userTexi.setTexl(nu);

u§erpw(l.§elTcxK””);

enterpassword.setTextC");

userText.requestFocusO;

)

Intvale=DBUtil.^/FW^'selectusernamefromuserwhere

user_name=,,,+users+,,,,,)+l;

U(vale>OK

Stringsql="insertintouservalues(,M+vale+n,,n+users+',,,,,,+pw(l+',,r;

booleanbo=U§eDB.如曲邳ql);

H(Do)JOirtlonPaiie.施砥logo_Frame,”用戶名添力L成功!”);

}

}

}

});

add.addActionlistener(iiewAclionLisienerO{

publicvoidadionPerformed(ActionEventeH

Stringusers=userText.getTextO.trimO;

Stringpwd=userpwd.getPasswordO.toStrIng().trimO;

Stringepwd=enlerpassword.getPasswordO.toSfringO.trimO;

if(users.isEmptjOK

Javax.swingJomionPane,血哧WefflteMnulL”必須輸入用戶名!“J輸入用戶

名"MulionPane,抽級瞅

userText.requestFocusO;}

n(pwd.lsEmptyOK

javax.§w[睢wmionPane,血砂陽哂次叨硒&null,“必須輸入密碼!輸入密碼

''^^rnURROR_MESSAG^

userpwd.requestFocus();

)

if(epwd.isEmptyOK

Javax.swingjOjrtlonPane.血拗加照物騏null,“第二個輸入密便必須與第一個

密碼相同!“,“密碼不一致"JomioiPanc.掰堿砥M曬;

enterpassword.requestFocusO;

)

booleanD=DBDtil./f£tzM"selectfromuserwhereuser_name=,,,+users+);

?(?{

javax.§wingjOirtionPaiie.施.WeflteMlogo_Frame,”用戶已經(jīng)存在,請另外輸

入!':不能添力『'JOimonPanc,2BW_??砌;

userText.setText(MM);

u§crpw(L§etTexl('''');

enterDassword.serrext("");

userText.requesIFocusO;

}

Intvale=DBUtil.^/^7<"selectuser_namefromuserwhereuser_name='n+users+)+1

il(vale>OK

Stringsql="Insertintouservalues(,,,+vale+',;H+users+,M,,M+pw(l+',T,;

UScDB.如曲/網(wǎng)§q[);

booleanbo=DBDtU.Mi/fX"selectuser_namefromuserwherefd=valeM);

U(hoK

jOplkrnPane.功〃瞪砌如M颯(null,”用戶名添加成功!”);

)

JOplionPane,助。隨則伽徹就絲(null,''用戶名已經(jīng)存在!”);

)

userText.setTexl(,M,);

userpwd.setText(,M,);

enterpassword.setTextC'");

userText.requestFocusO;

)

});

setup(omponent(addt0,4)Lttnie);

//jayax.swlngjBultonexit=newlavax,swlngJButton(logoofi):

cancle.addA€tlonlislener(newAclionListenerfK

DubllcvoidactionPerformed(AcnonEvente2K

logojrame.dlsposeO;

//System.exit(l);

}

});

setupComponent(cancle,t444)tnie);

java.awt.Dlmensiond=tools.getScreenSIzeO;

Intwidth=(IntMd.gelWidthO-350)/2;

Intheight=(MOM.酗fIcl酬0240)/2;

logoJranie.addCip);

logojrame.setAlwaysOnTop(tnie);

logojrame.selLocation(widthyheight);

logo_Frame.selSize(350,240);

logojrame.packO;

logojrame.validateO;

logo_Frame.selVisible(tnie);

}

privatevoMsetupComponent(jComponenlcomponent^lntgridx,lntgrldy.mtgridwidth,Intipadx,boolean

fillK

UnaiGridBagConstrainlsgridBagConstrains=newGridBagConslraintsO;

^ridBa$Conslrains.gridx=gridx;

gridBagConstralns.gridy=如dy;

gridBagConstrains.insets=newJava.awl.in砥§(5,3,3,3);

Mttridwidth>l)

gridBagConstrains.gridwidth=gridwidth;

Udpadx>0)

gridBagC

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論