數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言) 課件 項(xiàng)目二 鏈表-商品管理_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言) 課件 項(xiàng)目二 鏈表-商品管理_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言) 課件 項(xiàng)目二 鏈表-商品管理_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言) 課件 項(xiàng)目二 鏈表-商品管理_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)(Java語(yǔ)言) 課件 項(xiàng)目二 鏈表-商品管理_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目二鏈表---商品管理目錄項(xiàng)目二5123

典型工作任務(wù)2.1鏈表項(xiàng)目需求分析典型工作任務(wù)2.2鏈表數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行典型工作任務(wù)2.5鏈表軟件文檔編寫46典型工作任務(wù)2.6鏈表項(xiàng)目驗(yàn)收交付知識(shí)目標(biāo)掌握鏈表的相關(guān)術(shù)語(yǔ)掌握鏈表的存儲(chǔ)結(jié)構(gòu)掌握結(jié)點(diǎn)類、鏈表類的設(shè)計(jì)掌握鏈表的基本算法實(shí)現(xiàn)技能目標(biāo)能夠分析問(wèn)題,針對(duì)問(wèn)題特點(diǎn)選擇合理的數(shù)據(jù)結(jié)構(gòu)具備一定的程序調(diào)試能力能夠靈活應(yīng)用鏈表解決實(shí)際問(wèn)題思政目標(biāo)養(yǎng)成做事細(xì)心、有條理、勤于思考的習(xí)慣養(yǎng)成持之以恒,遇困難迎難而上的品德培養(yǎng)從事職業(yè)的使命感、責(zé)任感總體要求

商店或商場(chǎng)中,商品的數(shù)量多,種類多,而且不斷進(jìn)貨、銷售,商品的數(shù)據(jù)在動(dòng)態(tài)變化,作為商店或商場(chǎng)的管理者需要掌握商品的信息,根據(jù)商品數(shù)據(jù)做出一些管理策略。比如對(duì)于即將售完的商品需要及時(shí)補(bǔ)貨,熱銷商品需要加大進(jìn)貨量,過(guò)季的商品需要退庫(kù)騰出貨架擺放新貨等。只有實(shí)時(shí)了解商品數(shù)據(jù)才能更好地管理商店或商場(chǎng)的日常營(yíng)業(yè)。因?yàn)閿?shù)據(jù)量大、變化快,人工統(tǒng)計(jì)這些數(shù)據(jù)是不可行的,所以需要借助計(jì)算機(jī)來(lái)管理商品信息,更快、更準(zhǔn)確。圖2-1商品管理系統(tǒng)功能模塊圖典型工作任務(wù)2.1鏈表項(xiàng)目需求分析添加商品:進(jìn)購(gòu)商品時(shí),需要將新進(jìn)入商品信息添加到系統(tǒng),方便后繼管理。刪除商品:售完或不再進(jìn)貨的商品,可從系統(tǒng)中將商品信息刪除。修改商品:商品的價(jià)格、數(shù)量等信息根據(jù)實(shí)際銷售情況進(jìn)行修改。查詢商品:商品信息是商品管理系統(tǒng)的主要數(shù)據(jù),是管理人員決策的關(guān)鍵,應(yīng)提供各種需求的信息查詢功能。典型工作任務(wù)2.1鏈表項(xiàng)目需求分析2.1鏈表結(jié)構(gòu)設(shè)計(jì)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是用一組任意的存儲(chǔ)單元來(lái)存放線性表的數(shù)據(jù)元素,這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的。

單鏈表設(shè)計(jì)。鏈表中每個(gè)結(jié)點(diǎn)中包含一個(gè)指向直接后繼結(jié)點(diǎn)的指針,這樣的鏈表稱為單鏈表。單鏈表中每個(gè)結(jié)點(diǎn)的結(jié)構(gòu)如圖2-2。圖2-2鏈表結(jié)點(diǎn)示意圖典型工作任務(wù)2.2鏈表數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)結(jié)點(diǎn)(a)空鏈表

(b)非空鏈表

圖2-3空鏈表(a)和非空單鏈表(b)示意圖典型工作任務(wù)2.2鏈表數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)2.2項(xiàng)目數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)商品信息管理系統(tǒng)借助鏈表存儲(chǔ)所有商品的數(shù)據(jù),鏈表中的結(jié)點(diǎn)存儲(chǔ)商品數(shù)據(jù),一個(gè)結(jié)點(diǎn)存儲(chǔ)一件商品的數(shù)據(jù),商品數(shù)據(jù)在結(jié)點(diǎn)數(shù)據(jù)域存儲(chǔ),結(jié)點(diǎn)指針域存儲(chǔ)另一商品結(jié)點(diǎn)的地址。定義商品類描述商品編號(hào)、名稱、價(jià)格、數(shù)量等信息,鏈表中結(jié)點(diǎn)的數(shù)據(jù)域即為商品類對(duì)象。商品鏈表結(jié)構(gòu)示意圖如圖2-4所示。

圖2-4商品鏈表示意圖

典型工作任務(wù)2.2鏈表數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)2.3.1鏈表的操作算法

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)初始化:構(gòu)造一個(gè)空的鏈表插入:第i個(gè)位置之前插入一個(gè)新元素。刪除:刪除鏈表中的第i個(gè)數(shù)據(jù)元素。修改:修改第i個(gè)數(shù)據(jù)元素。獲?。喝℃湵碇械牡趇個(gè)數(shù)據(jù)元素判空:判斷當(dāng)前鏈表是否為空求長(zhǎng)度:求出鏈表中數(shù)據(jù)元素的個(gè)數(shù)遍歷:按順序輸出鏈表中的數(shù)據(jù)元素加工型引用型2.3.2單鏈表類設(shè)計(jì)單鏈表中需要先定義結(jié)點(diǎn)類,其包含數(shù)值域data和指針域next兩部分,再定義單鏈表類。publicclassNode{ publicObjectdata; publicNodenext; publicNode(){ } publicNode(Objectdata){ this.data=data; } publicNode(Objectdata,Nodenext){ this.data=data; this.next=next; }}典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)一個(gè)參數(shù)的構(gòu)造方法兩個(gè)參數(shù)的構(gòu)造方法鏈表泛型類的定義如下:publicclassLinkList{ privateNodehead;//頭指針 privateNodetail;//尾指針 privateintsize;//結(jié)點(diǎn)個(gè)數(shù) publicvoidinsert(inti,Objectobj){}//位置i添加元素 publicvoidshowList(){}//按順序輸出鏈表中的值publicObjectdelete(inti){}//刪除第i個(gè)元素publicObjectgetData(inti){}//查詢第i個(gè)元素publicvoidupdate(inti,Objectobj){}//修改第i個(gè)元素

publicbooleanisEmpaty(){}//判斷是否為空表publicintgetLength(){}//獲取表的長(zhǎng)度}典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)存儲(chǔ)單鏈表的長(zhǎng)度2.3.3鏈表操作算法創(chuàng)建空表publicLinkList(){ this.head=newNode(null,null); this.tail=null; this.size=0; }

首次創(chuàng)建的單鏈表為空表,LinkList類添加構(gòu)造方法進(jìn)行初始化,構(gòu)造方法中head設(shè)置頭結(jié)點(diǎn),表尾tail設(shè)置為null,表長(zhǎng)size值置為0。典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)2.插入元素publicvoidinsert(inti,Objectobj){Nodep,q;if(i<=0||i>size+1){ System.out.println("插入位置錯(cuò)誤!"); }else{ Nodes=newNode(obj,null); p=head.next; q=head; intj=1; while(p!=null&&j<i){ q=p; p=p.next; j++; } if(p!=null){ s=p.next; } q.next=s; size++; } }典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)3.刪除第i個(gè)元素

publicObjectdelete(inti){if(i<=0||i>size){ System.out.println("刪除位置錯(cuò)誤!"); returnnull; } Nodep,q; p=head.next; q=head; intj=1; while(p!=null&&j<i){ q=p; p=p.next; j++; } q.next=p.next; size--; returnp.data; }典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)4.按順序輸出數(shù)據(jù)元素

publicvoidshowList(){ Nodep; p=head.next; while(p!=null){ System.out.print("\t"+p.data.toString()); p=p.next; } System.out.println(); }典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)從單鏈表中的第一個(gè)結(jié)點(diǎn)開(kāi)始順序輸出每個(gè)結(jié)點(diǎn)中數(shù)據(jù)元素的值5.修改元素publicvoidupdate(inti,Objectobj){ if(i<=0||i>size){ System.out.println("查詢位置錯(cuò)誤!"); } Nodep,q; p=head.next; q=head; intj=1; while(p!=null&&j<i){ q=p; p=p.next; j++; } p.data=obj; }典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)6.獲取第i個(gè)元素publicObjectgetData(inti){ if(i<=0||i>size){ System.out.println("查詢位置錯(cuò)誤!"); returnnull; } Nodep,q; p=head.next; q=head; intj=1; while(p!=null&&j<i){ q=p; p=p.next; j++; } returnp.data; }典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)7.判空

publicbooleanisEmpaty(){ if(size==0) returntrue; else returnfalse; }8.獲取表長(zhǎng)

publicintgetLength(){ returnsize; }

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)3.2項(xiàng)目代碼實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)publicclassGoods{ privateintgoodsId;//商品編號(hào) privateStringtitle;//商品名稱 privatedoubleprice;//商品價(jià)格 privateinttype;//商品類型1--食物類2---電器類3--服裝類4--蔬菜類 privateintnumber;//商品數(shù)量

publicGoods(){ }publicGoods(intgoodsId,Stringtitle,doubleprice,inttype,intnumber){ this.goodsId=goodsId; this.title=title; this.price=price; this.type=type; this.number=number; }}3.2.1商品類商品類中存儲(chǔ)商品主要信息,包括商品編號(hào)、商品名稱、商品價(jià)格、商品類型、商品數(shù)量。其中為了規(guī)范和操作方便,商品類型用整數(shù)表示,1表示食物類,2表示電器類,3表示服裝類,4表示蔬菜類。3.2項(xiàng)目代碼實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)publicclassNode{ Goodsdata;//商品信息 Nodenext;//下一個(gè)商品引用 publicNode(){ } publicNode(Goodsdata){ this.data=data; } publicNode(Goodsdata,Nodenext){ this.data=data; this.next=next; }}3.2.1商品鏈表類首先定義鏈表的結(jié)點(diǎn)類Node,將它定義為鏈表類LinkListGoods的內(nèi)部類。Node類包含數(shù)據(jù)域和指針域,數(shù)據(jù)域的類型是Goods,存儲(chǔ)一件商品信息,指針域存儲(chǔ)下一個(gè)商品結(jié)點(diǎn)的地址。3.2項(xiàng)目代碼實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)publicclassLinkListGoods{privateNodehead;//頭指針privateNodetail;//尾指針privateintsize;//不同商品的總數(shù)量publicLinkListGoods(){}//構(gòu)造方法,初始化空表publicvoidinsertGoods(Goodsgoods){}//插入商品信息publicbooleandeleteGoods(intid){}//刪除商品信息publicGoodsqueryById(intid){}//根據(jù)商品編號(hào)查詢商品信息publicGoodsqueryByTitle(Stringtitle){}//根據(jù)商品名稱查詢商品信息publicList<Goods>queryByType(inttype){}//根據(jù)商品類型查詢商品信息publicList<Node>getAll(){}//瀏覽所有商品信息publicbooleanupdateGoods(Goodsgoods){}//修改商品信息publicbooleanisEmpty(){}//判斷商品鏈表是否為空表publicNodegetHead(){}//獲取商品鏈表頭指針publicintgetCount(){}//獲取商品總數(shù)量,不同商品的總和不是

商品個(gè)數(shù)的總量}鏈表LinkListGoods類中定義頭指針、尾指針、商品總數(shù)量,構(gòu)造方法初始化鏈表為空表,對(duì)鏈表中數(shù)據(jù)進(jìn)行處理的各種成員方法。3.2項(xiàng)目代碼實(shí)現(xiàn)2.添加商品將存儲(chǔ)商品信息的Goods對(duì)象作為結(jié)點(diǎn)的數(shù)據(jù)域創(chuàng)建新結(jié)點(diǎn),將新結(jié)點(diǎn)插入到鏈表末尾,同時(shí)鏈表中表長(zhǎng)size的值增加1。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)3.2.3商品鏈表類中各操作實(shí)現(xiàn)1.商品鏈表初始化商品鏈表中頭指針指向頭結(jié)點(diǎn),表長(zhǎng)size置為0,表尾tail置為null。publicLinkListGoods(){ this.head=newNode(null,null); size=0; this.tail=null;}//將商品插入到鏈表末尾publicvoidinsertGoods(Goodsgoods){ Nodenode=newNode(goods,null);//創(chuàng)建新的商品結(jié)點(diǎn) if(tail==null){ head.next=node;//如果商品鏈表為空表,新結(jié)點(diǎn)是第一個(gè)商品結(jié)點(diǎn) }else{ tail.next=node;//如果商品鏈表不空,新結(jié)點(diǎn)作為商品鏈表尾結(jié)點(diǎn) } tail=node;//尾指針指向新結(jié)點(diǎn) size++;//商品總數(shù)量增1}依次瀏覽商品鏈表中所有結(jié)點(diǎn),將結(jié)點(diǎn)的數(shù)據(jù)域添加到集合,最后將集合作為結(jié)果返回。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)3.瀏覽所有商品信息//獲取所有商品信息,將商品信息從鏈表中取出存儲(chǔ)集合中publicList<Node>getAll(){ Nodep; List<Node>allGoods=newArrayList<Node>();//創(chuàng)建存儲(chǔ)商品的集合 p=head.next; if(p==null){ System.out.println("空表"); returnnull; } while(p!=null){ allGoods.add(p);//商品鏈表結(jié)點(diǎn)中的商品對(duì)象存入集合 p=p.next; } returnallGoods;}依次訪問(wèn)商品結(jié)點(diǎn),結(jié)點(diǎn)的商品編號(hào)與接收的Goods對(duì)象的商品編號(hào)進(jìn)行比較,如果相等,將新的Goods對(duì)象賦值給結(jié)點(diǎn)的數(shù)據(jù)域,方法返回值true,如果沒(méi)有找到商品方法返回值false。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)4.修改商品//根據(jù)商品編號(hào),查詢商品然后修改除編號(hào)外信息publicbooleanupdateGoods(Goodsgoods){ Nodep; if(head.next==null){//空表 System.out.println("空表,沒(méi)有商品"); returnfalse; } p=head.next;//如果表非空,p引用第一個(gè)商品 while(p!=null&&p.data.getGoodsId()!=goods.getGoodsId()){ p=p.next;//p引用下一個(gè)商品 } if(p!=null){ p.data=goods; returntrue; }else { System.out.println("表中未找到該商品"); returnfalse; }}根據(jù)要?jiǎng)h除的商品編號(hào)找到要?jiǎng)h除的商品結(jié)點(diǎn),將結(jié)點(diǎn)從鏈表中刪除,size的值減1。刪除成功返回true,如果為空鏈表或未找到該商品返回false。操作時(shí)用while循環(huán)依次訪問(wèn)各個(gè)商品結(jié)點(diǎn),根據(jù)商品編號(hào)找到要?jiǎng)h除的商品,指針p和q分別指向要?jiǎng)h除結(jié)點(diǎn)和它的前驅(qū)結(jié)點(diǎn),最后將p結(jié)點(diǎn)從商品鏈表中刪除,鏈表大小減1。刪除成功方法返回值true,未找到要?jiǎng)h除商品方法返回值false。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)5.刪除商品//刪除商品,按商品編號(hào)查找,然后刪除publicbooleandeleteGoods(intid){ Nodep,q; if(head.next==null){//空表 System.out.println("空表,沒(méi)有商品"); returnfalse; } q=head; p=head.next; while(p!=null&&p.data.getGoodsId()!=id){ q=p; p=p.next; } if(p!=null){//p結(jié)點(diǎn)即為要?jiǎng)h除的結(jié)點(diǎn) q.next=p.next; if(p.next==null)tail=q; size--; returntrue; }else{//沒(méi)找到要?jiǎng)h除的結(jié)點(diǎn) System.out.println("表中未找到要?jiǎng)h除的商品"); returnfalse; }}通過(guò)while循環(huán)順序?yàn)g覽商品結(jié)點(diǎn),結(jié)點(diǎn)的商品編號(hào)與查詢的商品編號(hào)進(jìn)行比較,如果相等,則查找成功,返回該結(jié)點(diǎn)數(shù)據(jù)域的值。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)6.按商品編號(hào)查詢商品//按商品編號(hào)查詢publicGoodsqueryById(intid){Nodep; if(head.next==null){//空表 System.out.println("空表,沒(méi)有商品"); returnnull; } p=head.next; while(p!=null&&p.data.getGoodsId()!=id){//從商品鏈表第一個(gè)商品結(jié)點(diǎn)開(kāi)始,依次訪問(wèn)每個(gè)結(jié)點(diǎn),

并判斷結(jié)點(diǎn)中商品編號(hào)與查詢的商品編號(hào)是否相等 p=p.next; } if(p!=null){//查詢到商品 returnp.data; }else { System.out.println("表中未找到該商品"); returnnull; }}通過(guò)while循環(huán)順序訪問(wèn)商品結(jié)點(diǎn),結(jié)點(diǎn)的商品名稱與查詢的商品名稱進(jìn)行比較,如果相等,該結(jié)點(diǎn)的數(shù)據(jù)域作為方法值返回。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)7.按商品名稱查詢商品//按商品名稱查詢publicGoodsqueryByTitle(Stringtitle){ Nodep; if(head.next==null){//空表 System.out.println("空表,沒(méi)有商品"); returnnull; } p=head.next; while(p!=null&&!(p.data.getTitle().equals(title))){//依次訪問(wèn)每個(gè)商品結(jié)點(diǎn),并判斷商品

名稱是否時(shí)要查詢的商品名稱 p=p.next; } if(p!=null){//找到所查商品 returnp.data; }else { System.out.println("表中未找到該商品"); returnnull; }}判斷商品鏈表的頭結(jié)點(diǎn)head.next的后繼是否為空,為空則為空表返回true,否則非空表返回false。

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)9.判斷商品鏈表是否為空表//判斷商品鏈表是否為空表publicbooleanisEmpty(){ if(head.next!=null){ returnfalse; }else{ returntrue; }}

11.獲取不同商品的總數(shù)量

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)10.獲取商品鏈表頭指針//獲取商品鏈表頭指針publicNodegetHead(){ returnhead;}//獲取不同商品的總數(shù)量publicintgetCount(){ returnsize;}每個(gè)商品有數(shù)量,此結(jié)果統(tǒng)計(jì)的是不同商品的總數(shù)量,不是同一商品的總數(shù)量。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)publicstaticintmenu(){ Scannerscan=newScanner(System.in); intxz;System.out.println("\t==========================="); System.out.println("\t\t1-----添加商品");System.out.println("\t\t2-----瀏覽商品信息");System.out.println("\t\t3-----修改商品");System.out.println("\t\t4-----刪除商品");System.out.println("\t\t5-----查詢商品");System.out.println("\t\t0-----退出系統(tǒng)");

System.out.println("\t===========================");

System.out.println("請(qǐng)輸入選項(xiàng):"); xz=scan.nextInt();returnxz;}1.系統(tǒng)菜單實(shí)系統(tǒng)運(yùn)行首先顯示主菜單,用戶可以通過(guò)菜單提示進(jìn)行操作。輸入菜單項(xiàng)前的序號(hào),即可選擇對(duì)應(yīng)操作。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)publicstaticvoidmain(String[]args){ intxz; Scannerscan=newScanner(System.in); LinkListGoodslinkListGoods=newLinkListGoods();//創(chuàng)建空商品鏈表 do{ xz=menu();//顯示菜單switch(xz){case1://添加商品insert(linkListGoods); break; case2://瀏覽商品信息 if(!linkListGoods.isEmpty()) { showAllGoods(linkListGoods); }else{ System.out.println("沒(méi)有商品信息!"); } break;2.系統(tǒng)主框架類的主方法實(shí)現(xiàn)系統(tǒng)主框架,執(zhí)行后顯示主菜單,用戶通過(guò)菜單項(xiàng)的選擇,可以實(shí)現(xiàn)添加商品、瀏覽商品、修改商品、刪除商品和查詢商品五種操作。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)case3://修改商品信息 update(linkListGoods); break;case4://刪除商品 if(!linkListGoods.isEmpty()) { showAllGoods(linkListGoods); delete(linkListGoods); }else{ System.out.println("沒(méi)有商品信息!"); } break;case5://查詢商品信息 query(linkListGoods); break;case0://退出系統(tǒng) System.out.println("謝謝使用,再見(jiàn)!"); break;} }while(xz!=0); }2.系統(tǒng)主框架類的主方法實(shí)現(xiàn)系統(tǒng)主框架,執(zhí)行后顯示主菜單,用戶通過(guò)菜單項(xiàng)的選擇,可以實(shí)現(xiàn)添加商品、瀏覽商品、修改商品、刪除商品和查詢商品五種操作。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

publicstaticvoidinsert(LinkListGoodslinkListGoods){ Scannerscan=newScanner(System.in); Goodsgoods=newGoods(); System.out.println("請(qǐng)輸入商品編號(hào)");System.out.print("\t"); goods.setGoodsId(scan.nextInt()); System.out.println("請(qǐng)輸入商品名稱");System.out.print("\t"); goods.setTitle(scan.next()); System.out.println("\t請(qǐng)輸入商品價(jià)格");System.out.print("\t"); goods.setPrice(scan.nextDouble()); System.out.println("\t請(qǐng)選擇商品類型");System.out.print("\t"); System.out.println("1--食物類2---電器類3--服裝類4--蔬菜類");System.out.print("\t"); intt=scan.nextInt();//將商品類型轉(zhuǎn)換為整數(shù)進(jìn)行存儲(chǔ) goods.setType(t);//商品類型在對(duì)象中存儲(chǔ)的是整數(shù)//調(diào)用商品鏈表類中的添加商品方法,將新商品添加到商品鏈表中 linkListGoods.insertGoods(goods); System.out.println("添加成功!"); }3.添加商品類界面上顯示輸入商品信息提示,用戶依據(jù)提示輸入新商品的信息,將商品信息存入Goods對(duì)象中,再調(diào)用LinkListGoods類中insertGoods(Goodsgoods)方法將新商品添加到鏈表中。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

publicstaticvoidshowAllGoods(LinkListGoodslinkListGoods){ List<LinkListGoods.Node>listGoods=linkListGoods.getAll(); //取出鏈表中各商品信息存入集合 System.out.println("商品編號(hào)\t商品名稱\t商品價(jià)格\t商品類型"); for(NodegoodsNode:listGoods){//輸出所有商品信息Stringtype=typeChangeString(goodsNode.data.getType());System.out.print("\t");System.out.println(goodsNode.data.getGoodsId()+"\t"+goodsNode.data.getTitle()+"\t"+goodsNode.data.getPrice()+"\t"+type); } System.out.println(); }publicstaticStringtypeChangeString(inti){//商品類型的值由整數(shù)轉(zhuǎn)換為字符串 Stringtype=""; switch(i){ case1: type="食物類"; break; case2: type="電器類"; break; case3: type="服裝類"; break; case4: type="蔬菜類"; break; } returntype; }4.瀏覽商品信息調(diào)用LinkListGoods類中的getAll()方法獲取商品對(duì)象集合,按行輸出每個(gè)商品對(duì)象的信息,注意對(duì)象中存儲(chǔ)整型數(shù)據(jù),調(diào)用typeChangeString(inti)方法將整數(shù)轉(zhuǎn)換為對(duì)應(yīng)的類型名稱再輸出。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

publicstaticvoidupdate(LinkListGoodslinkListGoods){ Scannerscan=newScanner(System.in); Goodsgoods=newGoods(); System.out.println("請(qǐng)輸入要修改的商品編號(hào)");System.out.print("\t"); goods.setGoodsId(scan.nextInt()); System.out.println("請(qǐng)輸入商品名稱");System.out.print("\t"); goods.setTitle(scan.next()); System.out.println("請(qǐng)輸入商品價(jià)格");System.out.print("\t"); goods.setPrice(scan.nextDouble()); System.out.println("請(qǐng)選擇商品類型"); System.out.println("1--食物類2---電器類3--服裝類4--蔬菜類");System.out.print("\t"); intt=scan.nextInt(); goods.setType(t); booleanb=linkListGoods.updateGoods(goods);//調(diào)用商品鏈表類中的修改商品方法 if(b){ System.out.println("修改成功!"); } }5.修改商品按提示輸入商品新信息,調(diào)用LinkListGoods類中的updateGoods(Goodsgoods)方法,將商品信息替換成新的數(shù)據(jù)。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

publicstaticvoiddelete(LinkListGoodslinkListGoods){ Scannerscan=newScanner(System.in); System.out.println("請(qǐng)輸入要?jiǎng)h除的商品編號(hào)");System.out.print("\t"); intid=scan.nextInt(); booleanb=linkListGoods.deleteGoods(id);//調(diào)用商品鏈表類中的刪除商品方法 if(b){ System.out.println("刪除成功!"); } }6.刪除商品輸入被刪除的商品編碼,調(diào)用LinkListGoods類中的deleteGoods(intid)方法,將指定商品從商品鏈表中刪除。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

publicstaticvoidquery(LinkListGoodslinkListGoods){ Scannerscan=newScanner(System.in); System.out.println("請(qǐng)輸入查詢條件(1-商品編號(hào),2-商品名稱,3-商品類型):"); intn=scan.nextInt(); Goodsgoods=null; Stringtype; List<Goods>goodsList; switch(n){ case1://按商品編號(hào)查詢 System.out.println("\t請(qǐng)輸入商品編號(hào):"); intid=scan.nextInt(); goods=linkListGoods.queryById(id);//調(diào)用商品鏈表類中的方法查詢商品 if(goods!=null){//查詢到商品后,輸出商品信息 System.out.println("商品編號(hào)\t商品名稱\t商品價(jià)格\t商品類型

type=typeChangeString(goods.getType());//商品類型轉(zhuǎn)換成字符System.out.println(goods.getGoodsId()+"\t"+goods.getTitle()+"\t"+goods.getPrice()+"\t"+type); }break;7.查詢商品商品管理系統(tǒng)實(shí)現(xiàn)按商品編碼查詢、按商品名稱查詢和按商品類型查詢?nèi)N查詢方式。二級(jí)菜單提示用戶選擇查詢方式,然后根據(jù)查詢方式調(diào)用LinkListGoods類中的不同方法查詢商品。3.2.4系統(tǒng)測(cè)試類實(shí)現(xiàn)

典型工作任務(wù)2.3鏈表軟件代碼設(shè)計(jì)

case2://按商品名稱查詢System.out.println("請(qǐng)輸入商品名稱:");System.out.print("\t"); //scan.nextLine(); //Stringname=scan.nextLine();Stringname=scan.next();goods=linkListGoods.queryByTitle(name);//調(diào)用商品鏈表類的方法進(jìn)行查詢if(goods!=null){//查詢到商品后輸出商品信息 type=typeChangeString(goods.getType()); System.out.println("商品編號(hào)\t商品名稱\t商品價(jià)格\t商品類型"); System.out.println(goods.getGoodsId()+"\t"+goods.getTitle()+"\t"+goods.getPrice()+"\t"+type); } break; case3://按商品類型查詢,查詢結(jié)果是一個(gè)或多個(gè)商品對(duì)象 System.out.println("請(qǐng)輸入商品類型:1-食物類2-電器類3-服裝類4-蔬菜類");System.out.print("\t"); intt=scan.nextInt(); goodsList=linkListGoods.queryByType(t);//調(diào)用商品鏈表類中的方法進(jìn)行查詢 if(goodsList!=null){//如果查詢結(jié)果不為空 System.out.println("商品編號(hào)\t商品名稱\t商品價(jià)格\t商品類型"); type=typeChangeString(goodsList.get(0).getType()); for(Goodsg:goodsList){//輸出集合中的商品信息 System.out.println(g.getGoodsId()+"\t"+g.getTitle()+"\t"+g.getPrice()+"\t"+type); } System.out.println(); } break; } }7.查詢商品商品管理系統(tǒng)實(shí)現(xiàn)按商品編碼查詢、按商品名稱查詢和按商品類型查詢?nèi)N查詢方式。二級(jí)菜單提示用戶選擇查詢方式,然后根據(jù)查詢方式調(diào)用LinkListGoods類中的不同方法查詢商品。1.菜單功能運(yùn)行測(cè)試

使用單鏈表設(shè)計(jì)商品管理系統(tǒng)的程序,運(yùn)行后顯示主菜單界面,菜單中的菜單項(xiàng)提示系統(tǒng)實(shí)現(xiàn)的功能,用戶輸入菜單項(xiàng)前面的序號(hào),選擇操作。所選擇的某個(gè)操作完成后,主菜單繼續(xù)顯示,直到用戶輸入菜單項(xiàng)“0”后,系統(tǒng)退出。

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行

2.添加商品功能運(yùn)行測(cè)試

商品管理系統(tǒng)中的商品信息由用戶輸入到系統(tǒng)中,主菜單界面輸入菜單選項(xiàng)“1”,按界面提示輸入商品編號(hào)、名稱、價(jià)格和類型。商品添加成功后,界面有“添加成功!”提示信息。

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行

3.瀏覽商品功能運(yùn)行測(cè)試

商品管理系統(tǒng)需要提供瀏覽所有商品信息的功能,主菜單界面輸入菜單選項(xiàng)“2”,能夠顯示商品鏈表中所有商品的各數(shù)據(jù)項(xiàng)信息。

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行

4.修改商品功能運(yùn)行測(cè)試

商品管理系統(tǒng)可以根據(jù)需求,修改已經(jīng)添加的商品信息。主菜單界面選擇菜單項(xiàng)“3”,輸入要修改的商品編號(hào)和商品新信息,系統(tǒng)完成修改商品鏈表中的商品信息操作。

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行

5.刪除商品功能運(yùn)行測(cè)試

商品管理系統(tǒng)可以根據(jù)需求刪除不需要的商品,主菜單界面輸入菜單選項(xiàng)“4”,再輸入要?jiǎng)h除的商品編號(hào),可以將該商品從商品鏈表中刪除。

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行

6.查詢商品功能運(yùn)行測(cè)試

(1)按商品編碼查詢(2)按商品名稱查詢(3)按商品類型查詢

典型工作任務(wù)2.4鏈表軟件測(cè)試執(zhí)行2.5.1初始化模塊測(cè)試

初始化模塊對(duì)商品鏈表中的數(shù)據(jù)進(jìn)行定義,頭指針指向頭結(jié)點(diǎn),無(wú)數(shù)據(jù)結(jié)點(diǎn),本模塊中可能出現(xiàn)元素個(gè)數(shù)未置0。

典型工作任務(wù)2.5鏈表軟件文檔編寫編號(hào)摘要描述預(yù)期結(jié)果正確代碼xpgl-csh-01商品鏈表初始化時(shí),size未置0。未報(bào)錯(cuò)。LinkListGoods類中構(gòu)造方法中添加:size=0;2.5.2添加商品模塊測(cè)試

添加商品模塊需要將商品信息的Goods對(duì)象作為數(shù)據(jù)域創(chuàng)建新結(jié)點(diǎn),將新結(jié)點(diǎn)插入到鏈表末尾,本模塊中可能出現(xiàn)在空表中增加新商品而未作頭結(jié)點(diǎn)、新增商品后數(shù)量未增加等。

典型工作任務(wù)2.5鏈表軟件文檔編寫編號(hào)摘要描述預(yù)期結(jié)果正確代碼xpgl-tj-01LinkListGoods類

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論