JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)

上傳人:每**** 文檔編號(hào):54185652 上傳時(shí)間:2022-02-12 格式:DOCX 頁(yè)數(shù):37 大?。?36.52KB
收藏 版權(quán)申訴 舉報(bào) 下載
JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)_第1頁(yè)
第1頁(yè) / 共37頁(yè)
JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)_第2頁(yè)
第2頁(yè) / 共37頁(yè)
JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)_第3頁(yè)
第3頁(yè) / 共37頁(yè)

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《JAVA簡(jiǎn)單項(xiàng)目購(gòu)物系統(tǒng)的整個(gè)開(kāi)發(fā)過(guò)程詳解(內(nèi)含源碼和注釋)(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、推薦精選1. 購(gòu)物系統(tǒng)的需求分析和類(lèi)劃分 購(gòu)物系統(tǒng)本身是一個(gè)十分復(fù)雜的系統(tǒng),有很多細(xì)節(jié)問(wèn)題如果深究會(huì)更加復(fù)雜,并且一般購(gòu)物系統(tǒng)都是網(wǎng)頁(yè)類(lèi)型的,要有一個(gè)友好的界面,但是作為一個(gè)簡(jiǎn)單項(xiàng)目,該項(xiàng)目只是為了給JAVA初學(xué)者介紹一下開(kāi)發(fā)的基本思想,以及面向?qū)ο髸r(shí)應(yīng)該怎樣去設(shè)計(jì)框架和實(shí)現(xiàn)流程,所以只推薦精選是基于eclipse開(kāi)發(fā)的一個(gè)簡(jiǎn)單的項(xiàng)目,并沒(méi)有GUI的參與,并且很多細(xì)節(jié)問(wèn)題作為后續(xù)研究,整體的設(shè)計(jì)比較簡(jiǎn)單,但是足以說(shuō)明很多設(shè)計(jì)思想和設(shè)計(jì)理念,那么下面對(duì)基本的需求進(jìn)行分析。 作為一個(gè)簡(jiǎn)單的購(gòu)物系統(tǒng),至少需要具備以下功能(這些功能分布在不同級(jí)的菜單中): (1)用戶(hù)登錄功能、用戶(hù)賬號(hào)密碼修改功能,暫

2、時(shí)不提供注冊(cè)功能; (2)用戶(hù)成功登錄后,需要具備客戶(hù)信息的管理功能、購(gòu)物結(jié)算功能以及一些抽獎(jiǎng)活動(dòng)等; (3)客戶(hù)信息管理功能下面又可以分出很多功能,比如說(shuō):查詢(xún)、修改、增加等; (4)購(gòu)物結(jié)算功能下面又可以分出很多功能,比如說(shuō):商品選購(gòu)、付款、賬單等; (5)抽獎(jiǎng)活動(dòng)下面又可以設(shè)計(jì)出多種的抽獎(jiǎng)形式,從而進(jìn)一步劃分為許多新的功能模塊。 (6)在一級(jí)菜單中要提供退出系統(tǒng)的功能,在二級(jí)菜單中要提供注銷(xiāo)登錄的功能,其他級(jí)菜單都要能夠返回上一級(jí)菜單。 上面的這些功能都是一些比較基本的功能,那么如果按照面向流程的思想來(lái)設(shè)計(jì),就會(huì)劃分很多功能模塊,然后按照流程一步步走就行,但是現(xiàn)在我們采用面向?qū)ο蟮乃枷雭?lái)

3、設(shè)計(jì),那么應(yīng)該如何考慮設(shè)計(jì)框架呢?面向?qū)ο蟮闹饕枷刖褪菍⒁恍┬枨蟪橄鬄樵S多類(lèi),然后建立這些推薦精選類(lèi)之間的聯(lián)系,通過(guò)不同類(lèi)之間的協(xié)同合作,就可以實(shí)現(xiàn)所有的功能。所以,現(xiàn)在的主要任務(wù)就是如何合理地抽象出這些類(lèi),以及這些類(lèi)要實(shí)現(xiàn)什么功能,類(lèi)之間的聯(lián)系又是什么?下面通過(guò)本次設(shè)計(jì)的結(jié)構(gòu)對(duì)這一過(guò)程進(jìn)行分析。 (1)StartSMS類(lèi):用于系統(tǒng)的啟動(dòng)。我們的系統(tǒng)肯定需要一個(gè)啟動(dòng)類(lèi),這個(gè)類(lèi)里面包含了main方法,用來(lái)啟動(dòng)這個(gè)系統(tǒng),這個(gè)類(lèi)是最頂層的,所以不能牽涉太多底層的細(xì)節(jié)實(shí)現(xiàn),只需要實(shí)現(xiàn)一些頂層的基本流程就行,主要還是要調(diào)用底層其他類(lèi)的一些方法來(lái)實(shí)現(xiàn)功能。 (2)Data類(lèi):用來(lái)存放我們的所有數(shù)據(jù)信息,

4、本次設(shè)計(jì)主要存放的是已經(jīng)預(yù)存的一些可供購(gòu)買(mǎi)的商品信息和已經(jīng)注冊(cè)的會(huì)員信息。為什么需要這個(gè)類(lèi)呢?大家想一想,在面向?qū)ο蟮脑O(shè)計(jì)中,我們的數(shù)據(jù)比較多,肯定不能零散地到處定義、任意修改,這樣會(huì)使得系統(tǒng)的聚合程度太低,容易出現(xiàn)很多錯(cuò)誤,并且難以進(jìn)行后期功能擴(kuò)展和錯(cuò)誤修改,所以我們要把用到的一些公有的數(shù)據(jù)進(jìn)行歸類(lèi),然后放在一個(gè)類(lèi)中,并且在該類(lèi)中提供對(duì)這些數(shù)據(jù)進(jìn)行操作的方法。 (3)Menu類(lèi):用于顯示及處理各級(jí)菜單。既然我們?cè)O(shè)計(jì)的是一個(gè)購(gòu)物系統(tǒng),那么即使再簡(jiǎn)單,也需要一個(gè)基本的菜單,用來(lái)和用戶(hù)進(jìn)行交互,由于菜單的比較多,并且各級(jí)菜單之間層層相連,所以我們需要對(duì)菜單進(jìn)行統(tǒng)一管理,故而出現(xiàn)了菜單類(lèi)。注意,這里

5、的菜單只是一些頂層的菜單顯示和基本的功能調(diào)用,具體底層的算法還是需要更加底層的類(lèi)來(lái)實(shí)現(xiàn)的。推薦精選 (4)Manager類(lèi):用于存儲(chǔ)用戶(hù)的賬戶(hù)和密碼。既然我們需要用戶(hù)登錄,那么肯定需要一個(gè)單獨(dú)的類(lèi)來(lái)管理用戶(hù)的賬戶(hù)和密碼,從而使系統(tǒng)的獨(dú)立性更強(qiáng)一些。本次設(shè)計(jì)的用戶(hù)只有一個(gè)賬戶(hù)和密碼,只允許修改賬戶(hù)和密碼,但是不允許注冊(cè)。 (5)VerifyEqual類(lèi):用于驗(yàn)證登錄信息。這個(gè)類(lèi)相當(dāng)于是把登錄這項(xiàng)功能抽象成了一個(gè)類(lèi),這個(gè)實(shí)現(xiàn)其實(shí)并不是非常必要,但是為了使得系統(tǒng)功能劃分更加清晰,所以設(shè)計(jì)了此類(lèi),用來(lái)對(duì)登錄信息和已有的賬戶(hù)和密碼進(jìn)行校驗(yàn),從而給出校驗(yàn)結(jié)果。 (6)CustManagement類(lèi):用于客

6、戶(hù)信息的管理,該類(lèi)實(shí)現(xiàn)了底層的一些功能,比如說(shuō)查詢(xún)、修改、增加等。當(dāng)我們進(jìn)入到客戶(hù)信息管理這個(gè)菜單的時(shí)候,肯定需要對(duì)客戶(hù)信息進(jìn)行許多操作,為了方便管理這些操作,并考慮到后續(xù)的擴(kuò)展性,這里把客戶(hù)信息管理的所有功能都抽象出來(lái),放在此類(lèi)中,上一級(jí)菜單通過(guò)調(diào)用該類(lèi)中的方法實(shí)現(xiàn)客戶(hù)信息的管理。 (7)Pay類(lèi):用于處理購(gòu)物和結(jié)算操作。該類(lèi)和上面的類(lèi)存在的原理基本一致,當(dāng)客戶(hù)選擇進(jìn)行購(gòu)物的時(shí)候,肯定要有很多操作,比如說(shuō)買(mǎi)什么、多少錢(qián)、付款、找零等,這些功能比較零碎,所以我們對(duì)其進(jìn)行集中管理,從而抽象出該類(lèi),對(duì)購(gòu)物和結(jié)算的菜單選項(xiàng)的底層算法進(jìn)行實(shí)現(xiàn),上一級(jí)菜單通過(guò)調(diào)用該類(lèi)的方法實(shí)現(xiàn)購(gòu)物和結(jié)算功能,并且可以返

7、回上一級(jí)菜單。推薦精選 (8)GiftManagement類(lèi):用于處理抽獎(jiǎng)活動(dòng)的相關(guān)功能。這個(gè)類(lèi)和(6)、(7)中的類(lèi)存在的理由基本一致,該類(lèi)對(duì)抽獎(jiǎng)活動(dòng)進(jìn)行了統(tǒng)一管理,上一級(jí)菜單只需要通過(guò)調(diào)用該類(lèi)的方法就可以實(shí)現(xiàn)抽獎(jiǎng)的功能。 (9)Gift類(lèi):用于管理禮物。既然設(shè)計(jì)了抽獎(jiǎng)環(huán)節(jié),那么肯定需要禮物,那么我們會(huì)給出什么樣的禮物呢,我們總不能每一樣禮物都詳細(xì)列出來(lái)吧,這樣十分冗余,也很麻煩,所以我們干脆抽象出一個(gè)禮物類(lèi),把禮物的一些屬性:禮物名稱(chēng)和價(jià)格等保存成該類(lèi)的成員變量,然后就可以很方便的管理該類(lèi),需要什么樣的禮物就直接新建一個(gè)禮物對(duì)象,然后對(duì)該對(duì)象的屬性進(jìn)行修改和管理即可,這樣的實(shí)現(xiàn)類(lèi)似于一個(gè)接

8、口,但是又和接口完全不一樣,功能差不多。 總之,上面的類(lèi)都是經(jīng)過(guò)一些功能模塊劃分后抽象出來(lái)的,有些地方也并不一定合理,主要還是需要看需求,根據(jù)不同的需求制定不同的方案。在這里,我想就”Gift類(lèi)“再?gòu)?qiáng)調(diào)一點(diǎn),這個(gè)類(lèi)的設(shè)計(jì)十分符合面向?qū)ο蟮乃枷耄e個(gè)例子來(lái)看,如果購(gòu)物系統(tǒng)中需要很多禮物,比如手機(jī)、電腦、移動(dòng)電源等,那么如果我們一個(gè)個(gè)寫(xiě)這些禮物,會(huì)使得系統(tǒng)代碼十分冗余,因?yàn)槎Y物的屬性基本一樣,所以我們就可以抽象成一個(gè)類(lèi),從而在需要什么禮物的時(shí)候只定義一個(gè)對(duì)象,然后賦予一定的屬性即可,比如需要手機(jī)、電腦,那么我們只需要new一個(gè)Gift類(lèi)的對(duì)象,然后在需要手機(jī)的時(shí)候設(shè)置其屬性為手機(jī),在需要電腦的時(shí)候

9、設(shè)置其屬性為電腦,需要什么設(shè)置什么即可,這樣就使得我們的代碼得到推薦精選了簡(jiǎn)化,也使得結(jié)構(gòu)比較清晰。在更為復(fù)雜的系統(tǒng)中,其實(shí)禮物用接口來(lái)實(shí)現(xiàn)更為合理,這樣就可以根據(jù)該接口實(shí)現(xiàn)不同的禮物類(lèi),從而滿(mǎn)足不同的需求,就類(lèi)似于我們的電腦上的USB接口,只需要這個(gè)接口,我們就可以插上很多各種各樣的外圍設(shè)備,道理差不多。2. 購(gòu)物系統(tǒng)的類(lèi)之間的關(guān)系和流程(用圖示法表示) 下圖是我用Microsoft Office Visio 2003畫(huà)圖工具畫(huà)出的這9個(gè)類(lèi)之間的關(guān)系。推薦精選 從上圖中可以清晰地看出來(lái)各類(lèi)之間的關(guān)系,大致關(guān)系和流程如下所述: (1)StartSMS類(lèi)是啟動(dòng)類(lèi),內(nèi)含main方法,這個(gè)類(lèi)里面定義

10、了VerifyEqual類(lèi)和Data類(lèi)的對(duì)象,用來(lái)存儲(chǔ)數(shù)據(jù)和驗(yàn)證信息,同時(shí)Data類(lèi)中包含了Manager類(lèi),用來(lái)存儲(chǔ)預(yù)存的用戶(hù)賬號(hào)信息,然后在main方法中通過(guò)一定的邏輯,去調(diào)用Menu類(lèi)中的showLoginMenu()方法,用于處理一級(jí)菜單-登錄修改流程; (2)如果登錄成功,就調(diào)用Menu類(lèi)中的showMainMenu()方法,用于處理二級(jí)菜單-購(gòu)物系統(tǒng)的主流程,如果登錄失敗3次,就直接退出系統(tǒng); (3)在Menu類(lèi)中的showMainMenu()方法中,通過(guò)選擇不同的二級(jí)菜單選項(xiàng),從而調(diào)用Menu類(lèi)中的showCustMMenu()方法來(lái)處理客戶(hù)信息管理流程或者調(diào)用Menu類(lèi)中的sh

11、owSendMenu()方法來(lái)處理抽獎(jiǎng)活動(dòng)流程,亦或者調(diào)用Pay類(lèi)中的calcPrice()方法來(lái)處理購(gòu)物結(jié)算流程; (4)如果選擇了二級(jí)菜單中的客戶(hù)信息管理選項(xiàng),那么就會(huì)調(diào)用Menu類(lèi)中的showCustMMenu()方法,這個(gè)方法會(huì)調(diào)用CustManagement類(lèi)中的各種方法,用以處理客戶(hù)信息管理的不同操作;推薦精選 (5)如果選擇了二級(jí)菜單中的購(gòu)物結(jié)算選項(xiàng),那么就會(huì)調(diào)用Pay類(lèi)中的calcPrice()方法,從而處理購(gòu)物結(jié)算的流程,注意在Pay類(lèi)中的getDiscount()方法是用來(lái)根據(jù)客戶(hù)會(huì)員信息來(lái)計(jì)算打折率的; (6)如果選擇了二級(jí)菜單中的真情回饋選項(xiàng),即抽獎(jiǎng)活動(dòng),那么就會(huì)調(diào)用M

12、enu類(lèi)中的showSendMenu()方法,這個(gè)方法會(huì)調(diào)用GiftManagement類(lèi)中的各種方法,用以處理抽獎(jiǎng)活動(dòng)的不同操作; 注意到在CustManagement類(lèi)和GiftManagement類(lèi)中都有一個(gè)returnLastMenu()方法,該方法是用來(lái)返回上一級(jí)菜單使用的。3. 代碼實(shí)現(xiàn) 需要說(shuō)明的一點(diǎn)是這些代碼都應(yīng)該放在cn.itcast包下。 3.1StartSMS類(lèi)javaview plaincopy1. packagecn.itcast;2. importjava.util.Scanner;3. /*4. *該類(lèi)是這個(gè)系統(tǒng)的主方法類(lèi),用于啟動(dòng)購(gòu)物系統(tǒng)5. *6. *auth

13、or7. *8. */9. publicclassStartSMS10. /*11. *空構(gòu)造方法12. *13. */14. publicStartSMS()推薦精選15. 16. /*17. *系統(tǒng)主方法18. *19. *paramargs20. */21. publicstaticvoidmain(Stringargs)22. /創(chuàng)建已有的數(shù)據(jù)類(lèi)的對(duì)象,并初始化已有的商品信息和顧客信息23. Datadata=newData();24. data.initial();25. /創(chuàng)建菜單類(lèi)的對(duì)象26. Menumenu=newMenu();27. /這里將初始化的已有數(shù)據(jù)信息送給了菜單對(duì)

14、象28. menu.setData(29. data.goodsName,30. data.goodsPrice,31. data.custNo,32. data.custBirth,33. data.custScore);34. /顯示一級(jí)菜單,即登錄界面35. menu.showLoginMenu();36. /該標(biāo)志用來(lái)判斷是否發(fā)生了系統(tǒng)操作錯(cuò)誤,當(dāng)操作不當(dāng)?shù)臅r(shí)候flag為假,從而退出系統(tǒng),默認(rèn)為無(wú)錯(cuò)誤37. booleanflag=true;38. /處理整個(gè)系統(tǒng)的流程39. do40. /發(fā)生操作錯(cuò)誤,退出系統(tǒng)41. if(!flag)42. break;43. /創(chuàng)建驗(yàn)證用戶(hù)登錄的

15、賬戶(hù)和密碼是否正確的類(lèi)的對(duì)象,這里只創(chuàng)建對(duì)象,并沒(méi)有執(zhí)行驗(yàn)證方法44. VerifyEqualverifyequal=newVerifyEqual();45. /輸入一級(jí)菜單中的選擇46. Scannerscanner=newScanner(System.in);47. inti=scanner.nextInt();48. /根據(jù)用戶(hù)對(duì)一級(jí)菜單的選擇做出不同的響應(yīng),注意這里就是經(jīng)典的switch-case的用法49. switch(i)50. case1:/用戶(hù)選擇登錄系統(tǒng)51. /定義計(jì)數(shù)器,表示用戶(hù)最多只能?chē)L試3次,3次輸入錯(cuò)誤直接退出系統(tǒng)52. intj=3;53. /處理登錄系統(tǒng)的流程

16、54. do55. if(verifyequal.verify(data.manager.username,56. data.manager.password)推薦精選57. /用戶(hù)登錄成功,顯示購(gòu)物二級(jí)菜單!58. menu.showMainMenu();59. break;60. 61. if(j!=1)62. /用戶(hù)輸入有誤,還沒(méi)有達(dá)到3次,允許重新輸入63. System.out.println(n用戶(hù)名和密碼不匹配,請(qǐng)重新輸入:);64. else65. /3次嘗試結(jié)束,設(shè)置退出標(biāo)志,并退出do-while循環(huán)66. System.out.println(n您沒(méi)有權(quán)限進(jìn)入系統(tǒng)!謝謝!

17、);67. flag=false;68. break;69. 70. /每輸入一次將計(jì)數(shù)器減1,用于表示已經(jīng)嘗試了多少次71. j-;72. while(true);73. break;74. case2:/用戶(hù)選擇更改管理員信息75. if(verifyequal.verify(data.manager.username,76. data.manager.password)77. /輸入新信息前要先驗(yàn)證原來(lái)的信息,此處表示已經(jīng)驗(yàn)證成功78. System.out.print(請(qǐng)輸入新的用戶(hù)名:);79. data.manager.username=scanner.next();80. Sys

18、tem.out.print(請(qǐng)輸入新的密碼:);81. data.manager.password=scanner.next();82. System.out.println(用戶(hù)名和密碼已更改!);83. /信息更改成功,選擇下一步的操作84. System.out.println(n請(qǐng)選擇,輸入數(shù)字:);85. else86. /信息驗(yàn)證失敗,設(shè)置退出標(biāo)志87. System.out.println(抱歉,你沒(méi)有權(quán)限修改!);88. flag=false;89. 90. break;91. case3:/用戶(hù)選擇退出92. System.out.println(謝謝您的使用!);93. S

19、ystem.exit(0);94. break;95. default:/一級(jí)菜單輸入錯(cuò)誤,需要重新選擇96. System.out.print(n輸入有誤!請(qǐng)重新選擇,輸入數(shù)字:);97. break;98. 99. while(flag);推薦精選100. 101. 3.2Data類(lèi)javaview plaincopy1. packagecn.itcast;2. /*3. *存放購(gòu)物系統(tǒng)的初始化數(shù)據(jù)的數(shù)據(jù)類(lèi),該類(lèi)只是存放了已有的商品信息和顧客信息4. *5. *author6. *7. */8. publicclassData9. /*10. *默認(rèn)構(gòu)造方法,初始化變量,由于都是數(shù)組對(duì)象或

20、類(lèi)對(duì)象,所以都需要采用new11. *12. */13. publicData()14. goodsName=newString50;15. goodsPrice=newdouble50;16. custNo=newint100;17. custBirth=newString100;18. custScore=newint100;19. manager=newManager();20. 21. /*22. *初始化該類(lèi)的數(shù)據(jù)23. *24. */25. publicvoidinitial()26. /*=添加了初始的7種商品信息=*/27. goodsName0=addidas運(yùn)動(dòng)鞋;28.

21、goodsPrice0=880D;29. goodsName1=Kappa網(wǎng)球裙;30. goodsPrice1=200D;31. goodsName2=網(wǎng)球拍;32. goodsPrice2=780D;33. goodsName3=addidasT恤;34. goodsPrice3=420.77999999999997D;35. goodsName4=Nike運(yùn)動(dòng)鞋;36. goodsPrice4=900D;推薦精選37. goodsName5=Kappa網(wǎng)球;38. goodsPrice5=45D;39. goodsName6=KappaT恤;40. goodsPrice6=245D;41

22、. /*=添加了初始的7個(gè)顧客信息=*/42. custNo0=1900;43. custBirth0=08/05;44. custScore0=2000;45. custNo1=1711;46. custBirth1=07/13;47. custScore1=4000;48. custNo2=1623;49. custBirth2=06/26;50. custScore2=5000;51. custNo3=1545;52. custBirth3=04/08;53. custScore3=2200;54. custNo4=1464;55. custBirth4=08/16;56. custSc

23、ore4=1000;57. custNo5=1372;58. custBirth5=12/23;59. custScore5=3000;60. custNo6=1286;61. custBirth6=12/21;62. custScore6=10080;63. 64. /*=定義該類(lèi)所擁有的變量=*/65. publicStringgoodsName;/商品的名稱(chēng)66. publicdoublegoodsPrice;/商品的價(jià)格67. publicintcustNo;/顧客的會(huì)員號(hào)68. publicStringcustBirth;/顧客的生日69. publicintcustScore;/顧

24、客的積分70. publicManagermanager;/管理員類(lèi),僅僅存儲(chǔ)了管理員的用戶(hù)名和密碼71. 3.3Manager類(lèi)javaview plaincopy1. packagecn.itcast;2. /*3. *管理員類(lèi),僅僅存儲(chǔ)了管理員的用戶(hù)名和密碼推薦精選4. *5. *author6. *7. */8. publicclassManager9. /*10. *設(shè)置默認(rèn)的用戶(hù)名和密碼11. *12. */13. publicManager()14. username=itcast;15. password=itcast;16. 17. /*=定義該類(lèi)所擁有的變量=*/18. p

25、ublicStringusername;/用戶(hù)名19. publicStringpassword;/密碼20. 3.4VerifyEqual類(lèi)javaview plaincopy1. packagecn.itcast;2. importjava.util.Scanner;3. /*4. *驗(yàn)證用戶(hù)登錄的賬戶(hù)和密碼是否正確的類(lèi)5. *6. *author7. *8. */9. publicclassVerifyEqual10. /*11. *空構(gòu)造方法12. *13. */14. publicVerifyEqual()15. 16. /*17. *執(zhí)行驗(yàn)證的方法18. *19. *params用

26、于驗(yàn)證的正確的用戶(hù)名20. *params1用于驗(yàn)證的正確的密碼21. *return推薦精選22. */23. publicbooleanverify(Strings,Strings1)24. /由用戶(hù)輸入用戶(hù)名25. System.out.print(請(qǐng)輸入用戶(hù)名:);26. Scannerscanner=newScanner(System.in);27. Strings2=scanner.next();28. /由用戶(hù)輸入密碼29. System.out.print(請(qǐng)輸入密碼:);30. scanner=newScanner(System.in);31. Strings3=scanne

27、r.next();32. /判斷用戶(hù)輸入的信息是否和已有的信息一致33. returns2.equals(s)&s1.equals(s3);34. 35. 3.5Menu類(lèi)javaview plaincopy1. packagecn.itcast;2. importjava.util.Scanner;3. /*4. *菜單類(lèi),用于顯示所有級(jí)菜單供用戶(hù)選擇5. *6. *author7. *8. */9. publicclassMenu10. /*11. *空構(gòu)造方法12. *13. */14. publicMenu()15. 16. /*17. *設(shè)置菜單類(lèi)中的數(shù)據(jù)信息18. *19. *pa

28、ramas20. *paramad21. *paramai22. *paramas123. *paramai124. */推薦精選25. publicvoidsetData(Stringas,doublead,intai,Stringas1,intai1)26. goodsName=as;27. goodsPrice=ad;28. custNo=ai;29. custBirth=as1;30. custScore=ai1;31. 32. /*33. *顯示一級(jí)菜單,即登錄界面34. *35. */36. publicvoidshowLoginMenu()37. System.out.print

29、ln(nnttt歡迎使用itcast購(gòu)物管理系統(tǒng)1.0版nn);38. System.out.println(*n);39. System.out.println(tttt1.登錄系統(tǒng)nn);40. System.out.println(tttt2.更改管理員信息nn);41. System.out.println(tttt3.退出nn);42. System.out.println(*n);43. System.out.print(請(qǐng)選擇,輸入數(shù)字:);44. 45. /*46. *顯示二級(jí)菜單,即系統(tǒng)的主菜單,這個(gè)方法里面包含了對(duì)這個(gè)菜單處理的所有流程47. *48. */49. publ

30、icvoidshowMainMenu()50. /顯示二級(jí)菜單,即系統(tǒng)的主菜單51. System.out.println(nntttt歡迎使用購(gòu)物管理系統(tǒng)n);52. System.out.println(*n);53. System.out.println(tttt1.客戶(hù)信息管理n);54. System.out.println(tttt2.購(gòu)物結(jié)算n);55. System.out.println(tttt3.真情回饋n);56. System.out.println(tttt4.注銷(xiāo)n);57. System.out.println(*n);58. /用戶(hù)選擇服務(wù)項(xiàng)目59. Syst

31、em.out.print(請(qǐng)選擇,輸入數(shù)字:);60. Scannerscanner=newScanner(System.in);61. /設(shè)置標(biāo)志用于控制循環(huán)62. booleanflag=false;63. do64. Strings=scanner.next();推薦精選65. /用戶(hù)選擇客戶(hù)信息管理66. if(s.equals(1)67. /顯示客戶(hù)信息管理菜單并處理這個(gè)菜單的整個(gè)流程,當(dāng)這個(gè)流程處理完68. showCustMMenu();69. break;70. 71. /用戶(hù)選擇購(gòu)物結(jié)算72. if(s.equals(2)73. /定義購(gòu)物結(jié)算類(lèi)的對(duì)象,并處理整個(gè)購(gòu)物結(jié)算的流

32、程74. Paypay=newPay();75. pay.setData(goodsName,goodsPrice,custNo,custBirth,custScore);76. pay.calcPrice();77. break;78. 79. /用戶(hù)選擇真情回饋80. if(s.equals(3)81. /處理真情回饋的整個(gè)處理流程82. showSendGMenu();83. break;84. 85. /用戶(hù)選擇注銷(xiāo)86. if(s.equals(4)87. /顯示一級(jí)菜單,此時(shí)會(huì)返回至StartSMS類(lèi)中的一級(jí)菜單處理流程88. showLoginMenu();89. break;9

33、0. 91. System.out.print(輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)字:);92. flag=false;93. while(!flag);94. 95. /*96. *顯示三級(jí)菜單-客戶(hù)信息管理,并處理所有客戶(hù)信息管理的流程97. *98. */99. publicvoidshowCustMMenu()100. System.out.println(購(gòu)物管理系統(tǒng)客戶(hù)信息管理n);101. System.out.println(*n);102. System.out.println(tttt1.顯示所有客戶(hù)信息n);103. System.out.println(tttt2.添加客戶(hù)信息n)

34、;104. System.out.println(tttt3.修改客戶(hù)信息n);105. System.out.println(tttt4.查詢(xún)客戶(hù)信息n);106. System.out.println(*n);推薦精選107. System.out.print(請(qǐng)選擇,輸入數(shù)字或按n返回上一級(jí)菜單:);108. Scannerscanner=newScanner(System.in);109. booleanflag=true;110. do111. /創(chuàng)建客戶(hù)信息管理對(duì)象,并設(shè)置數(shù)據(jù),這里的數(shù)據(jù)還是原始的那些數(shù)據(jù)112. CustManagementcustmanagement=newC

35、ustManagement();113. custmanagement.setData(goodsName,goodsPrice,custNo,custBirth,custScore);114. Strings=scanner.next();115. /客戶(hù)選擇顯示所有客戶(hù)信息116. if(s.equals(1)117. custmanagement.show();118. break;119. 120. /客戶(hù)選擇添加客戶(hù)信息121. if(s.equals(2)122. custmanagement.add();123. break;124. 125. /客戶(hù)選擇修改客戶(hù)信息126. i

36、f(s.equals(3)127. custmanagement.modify();128. break;129. 130. /客戶(hù)選擇查詢(xún)客戶(hù)信息131. if(s.equals(4)132. custmanagement.search();133. break;134. 135. /客戶(hù)選擇返回上一級(jí)菜單136. if(s.equals(n)137. showMainMenu();138. break;139. 140. System.out.println(輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)字:);141. flag=false;142. while(!flag);143. 144. /*145.

37、*顯示三級(jí)菜單-真情回饋,并處理所有真情回饋的流程146. *147. */148. publicvoidshowSendGMenu()149. System.out.println(購(gòu)物管理系統(tǒng)真情回饋n);推薦精選150. System.out.println(*n);151. System.out.println(tttt1.幸運(yùn)大放送n);152. System.out.println(tttt2.幸運(yùn)抽獎(jiǎng)n);153. System.out.println(tttt3.生日問(wèn)候n);154. System.out.println(*n);155. System.out.print(請(qǐng)

38、選擇,輸入數(shù)字或按n返回上一級(jí)菜單:);156. Scannerscanner=newScanner(System.in);157. /創(chuàng)建禮物管理對(duì)象,并設(shè)置數(shù)據(jù),這里的數(shù)據(jù)還是原始的那些數(shù)據(jù)158. GiftManagementgiftmanagement=newGiftManagement();159. giftmanagement.setData(goodsName,goodsPrice,custNo,custBirth,custScore);160. booleanflag=true;161. do162. Strings=scanner.next();163. /客戶(hù)選擇幸運(yùn)大放送

39、164. if(s.equals(1)165. giftmanagement.sendGoldenCust();166. break;167. 168. /客戶(hù)選擇幸運(yùn)抽獎(jiǎng)169. if(s.equals(2)170. giftmanagement.sendLuckyCust();171. break;172. 173. /客戶(hù)選擇生日問(wèn)候174. if(s.equals(3)175. giftmanagement.sendBirthCust();176. break;177. 178. /客戶(hù)選擇返回上一級(jí)菜單179. if(s.equals(n)180. showMainMenu();18

40、1. break;182. 183. System.out.println(輸入錯(cuò)誤,請(qǐng)重新輸入數(shù)字:);184. flag=false;185. while(!flag);186. 187. /*=定義該類(lèi)所擁有的變量=*/188. publicStringgoodsName;/商品的名稱(chēng)189. publicdoublegoodsPrice;/商品的價(jià)格190. publicintcustNo;/顧客的會(huì)員號(hào)推薦精選191. publicStringcustBirth;/顧客的生日192. publicintcustScore;/顧客的積分193. 3.6CustManagement類(lèi)ja

41、vaview plaincopy1. packagecn.itcast;2. importjava.util.Scanner;3. /*4. *顧客信息管理類(lèi)5. *6. *author7. *8. */9. publicclassCustManagement10. /*11. *空構(gòu)造方法12. *13. */14. publicCustManagement()15. 16. /*17. *設(shè)置顧客信息管理類(lèi)的數(shù)據(jù)信息18. *19. *paramas20. *paramad21. *paramai22. *paramas123. *paramai124. */25. publicvoids

42、etData(Stringas,doublead,intai,Stringas1,intai1)26. goodsName=as;27. goodsPrice=ad;28. custNo=ai;29. custBirth=as1;30. custScore=ai1;31. 32. /*33. *返回上一級(jí)菜單,即二級(jí)菜單-客戶(hù)信息管理菜單34. *推薦精選35. */36. publicvoidreturnLastMenu()37. System.out.print(nn請(qǐng)按n返回上一級(jí)菜單:);38. Scannerscanner=newScanner(System.in);39. bool

43、eanflag=true;40. do41. if(scanner.next().equals(n)42. /返回上一級(jí)菜單,這里新建了一個(gè)菜單對(duì)象,只是在用戶(hù)看來(lái)其實(shí)還是同樣的處理流程,43. /不過(guò)對(duì)于程序來(lái)說(shuō)卻又開(kāi)始了一個(gè)新的二級(jí)菜單處理流程44. Menumenu=newMenu();45. menu.setData(goodsName,goodsPrice,custNo,custBirth,custScore);46. menu.showCustMMenu();47. else48. System.out.print(輸入錯(cuò)誤,請(qǐng)重新n返回上一級(jí)菜單:);49. flag=false;50. 51. while(!flag);52. 53. /*54. *添加客戶(hù)信息55. *56. */57. publicvoidadd()58. System.out.println(購(gòu)物管理系統(tǒng)客戶(hù)信息管理添加客戶(hù)信息nn);59. Scannerscanner=newScanner(System.in);60. System.out.print(請(qǐng)輸入會(huì)員號(hào)():);61. inti=scanner.nextInt();62. Syste

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!