JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx

上传人:b****6 文档编号:18365226 上传时间:2022-12-15 格式:DOCX 页数:39 大小:119.82KB
下载 相关 举报
JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx_第1页
第1页 / 共39页
JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx_第2页
第2页 / 共39页
JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx_第3页
第3页 / 共39页
JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx_第4页
第4页 / 共39页
JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx

《JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。

JAVA简单项目购物系统的整个开发过程详解内含源码和注释Word文档格式.docx

(8)GiftManagement类:

用于处理抽奖活动的相关功能。

这个类与(6)、(7)中的类存在的理由基本一致,该类对抽奖活动进行了统一管理,上一级菜单只需要通过调用该类的方法就可以实现抽奖的功能。

(9)Gift类:

用于管理礼物。

既然设计了抽奖环节,那么肯定需要礼物,那么我们会给出什么样的礼物呢,我们总不能每一样礼物都详细列出来吧,这样十分冗余,也很麻烦,所以我们干脆抽象出一个礼物类,把礼物的一些属性:

礼物名称与价格等保存成该类的成员变量,然后就可以很方便的管理该类,需要什么样的礼物就直接新建一个礼物对象,然后对该对象的属性进行修改与管理即可,这样的实现类似于一个接口,但就是又与接口完全不一样,功能差不多。

总之,上面的类都就是经过一些功能模块划分后抽象出来的,有些地方也并不一定合理,主要还就是需要瞧需求,根据不同的需求制定不同的方案。

在这里,我想就”Gift类“再强调一点,这个类的设计十分符合面向对象的思想,举个例子来瞧,如果购物系统中需要很多礼物,比如手机、电脑、移动电源等,那么如果我们一个个写这些礼物,会使得系统代码十分冗余,因为礼物的属性基本一样,所以我们就可以抽象成一个类,从而在需要什么礼物的时候只定义一个对象,然后赋予一定的属性即可,比如需要手机、电脑,那么我们只需要new一个Gift类的对象,然后在需要手机的时候设置其属性为手机,在需要电脑的时候设置其属性为电脑,需要什么设置什么即可,这样就使得我们的代码得到了简化,也使得结构比较清晰。

在更为复杂的系统中,其实礼物用接口来实现更为合理,这样就可以根据该接口实现不同的礼物类,从而满足不同的需求,就类似于我们的电脑上的USB接口,只需要这个接口,我们就可以插上很多各种各样的外围设备,道理差不多。

2、购物系统的类之间的关系与流程(用图示法表示)

下图就是我用MicrosoftOfficeVisio2003画图工具画出的这9个类之间的关系。

从上图中可以清晰地瞧出来各类之间的关系,大致关系与流程如下所述:

(1)StartSMS类就是启动类,内含main方法,这个类里面定义了VerifyEqual类与Data类的对象,用来存储数据与验证信息,同时Data类中包含了Manager类,用来存储预存的用户账号信息,然后在main方法中通过一定的逻辑,去调用Menu类中的showLoginMenu()方法,用于处理一级菜单---登录修改流程;

(2)如果登录成功,就调用Menu类中的showMainMenu()方法,用于处理二级菜单---购物系统的主流程,如果登录失败3次,就直接退出系统;

(3)在Menu类中的showMainMenu()方法中,通过选择不同的二级菜单选项,从而调用Menu类中的showCustMMenu()方法来处理客户信息管理流程或者调用Menu类中的showSendMenu()方法来处理抽奖活动流程,亦或者调用Pay类中的calcPrice()方法来处理购物结算流程;

(4)如果选择了二级菜单中的客户信息管理选项,那么就会调用Menu类中的showCustMMenu()方法,这个方法会调用CustManagement类中的各种方法,用以处理客户信息管理的不同操作;

(5)如果选择了二级菜单中的购物结算选项,那么就会调用Pay类中的calcPrice()方法,从而处理购物结算的流程,注意在Pay类中的getDiscount()方法就是用来根据客户会员信息来计算打折率的;

(6)如果选择了二级菜单中的真情回馈选项,即抽奖活动,那么就会调用Menu类中的showSendMenu()方法,这个方法会调用GiftManagement类中的各种方法,用以处理抽奖活动的不同操作;

注意到在CustManagement类与GiftManagement类中都有一个returnLastMenu()方法,该方法就是用来返回上一级菜单使用的。

3、代码实现

需要说明的一点就是这些代码都应该放在cn、itcast包下。

3、1 

StartSMS类

[java]viewplaincopy

1.package 

cn、itcast;

2.import 

java、util、Scanner;

3./**

4. 

该类就是这个系统的主方法类,用于启动购物系统

5. 

6. 

@author 

7. 

8. 

*/

9.publicclass 

StartSMS 

10./**

11. 

空构造方法

12. 

13. 

14.public 

StartSMS() 

15. 

16./**

17. 

系统主方法

18. 

19. 

@param 

args

20. 

21.publicstaticvoid 

main(String 

args[]) 

22.// 

创建已有的数据类的对象,并初始化已有的商品信息与顾客信息

23. 

Data 

data 

new 

Data();

24. 

data、initial();

25.// 

创建菜单类的对象

26. 

Menu 

menu 

Menu();

27.// 

这里将初始化的已有数据信息送给了菜单对象

28. 

menu、setData( 

29. 

data、goodsName, 

30. 

data、goodsPrice, 

31. 

data、custNo, 

32. 

data、custBirth, 

33. 

data、custScore);

34.// 

显示一级菜单,即登录界面

35. 

menu、showLoginMenu();

36.// 

该标志用来判断就是否发生了系统操作错误,当操作不当的时候flag为假,从而退出系统,默认为无错误

37.boolean 

flag 

true;

38.// 

处理整个系统的流程

39.do 

40.// 

发生操作错误,退出系统

41.if 

(!

flag) 

42.break;

43.// 

创建验证用户登录的账户与密码就是否正确的类的对象,这里只创建对象,并没有执行验证方法

44. 

VerifyEqual 

verifyequal 

VerifyEqual();

45.// 

输入一级菜单中的选择

46. 

Scanner 

scanner 

Scanner(System、in);

47.int 

scanner、nextInt();

48.// 

根据用户对一级菜单的选择做出不同的响应,注意这里就就是经典的switch-case的用法

49.switch 

(i) 

50.case1:

// 

用户选择"

登录系统"

51.// 

定义计数器,表示用户最多只能尝试3次,3次输入错误直接退出系统

52.int 

3;

53.// 

处理登录系统的流程

54.do 

55.if 

(verifyequal、verify(data、manager、username, 

56. 

data、manager、password)) 

57.// 

用户登录成功,显示购物二级菜单!

58. 

menu、showMainMenu();

59.break;

60. 

61.if 

(j 

!

1) 

62.// 

用户输入有误,还没有达到3次,允许重新输入

63. 

System、out、println("

\n用户名与密码不匹配,请重新输入:

"

);

64. 

else 

65.// 

3次尝试结束,设置退出标志,并退出do-while循环

66. 

\n您没有权限进入系统!

谢谢!

67. 

false;

68.break;

69. 

70.// 

每输入一次将计数器减1,用于表示已经尝试了多少次

71. 

j--;

72. 

while 

(true);

73.break;

74.case2:

更改管理员信息"

75.if 

76. 

77.// 

输入新信息前要先验证原来的信息,此处表示已经验证成功

78. 

System、out、print("

请输入新的用户名:

79. 

data、manager、username 

scanner、next();

80. 

请输入新的密码:

81. 

data、manager、password 

82. 

用户名与密码已更改!

83.// 

信息更改成功,选择下一步的操作

84. 

\n请选择,输入数字:

85. 

86.// 

信息验证失败,设置退出标志

87. 

抱歉,您没有权限修改!

88. 

89. 

90.break;

91.case3:

退出"

92. 

谢谢您的使用!

93. 

System、exit(0);

94.break;

95.default:

一级菜单输入错误,需要重新选择

96. 

\n输入有误!

请重新选择,输入数字:

97.break;

98. 

99. 

(flag);

100. 

101.} 

3、2 

Data类

2./**

3. 

存放购物系统的初始化数据的数据类,该类只就是存放了已有的商品信息与顾客信息

8.publicclass 

9./**

10. 

默认构造方法,初始化变量,由于都就是数组对象或类对象,所以都需要采用new

13.public 

Data() 

14. 

goodsName 

String[50] 

;

goodsPrice 

newdouble[50] 

16. 

custNo 

newint[100] 

custBirth 

String[100];

custScore 

manager 

Manager() 

21./**

22. 

初始化该类的数据

25.publicvoid 

initial() 

26./*====================添加了初始的7种商品信息====================*/

27. 

[0] 

addidas运动鞋"

goodsPrice[0] 

880D;

[1] 

Kappa网球裙"

goodsPrice[1] 

200D;

[2] 

网球拍"

goodsPrice[2] 

780D;

[3] 

addidasT恤"

34. 

goodsPrice[3] 

420、77999999999997D;

[4] 

Nike运动鞋"

36. 

goodsPrice[4] 

900D;

37. 

[5] 

Kappa网球"

38. 

goodsPrice[5] 

45D;

39. 

[6] 

KappaT恤"

40. 

goodsPrice[6] 

245D;

41./*====================添加了初始的7个顾客信息====================*/

42. 

1900;

43. 

custBirth[0] 

08/05"

custScore[0] 

2000;

45. 

1711;

custBirth[1] 

07/13"

47. 

custScore[1] 

4000;

48. 

1623;

49. 

custBirth[2] 

06/26"

50. 

custScore[2] 

5000;

51. 

1545;

52. 

custBirth[3] 

04/08"

53. 

custScore[3] 

2200;

54. 

1464;

55. 

custBirth[4] 

08/16"

custScore[4] 

1000;

57. 

1372;

custBirth[5] 

12/23"

59. 

custScore[5] 

3000;

1286;

61. 

custBirth[6] 

12/21"

62. 

custScore[6] 

10080;

64./*====================定义该类所拥有的变量====================*/

65.public 

String 

[];

商品的名称

66.publicdouble 

goodsPrice[];

商品的价格

67.publicint 

顾客的会员号

68.public 

顾客的生日

69.publicint 

顾客的积分

70.public 

Manager 

管理员类,仅仅存储了管理员的用户名与密码

71.} 

3、3 

Manager类

@author

设置默认的用户名与密码

username 

itcast"

password 

17./*====================定义该类所拥有的变量====================*/

18.public 

username;

用户名

19.public 

password;

密码

20.} 

3、4 

VerifyEqual类

验证用户登录的账户与密码就是否正确的类

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1