基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩42頁(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)介

Ⅰ基于小程序的智慧購(gòu)菜系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要二十一世紀(jì)以來(lái)我國(guó)經(jīng)濟(jì)水平得到很大提升,人們生活水平也得到空前發(fā)展。以往的消費(fèi)模式已經(jīng)不能滿(mǎn)足人們正常生活需求。對(duì)于上班族來(lái)說(shuō),在下班之后已經(jīng)沒(méi)有更多精力和時(shí)間去選購(gòu)生活所需。對(duì)此,針對(duì)大部分人們的生活需求設(shè)計(jì)了一款微信小程序智慧購(gòu)菜系統(tǒng),為廣大人民群眾帶來(lái)便利,提升日常買(mǎi)賣(mài)菜的效率,也能加強(qiáng)對(duì)菜品的高效管理等。本次智慧購(gòu)菜系統(tǒng)設(shè)計(jì)主要采用Windows系統(tǒng),后端技術(shù)使用Java開(kāi)發(fā)語(yǔ)言以及SpringBoot框架進(jìn)行開(kāi)發(fā),將MySQL作為數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)。系統(tǒng)中用戶(hù)在注冊(cè)登陸以后,可以看到各種菜品信息和公告信息,可以對(duì)菜品進(jìn)行瀏覽、查詢(xún)、下單,在用戶(hù)訂單中,用戶(hù)可以看到自己所有提交過(guò)的訂單并進(jìn)行在線(xiàn)支付或者取消訂單,在訂單信息中用戶(hù)可以查看已經(jīng)支付過(guò)的訂單信息。管理員可以將用戶(hù)的訂單分配給配送員,配送員在接收到訂單后即可進(jìn)行配送。最后通過(guò)測(cè)試,系統(tǒng)的全部功能完成實(shí)現(xiàn),具有一定的應(yīng)用價(jià)值。關(guān)鍵詞:MySQL數(shù)據(jù)庫(kù);Java語(yǔ)言;Springboot框架[2]。上世紀(jì)六十年代國(guó)外就開(kāi)始對(duì)于蔬菜管理銷(xiāo)售模式的信息化管理,一些國(guó)家通過(guò)相關(guān)平臺(tái)推出適合本國(guó)發(fā)展趨勢(shì)的蔬菜管理系統(tǒng),從根本上實(shí)現(xiàn)了蔬菜的銷(xiāo)售。由JohnMAntlel等于2017年度發(fā)表的《Towardsanewgenerationofagriculturalsystemdata,modelsandknowledgeproducts:Designandimprovement》的研究成果,提出了一個(gè)基于模塊化集成組件的農(nóng)產(chǎn)品供應(yīng)與營(yíng)銷(xiāo)平臺(tái)模型,集成了開(kāi)發(fā)與試驗(yàn)平臺(tái),并通過(guò)數(shù)據(jù)管理與可視化接口,將農(nóng)產(chǎn)品數(shù)據(jù)、農(nóng)作物模型與知識(shí)性商品等多個(gè)信息集成在一起,實(shí)現(xiàn)了農(nóng)產(chǎn)品供應(yīng)與營(yíng)銷(xiāo)的一體化。采用此系統(tǒng)能夠?yàn)橛脩?hù)提供蔬菜具體信息、配送以及線(xiàn)上支付等功能的使用。在2019年的《E-commercebasedontheMarketplaceineffortstosellagriculturalproductsusingXtremeprogrammingapproach》中,Rahayu等利用Xtreme程序設(shè)計(jì)的方式,在向消費(fèi)者發(fā)送信息、詢(xún)問(wèn)價(jià)格和運(yùn)送信息的過(guò)程中,利用Xtreme程序設(shè)計(jì)的方式,來(lái)完成一個(gè)向消費(fèi)者發(fā)送信息、詢(xún)問(wèn)價(jià)格和運(yùn)送信息的過(guò)程。此種模式為農(nóng)民提供了最為直接的交易平臺(tái),在互聯(lián)網(wǎng)上進(jìn)行買(mǎi)家與賣(mài)家之間的交易。農(nóng)民能夠獲取較大利潤(rùn),同時(shí)可不也能夠用最低價(jià)格買(mǎi)到最優(yōu)產(chǎn)品,該系統(tǒng)為農(nóng)民以及消費(fèi)者之間架起了交易橋梁。從國(guó)內(nèi)和國(guó)外的研究可以看出在互聯(lián)網(wǎng)上對(duì)蔬菜進(jìn)行銷(xiāo)售不僅很方便而且會(huì)節(jié)省很大一部分人力,具有很大發(fā)展前景。1.3論文組織架構(gòu) 文章結(jié)構(gòu)總體布局分為以下幾個(gè)方面:第一章:緒論。針對(duì)智慧購(gòu)菜系統(tǒng)的目的、意義以及國(guó)內(nèi)外的研究狀況進(jìn)行詳細(xì)分析。第二章:針對(duì)程序開(kāi)發(fā)環(huán)境以及相關(guān)技術(shù)平臺(tái)進(jìn)行分析。第三章:系統(tǒng)分析。針對(duì)互聯(lián)網(wǎng)可行性進(jìn)行具體分析。第四章:系統(tǒng)設(shè)計(jì)。針對(duì)網(wǎng)站中模塊進(jìn)行詳細(xì)設(shè)計(jì)。第五章:系統(tǒng)實(shí)現(xiàn)。強(qiáng)化網(wǎng)站各個(gè)模塊之間的實(shí)現(xiàn)。第六章:系統(tǒng)測(cè)試。針對(duì)網(wǎng)站各個(gè)模塊之間功能進(jìn)行測(cè)試,并且得到測(cè)試結(jié)果。

第2章相關(guān)理論和技術(shù)2.1Java簡(jiǎn)介作為一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,Java不但吸取了C++的各項(xiàng)優(yōu)勢(shì),而且還拋棄了C++中很難理解的多繼承、指針等概念,所以Java語(yǔ)言擁有兩個(gè)特點(diǎn),一是功能完善,二是操作結(jié)構(gòu)較為簡(jiǎn)單。Java是一種典型的靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言設(shè)計(jì)語(yǔ)言,它將這種方式運(yùn)用到了極致,使程序設(shè)計(jì)人員能夠用一種完整的思路來(lái)設(shè)計(jì)出一些復(fù)雜的程序。職于斯坦福大學(xué)(StanfordUniversityNetwork)的詹姆斯.高斯林(JamesGaussling)和麥克.舍林丹(MikeSheiling)等人。在1990年,Java的初始版本被發(fā)展出來(lái),起初叫做Oak,其目的是要成為像家電這樣的小系統(tǒng),如電視,電話(huà),鬧鐘,多士爐及其他家電產(chǎn)品之間的通訊與控制。因?yàn)閷?duì)這種智能家用電器的需求量不如人們預(yù)計(jì)的那么大,所以Sun公司就放棄了這個(gè)項(xiàng)目。1990年互聯(lián)網(wǎng)出現(xiàn)后,Sun看到了Oak在互聯(lián)網(wǎng)的巨大潛力,并對(duì)其進(jìn)行了再造,并在1995年五月以Java這個(gè)名字官方發(fā)行。隨著Internet的迅速發(fā)展,Java已逐步發(fā)展為一種主要的Internet程序設(shè)計(jì)語(yǔ)言。2.2MySQL數(shù)據(jù)庫(kù)介紹MySQL現(xiàn)在是由被稱(chēng)為關(guān)系型數(shù)據(jù)庫(kù)的Oracle公司所有,也就是微軟的SQLServer。MySQL數(shù)據(jù)庫(kù)可以在Solaris,Mac,F(xiàn)reeBSD,Windows,Linux等所有的操作系統(tǒng)上都可以使用。處理數(shù)據(jù)能夠作為該系統(tǒng)的核心,為數(shù)據(jù)儲(chǔ)存提供更多的空間。通常情況下,數(shù)據(jù)庫(kù)并不是以數(shù)據(jù)儲(chǔ)存為導(dǎo)向的,而是將儲(chǔ)存留給像表格/索引這樣的對(duì)象。MySQL數(shù)據(jù)庫(kù)屬于一種C/S模式包括客戶(hù)端和服務(wù)端模型,客戶(hù)端通過(guò)賬號(hào)、密碼來(lái)連接服務(wù)器,連接成功后進(jìn)行數(shù)據(jù)庫(kù)操作,包含增加、刪除、修改、查詢(xún)等。在服務(wù)端,通過(guò)IO重用和可擴(kuò)展的鏈接池來(lái)解決傳統(tǒng)的高并發(fā)性問(wèn)題。2.3Spring框架一種基于Java平臺(tái)的開(kāi)放源碼程序架構(gòu),它為一個(gè)擁有可對(duì)反向?qū)傩赃M(jìn)行控制的容器。雖然Spring框架本身并不局限于程序模型,但是由于其在Java程序中的廣泛應(yīng)用,使得Spring成為了一個(gè)很好的輔助,或者說(shuō)是一個(gè)替代品。Spring架構(gòu)為軟件的發(fā)展提出了許多方法,例如,充分發(fā)揮了“控制反向”這一核心屬性,并且采用了“依賴(lài)”的方式來(lái)進(jìn)行反向操作;來(lái)對(duì)容器進(jìn)行管理,使用面向切面的程序設(shè)計(jì)來(lái)對(duì)其進(jìn)行聲名式的事務(wù)管理,將各種持久性技術(shù)集成到一起,對(duì)數(shù)據(jù)存取進(jìn)行管理,并提供了許多優(yōu)良Web框架;便于開(kāi)發(fā)等。Spring架構(gòu),其特點(diǎn)是擁有控制倒置(IOC)功能,IOC是為了方便工程維護(hù)與測(cè)試,利用Java自身反射性來(lái)實(shí)現(xiàn)對(duì)Java對(duì)象的全局配置與管理。在Spring架構(gòu)中,使用了容器方式,在一個(gè)物件生存期內(nèi),可以藉由瀏覽一個(gè)XML檔案或是某個(gè)類(lèi)別上的特別的Java注釋?zhuān)瑏?lái)設(shè)定物件;開(kāi)發(fā)人員可以使用依賴(lài)查詢(xún)或插入等方法獲得參數(shù)。Spring架構(gòu)以AOP架構(gòu)為基礎(chǔ),并且在執(zhí)行階段可以進(jìn)行配置。AOP架構(gòu)強(qiáng)調(diào)了模塊間的相互關(guān)系。Spring中的AOP架構(gòu),僅為AOP架構(gòu)中的基礎(chǔ)功能,雖然不能和Aspec架構(gòu)媲美,但是由于與Aspec的整合,已經(jīng)能夠達(dá)到基礎(chǔ)要求。在SpringAOP技術(shù)的支持下,事務(wù)管理和遠(yuǎn)程訪(fǎng)問(wèn)等都可以在SpringAOP中完成。Spring的交易管理架構(gòu)將一種抽象方式引入到Java平臺(tái)上,使得本地交易、全球交易、嵌套交易都可以通過(guò)保存點(diǎn)工作,而且它還可以在Java平臺(tái)上的所有環(huán)境下工作。Spring集成主要是通過(guò)多種模板所組成,系統(tǒng)能夠借助事務(wù)模板、XML或Java注解進(jìn)行完成事件配置,同時(shí)使得事務(wù)逐漸能夠進(jìn)行消息傳遞以及緩存。Spring的數(shù)據(jù)訪(fǎng)問(wèn)結(jié)構(gòu)能夠解決數(shù)據(jù)庫(kù)在操作過(guò)程中所需要的問(wèn)題,該方法不僅適用于Java,JDBC,IBATS/MyBATIs,Hibernate,JavaDataObject(JDO),ApacheOJB以及ApacheCayne等主流的數(shù)據(jù)存取框架,而且還能結(jié)合Spring的交易管理,實(shí)現(xiàn)了對(duì)數(shù)據(jù)存取靈活的抽象。SpringFramework起初并無(wú)建立自己的Web框架的意圖,但由于其開(kāi)發(fā)者覺(jué)得已有的StrutsWeb框架在呈現(xiàn)層與請(qǐng)求處理層、請(qǐng)求處理層與模型的分割上還不夠充分,所以才創(chuàng)立了SpringMVC。

第3章系統(tǒng)分析3.1可行性分析3.1.1技術(shù)可行性通常技術(shù)方面的可行性所指代的是本次開(kāi)發(fā)的系統(tǒng)采用什么樣的技術(shù)、以什么樣的平臺(tái)作為研究依據(jù),整個(gè)系統(tǒng)發(fā)展采用什么框架結(jié)構(gòu),采取什么樣的設(shè)計(jì)模式,本文在基礎(chǔ)介紹部分進(jìn)行詳細(xì)的說(shuō)明,在本次開(kāi)發(fā)中所用到的語(yǔ)言程序?yàn)镴ava,在開(kāi)發(fā)過(guò)程中主要是采用的框架為SpringBoot,整個(gè)開(kāi)發(fā)借助的MVC的設(shè)計(jì)方式,采取彈性管理代碼,當(dāng)前開(kāi)發(fā)環(huán)境下使用最多的已匯總就是Idea,與之相關(guān)的大多數(shù)開(kāi)發(fā)工具都是免費(fèi)的。3.1.2經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性大多數(shù)表示在發(fā)展過(guò)程中基本上需要滿(mǎn)足以往發(fā)展預(yù)算,詳細(xì)記錄整個(gè)過(guò)程中所需各項(xiàng)費(fèi)用,同時(shí)滿(mǎn)足發(fā)展條件。系統(tǒng)在后期建成之后,小程序的智慧購(gòu)菜系統(tǒng)在未來(lái)發(fā)展中有著較高前景,經(jīng)濟(jì)價(jià)值得以提升,整個(gè)過(guò)程都在我們預(yù)先掌握之中。本次設(shè)計(jì)在經(jīng)濟(jì)方面具有較大可行性。3.1.3操作可行性軟件設(shè)計(jì)成之后,為了讓用戶(hù)更方便操作,軟件功能大多數(shù)采取圖形的方式來(lái)實(shí)現(xiàn),確保輸入信息的完整性。整個(gè)系統(tǒng)設(shè)計(jì)必須方便、快捷,系統(tǒng)高效,針對(duì)不同用戶(hù)進(jìn)行授權(quán)管理,對(duì)這些因素的考慮,確保軟件的操作可行性。3.1.4法律可行性通過(guò)法律角度進(jìn)行進(jìn)一步分析,整個(gè)開(kāi)發(fā)系統(tǒng)主要能夠?qū)⑵浞譃橐韵聨讉€(gè)方面:1、開(kāi)發(fā)過(guò)程中所設(shè)計(jì)的技術(shù)材料都是相對(duì)合法的;2、整個(gè)開(kāi)發(fā)設(shè)計(jì)并不存在相關(guān)的知識(shí)產(chǎn)權(quán)問(wèn)題;3、開(kāi)發(fā)過(guò)程中并沒(méi)有對(duì)相關(guān)網(wǎng)站軟件進(jìn)行抄襲,不存在版權(quán)的侵犯問(wèn)題;4、整個(gè)開(kāi)發(fā)過(guò)程都是通過(guò)自己的研究所得,并不需要在后期承擔(dān)相應(yīng)的法律責(zé)任。3.2需求分析對(duì)系統(tǒng)功能要求的分析可以提供有關(guān)在實(shí)施軟件功能要求時(shí)需要什么和不需要什么的更多信息。采取最佳分析方式能夠防止問(wèn)題的出現(xiàn),從而提升系統(tǒng)的使用效率,在開(kāi)發(fā)中節(jié)約相關(guān)費(fèi)用,提升軟件整體服務(wù)質(zhì)量。

3.2.1功能需求分析基于小程序的智慧購(gòu)菜系統(tǒng)的主要目的是實(shí)現(xiàn)便捷購(gòu)菜,代替?zhèn)鹘y(tǒng)的人工賣(mài)菜方式,能夠?qū)用袢粘YI(mǎi)菜賣(mài)菜、結(jié)算方面進(jìn)行嚴(yán)格把控,操作人員需要具備一定的計(jì)算機(jī)能力,以提高菜場(chǎng)買(mǎi)菜賣(mài)菜的管理效率。1.管理員用例圖包含用戶(hù)管理、配送員管理、蔬菜分類(lèi)管理、蔬菜信息管理、用戶(hù)下單管理、訂單分配管理、訂單信息管理、系統(tǒng)管理,管理員用例圖如圖3.1所示。圖3.1管理員用例圖2.用戶(hù)用例圖包含,查看蔬菜、用戶(hù)下單、在線(xiàn)支付、查看訂單、查看公告、在線(xiàn)咨詢(xún)、我的收藏,用戶(hù)用例圖如圖3.2所示。圖3.2用戶(hù)用例圖3.配送員用例圖包含接收訂單、配送訂單、查看訂單,配送員用例圖如圖3.3所示。圖3.3配送員用例圖3.2.2非功能需求分析本文所開(kāi)發(fā)的智慧購(gòu)菜系統(tǒng)是以小程序?yàn)榛A(chǔ),由于它儲(chǔ)存著許多與使用者有關(guān)的基礎(chǔ)資料,因此,在該系統(tǒng)的設(shè)計(jì)和研發(fā)時(shí),特別設(shè)置了一個(gè)使用者管理模塊,以確保該系統(tǒng)資料的安全性;在以小程序?yàn)榛A(chǔ)的智慧購(gòu)菜系統(tǒng)中,對(duì)全部用戶(hù)進(jìn)行了統(tǒng)一管理,該系統(tǒng)將按照用戶(hù)身份來(lái)進(jìn)行相應(yīng)授權(quán),并保證他們能夠在授權(quán)范圍之內(nèi)進(jìn)行活動(dòng),并且能夠獲得授權(quán)范圍之內(nèi)的數(shù)據(jù)。在此基礎(chǔ)上,提出了一種新的應(yīng)用程序設(shè)計(jì)方案,以實(shí)現(xiàn)對(duì)應(yīng)用程序和應(yīng)用程序的全面保護(hù)。

第4章系統(tǒng)設(shè)計(jì)4.1功能模塊設(shè)計(jì)根據(jù)對(duì)系統(tǒng)的功能進(jìn)行分析基于小程序的智慧購(gòu)菜系統(tǒng)主要有以下幾個(gè)模塊:用戶(hù)管理、配送員管理、蔬菜分類(lèi)管理、蔬菜信息管理、訂單管理、訂單分配管理、訂單信息管理、公告信息管理等模塊。系統(tǒng)功能模塊圖如下所示:圖4.1系統(tǒng)功能模塊圖4.2數(shù)據(jù)庫(kù)設(shè)計(jì)4.2.1數(shù)據(jù)庫(kù)概念設(shè)計(jì)1.公告實(shí)體圖圖4.2公告實(shí)體圖2.配送員實(shí)體圖圖4.3配送員實(shí)體圖3.用戶(hù)實(shí)體圖圖4.4用戶(hù)實(shí)體圖4.蔬菜信息實(shí)體圖圖4.5蔬菜信息實(shí)體圖4.2.2數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)(1)公告信息表針對(duì)公告信息的設(shè)置主要是進(jìn)行對(duì)相關(guān)信息的儲(chǔ)存,主要是能夠包括id,addtime等字段,主鍵為id,如表4.1所示。表4.1公告信息表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtitlevarchar200標(biāo)題introductionlongtext4294967295簡(jiǎn)介picturelongtext4294967295圖片contentlongtext4294967295內(nèi)容(2)蔬菜信息評(píng)論表針對(duì)蔬菜信息評(píng)論表的設(shè)計(jì)主要是能夠儲(chǔ)存相關(guān)用戶(hù)對(duì)于蔬菜的評(píng)論,其中主要包含評(píng)價(jià)內(nèi)容以及相關(guān)用戶(hù)信息等,如表4.2所示。表4.2蔬菜信息評(píng)論表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵啊續(xù)表4.2蔬菜信息評(píng)論表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPrefidbigint關(guān)聯(lián)表iduseridbigint用戶(hù)idavatarurllongtext4294967295頭像nicknamevarchar200用戶(hù)名contentlongtext4294967295評(píng)論內(nèi)容(3)訂單信息表訂單信息表主要是能夠展示訂單信息,其中主要包含下單事件、編號(hào)、蔬菜的相關(guān)價(jià)格以及名稱(chēng)等,如表4.3所示。表4.3訂單信息表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPtupianlongtext4294967295圖片jiagevarchar200價(jià)格shuliangvarchar200數(shù)量zongjiavarchar200總價(jià)dingdanzhuangtaivarchar200訂單狀態(tài)qianshoushijiandatetime簽收時(shí)間beizhuvarchar200備注zhanghaovarchar200賬號(hào)續(xù)表4.3訂單信息表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值xingmingvarchar200姓名shoujivarchar200手機(jī)dizhivarchar200地址peisongzhanghaovarchar200配送賬號(hào)peisongxingmingvarchar200配送姓名crossuseridbigint跨表用戶(hù)idcrossrefidbigint跨表主鍵idsfshvarchar200是否審核待審核shhflongtext4294967295審核回復(fù)useridbigint用戶(hù)id(4)用戶(hù)表用戶(hù)表主要是對(duì)用戶(hù)信息的儲(chǔ)存,其中包含用戶(hù)手機(jī)號(hào)、姓名、性別以及其他信息等,如表4.4所示。表4.4用戶(hù)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPzhanghaovarchar200賬號(hào)mimavarchar200密碼xingmingvarchar200姓名nianlingint年齡xingbievarchar200性別續(xù)表4.4用戶(hù)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值shoujivarchar200手機(jī)touxianglongtext4294967295頭像(5)訂單分配表訂單分配表,用來(lái)儲(chǔ)存訂單分配的信息,包含配送員賬號(hào),姓名,聯(lián)系電話(huà)的信息,如表4.5所示。表4.5訂單分配表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPdingdanbianhaovarchar200訂單編號(hào)shucaimingchengvarchar200蔬菜名稱(chēng)tupianlongtext4294967295圖片jiagefloat價(jià)格zongjiafloat總價(jià)dizhivarchar200地址fenpeishijiandatetime分配時(shí)間beizhuvarchar200備注zhanghaovarchar200賬號(hào)xingmingvarchar200姓名shuliangint數(shù)量peisongzhanghaovarchar200配送賬號(hào)peisongxingmingvarchar200配送姓名續(xù)表4.5訂單分配表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值lianxidianhuavarchar200聯(lián)系電話(huà)crossuseridbigint跨表用戶(hù)idcrossrefidbigint跨表主鍵id(6)蔬菜信息表蔬菜信息表主要是蔬菜名稱(chēng)、蔬菜的原產(chǎn)地以及蔬菜價(jià)格等相關(guān)信息,如表4.6所示。表4.6蔬菜信息表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPshucaimingchengvarchar200蔬菜名稱(chēng)shucaifenleivarchar200蔬菜分類(lèi)chandivarchar200產(chǎn)地jiagefloat價(jià)格shuliangint數(shù)量tupianlongtext4294967295圖片caizhairiqidate采摘日期shucaijieshaolongtext4294967295蔬菜介紹clicktimedatetime最近點(diǎn)擊時(shí)間clicknumint點(diǎn)擊次數(shù)0(7)蔬菜分類(lèi)表一種用于存儲(chǔ)蔬菜類(lèi)別信息的蔬菜類(lèi)別表格,包括蔬菜類(lèi)別的建立日期、蔬菜類(lèi)別等;如表4.7所示。表4.7蔬菜分類(lèi)表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPshucaifenleivarchar200蔬菜分類(lèi)(8)配送員表該表主要包含配送人員名稱(chēng),人員手機(jī)號(hào)、姓名以及相關(guān)聯(lián)系方式等,如表4.8所示。表4.8配送員表字段名稱(chēng)類(lèi)型長(zhǎng)度字段說(shuō)明主鍵默認(rèn)值idbigint主鍵主鍵addtimetimestamp創(chuàng)建時(shí)間CURRENT_TIMESTAMPpeisongzhanghaovarchar200配送賬號(hào)mimavarchar200密碼peisongxingmingvarchar200配送姓名nianlingint年齡xingbievarchar200性別lianxidianhuavarchar200聯(lián)系電話(huà)touxianglongtext4294967295頭像第5章系統(tǒng)實(shí)現(xiàn)5.1實(shí)現(xiàn)環(huán)境使用Java開(kāi)發(fā)框架:springbootJDK版本:JDK1.8服務(wù)器:TOMCAT7資料庫(kù):mysql5.7(在本次設(shè)計(jì)中必須使用5.7的版本)數(shù)據(jù)庫(kù)工具:Navicat11開(kāi)發(fā)軟件:eclipse/myeclipse/ideaMavenPackage:Maven3.3.9谷歌瀏覽器:google5.2登錄注冊(cè)用戶(hù)第一次使用需要注冊(cè)賬號(hào)。當(dāng)使用者注冊(cè)時(shí),必須先填寫(xiě)好相關(guān)信息,再點(diǎn)“注冊(cè)”鍵如圖5.1所示。當(dāng)使用者登陸小程序時(shí),使用者只需填入使用者賬號(hào)和密碼,即可進(jìn)入應(yīng)用程序首頁(yè)。登錄如圖5.2所示。圖5.1用戶(hù)注冊(cè)圖5.2用戶(hù)登錄實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@IgnoreAuth@PostMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));if(user==null||!user.getPassword().equals(password)){returnR.error("賬號(hào)或密碼不正確");}Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole());returnR.ok().put("token",token);}@IgnoreAuth@PostMapping(value="/register")publicRregister(@RequestBodyUsersEntityuser){if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){returnR.error("用戶(hù)已存在");}userService.insert(user);returnR.ok();}5.3蔬菜推薦用戶(hù)登錄成功以后來(lái)到小程序的首頁(yè),系統(tǒng)會(huì)根據(jù)用戶(hù)對(duì)菜品的點(diǎn)擊次數(shù)進(jìn)行智能排序推薦給用戶(hù)各種蔬菜包括蔬菜的名稱(chēng)、類(lèi)別、圖片、產(chǎn)地。如圖5.3。選擇一個(gè)菜品后點(diǎn)擊即可看到菜品的詳細(xì)信息,如圖5.4所示。圖5.3蔬菜推薦圖5.4蔬菜詳情實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@IgnoreAuth

@RequestMapping("/autoSort")publicRautoSort(@RequestParamMap<String,Object>params,ShucaixinxiEntityshucaixinxi,HttpServletRequestrequest,Stringpre){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

Map<String,Object>newMap=newHashMap<String,Object>();

Map<String,Object>param=newHashMap<String,Object>();

Iterator<Map.Entry<String,Object>>it=param.entrySet().iterator();

while(it.hasNext()){

Map.Entry<String,Object>entry=it.next();

Stringkey=entry.getKey();

StringnewKey=entry.getKey();

if(pre.endsWith(".")){

newMap.put(pre+newKey,entry.getValue());

}elseif(StringUtils.isEmpty(pre)){

newMap.put(newKey,entry.getValue());

}else{

newMap.put(pre+"."+newKey,entry.getValue());

}

}

params.put("sort","clicknum");

params.put("order","desc");

PageUtilspage=shucaixinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shucaixinxi),params),params));

returnR.ok().put("data",page);

}5.4蔬菜查詢(xún)用戶(hù)通過(guò)小程序的蔬菜信息頁(yè)面可以看到各種蔬菜,可以通過(guò)搜索框?qū)κ卟说拿Q(chēng)或者產(chǎn)地及類(lèi)別找到自己想要的蔬菜。根據(jù)蔬菜名稱(chēng)查詢(xún)?nèi)鐖D5.5,根據(jù)蔬菜產(chǎn)地查詢(xún)?nèi)鐖D5.6,根據(jù)蔬菜類(lèi)別查詢(xún)?nèi)鐖D5.7所示。圖5.5蔬菜名稱(chēng)查詢(xún)圖5.6蔬菜產(chǎn)地查詢(xún)圖5.7蔬菜類(lèi)別查詢(xún)實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@RequestMapping("/lists")

publicRlist(ShucaixinxiEntityshucaixinxi){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));

returnR.ok().put("data",shucaixinxiService.selectListView(ew));

}@RequestMapping("/query")

publicRquery(ShucaixinxiEntityshucaixinxi){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));

ShucaixinxiViewshucaixinxiView=shucaixinxiService.selectView(ew);

returnR.ok("查詢(xún)蔬菜信息成功").put("data",shucaixinxiView);5.5在線(xiàn)下單用戶(hù)選擇好蔬菜后來(lái)到菜品的詳情頁(yè)面可以看到菜品的圖片,同時(shí)可以看到其他用戶(hù)的對(duì)該商品的評(píng)價(jià),在填寫(xiě)好菜品數(shù)量和收貨地址以及聯(lián)系方式后點(diǎn)擊下方的在線(xiàn)下單并提交即可下單成功。如圖5.8。用戶(hù)下單成功后,進(jìn)到訂單可以查看到自己的訂單詳情,如圖5.9所示。圖5.8在線(xiàn)下單圖5.9訂單詳情用戶(hù)成功提交訂單后通過(guò)用戶(hù)訂單頁(yè)面可以查看訂單,確認(rèn)信息無(wú)誤后可以通過(guò)在線(xiàn)支付按鈕對(duì)訂單進(jìn)行支付,如圖5.10,點(diǎn)擊支付按鈕后選擇支付工具即可完成支付,如圖5.11所示。圖5.10在線(xiàn)支付圖5.11支付選項(xiàng)實(shí)現(xiàn)該功能的關(guān)鍵代碼如下:@IgnoreAuth

@RequestMapping("/detail/{id}")

publicRdetail(@PathVariable("id")Longid){

YonghuxiadanEntityyonghuxiadan=yonghuxiadanService.selectById(id);

returnR.ok().put("data",yonghuxiadan);

}@IgnoreAuth

@RequestMapping("/add")

publicRadd(@RequestBodyYonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){

yonghuxiadan.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

yonghuxiadanService.insert(yonghuxiadan);

returnR.ok();

}@IgnoreAuth

@RequestMapping("/list")

publicRlist(@RequestParamMap<String,Object>params,YonghuxiadanEntityyonghuxiadan,

HttpServletRequestrequest){

EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>();

PageUtilspage=yonghuxiadanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghuxiadan),params),params));

returnR.ok().put("data",page);}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyYonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){

yonghuxiadanService.updateById(yonghuxiadan);

returnR.ok();

}5.6蔬菜分類(lèi)管理系統(tǒng)輸入相關(guān)密碼之后需要通過(guò)管理員的身份進(jìn)行登陸,同時(shí)針對(duì)蔬菜的分類(lèi)進(jìn)行選擇,最終進(jìn)入蔬菜的分類(lèi)管理界面,能夠?qū)κ卟讼嚓P(guān)信息進(jìn)行修改,刪除以及搜索等。如圖5.12。圖5.12蔬菜分類(lèi)管理管理員在蔬菜管理頁(yè)面通過(guò)點(diǎn)擊新增按鈕即可添加新的蔬菜種類(lèi),如圖5.13所示。圖5.13蔬菜分類(lèi)新增實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/lists")publicRlist(ShucaifenleiEntityshucaifenlei){EntityWrapper<ShucaifenleiEntity>ew=newEntityWrapper<ShucaifenleiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaifenlei,"shucaifenlei"));returnR.ok().put("data",shucaifenleiService.selectListView(ew));}@RequestMapping("/add")

publicRadd(@RequestBodyShucaifenleiEntityshucaifenlei,HttpServletRequestrequest){

shucaifenlei.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

shucaifenleiService.insert(shucaifenlei);

returnR.ok();

}5.7蔬菜信息管理在鍵入了自己的密碼之后,以管理員的身份登陸到了后臺(tái)系統(tǒng)中,在蔬菜信息管理下,在蔬菜信息管理下,你就可以在蔬菜信息中添加蔬菜信息、修改蔬菜信息、刪除蔬菜信息。查看詳細(xì)的蔬菜信息,同時(shí)針對(duì)蔬菜信息的評(píng)價(jià)進(jìn)行詳細(xì)了解等。如圖5.14。圖5.14蔬菜信息管理在蔬菜信息管理頁(yè)面通過(guò)點(diǎn)擊修改按鈕即可對(duì)蔬菜信息進(jìn)行修改,如圖5.15所示。圖5.15蔬菜信息修改實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/lists")publicRlist(ShucaixinxiEntityshucaixinxi){EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));returnR.ok().put("data",shucaixinxiService.selectListView(ew));}@RequestMapping("/query")publicRquery(ShucaixinxiEntityshucaixinxi){EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));ShucaixinxiViewshucaixinxiView=shucaixinxiService.selectView(ew);returnR.ok().put("data",shucaixinxiView);}

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyShucaixinxiEntityshucaixinxi,HttpServletRequestrequest){

shucaixinxiService.updateById(shucaixinxi);returnR.ok();5.8訂單管理訂單管理,以管理員的身份進(jìn)入訂單管理后,可以對(duì)各個(gè)用戶(hù)的訂單進(jìn)行查詢(xún)、刪除等相關(guān)操作,在搜索框進(jìn)行搜索蔬菜名稱(chēng)能夠快速定位,如圖5.16。圖5.16訂單管理實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/lists")publicRlist(YonghuxiadanEntityyonghuxiadan){ EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghuxiadan,"yonghuxiadan"));returnR.ok().put("data",yonghuxiadanService.selectListView(ew));}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")){yonghuxiadan.setZhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>();PageUtilspage=yonghuxiadanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghuxiadan),params),params));returnR.ok().put("data",page);}5.9訂單分配管理管理員不僅可以查看和刪除訂單也可以將訂單分配給指定配送員,圖5.17所示。圖5.17所有訂單管理員通過(guò)訂單分配按鈕即可將用戶(hù)的訂單分配給指定的配送員如圖5.18所示。圖5.18訂單分配配送員通過(guò)點(diǎn)擊我的里面的訂單分配選項(xiàng)即可查看到需要分配的訂單如圖5.19。配送員在選擇訂單后來(lái)到配送頁(yè)面通過(guò)點(diǎn)擊配送按鈕即可對(duì)訂單進(jìn)行配送如圖5.20所示。圖5.19待配送訂單圖5.20訂單配送實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/page")

publicRpage(@RequestParamMap<String,Object>params,DingdanfenpeiEntitydingdanfenpei,

HttpServletRequestrequest){

StringtableName=request.getSession().getAttribute("tableName").toString();

if(tableName.equals("yonghu")){

dingdanfenpei.setZhanghao((String)request.getSession().getAttribute("username"));

}

if(tableName.equals("peisongyuan")){

dingdanfenpei.setPeisongzhanghao((String)request.getSession().getAttribute("username"));

}EntityWrapper<DingdanfenpeiEntity>ew=newEntityWrapper<DingdanfenpeiEntity>();

PageUtilspage=dingdanfenpeiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,dingdanfenpei),params),params));

returnR.ok().put("data",page);

}@RequestMapping("/lists")publicRlist(DingdanfenpeiEntitydingdanfenpei){EntityWrapper<DingdanfenpeiEntity>ew=newEntityWrapper<DingdanfenpeiEntity>();ew.allEq(MPUtil.allEQMapPre(dingdanfenpei,"dingdanfenpei"));returnR.ok().put("data",dingdanfenpeiService.selectListView(ew));}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

dingdanfenpeiService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.10訂單信息管理訂單信息管理,將訂單分配給配送員并且配送員進(jìn)行配送之后,管理員在訂單信息管理中按下訂單的信息,就可以對(duì)訂單進(jìn)行刪除、查找,以及審核狀態(tài)是否通過(guò)以及審核是否有回復(fù),訂單狀態(tài),訂單信息一目了然,點(diǎn)擊刪除按鈕即可刪除訂單,如圖5.21。圖5.21訂單信息管理實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/query")publicRquery(DingdanxinxiEntitydingdanxinxi){EntityWrapper<DingdanxinxiEntity>ew=newEntityWrapper<DingdanxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(dingdanxinxi,"dingdanxinxi"));DingdanxinxiViewdingdanxinxiView=dingdanxinxiService.selectView(ew);returnR.ok("查詢(xún)訂單信息成功").put("data",dingdanxinxiView);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){DingdanxinxiEntitydingdanxinxi=dingdanxinxiService.selectById(id);returnR.ok().put("data",dingdanxinxi);}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

dingdanxinxiService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.11公告信息管理管理員通過(guò)公告信息管理可以對(duì)系統(tǒng)的所有公告信息進(jìn)行增加,刪除,修改,查詢(xún)等操作如圖5.22。圖5.22公告信息管理管理員在公告信息管理頁(yè)面選擇新增按鈕即可新增公告信息如圖5.23所示。圖5.23公告信息新增用戶(hù)可以通過(guò)公告信息功能看到所有的公告信息標(biāo)題,如圖5.24。點(diǎn)擊一條公告即可查看公告的詳情信息,如圖5.25。圖5.24公告展示圖5.25公告詳情實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/query")

publicRquery(NewsEntitynews){

EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();

ew.allEq(MPUtil.allEQMapPre(news,"news"));

NewsViewnewsView=newsService.selectView(ew);

returnR.ok("查詢(xún)公告信息成功").put("data",newsView);

}@RequestMapping("/add")

publicRadd(@RequestBodyNewsEntitynews,HttpServletRequestrequest){

news.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(news);

newsService.insert(news);

returnR.ok();

}

@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyNewsEntitynews,HttpServletRequestrequest){

newsService.updateById(news);

returnR.ok();

}5.12用戶(hù)管理通過(guò)能夠以管理員的身份填寫(xiě)賬號(hào),登陸后臺(tái)系統(tǒng),在系統(tǒng)頁(yè)面選擇用戶(hù),若需要查找則填寫(xiě)用戶(hù)相關(guān)信息進(jìn)行查找,在用戶(hù)方面可以看到用戶(hù)頭像,以及修改、詳情、刪除等具體日常操作模塊。如圖5.26。圖5.26用戶(hù)管理管理員可以通過(guò)用戶(hù)管理頁(yè)面的修改按鈕即可對(duì)用戶(hù)信息進(jìn)行修改,如圖5.27所示。圖5.27修改用戶(hù)實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/query")

publicRquery(YonghuEntityyonghu){

EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>();

ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu"));

YonghuViewyonghuView=yonghuService.selectView(ew);

returnR.ok("查詢(xún)用戶(hù)成功").put("data",yonghuView);}

@RequestMapping("/add")

publicRadd(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){

yonghu.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",yonghu.getZhanghao()));

if(u!=null){

returnR.error("用戶(hù)已存在");

}

yonghu.setId(newDate().getTime());

yonghuService.insert(yonghu);

returnR.ok();

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){

yonghuService.updateById(yonghu);returnR.ok();

}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

yonghuService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.14配送員管理在管理員登陸系統(tǒng)之后需要輸入相關(guān)賬號(hào)以及密碼,在配送員管理操作頁(yè)面選擇配送人員的信息,即可看到所有配送員的信息,如圖5.28。圖5.28配送員信息管理員可以在配送員管理頁(yè)面通過(guò)新增功能填入相應(yīng)的信息即可添加配送人員。如圖5.29。圖5.29配送員新增實(shí)現(xiàn)該功能的關(guān)鍵代碼如下所示:@RequestMapping("/add")

publicRadd(@RequestBodyPeisongyuanEntitypeisongyuan,HttpServletRequestrequest){

peisongyuan.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

PeisongyuanEntityu=peisongyuanService.selectOne(newEntityWrapper<PeisongyuanEntity>().eq("peisongzhanghao",peisongyuan.getPeisongzhanghao()));

if(u!=null){

returnR.error("success");

}

peisongyuan.setId(newDate().getTime());

peisongyuanService.insert(peisongyuan);

returnR.ok();

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyPeisongyuanEntitypeisongyuan,HttpServletRequestrequest){

peisongyuanService.updateById(peisongyuan);

returnR.ok();

}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

peisongyuanService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}

第6章系統(tǒng)測(cè)試系統(tǒng)通常能夠針對(duì)各項(xiàng)模塊以及操作頁(yè)面設(shè)計(jì)進(jìn)行完成,從而確保系統(tǒng)后期的穩(wěn)定。通常在正常使用之前能夠增設(shè)相關(guān)功能以及性能方面的測(cè)試等,便于系統(tǒng)在使用之后的修復(fù)以及改進(jìn)等。黑箱測(cè)試是一種對(duì)整個(gè)軟件的功能進(jìn)行測(cè)試的方法,在做黑箱測(cè)試時(shí),首先要站在使用者的立場(chǎng)上,使用對(duì)應(yīng)的測(cè)試案例;通過(guò)與期望結(jié)果的對(duì)比,可以更容易地找到存在的問(wèn)題。在進(jìn)行黑箱試驗(yàn)時(shí),采用了偏差和邊界值兩種方法。一般情況下,在輸入和輸出值的邊界上,系統(tǒng)的誤差出現(xiàn)的幾率要比內(nèi)部大得多,所以,在決定了一個(gè)好的輸入和輸出范圍之后,就可以選擇一個(gè)邊界值來(lái)對(duì)系統(tǒng)進(jìn)行檢測(cè),進(jìn)而對(duì)系統(tǒng)的穩(wěn)定性和可靠性做出一個(gè)更深層次的判斷。6.1測(cè)試步驟如同開(kāi)發(fā)一樣,在試點(diǎn)階段應(yīng)該逐步實(shí)行。從邏輯上來(lái)說(shuō),每個(gè)步驟都是前面一個(gè)步驟的繼續(xù)。一個(gè)大規(guī)模的軟件系統(tǒng)往往包含若干個(gè)子系統(tǒng),而這些子系統(tǒng)又包含若干功能模塊。這樣,一個(gè)大型的軟件程序的測(cè)試基本上由下列步驟組成:1.針對(duì)模塊的測(cè)試主要是能夠從編程的過(guò)程中進(jìn)行找到編碼并且進(jìn)行詳細(xì)設(shè)計(jì);2.在測(cè)試過(guò)程中發(fā)現(xiàn)問(wèn)題3.對(duì)相關(guān)錯(cuò)誤進(jìn)行驗(yàn)收6.2測(cè)試用例6.2.1登錄測(cè)試用例在此基礎(chǔ)上,基于客戶(hù)需求,使用了黑箱測(cè)試方法,本文僅提供了一份典型的測(cè)試用例列表;如表6.1所示。表6.1登錄測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001登錄測(cè)試輸入正確的用戶(hù)名和密碼登錄成功登錄成功002登錄測(cè)試輸入錯(cuò)誤的用戶(hù)名登錄失敗登錄失敗003登錄測(cè)試輸入錯(cuò)誤的密碼登錄失敗登錄失敗6.2.2用戶(hù)信息管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,比如添加用戶(hù)信息測(cè)試、修改用戶(hù)信息測(cè)試、刪除用戶(hù)信息測(cè)試等。本節(jié)根據(jù)管理端各模塊進(jìn)行測(cè)試,因考慮到本文篇幅有限,這里代表性的部分測(cè)試用例,如表6.2所示。表6.2用戶(hù)信息測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加用戶(hù)信息測(cè)試在添加頁(yè)面輸入用戶(hù)信息,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改用戶(hù)信息測(cè)試在修改頁(yè)面修改用戶(hù)信息,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除用戶(hù)信息測(cè)試在管理用戶(hù)頁(yè)面,點(diǎn)擊某一試卷的刪除按鈕刪除成功刪除成功004查詢(xún)用戶(hù)信息測(cè)試在用戶(hù)信息管理頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的用戶(hù)名字,點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功6.2.3蔬菜信息管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,比如添加蔬菜信息測(cè)試、修改蔬菜信息測(cè)試、刪除蔬菜信息測(cè)試等。本節(jié)根據(jù)管理端各模塊進(jìn)行測(cè)試,因考慮到本文篇幅有限,這里代表性的部分測(cè)試用例,如表6.3所示。表6.3蔬菜信息測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加蔬菜信息測(cè)試在添加頁(yè)面輸入蔬菜信息,點(diǎn)擊添加成功添加成功002修改蔬菜信息測(cè)試確認(rèn)按鈕在修改頁(yè)面修改蔬菜信息修改成功修改成功續(xù)表6.3蔬菜信息測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果003刪除蔬菜信息測(cè)試在管理蔬菜頁(yè)面,點(diǎn)擊某一蔬菜的刪除按鈕刪除成功刪除成功004查詢(xún)蔬菜信息測(cè)試在蔬菜信息管理頁(yè)面查詢(xún)輸入框輸入要查詢(xún)的蔬菜名字,點(diǎn)擊查詢(xún)按鈕查詢(xún)成功查詢(xún)成功6.2.4訂單管理信息管理測(cè)試用例管理端在運(yùn)行時(shí)要滿(mǎn)足瀏覽器的運(yùn)行需求,比如添加訂單管理信息測(cè)試、修改訂單管理信息測(cè)試、刪除訂單管理信息測(cè)試等。本節(jié)根據(jù)管理端各模塊進(jìn)行測(cè)試,因考慮到本文篇幅有限,這里代表性的部分測(cè)試用例,如表6.4所示。表6.4訂單管理信息測(cè)試用例表測(cè)試編號(hào)測(cè)試目的操作步驟預(yù)期結(jié)果實(shí)際結(jié)果001添加訂單管理信息測(cè)試在添加頁(yè)面輸入訂單管理信息,點(diǎn)擊確認(rèn)按鈕添加成功添加成功002修改訂單管理信息測(cè)試在修改頁(yè)面修改訂單管理信息,點(diǎn)擊確認(rèn)按鈕修改成功修改成功003刪除訂單管理信息測(cè)試在管理訂單管理頁(yè)面,點(diǎn)擊刪除

溫馨提示

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