JAVA簡單項(xiàng)目購物系統(tǒng)的整個(gè)開發(fā)過程詳解內(nèi)含源碼和注釋_第1頁
JAVA簡單項(xiàng)目購物系統(tǒng)的整個(gè)開發(fā)過程詳解內(nèi)含源碼和注釋_第2頁
JAVA簡單項(xiàng)目購物系統(tǒng)的整個(gè)開發(fā)過程詳解內(nèi)含源碼和注釋_第3頁
JAVA簡單項(xiàng)目購物系統(tǒng)的整個(gè)開發(fā)過程詳解內(nèi)含源碼和注釋_第4頁
JAVA簡單項(xiàng)目購物系統(tǒng)的整個(gè)開發(fā)過程詳解內(nèi)含源碼和注釋_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

2、;   (1)用戶登錄功能、用戶賬號密碼修改功能,暫時(shí)不提供注冊功能;    (2)用戶成功登錄后,需要具備客戶信息的管理功能、購物結(jié)算功能以及一些抽獎(jiǎng)活動(dòng)等;    (3)客戶信息管理功能下面又可以分出很多功能,比如說:查詢、修改、增加等;    (4)購物結(jié)算功能下面又可以分出很多功能,比如說:商品選購、付款、賬單等;    (5)抽獎(jiǎng)活動(dòng)下面又可以設(shè)計(jì)出多種的抽獎(jiǎng)形式,從而進(jìn)一步劃分為許多新的功能模塊。    (6)在一級菜單中要提供退出系統(tǒng)的功能,在二級菜單中要提供注銷登錄的功

3、能,其他級菜單都要能夠返回上一級菜單。    上面的這些功能都是一些比較基本的功能,那么如果按照面向流程的思想來設(shè)計(jì),就會(huì)劃分很多功能模塊,然后按照流程一步步走就行,但是現(xiàn)在我們采用面向?qū)ο蟮乃枷雭碓O(shè)計(jì),那么應(yīng)該如何考慮設(shè)計(jì)框架呢?面向?qū)ο蟮闹饕枷刖褪菍⒁恍┬枨蟪橄鬄樵S多類,然后建立這些類之間的聯(lián)系,通過不同類之間的協(xié)同合作,就可以實(shí)現(xiàn)所有的功能。所以,現(xiàn)在的主要任務(wù)就是如何合理地抽象出這些類,以及這些類要實(shí)現(xiàn)什么功能,類之間的聯(lián)系又是什么?下面通過本次設(shè)計(jì)的結(jié)構(gòu)對這一過程進(jìn)行分析。    (1)StartSMS類:用于系統(tǒng)的啟動(dòng)。我們的系統(tǒng)肯定需要一

4、個(gè)啟動(dòng)類,這個(gè)類里面包含了main方法,用來啟動(dòng)這個(gè)系統(tǒng),這個(gè)類是最頂層的,所以不能牽涉太多底層的細(xì)節(jié)實(shí)現(xiàn),只需要實(shí)現(xiàn)一些頂層的基本流程就行,主要還是要調(diào)用底層其他類的一些方法來實(shí)現(xiàn)功能。    (2)Data類:用來存放我們的所有數(shù)據(jù)信息,本次設(shè)計(jì)主要存放的是已經(jīng)預(yù)存的一些可供購買的商品信息和已經(jīng)注冊的會(huì)員信息。為什么需要這個(gè)類呢?大家想一想,在面向?qū)ο蟮脑O(shè)計(jì)中,我們的數(shù)據(jù)比較多,肯定不能零散地到處定義、任意修改,這樣會(huì)使得系統(tǒng)的聚合程度太低,容易出現(xiàn)很多錯(cuò)誤,并且難以進(jìn)行后期功能擴(kuò)展和錯(cuò)誤修改,所以我們要把用到的一些公有的數(shù)據(jù)進(jìn)行歸類,然后放在一個(gè)類中,并且在該類中提供

5、對這些數(shù)據(jù)進(jìn)行操作的方法。    (3)Menu類:用于顯示及處理各級菜單。既然我們設(shè)計(jì)的是一個(gè)購物系統(tǒng),那么即使再簡單,也需要一個(gè)基本的菜單,用來和用戶進(jìn)行交互,由于菜單的比較多,并且各級菜單之間層層相連,所以我們需要對菜單進(jìn)行統(tǒng)一管理,故而出現(xiàn)了菜單類。注意,這里的菜單只是一些頂層的菜單顯示和基本的功能調(diào)用,具體底層的算法還是需要更加底層的類來實(shí)現(xiàn)的。    (4)Manager類:用于存儲(chǔ)用戶的賬戶和密碼。既然我們需要用戶登錄,那么肯定需要一個(gè)單獨(dú)的類來管理用戶的賬戶和密碼,從而使系統(tǒng)的獨(dú)立性更強(qiáng)一些。本次設(shè)計(jì)的用戶只有一個(gè)賬戶和密碼,只允許修改賬

6、戶和密碼,但是不允許注冊。    (5)VerifyEqual類:用于驗(yàn)證登錄信息。這個(gè)類相當(dāng)于是把登錄這項(xiàng)功能抽象成了一個(gè)類,這個(gè)實(shí)現(xiàn)其實(shí)并不是非常必要,但是為了使得系統(tǒng)功能劃分更加清晰,所以設(shè)計(jì)了此類,用來對登錄信息和已有的賬戶和密碼進(jìn)行校驗(yàn),從而給出校驗(yàn)結(jié)果。    (6)CustManagement類:用于客戶信息的管理,該類實(shí)現(xiàn)了底層的一些功能,比如說查詢、修改、增加等。當(dāng)我們進(jìn)入到客戶信息管理這個(gè)菜單的時(shí)候,肯定需要對客戶信息進(jìn)行許多操作,為了方便管理這些操作,并考慮到后續(xù)的擴(kuò)展性,這里把客戶信息管理的所有功能都抽象出來,放在此類中,上一級菜

7、單通過調(diào)用該類中的方法實(shí)現(xiàn)客戶信息的管理。    (7)Pay類:用于處理購物和結(jié)算操作。該類和上面的類存在的原理基本一致,當(dāng)客戶選擇進(jìn)行購物的時(shí)候,肯定要有很多操作,比如說買什么、多少錢、付款、找零等,這些功能比較零碎,所以我們對其進(jìn)行集中管理,從而抽象出該類,對購物和結(jié)算的菜單選項(xiàng)的底層算法進(jìn)行實(shí)現(xiàn),上一級菜單通過調(diào)用該類的方法實(shí)現(xiàn)購物和結(jié)算功能,并且可以返回上一級菜單。    (8)GiftManagement類:用于處理抽獎(jiǎng)活動(dòng)的相關(guān)功能。這個(gè)類和(6)、(7)中的類存在的理由基本一致,該類對抽獎(jiǎng)活動(dòng)進(jìn)行了統(tǒng)一管理,上一級菜單只需要通過調(diào)用該類的

8、方法就可以實(shí)現(xiàn)抽獎(jiǎng)的功能。    (9)Gift類:用于管理禮物。既然設(shè)計(jì)了抽獎(jiǎng)環(huán)節(jié),那么肯定需要禮物,那么我們會(huì)給出什么樣的禮物呢,我們總不能每一樣禮物都詳細(xì)列出來吧,這樣十分冗余,也很麻煩,所以我們干脆抽象出一個(gè)禮物類,把禮物的一些屬性:禮物名稱和價(jià)格等保存成該類的成員變量,然后就可以很方便的管理該類,需要什么樣的禮物就直接新建一個(gè)禮物對象,然后對該對象的屬性進(jìn)行修改和管理即可,這樣的實(shí)現(xiàn)類似于一個(gè)接口,但是又和接口完全不一樣,功能差不多。    總之,上面的類都是經(jīng)過一些功能模塊劃分后抽象出來的,有些地方也并不一定合理,主要還是需要看需求,根據(jù)不同

9、的需求制定不同的方案。在這里,我想就”Gift類“再強(qiáng)調(diào)一點(diǎn),這個(gè)類的設(shè)計(jì)十分符合面向?qū)ο蟮乃枷?,舉個(gè)例子來看,如果購物系統(tǒng)中需要很多禮物,比如手機(jī)、電腦、移動(dòng)電源等,那么如果我們一個(gè)個(gè)寫這些禮物,會(huì)使得系統(tǒng)代碼十分冗余,因?yàn)槎Y物的屬性基本一樣,所以我們就可以抽象成一個(gè)類,從而在需要什么禮物的時(shí)候只定義一個(gè)對象,然后賦予一定的屬性即可,比如需要手機(jī)、電腦,那么我們只需要new一個(gè)Gift類的對象,然后在需要手機(jī)的時(shí)候設(shè)置其屬性為手機(jī),在需要電腦的時(shí)候設(shè)置其屬性為電腦,需要什么設(shè)置什么即可,這樣就使得我們的代碼得到了簡化,也使得結(jié)構(gòu)比較清晰。在更為復(fù)雜的系統(tǒng)中,其實(shí)禮物用接口來實(shí)現(xiàn)更為合理,這樣

10、就可以根據(jù)該接口實(shí)現(xiàn)不同的禮物類,從而滿足不同的需求,就類似于我們的電腦上的USB接口,只需要這個(gè)接口,我們就可以插上很多各種各樣的外圍設(shè)備,道理差不多。2. 購物系統(tǒng)的類之間的關(guān)系和流程(用圖示法表示)    下圖是我用Microsoft Office Visio 2003畫圖工具畫出的這9個(gè)類之間的關(guān)系。    從上圖中可以清晰地看出來各類之間的關(guān)系,大致關(guān)系和流程如下所述:    (1)StartSMS類是啟動(dòng)類,內(nèi)含main方法,這個(gè)類里面定義了VerifyEqual類和Data類的對象,用來存儲(chǔ)數(shù)據(jù)和驗(yàn)證信息,同時(shí)Data類

11、中包含了Manager類,用來存儲(chǔ)預(yù)存的用戶賬號信息,然后在main方法中通過一定的邏輯,去調(diào)用Menu類中的showLoginMenu()方法,用于處理一級菜單-登錄修改流程;    (2)如果登錄成功,就調(diào)用Menu類中的showMainMenu()方法,用于處理二級菜單-購物系統(tǒng)的主流程,如果登錄失敗3次,就直接退出系統(tǒng);    (3)在Menu類中的showMainMenu()方法中,通過選擇不同的二級菜單選項(xiàng),從而調(diào)用Menu類中的showCustMMenu()方法來處理客戶信息管理流程或者調(diào)用Menu類中的showSendMenu()方法來處

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

13、情回饋選項(xiàng),即抽獎(jiǎng)活動(dòng),那么就會(huì)調(diào)用Menu類中的showSendMenu()方法,這個(gè)方法會(huì)調(diào)用GiftManagement類中的各種方法,用以處理抽獎(jiǎng)活動(dòng)的不同操作;    注意到在CustManagement類和GiftManagement類中都有一個(gè)returnLastMenu()方法,該方法是用來返回上一級菜單使用的。3. 代碼實(shí)現(xiàn)    需要說明的一點(diǎn)是這些代碼都應(yīng)該放在cn.itcast包下。    3.1 StartSMS類javaview plaincopy1. package cn.itcast

14、;  2. import java.util.Scanner;  3. /*4.  * 該類是這個(gè)系統(tǒng)的主方法類,用于啟動(dòng)購物系統(tǒng)5.  * 6.  * author 7.  * 8.  */9. publicclass StartSMS   10. /*11.      * 空構(gòu)造方法12.     

15、60;* 13.      */14. public StartSMS()   15.       16. /*17.      * 系統(tǒng)主方法18.      * 19.      * param args20.    

16、;  */21. publicstaticvoid main(String args)   22. / 創(chuàng)建已有的數(shù)據(jù)類的對象,并初始化已有的商品信息和顧客信息23.         Data data = new Data();  24.         data.initial(); 

17、 25. / 創(chuàng)建菜單類的對象26.         Menu menu = new Menu();  27. / 這里將初始化的已有數(shù)據(jù)信息送給了菜單對象28.         menu.setData(  29.          &#

18、160;      data.goodsName,   30.                 data.goodsPrice,   31.                

19、; data.custNo,  32.                 data.custBirth,   33.                 data.custScore);  34. /

20、60;顯示一級菜單,即登錄界面35.         menu.showLoginMenu();  36. / 該標(biāo)志用來判斷是否發(fā)生了系統(tǒng)操作錯(cuò)誤,當(dāng)操作不當(dāng)?shù)臅r(shí)候flag為假,從而退出系統(tǒng),默認(rèn)為無錯(cuò)誤37. boolean flag = true;  38. / 處理整個(gè)系統(tǒng)的流程39. do   40. / 發(fā)生操作錯(cuò)誤,退出系統(tǒng)41. if (!flag) 

21、 42. break;  43. / 創(chuàng)建驗(yàn)證用戶登錄的賬戶和密碼是否正確的類的對象,這里只創(chuàng)建對象,并沒有執(zhí)行驗(yàn)證方法44.             VerifyEqual verifyequal = new VerifyEqual();  45. / 輸入一級菜單中的選擇46.        &

22、#160;    Scanner scanner = new Scanner(System.in);  47. int i = scanner.nextInt();  48. / 根據(jù)用戶對一級菜單的選擇做出不同的響應(yīng),注意這里就是經(jīng)典的switch-case的用法49. switch (i)   50. case1: / 用戶選擇"登錄系統(tǒng)"51. /&#

23、160;定義計(jì)數(shù)器,表示用戶最多只能嘗試3次,3次輸入錯(cuò)誤直接退出系統(tǒng)52. int j = 3;  53. / 處理登錄系統(tǒng)的流程54. do   55. if (verifyequal.verify(data.manager.username,  56.                   &#

24、160;                            data.manager.password)   57. / 用戶登錄成功,顯示購物二級菜單!58.          

25、60;                  menu.showMainMenu();  59. break;  60.                       

26、;    61. if (j != 1)   62. / 用戶輸入有誤,還沒有達(dá)到3次,允許重新輸入63.                             System.out.println(&quo

27、t;n用戶名和密碼不匹配,請重新輸入:");  64.                          else   65. / 3次嘗試結(jié)束,設(shè)置退出標(biāo)志,并退出do-while循環(huán)66.        &

28、#160;                    System.out.println("n您沒有權(quán)限進(jìn)入系統(tǒng)!謝謝!");  67.                   

29、0;         flag = false;  68. break;  69.                           70. / 每輸入一次將計(jì)數(shù)器減1,用于表示

30、已經(jīng)嘗試了多少次71.                         j-;  72.                      

31、;while (true);  73. break;  74. case2: / 用戶選擇"更改管理員信息"75. if (verifyequal.verify(data.manager.username,  76.                       

32、;                     data.manager.password)   77. / 輸入新信息前要先驗(yàn)證原來的信息,此處表示已經(jīng)驗(yàn)證成功78.                &#

33、160;        System.out.print("請輸入新的用戶名:");  79.                         data.manager.username = scanner.next()

34、;  80.                         System.out.print("請輸入新的密碼:");  81.               

35、          data.manager.password = scanner.next();  82.                         System.out.println("用戶名和密碼

36、已更改!");  83. / 信息更改成功,選擇下一步的操作84.                         System.out.println("n請選擇,輸入數(shù)字:");  85.        &

37、#160;             else   86. / 信息驗(yàn)證失敗,設(shè)置退出標(biāo)志87.                         System.out.println(&quo

38、t;抱歉,你沒有權(quán)限修改!");  88.                         flag = false;  89.              &#

39、160;        90. break;  91. case3: / 用戶選擇"退出"92.                     System.out.println("謝謝您的使用!");  93.  

40、;                   System.exit(0);  94. break;  95. default: / 一級菜單輸入錯(cuò)誤,需要重新選擇96.                &#

41、160;    System.out.print("n輸入有誤!請重新選擇,輸入數(shù)字: ");  97. break;  98.               99.          while (flag);  100. 

42、60;     101.       3.2 Data類javaview plaincopy1. package cn.itcast;  2. /*3.  * 存放購物系統(tǒng)的初始化數(shù)據(jù)的數(shù)據(jù)類,該類只是存放了已有的商品信息和顧客信息4.  * 5.  * author 6.  * 7.  */8. publicclass Data  &#

43、160;9. /*10.      * 默認(rèn)構(gòu)造方法,初始化變量,由于都是數(shù)組對象或類對象,所以都需要采用new11.      * 12.      */13. public Data()   14.         goodsName   = new St

44、ring50   15.         goodsPrice  = newdouble50   16.         custNo      = newint100     17.    

45、0;    custBirth   = new String100;  18.         custScore   = newint100     19.         manager    &

46、#160;= new Manager()    20.       21. /*22.      * 初始化該類的數(shù)據(jù)23.      * 24.      */25. publicvoid initial()   26. /*=添加了初始的7種商品信息=*/27. &

47、#160;       goodsName 0 = "addidas運(yùn)動(dòng)鞋"  28.         goodsPrice0 = 880D;  29.         goodsName 1 = "Kappa網(wǎng)球裙&q

48、uot;  30.         goodsPrice1 = 200D;  31.         goodsName 2 = "網(wǎng)球拍"  32.         goodsPrice2 = 780D;&#

49、160; 33.         goodsName 3 = "addidasT恤"  34.         goodsPrice3 = 420.77999999999997D;  35.         goodsName 4

50、 = "Nike運(yùn)動(dòng)鞋"  36.         goodsPrice4 = 900D;  37.         goodsName 5 = "Kappa網(wǎng)球"  38.         

51、;goodsPrice5 = 45D;  39.         goodsName 6 = "KappaT恤"  40.         goodsPrice6 = 245D;  41. /*=添加了初始的7個(gè)顧客信息=*/42.     

52、0;   custNo   0 = 1900;  43.         custBirth0 = "08/05"  44.         custScore0 = 2000;  45.     &

53、#160;   custNo   1 = 1711;  46.         custBirth1 = "07/13"  47.         custScore1 = 4000;  48.    

54、0;    custNo   2 = 1623;  49.         custBirth2 = "06/26"  50.         custScore2 = 5000;  51.    &

55、#160;    custNo   3 = 1545;  52.         custBirth3 = "04/08"  53.         custScore3 = 2200;  54.   

56、0;     custNo   4 = 1464;  55.         custBirth4 = "08/16"  56.         custScore4 = 1000;  57.   &

57、#160;     custNo   5 = 1372;  58.         custBirth5 = "12/23"  59.         custScore5 = 3000;  60.  

58、0;      custNo   6 = 1286;  61.         custBirth6 = "12/21"  62.         custScore6 = 10080;  63.  

59、     64. /*=定義該類所擁有的變量=*/65. public String   goodsName    / 商品的名稱66. publicdouble   goodsPrice;   / 商品的價(jià)格67. publicint  custNo       / 顧客的會(huì)員號68.

60、public String   custBirth    / 顧客的生日69. publicint  custScore    / 顧客的積分70. public Manager  manager    / 管理員類,僅僅存儲(chǔ)了管理員的用戶名和密碼71.       3.3 Manager類javaview

61、plaincopy1. package cn.itcast;  2. /*3.  * 管理員類,僅僅存儲(chǔ)了管理員的用戶名和密碼4.  * 5.  * author6.  * 7.  */8. publicclass Manager   9. /*10.      * 設(shè)置默認(rèn)的用戶名和密碼11.      * 12.

62、     */13. public Manager()   14.         username = "itcast"  15.         password = "itcast"  16.   

63、60;   17. /*=定義該類所擁有的變量=*/18. public String username;     / 用戶名19. public String password;     / 密碼20.       3.4 VerifyEqual類javaview plaincopy1. package cn.itcast;  

64、;2. import java.util.Scanner;  3. /*4.  * 驗(yàn)證用戶登錄的賬戶和密碼是否正確的類5.  * 6.  * author7.  * 8.  */9. publicclass VerifyEqual   10. /*11.      * 空構(gòu)造方法12.      * 13. 

65、0;    */14. public VerifyEqual()   15.       16. /*17.      * 執(zhí)行驗(yàn)證的方法18.      * 19.      * param s  用于驗(yàn)證的正確的用戶名20.  

66、0;   * param s1   用于驗(yàn)證的正確的密碼21.      * return22.      */23. publicboolean verify(String s, String s1)   24. / 由用戶輸入用戶名25.        &

67、#160;System.out.print("請輸入用戶名:");  26.         Scanner scanner = new Scanner(System.in);  27.         String s2 = scanner.next();  28. / 由用戶

68、輸入密碼29.         System.out.print("請輸入密碼:");  30.         scanner = new Scanner(System.in);  31.         String s3 = scan

69、ner.next();  32. / 判斷用戶輸入的信息是否和已有的信息一致33. return s2.equals(s) && s1.equals(s3);  34.       35.       3.5 Menu類javaview plaincopy1. package cn.itcast;  2. import java.util.Scanne

70、r;  3. /*4.  * 菜單類,用于顯示所有級菜單供用戶選擇5.  * 6.  * author7.  * 8.  */9. publicclass Menu   10. /*11.      * 空構(gòu)造方法12.      * 13.      */14. public&

71、#160;Menu()   15.       16. /*17.      * 設(shè)置菜單類中的數(shù)據(jù)信息18.      * 19.      * param as20.      * param ad21.    &#

72、160; * param ai22.      * param as123.      * param ai124.      */25. publicvoid setData(String as, double ad, int ai, String as1, int ai1)&

73、#160;  26.         goodsName   = as;  27.         goodsPrice  = ad;  28.         custNo    

74、0; = ai;  29.         custBirth   = as1;  30.         custScore   = ai1;  31.       32. /*33.   

75、0;  * 顯示一級菜單,即登錄界面34.      * 35.      */36. publicvoid showLoginMenu()   37.         System.out.println("nnttt    歡迎使用itcast購物管理系統(tǒng)1.0版nn");&

76、#160; 38.         System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *&

77、#160;* * * * * * * * *n");  39.         System.out.println("tttt 1. 登 錄 系 統(tǒng)nn");  40.         System.out.println("t

78、ttt 2. 更 改 管 理 員 信 息nn");  41.         System.out.println("tttt 3. 退 出nn");  42.         System.out.println("* * *&

79、#160;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");  43.    

80、;     System.out.print("請選擇,輸入數(shù)字:");  44.       45. /*46.      * 顯示二級菜單,即系統(tǒng)的主菜單,這個(gè)方法里面包含了對這個(gè)菜單處理的所有流程47.      * 48.      */49. publicvoid

81、60;showMainMenu()   50. / 顯示二級菜單,即系統(tǒng)的主菜單51.         System.out.println("nntttt歡迎使用購物管理系統(tǒng)n");  52.         System.out.println("* * * * * * * 

82、* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");  53.         Sy

83、stem.out.println("tttt 1. 客 戶 信 息 管 理n");  54.         System.out.println("tttt 2. 購 物 結(jié) 算n");  55.         System.out.p

84、rintln("tttt 3. 真 情 回 饋n");  56.         System.out.println("tttt 4. 注 銷n");  57.         System.out.println("* * * *

85、60;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n");  58. / 用戶選擇服務(wù)項(xiàng)目59.  &

86、#160;      System.out.print("請選擇,輸入數(shù)字:");  60.         Scanner scanner = new Scanner(System.in);  61. / 設(shè)置標(biāo)志用于控制循環(huán)62. boolean flag = false;  63. do

87、60;  64.             String s = scanner.next();  65. / 用戶選擇"客戶信息管理"66. if (s.equals("1")   67. / 顯示客戶信息管理菜單并處理這個(gè)菜單的整個(gè)流程,當(dāng)這個(gè)流程處理完68.     

88、;            showCustMMenu();  69. break;  70.               71. / 用戶選擇"購物結(jié)算"72. if (s.equals("2")   73.

89、/ 定義購物結(jié)算類的對象,并處理整個(gè)購物結(jié)算的流程74.                 Pay pay = new Pay();  75.                 pay.setData(goodsN

90、ame, goodsPrice, custNo, custBirth, custScore);  76.                 pay.calcPrice();  77. break;  78.            &

91、#160;  79. / 用戶選擇"真情回饋"80. if (s.equals("3")   81. / 處理真情回饋的整個(gè)處理流程82.                 showSendGMenu();  83. break;  84.    &#

92、160;          85. / 用戶選擇"注銷"86. if (s.equals("4")   87. / 顯示一級菜單,此時(shí)會(huì)返回至StartSMS類中的一級菜單處理流程88.                 showLoginM

93、enu();  89. break;  90.               91.             System.out.print("輸入錯(cuò)誤,請重新輸入數(shù)字:");  92.       

94、      flag = false;  93.          while (!flag);  94.       95. /*96.      * 顯示三級菜單-客戶信息管理,并處理所有客戶信息管理的流程97.    

95、60; * 98.      */99. publicvoid showCustMMenu()   100.         System.out.println("購物管理系統(tǒng) > 客戶信息管理n");  101.         System.out.prin

96、tln("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n"); &

97、#160;102.         System.out.println("tttt 1. 顯 示 所 有 客 戶 信 息n");  103.         System.out.println("tttt 2. 添 加 客 戶 信

98、60;息n");  104.         System.out.println("tttt 3. 修 改 客 戶 信 息n");  105.         System.out.println("tttt 4. 查 詢 客 戶

99、0;信 息n");  106.         System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * *&

100、#160;* * * * * * * * * * * *n");  107.         System.out.print("請選擇,輸入數(shù)字或按'n'返回上一級菜單:");  108.         Scanner scann

101、er = new Scanner(System.in);  109. boolean flag = true;  110. do   111. / 創(chuàng)建客戶信息管理對象,并設(shè)置數(shù)據(jù),這里的數(shù)據(jù)還是原始的那些數(shù)據(jù)112.             CustManagement custmanagement = n

102、ew CustManagement();  113.             custmanagement.setData(goodsName, goodsPrice, custNo, custBirth, custScore);  114.             S

103、tring s = scanner.next();  115. / 客戶選擇"顯示所有客戶信息"116. if (s.equals("1")   117.                 custmanagement.show();  118. break;  

104、;119.               120. / 客戶選擇"添加客戶信息"121. if (s.equals("2")   122.                 custmanagement.add()

105、;  123. break;  124.               125. / 客戶選擇"修改客戶信息"126. if (s.equals("3")   127.              

106、60;  custmanagement.modify();  128. break;  129.               130. / 客戶選擇"查詢客戶信息"131. if (s.equals("4")   132.        &

107、#160;        custmanagement.search();  133. break;  134.               135. / 客戶選擇"返回上一級菜單"136. if (s.equals("n")   137. 

108、0;               showMainMenu();  138. break;  139.               140.           

109、0; System.out.println("輸入錯(cuò)誤, 請重新輸入數(shù)字:");  141.             flag = false;  142.          while (!flag);  143.    

110、60;  144. /*145.      * 顯示三級菜單-真情回饋,并處理所有真情回饋的流程146.      * 147.      */148. publicvoid showSendGMenu()   149.         System.out.println("購

111、物管理系統(tǒng) > 真情回饋n");  150.         System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * *

112、 * * * * * * * * * * * * * *n");  151.         System.out.println("tttt 1. 幸 運(yùn) 大 放 送n");  152.      

113、   System.out.println("tttt 2. 幸 運(yùn) 抽 獎(jiǎng)n");  153.         System.out.println("tttt 3. 生 日 問 候n");  154.         Syst

114、em.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n&quo

115、t;);  155.         System.out.print("請選擇,輸入數(shù)字或按'n'返回上一級菜單:");  156.         Scanner scanner = new Scanner(System.in);  157. / 創(chuàng)建禮物管理對象,并設(shè)置數(shù)據(jù),這里的數(shù)據(jù)還

116、是原始的那些數(shù)據(jù)158.         GiftManagement giftmanagement = new GiftManagement();  159.         giftmanagement.setData(goodsName, goodsPrice, custNo, custBirth, custScore); 

117、; 160. boolean flag = true;  161. do   162.             String s = scanner.next();  163. / 客戶選擇"幸運(yùn)大放送"164. if (s.equals("1")  

118、0;165.                 giftmanagement.sendGoldenCust();  166. break;  167.               168. / 客戶選擇"幸運(yùn)抽獎(jiǎng)"169. if&#

119、160;(s.equals("2")   170.                 giftmanagement.sendLuckyCust();  171. break;  172.              

120、0;173. / 客戶選擇"生日問候"174. if (s.equals("3")   175.                 giftmanagement.sendBirthCust();  176. break;  177.       

121、60;       178. / 客戶選擇"返回上一級菜單"179. if (s.equals("n")   180.                 showMainMenu();  181. break;  182.  

122、60;            183.             System.out.println("輸入錯(cuò)誤, 請重新輸入數(shù)字:");  184.             flag

123、60;= false;  185.          while (!flag);  186.       187. /*=定義該類所擁有的變量=*/188. public String   goodsName    / 商品的名稱189. publicdouble   

124、;goodsPrice;   / 商品的價(jià)格190. publicint  custNo       / 顧客的會(huì)員號191. public String   custBirth    / 顧客的生日192. publicint  custScore    / 顧客的積分193.       3.6 CustManagement類javaview plaincopy1. package cn.itcast;  2. import java.util.Scanner;  3. /*4.  * 顧客信息管理類5.  * 6.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論