版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p><b> 一、引言2</b></p><p><b> 二 、需求分析3</b></p><p> ?。ǘ┛尚行苑治?</p><p> ?。ㄈ┕δ苄枨蠓治?</p><p>
2、?。ㄋ模╅_(kāi)發(fā)環(huán)境需求5</p><p><b> 三、系統(tǒng)設(shè)計(jì)5</b></p><p> ?。ㄒ唬┫到y(tǒng)功能模塊圖5</p><p> (二)系統(tǒng)活動(dòng)圖7</p><p> (三)系統(tǒng)用例圖8</p><p><b> 四、數(shù)據(jù)庫(kù)設(shè)計(jì)9</b></p
3、><p> ?。ㄒ唬〦-R圖模型9</p><p> ?。ǘ?shù)據(jù)庫(kù)模型圖10</p><p> 五、系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)11</p><p> ?。ㄒ唬?shù)據(jù)庫(kù)表設(shè)計(jì)11</p><p> ?。ǘ┣芭_(tái)主頁(yè)面的搭建14</p><p> ?。ㄈ┖笈_(tái)的主框架的搭建15</p>
4、<p> (四)后臺(tái)的主要基本功能與實(shí)現(xiàn)15</p><p><b> 六、系統(tǒng)測(cè)試27</b></p><p><b> 七、小結(jié)28</b></p><p><b> 八、參考文獻(xiàn)28</b></p><p> 摘要:在Internet飛速發(fā)
5、展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們學(xué)習(xí)、工作、生活等各個(gè)方面發(fā)揮著重要的作用。因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易見(jiàn),它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。</p><p> 本文詳細(xì)介紹了寵物網(wǎng)站的功能和結(jié)構(gòu),并論證了網(wǎng)站的設(shè)計(jì)方案,簡(jiǎn)要介紹了使用的開(kāi)發(fā)工具M(jìn)icrosoft Visual Studio 2008以及涉及到的等相關(guān)
6、技術(shù),并以在線文章發(fā)布子系統(tǒng)開(kāi)發(fā)的順序詳細(xì)介紹了系統(tǒng)分析,系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施的開(kāi)發(fā)過(guò)程, 然后,展示了子系統(tǒng)所實(shí)現(xiàn)的功能及部分界面在介紹某些關(guān)鍵技術(shù)的同時(shí),還給出了關(guān)鍵源程序代碼。最后對(duì)本系統(tǒng)的不足和本人在開(kāi)發(fā)中的認(rèn)識(shí)和感想進(jìn)行了總結(jié)。</p><p> 關(guān)鍵詞:互聯(lián)網(wǎng); 數(shù)據(jù)庫(kù); 寵物網(wǎng)站</p><p><b> 一、引言</b></p><
7、;p> 某寵物公司自創(chuàng)始以來(lái)不斷的發(fā)展壯大,業(yè)務(wù)也越來(lái)越繁忙,雇傭數(shù)量較多的工作人員同時(shí)也難以避免客戶在購(gòu)買寵物時(shí)造成寵物翻閱損耗等一系列費(fèi)用,當(dāng)今網(wǎng)絡(luò)所顯現(xiàn)的超常信息量、無(wú)時(shí)空局限、傳遞快捷、操作靈活等優(yōu)點(diǎn)吸引著越來(lái)越多網(wǎng)民,同時(shí)隨著經(jīng)濟(jì)的發(fā)展,人民生活節(jié)奏也越來(lái)越快,所以網(wǎng)上購(gòu)物吸引了越來(lái)越多的人。寵物網(wǎng)正是為了滿足這種需求而研發(fā)的中小型電子商務(wù)系統(tǒng) 。</p><p> 某寵物網(wǎng)系統(tǒng)是基于B/S模
8、式的小型電子商務(wù)系統(tǒng),能夠滿足中小型寵物商店的網(wǎng)上銷售寵物用品的需要。搭建寵物網(wǎng)極為簡(jiǎn)單只需要一臺(tái)PC機(jī),一根網(wǎng)線,即可進(jìn)行網(wǎng)上交易。寵物網(wǎng)基本上滿足了中小型寵物商店的網(wǎng)上銷售需求,其主要功能包括寵物展示、寵物用品展示、購(gòu)物車、收銀臺(tái)、會(huì)員管理、訂單查詢、新聞瀏覽、寵物護(hù)養(yǎng)常識(shí)瀏覽、寵物管理、用戶管理、訂單管理。寵物展示主要實(shí)現(xiàn)寵物的重點(diǎn)推薦、明星寵物、寵物分類查詢、寵物用品銷售排行榜等功能;購(gòu)物車功能給每個(gè)用戶建立了一個(gè)相對(duì)應(yīng)的唯一存
9、放選中寵物籍存放的空間;收銀臺(tái)提供了客戶付賬的功能,當(dāng)顧客決定購(gòu)買購(gòu)物車?yán)锏膶櫸锛畷r(shí),向收銀臺(tái)提交訂單;會(huì)員管理為每一位注冊(cè)用戶提供了注冊(cè)、登陸;后臺(tái)的寵物管理是為管理員提供修改、添加刪除寵物信息的功能;用戶管理實(shí)現(xiàn)的功能有查看用戶信息、消費(fèi)總額;訂單管理主要負(fù)責(zé)查看客戶的發(fā)貨執(zhí)行情況;新聞管理方便管理員向首頁(yè)新聞頁(yè)面里添加公司新聞;護(hù)養(yǎng)常識(shí)是為了方便會(huì)員及大眾更好的飼養(yǎng)寵物、相應(yīng)的減少寵物不必要的傷害等。某寵物網(wǎng)的設(shè)計(jì)充分考慮了用戶的
10、視覺(jué)感受,努力做到界面簡(jiǎn)單明了,功能相對(duì)完善。</p><p> 后臺(tái)開(kāi)發(fā)充分考慮了使用軟件的用戶可能對(duì)計(jì)算機(jī)軟件并不是很了解,所以在設(shè)計(jì)的過(guò)程中添加了許多必要的提示和說(shuō)明??傊硨櫸锞W(wǎng)將以.Net技術(shù)為基礎(chǔ),實(shí)現(xiàn)寵物信息的發(fā)布、購(gòu)物、用戶管理、寵物后臺(tái)管理等一系列的功能,力爭(zhēng)成為廣大客戶帶來(lái)更多的便利,為某寵物公司帶來(lái)更高的銷售額。</p><p><b> 二 、需求分析
11、</b></p><p><b> ?。ㄒ唬╉?xiàng)目背景</b></p><p> 寵物正在成為不少家庭里的新成員。隨著養(yǎng)寵物的家庭不斷增多,寵物經(jīng)濟(jì)也越來(lái)越受人關(guān)注。 目前從養(yǎng)寵物的數(shù)量和消費(fèi)能力上看,北京、上海、廣州、重慶和武漢已經(jīng)成為我國(guó)五大“寵物城市”,在這些城市。而天津、南京、杭州、深圳、成都等城市,寵物普及程度也相當(dāng)高。不少業(yè)內(nèi)人士表示,隨
12、著日前頒布的《寵物條例》中免去每年寵物年檢費(fèi)用的政策出臺(tái)后,可能會(huì)有更多人加入養(yǎng)寵物的行列,中國(guó)寵物市場(chǎng)的潛力仍待挖掘。 如此大的市場(chǎng)自然吸引了眾商家的眼球,圍繞“寵物賺錢”(指寵物交易本身)和“賺寵物的錢”這兩個(gè)主題,市場(chǎng)可提供的項(xiàng)目越來(lái)越多,為寵物衣食住行、生老病死支出的費(fèi)用也在逐年增加,個(gè)別已經(jīng)面臨服務(wù)升級(jí)的項(xiàng)目收費(fèi)更是高得驚人。由于飼養(yǎng)寵物是一個(gè)循環(huán)消費(fèi)的過(guò)程,消費(fèi)者需要不停地支出,因此寵物產(chǎn)業(yè)成為投資者非??粗械臒狳c(diǎn)行
13、業(yè)。</p><p> 有關(guān)專家表示,我國(guó)目前至少有寵物1億只(條),圍繞寵物發(fā)生的消費(fèi)至少在150億元以上。同時(shí),“寵物熱”還帶動(dòng)了寵物經(jīng)濟(jì),圍繞寵物服務(wù)和寵物用品大做文章的人成倍增加,從寵物食品、寵物醫(yī)療,到寵物美容,甚至還出現(xiàn)了寵物婚介、殯葬、寄養(yǎng)、寵物SPA、寵物旅游團(tuán)等新興服務(wù)。然而,由于行業(yè)缺乏監(jiān)管和規(guī)范,“暴利”、欺詐現(xiàn)象嚴(yán)重,給行業(yè)發(fā)展蒙據(jù)了解,在寵物消費(fèi)中,食品占據(jù)最大份額,其次是醫(yī)療和寵物用
14、品,許多投資者甚至認(rèn)定生產(chǎn)和經(jīng)營(yíng)寵物用品只賺不賠,紛紛搶食。寵物行業(yè)除了收費(fèi)充滿暴利外,由于越來(lái)越多的投資者加入到快速增長(zhǎng)的寵物市場(chǎng),又缺乏有效的監(jiān)管和規(guī)范,使整個(gè)市場(chǎng)陷入無(wú)序混亂的狀態(tài)。</p><p><b> ?。ǘ┛尚行苑治?lt;/b></p><p><b> 1.技術(shù)的可行性</b></p><p> 某寵物
15、網(wǎng)系統(tǒng)采用了當(dāng)前的主流計(jì)算結(jié)構(gòu)—B/S模式進(jìn)行開(kāi)發(fā),前臺(tái)開(kāi)發(fā)工具選用Microsoft Visual Studio 2008。它是一種可視化的、面向?qū)ο蟮腤indows開(kāi)發(fā)語(yǔ)言,具有易用、通用和開(kāi)發(fā)效率高的特點(diǎn)。后臺(tái)的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具選用了Microsoft SQL Server 2005,它能夠處理大量數(shù)據(jù),同時(shí)保持?jǐn)?shù)據(jù)完整性并提供許多高級(jí)管理和數(shù)據(jù)分配功能,它又在數(shù)據(jù)庫(kù)平臺(tái)的安全模塊方面做了重要的增強(qiáng),在加強(qiáng)數(shù)據(jù)安全性方面提供了更多精
16、確、靈活的控制方法,并定義了幫助建立支持安全計(jì)算的必要步驟,同時(shí)幫助部署和維護(hù)一個(gè)安全環(huán)境。這兩種開(kāi)發(fā)工具功能強(qiáng)大,有較好的接口,作為本系統(tǒng)開(kāi)發(fā)工具是可行的。</p><p><b> 2. 經(jīng)濟(jì)可行性</b></p><p> 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,實(shí)現(xiàn)了企業(yè)業(yè)務(wù)管理的高效化、系統(tǒng)化、規(guī)范化、自動(dòng)化。同樣隨著寵物業(yè)的崛起,某寵物
17、公司已經(jīng)成長(zhǎng)為一個(gè)跨地區(qū)的大公司,并且公司的業(yè)務(wù)已遍布全國(guó)。而傳統(tǒng)的經(jīng)營(yíng)模式已無(wú)法適合當(dāng)今的龐大的數(shù)據(jù)處理和精確的運(yùn)算需求。所以一套精美完善的寵物網(wǎng)系統(tǒng)是提高工作效率節(jié)省人力物力財(cái)力的有效解決方案。擁有自己的一套特色的寵物網(wǎng)站系統(tǒng)是非常必要的。它可持續(xù)使用并能隨著時(shí)代和工作的需求不斷更新,一期投入終身受用,按長(zhǎng)期的使用計(jì)算,開(kāi)發(fā)系統(tǒng)的造價(jià)平均到每年與傳統(tǒng)式的管理方式的年耗資本相對(duì)比,性價(jià)比是可行的。開(kāi)發(fā)這套系統(tǒng)的經(jīng)濟(jì)可行性是很高的。&l
18、t;/p><p><b> ?。ㄈ┕δ苄枨蠓治?lt;/b></p><p> 根據(jù)調(diào)查,寵物網(wǎng)站管理主要包括網(wǎng)站的瀏覽者、會(huì)員、網(wǎng)站管理人員三個(gè)方面。寵物瀏覽者的需求是查詢?cè)摼W(wǎng)站的寵物和寵物商品信息,想要購(gòu)買所需的東西,則需要注冊(cè)登錄,成為會(huì)員;會(huì)員的需求是查詢?cè)摼W(wǎng)站的寵物和寵物商品以及購(gòu)買所需物品,當(dāng)然如果密碼丟失還可以找回密碼;網(wǎng)站管理人員可以對(duì)員工、會(huì)員、寵物及寵物
19、用品進(jìn)行管理。因此我們的網(wǎng)站分為前臺(tái)后臺(tái)兩個(gè)方面進(jìn)行設(shè)計(jì)的,前臺(tái)主要是產(chǎn)品的展示,供瀏覽者和會(huì)員查看和購(gòu)買商品,而后臺(tái)主要是管理員登陸的,管理員要從后臺(tái)維護(hù)網(wǎng)站的所有信息,包括會(huì)員管理,寵物管理,寵物用品管理,員工管理,訂單管理等等。</p><p> 前臺(tái)需要實(shí)現(xiàn)的主要功能有:</p><p> 1.寵物及相關(guān)用品信息的瀏覽,明星寵物,熱銷用品的展示及詳細(xì)信息瀏覽。</p>
20、;<p> 2.護(hù)養(yǎng)常識(shí),公司新聞及公司介紹的瀏覽。</p><p> 3.寵物用品的購(gòu)買包括對(duì)購(gòu)物車信息的修改,訂單信息的填寫及提交。</p><p> 4.會(huì)員注冊(cè),登錄,若丟失密碼時(shí)找回密碼。</p><p> 后臺(tái)系統(tǒng)管理員對(duì)數(shù)據(jù)的處理及維護(hù):</p><p><b> 1.系統(tǒng)設(shè)置</b>
21、;</p><p> 對(duì)數(shù)據(jù)庫(kù)備份與還原,操作日志的查看,管理員信息的查詢,詳細(xì)信息查看,新增管理員,刪除不用的管理員信息,對(duì)管理員密碼的修改。</p><p><b> 2.基本資料管理</b></p><p> 員工信息管理,供應(yīng)商信息管理,可以對(duì)該項(xiàng)目中進(jìn)行查詢(包括模糊查詢),添加,修改,刪除及導(dǎo)出數(shù)據(jù)等操作</p>
22、<p><b> 3.銷售管理</b></p><p> 今日訂單提醒,能夠及時(shí)獲取當(dāng)日的訂單信息,及時(shí)的對(duì)訂單進(jìn)行發(fā)貨(包括單單發(fā)貨和多單發(fā)貨)。寵物銷售管理,記錄寵物的銷售情況,對(duì)銷售記錄進(jìn)行添加,修改,刪除等操作。寵物用品銷售管理,記錄用品的銷售情況,對(duì)其銷售記錄進(jìn)行添加,修改,刪除等操作。當(dāng)對(duì)訂單發(fā)貨或者是添加銷售記錄是均會(huì)對(duì)庫(kù)存進(jìn)行判斷。只有在庫(kù)存量大于訂單訂購(gòu)量或
23、銷售量時(shí)才能操作成功。</p><p><b> 4.庫(kù)存信息管理</b></p><p> 寵物基本信息管理,添加新上架的寵物信息,刪除不需要的寵物信息,發(fā)現(xiàn)錯(cuò)誤信息能進(jìn)行修改,也可以導(dǎo)出寵物信息。寵物用品信息管理,可以對(duì)新上架的用品進(jìn)行及時(shí)添加,修改數(shù)據(jù),對(duì)已過(guò)時(shí),或長(zhǎng)久不用的用品信息進(jìn)行刪除,也可以導(dǎo)出寵物用品信息。</p><p>
24、<b> 5.咨詢中心模塊、</b></p><p> 包括公司新聞信息維護(hù)和護(hù)養(yǎng)常識(shí)信息維護(hù)。包括公司新聞信息維護(hù)和護(hù)養(yǎng)常識(shí)信息維護(hù)。員工可以通過(guò)此模塊更清晰的了解公司的最新動(dòng)態(tài),用戶則可以看到很多最新上市的商品,以及一些關(guān)于寵物的趣聞和養(yǎng)護(hù)知識(shí)。</p><p> ?。ㄋ模╅_(kāi)發(fā)環(huán)境軟件需求</p><p> 操作系統(tǒng):操作系統(tǒng):Win
25、dows XP/ Windows 2003。</p><p> 數(shù)據(jù)庫(kù):SQL Server 2005。</p><p> 開(kāi)發(fā)工具:Microsoft Visual Studio 2008。</p><p> 輔助開(kāi)發(fā)工具:Photoshop CS2、Flash8。</p><p><b> 三、系統(tǒng)設(shè)計(jì)</b>
26、;</p><p> ?。ㄒ唬┫到y(tǒng)功能模塊圖</p><p> 根據(jù)上述系統(tǒng)功能的需求分析,按照結(jié)構(gòu)化程序設(shè)計(jì)的需求,得到如下的系統(tǒng)模塊圖。</p><p> 1.前臺(tái)主要分為會(huì)員管理,商品展示,購(gòu)買流程,新聞瀏覽四大功能模塊。如圖3-1所示。</p><p> 其中會(huì)員管理模塊包括了會(huì)員登錄、會(huì)員注冊(cè)、會(huì)員找回密碼、注銷用戶等功能。商
27、品展示主要是對(duì)寵物及寵物用品進(jìn)行展示,包括熱銷寵物,促銷商品等的分類展示及詳細(xì)介紹。購(gòu)買流程主要針對(duì)會(huì)員購(gòu)買商品時(shí)所進(jìn)行的一系列的操作。包括寵物用品的詳細(xì)介紹及選購(gòu),購(gòu)物車管理,填寫訂單并提交。新聞瀏覽模塊主要介紹公司新聞,公司簡(jiǎn)介及寵物的護(hù)養(yǎng)常識(shí)。</p><p> 2.后臺(tái)主要分為基本信息管理,銷售管理,庫(kù)存管理個(gè)系統(tǒng)管理四大功能模塊,如圖3-1所示。</p><p> 其中基本信
28、息管理模塊主要包括會(huì)員的基本信息,供應(yīng)商信息管理,公司新聞的發(fā)布,護(hù)養(yǎng)常識(shí)的管理等模塊。銷售管理模塊主要包括對(duì)訂單的管理,寵物銷售記錄的管理和寵物用品銷售記錄的管理。庫(kù)存管理模塊主要包括寵物信息的管理和寵物用品信息的管理。系統(tǒng)管理模塊主要有對(duì)數(shù)據(jù)庫(kù)的備份與還原,操作日志的記錄。</p><p><b> 圖3-1功能模塊圖</b></p><p><b>
29、 ?。ǘ┫到y(tǒng)活動(dòng)圖</b></p><p> 1.管理員活動(dòng)圖,如圖3-2所示。</p><p> 圖3-2管理員活動(dòng)圖</p><p> 2.會(huì)員活動(dòng)圖,如圖3-3所示。</p><p><b> 圖3-3會(huì)員活動(dòng)圖</b></p><p> 3.一般用戶活動(dòng)圖,如圖3-
30、4所示。</p><p><b> 圖3-4會(huì)員活動(dòng)圖</b></p><p><b> ?。ㄈ┫到y(tǒng)用例圖</b></p><p> 1.管理員用例圖,如圖3-5所示</p><p> 管理員用例圖指出管理員進(jìn)入系統(tǒng)后,可進(jìn)行的操作的信息。</p><p> 圖3-
31、5管理員用例圖</p><p> 2.會(huì)員用例圖,如圖3-6所示</p><p><b> 圖3-6會(huì)員用例圖</b></p><p><b> 四、數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 數(shù)據(jù)庫(kù)的設(shè)計(jì)經(jīng)過(guò)我們的分析,將系統(tǒng)中涉及的功能表現(xiàn)出來(lái),其中表的建立尤為重要。</p>&
32、lt;p> 數(shù)據(jù)庫(kù)表的建立不僅是字段的建立,表與表之間的關(guān)系也不可或缺。主鍵、外鍵的關(guān)系需要謹(jǐn)慎建立。創(chuàng)建外鍵關(guān)系即是將各表與表之間聯(lián)系起來(lái)。表與表之間一旦脫離了外鍵之間的關(guān)系而獨(dú)立,那么系統(tǒng)之間的功能也將難以完成。</p><p><b> ?。ㄒ唬〦-R圖模型</b></p><p> E-R圖簡(jiǎn)潔的反映出整個(gè)流程的概況和系統(tǒng)中所有實(shí)體之間相對(duì)應(yīng)的關(guān)系,
33、綜合了管理員、員工、會(huì)員、一般用戶在整個(gè)系統(tǒng)中的聯(lián)系和各自的安排把系統(tǒng)的內(nèi)部聯(lián)系明了化。</p><p> 圖4-1 E-R模型圖</p><p><b> (二)數(shù)據(jù)庫(kù)模型圖</b></p><p> 圖中顯示了數(shù)據(jù)庫(kù)中有哪些表,各張表在數(shù)據(jù)庫(kù)中的聯(lián)系,即他們之間的主外鍵關(guān)系。</p><p> 圖4-2 數(shù)據(jù)
34、庫(kù)模型圖</p><p> 五、系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> (一)數(shù)據(jù)庫(kù)表設(shè)計(jì)</b></p><p> 經(jīng)過(guò)分析,系統(tǒng)中建立了數(shù)據(jù)庫(kù)PetData,如圖5-1所示。</p><p> 圖5-1 PetData數(shù)據(jù)庫(kù)</p><p> 下面是幾張主要的表:</p&
35、gt;<p> 1. 會(huì)員表(CustomerInfo):</p><p> 2. 寵物用品信息表(PetGoods):</p><p> 3. 寵物信息表(PetInfo):</p><p> 4. 訂單表(OrderInfo):</p><p> 5. 商品銷售表(GoodsSell):</p>&l
36、t;p> 6. 寵物銷售記錄表(PetSell):</p><p> ?。ǘ┣芭_(tái)主頁(yè)面的搭建</p><p> 前臺(tái)界面均以黃色為主色調(diào),色彩鮮明,主頁(yè)面主要展示部分熱銷寵物和正在促銷的寵物用品。同時(shí)還具有搜索和會(huì)員登錄的功能。在個(gè)性化設(shè)計(jì)方面又加了一個(gè)小日歷小巧玲瓏。</p><p> 頁(yè)面的搭建采用div/css模式并應(yīng)用了JavaScript特效
37、。同時(shí)還靈活應(yīng)用了母版和自定義控件。使頁(yè)面搭建更方便,也使得頁(yè)面統(tǒng)一美觀(如圖5-2所示)。</p><p> 圖5-2 前臺(tái)主頁(yè)面</p><p> ?。ㄈ┖笈_(tái)的主框架的搭建</p><p> 色彩采用藍(lán)色為主色調(diào),并以淡藍(lán)色為主,整體給人以活潑,輕松,舒適的感覺(jué)(如圖5-3所示)。頁(yè)面的搭建采用div/css和frameset模式,并且應(yīng)用了JavaScr
38、ipt特效。</p><p> 左側(cè)導(dǎo)航,各個(gè)功能模塊一目了然。頭部首頁(yè)可以鏈接到前臺(tái)的某寵物網(wǎng)站首頁(yè),并有前進(jìn),后退及刷新等功能。還特意加了一個(gè)日期特效,能夠清楚知道具體日期。</p><p> 圖5-3 后臺(tái)主框架頁(yè)面</p><p> (四)后臺(tái)的主要基本功能與實(shí)現(xiàn)</p><p><b> 1.管理員登錄</b
39、></p><p> 頁(yè)面色彩與主頁(yè)面一樣同樣以談藍(lán)色為主色調(diào),如圖5-4所示。</p><p><b> 圖5-4 登錄界面</b></p><p> 該登錄界面還具有記住密碼的功能,在UI層編寫一個(gè)BasePage類用來(lái)存放公用的代碼,從而達(dá)到代碼的復(fù)用性。其主要代碼如下所示:</p><p> pub
40、lic class BasePage : System.Web.UI.Page</p><p><b> {</b></p><p> Public void DoLogin(string paramUserName, string paramPasswor, bool paramPersistCookie)</p><p><b&g
41、t; {</b></p><p> StaffManager myBUStaff = new StaffManager();</p><p><b> try</b></p><p><b> {</b></p><p> myBUStaff.DoLogin(paramUser
42、Name, paramPasswor);</p><p><b> }</b></p><p><b> catch</b></p><p><b> {</b></p><p><b> throw;</b></p><p&g
43、t;<b> }</b></p><p> if (myBUStaff.ID.Length > 0)</p><p><b> { </b></p><p> string UserKey = Guid.NewGuid().ToString();</p><p> if (Comm
44、onMethod.CurrentUser.ContainsKey(myBUStaff.ID))</p><p><b> {</b></p><p> CommonMethod.CurrentUser[myBUStaff.ID] = UserKey;</p><p> Session["UserKey"] = User
45、Key;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> CommonMethod.CurrentUser.Add(myBUStaff.ID, UserKey);</p>
46、;<p> Session["UserKey"] = UserKey;</p><p><b> }</b></p><p> this.Themes = BUSystemInfo.getThemes(myBUStaff.Theme); </p><p> this.SetSession(myBUSta
47、ff.ID, myBUStaff.UserName, myBUStaff.FullName, myBUStaff.OperatorType, "");</p><p> System.Web.Security.FormsAuthentication.SetAuthCookie(myBUStaff.UserName, false);</p><p> this.Get
48、SystemInfo();</p><p> if (paramPersistCookie)</p><p><b> {</b></p><p> this.SaveCookie(paramUserName, paramPasswor);</p><p><b> }</b></p&
49、gt;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> this.ClearCookie();</p><p> FormsAuthentication.SignOut();
50、</p><p> Session.Abandon();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> protected void btnLogin_Cli
51、ck(object sender, EventArgs e)</p><p><b> {</b></p><p> string userName = this.txtUserName.Text.Trim();</p><p> string passWord = this.txtPassWord.Text.Trim();</p&
52、gt;<p> this.LoginSystem(userName, passWord);</p><p><b> }</b></p><p> protected void LoginSystem(string paramUserName, string paramPassWord)</p><p><b>
53、 {</b></p><p><b> try</b></p><p><b> {</b></p><p> base.DoLogin(paramUserName, paramPassWord, false);</p><p> if (Request["Action
54、"] != null && Request["Key"] != null)</p><p><b> {</b></p><p> string Word = string.Empty;</p><p> string UserInfo = Session["OperatorID&q
55、uot;].ToString() + "+" + paramPassWord;</p><p> string key = Request["Key"].ToString();</p><p> LindonSoft.SubstrateLayer.DALayer.DataCrypto myDataCryto = new LindonSoft.Su
56、bstrateLayer.DALayer.DataCrypto();</p><p> myDataCryto.Key = key;</p><p> Word = myDataCryto.Decrypto(UserInfo);</p><p> Response.Redirect(Request["Action"].ToString()
57、+ "?Action=" + Word); </p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Response.Redire
58、ct(this.GetBaseUrl() + "Manager/Main.aspx", false);</p><p><b> }</b></p><p><b> }</b></p><p> catch (Exception myException)</p><p>
59、<b> {</b></p><p> if (myException.Message == "密碼錯(cuò)誤")</p><p><b> {</b></p><p> this.txtPassWord.Focus();</p><p> this.lblError.Tex
60、t = myException.Message;</p><p> this.lblError.Visible = true;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
61、<p> this.txtUserName.Text = string.Empty;</p><p> this.txtPassWord.Text = string.Empty;</p><p> this.txtUserName.Focus();</p><p> this.lblError.Text = myException.Message;
62、</p><p> this.lblError.Visible = true;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> (2)數(shù)據(jù)庫(kù)備份與還原</
63、p><p> 備份數(shù)據(jù)庫(kù),可以選擇數(shù)據(jù)庫(kù)的名稱及備份文件的保存路徑,如圖5-5所示。</p><p> 圖5-5 備份數(shù)據(jù)庫(kù)</p><p> 選擇好數(shù)據(jù)庫(kù)及文件保存路徑后點(diǎn)擊數(shù)據(jù)備份按鈕即可,只需要UI就可以實(shí)現(xiàn)數(shù)據(jù)的連接、加載。主要代碼如下:</p><p> protected void btnConfirm_Click(objec
64、t sender, EventArgs e)</p><p><b> {</b></p><p> string SqlStr1 = "Server=.;database=" + this.DropDownList1.SelectedValue + ";Uid=sa;Pwd=123";</p><p&g
65、t; string SqlStr2 = " backup database " + this.DropDownList1.SelectedValue + " to disk='" + this.TextBox1.Text.Trim() + ".bak'";</p><p> SqlConnection con = new SqlCon
66、nection(SqlStr1);</p><p> con.Open();</p><p><b> try</b></p><p><b> {</b></p><p> if (File.Exists(this.TextBox1.Text.Trim()))</p><
67、;p><b> {</b></p><p> Response.Write("<script language=javascript>alert('此文件已存在,請(qǐng)從新輸入!');</script>");</p><p><b> return;</b></p>
68、<p><b> }</b></p><p> SqlCommand com = new SqlCommand(SqlStr2, con);</p><p> com.ExecuteNonQuery();</p><p> Response.Write("<script language=javascript
69、>alert('備份數(shù)據(jù)成功!');</script>");</p><p><b> }</b></p><p> catch (Exception error)</p><p><b> {</b></p><p> Response.Writ
70、e(error.Message);</p><p> Response.Write("<script language=javascript>alert('備份數(shù)據(jù)失敗!')</script>");</p><p><b> }</b></p><p><b> fin
71、ally</b></p><p><b> {</b></p><p> con.Close();</p><p><b> }</b></p><p><b> }</b></p><p> 還原數(shù)據(jù)庫(kù),可以選擇需要還原的數(shù)據(jù)庫(kù)以
72、及還原文件的存放路徑,如圖5-6所示。</p><p> 圖5-6 還原數(shù)據(jù)庫(kù)</p><p><b> 主要代碼如下:</b></p><p> 只需要UI就可以實(shí)現(xiàn)數(shù)據(jù)的連接、加載</p><p> protected void btnConfirm_Click(object sender, EventArg
73、s e)</p><p><b> {</b></p><p> string path = this.FileUpload1.PostedFile.FileName; //獲得備份路徑及數(shù)據(jù)庫(kù)名稱</p><p> string dbname = this.DropDownList1.SelectedValue;</p>
74、<p> string SqlStr1 = "Server=.;database='" + this.DropDownList1.SelectedValue + "';Uid=sa;Pwd=123";</p><p> string SqlStr2 = "use master restore database " + dbn
75、ame + " from disk='" + path + "'";</p><p> SqlConnection con = new SqlConnection(SqlStr1);</p><p> con.Open();</p><p><b> try</b></p>
76、;<p><b> {</b></p><p> SqlCommand com = new SqlCommand(SqlStr2, con);</p><p> com.ExecuteNonQuery();</p><p> Response.Write("<script language=javascri
77、pt>alert('還原數(shù)據(jù)成功!');</script>");</p><p><b> }</b></p><p> catch (Exception error)</p><p><b> {</b></p><p> Response.Wr
78、ite(error.Message);</p><p> Response.Write("<script language=javascript>alert('還原數(shù)據(jù)失敗!')</script>");</p><p><b> }</b></p><p><b> f
79、inally</b></p><p><b> {</b></p><p> con.Close();</p><p><b> }</b></p><p><b> }</b></p><p> ?。?)寵物信息的維護(hù)</p&
80、gt;<p> 包括對(duì)寵物信息的查詢,模糊查詢,添加,修改,刪除,批量刪除,導(dǎo)出數(shù)據(jù)等操作。還有針對(duì)頁(yè)面顯示而做的一些功能,包括頁(yè)面顯示的行數(shù),跳轉(zhuǎn)頁(yè)面等。具體實(shí)例圖,如圖5-7所示。</p><p> 5-7 寵物信息查詢界面</p><p> 查詢時(shí)如在寵物編號(hào)和名字中均為空白,此時(shí)查詢的是全部的數(shù)據(jù),如果輸入內(nèi)容就是按條件查詢。具體的實(shí)現(xiàn)代碼如下:</p&g
81、t;<p> 在UI層獲取兩個(gè)TextBox里面的值(若無(wú)值即為空),傳到BU層。將查詢到的內(nèi)容加載到gridview里面。</p><p> protected void btnSearth_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> thi
82、s.myQueryData = new PetInfoQueryData(this.txtPetID.Text.Trim(),this.txtPetName.Text.Trim());</p><p> this.BindGrid(1, 10);</p><p><b> }</b></p><p> public void BindGr
83、id(int paramPageIndex, int paramPageSize)</p><p><b> {</b></p><p> PetInfoManager myPetInfo = new PetInfoManager();</p><p> DataSet myDs = myPetInfo.Search(null, this
84、.myQueryData);</p><p> this.Master.BindData(this.grdvMessage, myDs.Tables[0].DefaultView);</p><p><b> }</b></p><p> 在BU層打開(kāi)數(shù)據(jù)庫(kù)連接并執(zhí)行sql語(yǔ)句,將執(zhí)行結(jié)果放入到BaseDBCon中,并返回。主要代碼如下:
85、</p><p> public DataSet Search(BaseDBCon myBaseDBCon, PetInfoQuery QueryData)</p><p><b> { </b></p><p> string strQuery = @"SELECT "</p><p> +
86、 PetInfo.ID_FULL + ","</p><p><b> ……</b></p><p> + PetInfo .Deta_introduce_FULL </p><p> + " FROM " + PetInfo.TABLENAME + " WHERE 1 = 1 "
87、;;</p><p> bool DbCloce = myBaseDBCon == null;</p><p> Hashtable myParam = new Hashtable();</p><p> if (QueryData.PetID.Length > 0)</p><p><b> {</b>&
88、lt;/p><p> strQuery += " AND " +PetInfo.PetID_FULL + " LIKE @PetID ";</p><p> myParam.Add("@PetID", "%" + QueryData.PetID.Replace(" ", "%&q
89、uot;) + "%");</p><p><b> }</b></p><p><b> ……</b></p><p> DataSet myDs = new DataSet();</p><p><b> try</b></p>&
90、lt;p><b> {</b></p><p> myBaseDBCon = BaseDBCon.Instance(myBaseDBCon);</p><p> myBaseDBCon.Fill(strQuery, myDs, PetInfo.TABLENAME, myParam);</p><p> myBaseDBCon.Co
91、mmitTransaction(DbCloce);</p><p><b> }</b></p><p> catch (Exception myEx)</p><p><b> {</b></p><p> myBaseDBCon.RollBackTransaction(DbCloce);
92、</p><p> throw new Exception(myEx.Message + "\r\n SQL:" + strQuery);</p><p><b> }</b></p><p><b> finally</b></p><p><b> {<
93、;/b></p><p> myBaseDBCon.Close(DbCloce);</p><p><b> }</b></p><p> return myDs;</p><p><b> }</b></p><p> 當(dāng)數(shù)據(jù)過(guò)多存在無(wú)用數(shù)據(jù)時(shí)可對(duì)數(shù)據(jù)進(jìn)行刪
94、除,先在gridview的第一列的CheckBox中選中要?jiǎng)h除的相,然后點(diǎn)擊刪除按鈕。</p><p><b> 主要代碼如下:</b></p><p> protected void btnDel_Click(object sender, EventArgs e)</p><p><b> {</b></p&
95、gt;<p> ArrayList Ids = base.GetSelectedIds(this.grdvMessage);</p><p> PetInfoManager myPetInfo = new PetInfoManager();</p><p> myPetInfo.BatchDel(null, Ids);</p><p> thi
96、s.BindGrid(1, 10);</p><p><b> }</b></p><p> 當(dāng)需要添加寵物信息時(shí),點(diǎn)擊右下角的添加按鈕,會(huì)轉(zhuǎn)到寵物信息操作頁(yè)面,如圖5-8所示。</p><p> 錄入寵物信息包括寵物編號(hào),全稱,別名,類型,原產(chǎn)地,庫(kù)存量,照片,詳細(xì)介紹等。寵物編號(hào)均由該寵物英文名字的前三個(gè)字母加數(shù)字組成。</p&
97、gt;<p> 圖5-8 寵物信息操作頁(yè)面</p><p> 在文本框中輸入信息后,點(diǎn)擊添加數(shù)據(jù)首先添加到GridView的控件中,你可以進(jìn)行數(shù)據(jù)的核對(duì),核對(duì)無(wú)誤后點(diǎn)擊保存即可保存到數(shù)據(jù)庫(kù)中,并且返回到寵物信息頁(yè)面,即可看到剛剛添加的數(shù)據(jù)。 </p><p><b> 主要代碼如下:</b></p><p><b>
98、; UI層:</b></p><p> PetInfoManager myPetInfo= new PetInfoManager();</p><p> myPetInfo = this.GetPageValue(myPetInfo);</p><p> int returnValue = myPetInfo.InsertPetInfo(myPe
99、tInfo);</p><p> if (returnValue > 0)</p><p><b> {</b></p><p> this.Clear();</p><p> this.Alert("添加成功", "Saved");base.JsWrite(&quo
100、t;window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.close();", "Close");</p><p><b> }</b></p><p><b> BU層:</b></p><p>
101、 public int InsertPetInfo(PetInfoData myPetInfoData)</p><p><b> {</b></p><p> int returnValue = 0;</p><p> string sqlQuery = @" INSERT INTO [PetInfo]([PetID],[P
102、etName],[OtherName],[Height],[Type],[Life] ,[Variety],[PetFunction],[Source_area],[PetSupplierID],[Stock],[PetImage] ,[Price],[Remark],[Deta_introduce])</p><p> VALUES ('" + myPetInfoData.PetID + &
103、quot;','" + myPetInfoData.PetName + "','" + myPetInfoData.OtherName + "','" + myPetInfoData.Height + "','" + myPetInfoData.Type + "','"
104、; + myPetInfoData.Life + "','" + myPetInfoData.Variety + "','" + myPetInfoData.PetFunction + "','" + myPetInfoData.Source_area + "','" + myPetInfoDa
105、ta.PetSupplierID + "','" + myPetInfoData.Stock + "','" + myPetInfoData.PetImage + "','" + myPetInfoData.Price + "','
106、;" + myPetInfoData.Remark + "','"</p><p> returnValue = this.ExecuteNonQuery(sqlQuery);</p><p> return returnValue;</p><p><b> }</b></p>
107、<p><b> }</b></p><p> 如果寵物信息有錯(cuò)誤,可以點(diǎn)擊gridview中的修改圖片,進(jìn)入到寵物信息操作頁(yè)面(如圖所示),然后對(duì)數(shù)據(jù)進(jìn)行修改確定信息修改正確后點(diǎn)擊保存按鈕,修改的數(shù)據(jù)會(huì)直接保存到數(shù)據(jù)庫(kù),然后直接返回到寵物信息頁(yè)面,數(shù)據(jù)會(huì)直接顯示出來(lái)。</p><p><b> 主要代碼如下:</b></
108、p><p> public void SetPageValue(PetInfoManager paramPetInfo) </p><p><b> {</b></p><p> this.txtPetID.Text = paramPetInfo.PetID.ToString();</p><p><b>
109、 ……</b></p><p> this.Image1.ImageUrl = paramPetInfo.PetImage;</p><p> if (this.Image1.ImageUrl == "")</p><p><b> {</b></p><p> this.Imag
110、e1.ImageUrl = "../Image/暫無(wú)圖片.jpg";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> this.Image1.ImageUrl
111、= paramPetInfo.PetImage;</p><p><b> }</b></p><p><b> } </b></p><p> public PetInfoManager GetPageValue(PetInfoManager paramPetInfo)</p><p>&l
112、t;b> {</b></p><p> paramPetInfo.PetID = this.txtPetID.Text;</p><p><b> ……</b></p><p> this.Image1.Visible = true;</p><p> if (this.Image1.Imag
113、eUrl == "")</p><p><b> {</b></p><p> this.Image1.ImageUrl = "../Image/暫無(wú)圖片.jpg";</p><p><b> }</b></p><p> paramPetInfo.P
114、etImage = this.Image1.ImageUrl; </p><p> return paramPetInfo;</p><p><b> }</b></p><p> if(this.ID.Length > 0)</p><p><b> {</b></p>
115、<p> myPetInfo.Get(null, this.ID);</p><p><b> }</b></p><p><b> try</b></p><p><b> { </b></p><p> myPetInfo.Save(null);<
116、;/p><p> this.Clear();</p><p> this.Alert("保存成功", "Saved");base.JsWrite("window.location.href='UIPetInfoManager.aspx?IsPageBack=1';window.close();", "Cl
117、ose");</p><p><b> }</b></p><p> catch (Exception myException)</p><p><b> {</b></p><p> ExceptionManager.Throw(this.OperatorID, "維護(hù)
118、", myException);</p><p> this.Alert("保存失敗,此次操作無(wú)效!", "Error");</p><p><b> }</b></p><p><b> ?。?)訂單管理</b></p><p> 主要有查詢
119、訂單,對(duì)訂單發(fā)貨,刪除不需要的訂單及導(dǎo)出訂單信息等幾個(gè)功能,如圖5-9所示。其中訂單的發(fā)貨可以是單一訂單發(fā)貨也可以多單發(fā)貨,當(dāng)選中一條記錄時(shí)可以查看該訂單詳細(xì)信息。如果尚未發(fā)貨可以直接對(duì)其進(jìn)行發(fā)貨。也可以返回到主頁(yè)進(jìn)行多單發(fā)貨。</p><p> 圖5-9 訂單查詢頁(yè)面</p><p> 需要單一訂單發(fā)貨時(shí)先選中需要發(fā)貨的訂單然后點(diǎn)擊去發(fā)貨,進(jìn)入到訂單詳細(xì)信息界面。如果該訂單已發(fā)貨此時(shí)
120、的界面顯示如圖5-10所示,若該訂單未發(fā)貨此時(shí)的界面如圖5-11所示。</p><p> 圖5-10 已發(fā)貨訂單頁(yè)面</p><p> 已發(fā)貨的訂單只能查看訂單信息,不能進(jìn)行任何操作,以免對(duì)同一訂單重復(fù)發(fā)貨。</p><p> 圖5-11 未發(fā)貨訂單頁(yè)面</p><p> 未發(fā)貨的訂單要想發(fā)貨可以將是否已發(fā)貨選項(xiàng)改為‘1’,然后點(diǎn)擊確
121、認(rèn)信息并發(fā)貨,頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)到訂單信息頁(yè)面。</p><p> 多單發(fā)貨的主要代碼如下:</p><p><b> UI層:</b></p><p> protected void btnShip_Click(object sender, EventArgs e)</p><p><b> {</
122、b></p><p> int returnValue = 0;</p><p> OrderInfoManager myOrderInfo = new OrderInfoManager();</p><p> ArrayList myArrayList = this.GetID();</p><p> if (myArrayL
123、ist.Count == 0)</p><p><b> {</b></p><p> Response.Write("<script>alert('請(qǐng)選擇您要發(fā)貨的訂單')</script>");</p><p><b> return;</b></
124、p><p><b> }</b></p><p> foreach (string paramStr in myArrayList)</p><p><b> {</b></p><p> returnValue += myOrderInfo.UpdateOrderInfoTwo(paramSt
125、r);</p><p><b> }</b></p><p> if (returnValue == myArrayList.Count)</p><p><b> {</b></p><p> UpdateGoodsStock();</p><p> Respon
126、se.Write("<script>alert('發(fā)貨成功')</script>");</p><p><b> }</b></p><p> this.BindGrid(1, 10);</p><p><b> }</b></p><p
127、><b> BU層:</b></p><p> public int UpdateOrderInfoTwo(string paramID)</p><p><b> {</b></p><p> string sqlQuery = " update OrderInfo set IsSend='
128、;1' where OrderID='" + paramID + "' ";</p><p> int returnValue = this.ExecuteNonQuery(sqlQuery);</p><p> return returnValue;</p><p><b> }</b&g
129、t;</p><p> 發(fā)貨之后聯(lián)動(dòng)該商品的庫(kù)存量,該功能的主要代碼如下:</p><p><b> UI層:</b></p><p> GoodsSellManager myGoodsSell = new GoodsSellManager();</p><p> private int UpdateGoodsS
130、tock()</p><p><b> {</b></p><p> int returnValue = 0;</p><p> OrderInfoManager myOrderInfo = new OrderInfoManager();</p><p> ArrayList myArrayList = this
131、.GetID();</p><p> foreach (string paramStr in myArrayList)</p><p><b> {</b></p><p> string paramGoodsName = myOrderInfo.GetGoodsIDTwo(paramStr).Tables[0].Rows[0][0].T
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- [word]寵物網(wǎng)站畢業(yè)論文
- _寵物網(wǎng)站
- 基于.net的寵物網(wǎng)站設(shè)計(jì)
- _寵物網(wǎng)站_實(shí)訓(xùn)報(bào)告.doc
- 2115170078_楊文萱_寵物網(wǎng)站.rar
- 2115170078_楊文萱_寵物網(wǎng)站.rar
- 寵物網(wǎng)上購(gòu)物系統(tǒng)畢業(yè)設(shè)計(jì)
- 寵物醫(yī)療畢業(yè)論文
- 寵物專業(yè)畢業(yè)論文
- 基于java的寵物網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn) 任務(wù)書
- 基于java的寵物網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn) 中期檢查表
- 網(wǎng)站畢業(yè)論文
- 動(dòng)物醫(yī)學(xué)(寵物專業(yè))畢業(yè)論文
- 寵物論壇系統(tǒng)畢業(yè)畢業(yè)論文
- 網(wǎng)站設(shè)計(jì)畢業(yè)論文-論文
- 寵物定時(shí)喂食器設(shè)計(jì)-畢業(yè)論文
- 寵物論壇系統(tǒng)畢業(yè)論文
- 網(wǎng)站優(yōu)化畢業(yè)論文
- 個(gè)人網(wǎng)站畢業(yè)論文
- 個(gè)人網(wǎng)站畢業(yè)論文
評(píng)論
0/150
提交評(píng)論