版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
特遣隊(duì)組建管理系統(tǒng)
講師:李賀飛新浪微博:尚硅谷-李賀飛目標(biāo)模擬實(shí)現(xiàn)一個基于文本界面的《特遣隊(duì)組建管理系統(tǒng)》熟悉Java面向?qū)ο蟮母呒壧匦裕M(jìn)一步掌握編程技巧和
調(diào)試技巧主要涉及以下知識點(diǎn):類的繼承和多態(tài)對象的關(guān)聯(lián)static和final修飾符特殊類的使用異常處理需求說明模擬實(shí)現(xiàn)基于文本界面的《特遣隊(duì)組建管理系統(tǒng)》。該軟件實(shí)現(xiàn)以下功能:軟件啟動時,根據(jù)給定的數(shù)據(jù)創(chuàng)建部隊(duì)士兵列表(數(shù)組)根據(jù)菜單提示,基于現(xiàn)有的部隊(duì)士兵,組建一個特遣戰(zhàn)隊(duì)以完成一個新的任務(wù)。組建過程包括將士兵插入到特遣隊(duì)中,或從特遣隊(duì)中刪除某士兵,還可以列出特遣隊(duì)中現(xiàn)在成員的列表特遣隊(duì)成員包括指揮官、特種兵和步兵需求說明
本軟件采用單級菜單方式工作。當(dāng)軟件運(yùn)行時,主界面顯示部隊(duì)士兵(部分)的列表,如下:-------------------------------------特遣隊(duì)組建管理系統(tǒng)--------------------------------------ID姓名年齡戰(zhàn)斗力兵種狀態(tài)野外生存指揮等級配備武器
1西施223000.02諸葛亮3218000.0指揮官FREE15000.05級 AK47(7.62毫米)3魯智深237000.0步兵FREE 沙漠之鷹(9000)4趙子龍247300.0步兵FREE 95式(5.8毫米)5李師師2810000.0特種兵FREE10000.0 中國QSG92(10000)……---------------------------------------------------------------------------------------------------1-特遣隊(duì)列表2-添加特遣隊(duì)成員3-刪除特遣隊(duì)成員4-退出請選擇(1-4):_需求說明當(dāng)選擇“添加特遣隊(duì)成員”菜單時,將執(zhí)行從列表中添加指定(通過ID)士兵到特遣隊(duì)的功能:1-特遣隊(duì)列表2-添加特遣隊(duì)成員3-刪除特遣隊(duì)成員4-退出請選擇(1-4):2---------------------添加成員---------------------請輸入要添加的士兵ID:2添加成功按回車鍵繼續(xù)...添加成功后,按回車鍵將重新顯示主界面。特遣隊(duì)成員組成要求:最多一名指揮官最多兩名特種兵最多三名步兵需求說明
如果添加操作因某種原因失敗,將顯示類似以下信息(失敗原因視具體原因而不同):1-特遣隊(duì)列表2-添加特遣隊(duì)成員3-刪除特遣隊(duì)成員4-退出請選擇(1-4):2---------------------添加成員---------------------請輸入要添加的士兵ID:2添加失敗,原因:該員已是特遣隊(duì)成員按回車鍵繼續(xù)...
失敗信息包含以下幾種:特遣隊(duì)成員已滿,無法添加該士兵是普通士兵,無法添加該士兵已是特遣隊(duì)員該士兵正在休假,無法添加該士兵已是特遣隊(duì)員特遣隊(duì)中只能有一名指揮官特遣隊(duì)中只能有兩名特種兵特遣隊(duì)中只能有三名步兵需求說明
當(dāng)選擇“刪除特遣隊(duì)成員”菜單時,將執(zhí)行從特遣隊(duì)中刪除指定(通過TeamID)特遣隊(duì)員的功能:1-特遣隊(duì)列表2-添加特遣隊(duì)成員3-刪除特遣隊(duì)成員4-退出請選擇(1-4):2---------------------刪除成員---------------------請輸入要刪除士兵的TID:1確認(rèn)是否刪除(Y/N):y刪除成功按回車鍵繼續(xù)...
刪除成功后,按回車鍵將重新顯示主界面。需求說明當(dāng)選擇“特遣隊(duì)列表”菜單時,將列出特遣隊(duì)中的現(xiàn)有成員,例如:--------------------特遣隊(duì)成員列表---------------------TID/ID姓名年齡戰(zhàn)斗力兵種野外生存指揮等級
2/4張三豐247300.0步兵
3/2令狐沖3218000.0指揮官15000.020004/6趙敏226800.0步兵
5/12黃蓉279600.0特種兵4800.0-----------------------------------------------------1-特遣隊(duì)列表2-添加特遣隊(duì)成員3-刪除特遣隊(duì)成員4-退出請選擇(1-4):軟件設(shè)計(jì)結(jié)構(gòu)該軟件由以下三個模塊組成:com.atguigu.team.view模塊為主控模塊,負(fù)責(zé)菜單的顯示和處理用戶操作com.atguigu.team.service模塊為實(shí)體對象(Soldier及其子類如步兵等)的管理模塊,NameListService和TeamService類分別用各自的數(shù)組來管理所有士兵和特遣隊(duì)成員對象NameListServiceTeamViewTeamServiceSoldiercom.atguigu.teamviewTeamExceptionservicedomain軟件設(shè)計(jì)結(jié)構(gòu)com.atguigu.team.domain模塊中包含了所有實(shí)體類:其中士兵(Infantry)及其子類,均會領(lǐng)用某種武器設(shè)備(Weapon)。Soldier<<interface>>WeaponInfantrySpecialTroopsCommanderGrenadeRiflePistol普通士兵SoldierIdnameagefighting:戰(zhàn)斗力步兵Weapon:特種兵field:野外生存能力指數(shù)指揮官commanderRating指揮權(quán)限等級多層繼承:
①能提高代碼復(fù)用性
②子類可以父類的特殊類型(多態(tài))Soldier類及其子類的設(shè)計(jì)說明:fighting用來描述士兵的戰(zhàn)斗力memberId用來記錄士兵加入特遣隊(duì)后在團(tuán)隊(duì)中的IDstatus是項(xiàng)目自定義的枚舉類型,表示成員的狀態(tài):FREE-空閑BUSY-已加入特遣隊(duì)VOCATION-正在休假weapon表示該成員領(lǐng)用的武器可根據(jù)需要自行為類提供各屬性的get/set方法以及重載構(gòu)造器Soldier-id:intname:Stringage:intfighting:double+Soldier(id:int,name:String,age:int,fighting:double)Infantry-memberId:intstatus:Statusweapon:Weapon+Infantry(id:int,name:String,age:int,fighting:double,weapon:Weapon)士兵Idnameagefighting:戰(zhàn)斗力步兵Weapon:武器特種兵field:野外生存指數(shù)指揮官commanderRating指揮權(quán)限等級多層繼承:
①提高代碼的復(fù)用性
②產(chǎn)生特殊的類型(多態(tài))Status枚舉類Status枚舉類位于com.atguigu.team.service包中,其代碼如下:packagecom.atguigu.team.service;publicenumStatus{FREE,BUSY,VOCATION}Soldier類及其子類的設(shè)計(jì)說明:field為野外生存能力指數(shù)commanderRating表示指揮權(quán)限級別可根據(jù)需要自行為類提供各屬性的get/set方法以及重載構(gòu)造器SpecialTroopsfield:double+SpecialTroops(id:int,name:String,age:int,salary:double,weapon:Weapon,field:double)CommandercommanderRating:int+Commander(id:int,name:String,age:int,salary:double,weapon:Weapon,field:double,commanderRating:int)Weapon接口及其實(shí)現(xiàn)子類的設(shè)計(jì)說明:model表示武器型號force表示威力指數(shù)size表示口徑尺寸(即子彈的大小,如:5.48mm)可根據(jù)需要自行為類提供各屬性的get/set方法以及重載構(gòu)造器<<interface>>Weapon+getDescription():StringRiflemodel:Stringsize:double+Rifle(model:String,size:double)Pistolmodel:Stringforce:double+Pistol(model:String,force:double)Grenadetype:Stringname:String+Grenade(type:String,name:String)NameListService類的設(shè)計(jì)說明:soldiers用來保存所有士兵對象NameListService()構(gòu)造器:根據(jù)項(xiàng)目提供的Data類構(gòu)建相應(yīng)大小的soldiers數(shù)組再根據(jù)Data類中的數(shù)據(jù)構(gòu)建不同的對象,包括Soldier、Infantry、SpecialTroops和Commander對象,以及相關(guān)聯(lián)的Weapon子類的對象將對象存于數(shù)組中Data類位于com.atguigu.team.service包中NameListService+NameListService()+getAllSoldiers():Soldier[]+getSoldier(intid)throwsTeamException:Soldier-soldiers:Soldier[]NameListService類的設(shè)計(jì)說明:getAllSoldiers()方法:獲取當(dāng)前所有士兵。返回:包含所有士兵對象的數(shù)組getSoldier(id:int)方法:獲取指定ID的士兵對象。參數(shù):指定士兵的ID返回:指定士兵對象異常:找不到指定的士兵另外,可根據(jù)需要自行添加其他方法或重載構(gòu)造器NameListService+NameListService()+getAllSoldiers():Soldier[]+getSoldier(intid)throwsTeamException:Soldier-soldiers:Soldier[]TeamService類的設(shè)計(jì)說明:counter為靜態(tài)變量,用來為特遣隊(duì)新增成員自動生成團(tuán)隊(duì)中的唯一ID,即memberId。(提示:應(yīng)使用增1的方式)MAX_MEMBER表示特遣隊(duì)中最大成員數(shù)team數(shù)組用來保存當(dāng)前特遣隊(duì)中的各成員對象total記錄特遣隊(duì)成員的實(shí)際人數(shù)TeamService+getTeam():Infantry[]+addMember(s:Soldier)throwsTeamException:void+removeMember(memberId:int)throwsTeamException:void-counter:int=1MAX_MEMBER:finalint=5team:Infantry[]=newInfantry[MAX_MEMBER];-total:int=0;TeamService類的設(shè)計(jì)說明:getTeam()方法:返回當(dāng)前特遣隊(duì)的所有對象返回:包含所有成員對象的數(shù)組,數(shù)組大小與成員人數(shù)一致addMember(s:Soldier)方法:向特遣隊(duì)中添加士兵參數(shù):待添加士兵的對象異常:添加失敗,
TeamException中包含了失敗原因removeMember(memberId:int)方法:從特遣隊(duì)中刪除成員參數(shù):待刪除成員的memberId異常:刪除失敗,
TeamException中包含了失敗原因另外,可根據(jù)需要自行添加其他方法或重載構(gòu)造器TeamService+getTeam():Infantry[]+addMember(s:Soldier)throwsTeamException:void+removeMember(memberId:int)throwsTeamException:voidTeamView類的設(shè)計(jì)說明:listSvc和teamSvc屬性:供類中的方法使用enterMainMenu()方法:主界面顯示及控制方法。以下方法僅供enterMainMenu()方法調(diào)用:listAllSoldiers()方法:以表格形式列出部隊(duì)所有士兵addMember()方法:實(shí)現(xiàn)添加成員操作deleteMember()方法:實(shí)現(xiàn)刪除成員操作TeamView+enterMainMenu():void-listAllSoldiers():void-addMember():void-deleteMember():void+main(args:String[]):void-listSvc:NameListService=newNameListService()-teamSvc:TeamService=newTeamService()鍵盤訪問的實(shí)現(xiàn)項(xiàng)目中提供了TSUtility.java類,可用來方便地實(shí)現(xiàn)鍵盤訪問。該類提供了以下靜態(tài)方法:publicstaticcharreadMenuSelection()
用途:該方法讀取鍵盤,
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年外研版八年級歷史上冊月考試卷含答案
- 2025年粵教新版九年級歷史下冊階段測試試卷
- 2025年人教版選修6歷史下冊階段測試試卷含答案
- 2025年湘教新版選修2地理上冊月考試卷含答案
- 2025年粵教版九年級科學(xué)上冊階段測試試卷含答案
- 2025年冀教版九年級生物上冊階段測試試卷含答案
- 2025年滬教版八年級地理下冊階段測試試卷
- 2025年度跨境電商農(nóng)產(chǎn)品進(jìn)出口代理服務(wù)合同范本4篇
- 二零二五年度企業(yè)年會禮品贊助合作合同協(xié)議書4篇
- 二零二五年度南海區(qū)勞動就業(yè)服務(wù)中心農(nóng)村勞動力轉(zhuǎn)移就業(yè)合同4篇
- 中華人民共和國保守國家秘密法實(shí)施條例培訓(xùn)課件
- 管道坡口技術(shù)培訓(xùn)
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 皮膚儲存新技術(shù)及臨床應(yīng)用
- 外研版七年級英語上冊《閱讀理解》專項(xiàng)練習(xí)題(含答案)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫必考題
- 上海市復(fù)旦大學(xué)附中2024屆高考沖刺模擬數(shù)學(xué)試題含解析
- 幼兒園公開課:大班健康《國王生病了》課件
- 小學(xué)六年級說明文閱讀題與答案大全
- 人教pep小學(xué)六年級上冊英語閱讀理解練習(xí)題大全含答案
評論
0/150
提交評論