2022年JAVA简单项目购物系统的整个开发过程详解.pdf
JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 1、 购物系统的需求分析与类划分购物系统本身就是一个十分复杂的系统, 有很多细节问题如果深究会更加复杂 , 并且一般购物系统都就是网页类型的, 要有一个友好的界面, 但就是作为一个简单项目, 该项目只就是为了给JAVA初学者介绍一下开发的基本思想, 以及面向对象时应该怎样去设计框架与实现流程,所以只就是基于 eclipse开发的一个简单的项目, 并没有 GUI的参与, 并精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 且很多细节问题作为后续研究, 整体的设计比较简单 , 但就是足以说明很多设计思想与设计理念, 那么下面对基本的需求进行分析。作为一个简单的购物系统, 至少需要具备以下功能( 这些功能分布在不同级的菜单中): (1) 用户登录功能、用户账号密码修改功能, 暂时不提供注册功能; (2) 用户成功登录后 , 需要具备客户信息的管理功能、购物结算功能以及一些抽奖活动等; (3) 客户信息管理功能下面又可以分出很多功能, 比如说 : 查询、修改、增加等 ; (4) 购物结算功能下面又可以分出很多功能, 比如说 : 商品选购、付款、账单等 ; (5) 抽奖活动下面又可以设计出多种的抽奖形式, 从而进一步划分为许多新的功能模块。 (6) 在一级菜单中要提供退出系统的功能, 在二级菜单中要提供注销登录的功能 , 其她级菜单都要能够返回上一级菜单。上面的这些功能都就是一些比较基本的功能, 那么如果按照面向流程的思想来设计 , 就会划分很多功能模块, 然后按照流程一步步走就行, 但就是现在我们采用面向对象的思想来设计, 那么应该如何考虑设计框架呢?面向对象的主要思想就就是将一些需求抽象为许多类, 然后建立这些类之间的联系, 通过不同类之间的协同合作, 就可以实现所有的功能。所以, 现在的主要任务就就是如何合理地抽象出这些类, 以及这精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 些类要实现什么功能, 类之间的联系又就是什么?下面通过本次设计的结构对这一过程进行分析。 (1)StartSMS类: 用于系统的启动。我们的系统肯定需要一个启动类, 这个类里面包含了main方法, 用来启动这个系统 , 这个类就是最顶层的, 所以不能牵涉太多底层的细节实现, 只需要实现一些顶层的基本流程就行 , 主要还就是要调用底层其她类的一些方法来实现功能。 (2)Data类: 用来存放我们的所有数据信息, 本次设计主要存放的就是已经预存的一些可供购买的商品信息与已经注册的会员信息。为什么需要这个类呢?大家想一想, 在面向对象的设计中 , 我们的数据比较多, 肯定不能零散地到处定义、 任意修改 , 这样会使得系统的聚合程度太低, 容易出现很多错误 , 并且难以进行后期功能扩展与错误修改, 所以我们要把用到的一些公有的数据进行归类, 然后放在一个类中 , 并且在该类中提供对这些数据进行操作的方法。 (3)Menu 类: 用于显示及处理各级菜单。 既然我们设计的就是一个购物系统 , 那么即使再简单 , 也需要一个基本的菜单, 用来与用户进行交互, 由于菜单的比较多 , 并且各级菜单之间层层相连, 所以我们需要对菜单进行统一管理 , 故而出现了菜单类。 注意 , 这里的菜单只就是一些顶层的菜单显示与基本的功能调用, 具体底层的算法还就是需要更加底层的类来实现的。 (4)Manager类: 用于存储用户的账户与密码。既然我们需要用户登录, 那么肯定需要一个单独的类来管理用户的账户与密码, 从而使系精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 统的独立性更强一些。本次设计的用户只有一个账户与密码, 只允许修改账户与密码 , 但就是不允许注册。 (5)VerifyEqual类: 用于验证登录信息。这个类相当于就是把登录这项功能抽象成了一个类, 这个实现其实并不就是非常必要, 但就是为了使得系统功能划分更加清晰, 所以设计了此类 , 用来对登录信息与已有的账户与密码进行校验, 从而给出校验结果。 (6)CustManagement 类: 用于客户信息的管理 , 该类实现了底层的一些功能 , 比如说查询、修改、增加等。当我们进入到客户信息管理这个菜单的时候 , 肯定需要对客户信息进行许多操作, 为了方便管理这些操作, 并考虑到后续的扩展性, 这里把客户信息管理的所有功能都抽象出来, 放在此类中 , 上一级菜单通过调用该类中的方法实现客户信息的管理。 (7)Pay类: 用于处理购物与结算操作。该类与上面的类存在的原理基本一致 , 当客户选择进行购物的时候, 肯定要有很多操作 , 比如说买什么、多少钱、付款、找零等, 这些功能比较零碎 , 所以我们对其进行集中管理 , 从而抽象出该类 , 对购物与结算的菜单选项的底层算法进行实现, 上一级菜单通过调用该类的方法实现购物与结算功能, 并且可以返回上一级菜单。 (8)GiftManagement类: 用于处理抽奖活动的相关功能。 这个类与(6) 、 (7) 中的类存在的理由基本一致, 该类对抽奖活动进行了统一管理,上一级菜单只需要通过调用该类的方法就可以实现抽奖的功能。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) (9)Gift类: 用于管理礼物。既然设计了抽奖环节, 那么肯定需要礼物, 那么我们会给出什么样的礼物呢, 我们总不能每一样礼物都详细列出来吧 , 这样十分冗余 , 也很麻烦 , 所以我们干脆抽象出一个礼物类,把礼物的一些属性 : 礼物名称与价格等保存成该类的成员变量, 然后就可以很方便的管理该类, 需要什么样的礼物就直接新建一个礼物对象,然后对该对象的属性进行修改与管理即可, 这样的实现类似于一个接口,但就是又与接口完全不一样, 功能差不多。总之 , 上面的类都就是经过一些功能模块划分后抽象出来的, 有些地方也并不一定合理, 主要还就是需要瞧需求, 根据不同的需求制定不同的方案。 在这里 , 我想就”Gift类“再强调一点 , 这个类的设计十分符合面向对象的思想, 举个例子来瞧 , 如果购物系统中需要很多礼物, 比如手机、 电脑、移动电源等 , 那么如果我们一个个写这些礼物, 会使得系统代码十分冗余 , 因为礼物的属性基本一样, 所以我们就可以抽象成一个类, 从而在需要什么礼物的时候只定义一个对象, 然后赋予一定的属性即可 , 比如需要手机、 电脑 , 那么我们只需要new一个 Gift类的对象 ,然后在需要手机的时候设置其属性为手机, 在需要电脑的时候设置其属性为电脑 , 需要什么设置什么即可, 这样就使得我们的代码得到了简化,也使得结构比较清晰。在更为复杂的系统中, 其实礼物用接口来实现更为合理 , 这样就可以根据该接口实现不同的礼物类, 从而满足不同的需求, 就类似于我们的电脑上的USB接口 , 只需要这个接口 , 我们就可以插上很多各种各样的外围设备, 道理差不多。2、 购物系统的类之间的关系与流程( 用图示法表示 )精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 下图就是我用 Microsoft Office Visio 2003画图工具画出的这9 个类之间的关系。从上图中可以清晰地瞧出来各类之间的关系, 大致关系与流程如下所述 : (1)StartSMS类就是启动类 , 内含 main 方法, 这个类里面定义了VerifyEqual类与 Data 类的对象 , 用来存储数据与验证信息, 同时 Data类中包含了 Manager类, 用来存储预存的用户账号信息, 然后在 main 方法中通过一定的逻辑 , 去调用 Menu类中的 showLoginMenu() 方法, 用于处理一级菜单 - 登录修改流程 ;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) (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 类javaview plaincopy精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 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 = newData(); 24.data 、initial(); 25./ 创建菜单类的对象26.Menu menu = newMenu(); 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; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 43./ 创建验证用户登录的账户与密码就是否正确的类的对象,这里只创建对象, 并没有执行验证方法44.VerifyEqual verifyequal = newVerifyEqual(); 45./ 输入一级菜单中的选择46.Scanner scanner = newScanner(System 、in); 47.int i = scanner 、nextInt(); 48./ 根据用户对一级菜单的选择做出不同的响应, 注意这里就就是经典的switch-case的用法49.switch (i) 50.case1: / 用户选择 登录系统 51./ 定义计数器 , 表示用户最多只能尝试3 次,3 次输入错误直接退出系统52.int j = 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.System、out 、println(n您没有权限进入系统!谢谢! ); 67.flag = false; 68.break; 69. 70./ 每输入一次将计数器减1, 用于表示已经尝试了多少次71.j-; 72. while( true ); 73.break; 74.case2: / 用户选择 更改管理员信息75.if (verifyequal、verify(data、manager、username, 76.data 、manager、password) 77./ 输入新信息前要先验证原来的信息, 此处表示已经验证成功78.System、out 、print( 请输入新的用户名: ); 79.data 、manager、username = scanner 、next(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 80.System、out 、print( 请输入新的密码: ); 81.data 、manager、password = scanner 、next(); 82.System、out 、println( 用户名与密码已更改! ); 83./ 信息更改成功 , 选择下一步的操作84.System、out 、println(n 请选择 ,输入数字 : ); 85. else 86./ 信息验证失败 , 设置退出标志87.System、out 、println(抱歉, 您没有权限修改! ); 88.flag = false ; 89. 90.break; 91.case3: / 用户选择 退出 92.System、out 、println(谢谢您的使用!); 93.System、exit(0); 94.break; 95.default: / 一级菜单输入错误, 需要重新选择96.System、out 、print(n输入有误!请重新选择,输入数字 : ); 97.break; 98. 99. while(flag); 100. 101. 3 、2 Data 类javaview plaincopy1.package cn、itcast; 2./* 3.* 存放购物系统的初始化数据的数据类, 该类只就是存放了已有的商品信息与顾客信息4.* 5.* author 6.* 7.*/ 8.publicclass Data 9./* 10.* 默认构造方法 , 初始化变量 ,由于都就是数组对象或类对象, 所以都需要采用new 11.* 12.*/ 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 13.public Data() 14.goodsName = newString50 ; 15.goodsPrice = newdouble 50 ; 16.custNo = newint 100 ; 17.custBirth = newString100; 18.custScore = newint 100 ; 19.manager = newManager() ; 20. 21./* 22.* 初始化该类的数据23.* 24.*/ 25.publicvoid initial() 26./*=添加了初始的7 种商品信息 =*/ 27.goodsName 0 = addidas运动鞋 ; 28.goodsPrice0 = 880D; 29.goodsName 1 = Kappa 网球裙 ; 30.goodsPrice1 = 200D; 31.goodsName 2 = 网球拍 ; 32.goodsPrice2 = 780D; 33.goodsName 3 = addidasT恤; 34.goodsPrice3 = 420、77999999999997D; 35.goodsName 4 = Nike 运动鞋 ; 36.goodsPrice4 = 900D; 37.goodsName 5 = Kappa 网球 ; 38.goodsPrice5 = 45D; 39.goodsName 6 = KappaT 恤 ; 40.goodsPrice6 = 245D; 41./*=添加了初始的7 个顾客信息 =*/ 42.custNo 0 = 1900; 43.custBirth0 = 08/05 ; 44.custScore0 = 2000; 45.custNo 1 = 1711; 46.custBirth1 = 07/13 ; 47.custScore1 = 4000; 48.custNo 2 = 1623; 49.custBirth2 = 06/26 ; 50.custScore2 = 5000; 51.custNo 3 = 1545; 52.custBirth3 = 04/08 ; 53.custScore3 = 2200; 54.custNo 4 = 1464; 55.custBirth4 = 08/16 ; 56.custScore4 = 1000; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 57.custNo 5 = 1372; 58.custBirth5 = 12/23 ; 59.custScore5 = 3000; 60.custNo 6 = 1286; 61.custBirth6 = 12/21 ; 62.custScore6 = 10080; 63. 64./*=定义该类所拥有的变量=*/ 65.public String goodsName ; / 商品的名称66.publicdouble goodsPrice; / 商品的价格67.publicint custNo ; / 顾客的会员号68.public String custBirth ; / 顾客的生日69.publicint custScore ; / 顾客的积分70.public Manager manager ; / 管理员类 , 仅仅存储了管理员的用户名与密码71. 3 、3 Manager类javaview plaincopy1.package cn、itcast; 2./* 3.* 管理员类 , 仅仅存储了管理员的用户名与密码4.* 5.* author 6.* 7.*/ 8.publicclass Manager 9./* 10.* 设置默认的用户名与密码11.* 12.*/ 13.public Manager() 14.username = itcast; 15.password = itcast; 16. 17./*=定义该类所拥有的变量=*/ 18.public String username; / 用户名19.public String password; / 密码20. 3 、4 VerifyEqual类javaview plaincopy精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 1.package cn、itcast; 2.import java 、util、Scanner; 3./* 4.* 验证用户登录的账户与密码就是否正确的类5.* 6.* author 7.* 8.*/ 9.publicclass VerifyEqual 10./* 11.* 空构造方法12.* 13.*/ 14.public VerifyEqual() 15. 16./* 17.* 执行验证的方法18.* 19.* param s 用于验证的正确的用户名20.* param s1 用于验证的正确的密码21.* return 22.*/ 23.publicboolean verify(String s, String s1) 24./ 由用户输入用户名25.System、out 、print( 请输入用户名 : ); 26.Scanner scanner = newScanner(System 、in); 27.String s2 = scanner 、next(); 28./ 由用户输入密码29.System、out 、print( 请输入密码 : ); 30.scanner = newScanner(System 、in); 31.String s3 = scanner 、next(); 32./ 判断用户输入的信息就是否与已有的信息一致33.return s2、equals(s) & s1、equals(s3); 34. 35. 3 、5 Menu类javaview plaincopy1.package cn、itcast; 2.import java 、util、Scanner; 3./* 4.* 菜单类 , 用于显示所有级菜单供用户选择5.* 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 6.* author 7.* 8.*/ 9.publicclass Menu 10./* 11.* 空构造方法12.* 13.*/ 14.public Menu() 15. 16./* 17.* 设置菜单类中的数据信息18.* 19.* param as 20.* param ad 21.* param ai 22.* param as1 23.* param ai1 24.*/ 25.publicvoid setData(String as, double ad, int ai, String as1, int ai1) 26.goodsName = as; 27.goodsPrice = ad; 28.custNo = ai; 29.custBirth = as1; 30.custScore = ai1; 31. 32./* 33.* 显示一级菜单 , 即登录界面34.* 35.*/ 36.publicvoid showLoginMenu() 37.System、out 、 println(nnttt 欢迎使用 itcast购物管理系统1、0 版nn ); 38.System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 39.System、out 、println(tttt 1、登录系统nn); 40.System、out 、println(tttt 2、更改管理员信息nn ); 41.System、out 、println(tttt 3、退出nn); 42.System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 43.System、out 、print( 请选择 , 输入数字 : ); 44. 45./* 46.* 显示二级菜单 , 即系统的主菜单,这个方法里面包含了对这个菜单处理的所有流程47.* 48.*/ 49.publicvoid showMainMenu() 50./ 显示二级菜单 , 即系统的主菜单51.System、out 、println(nntttt欢迎使用购物管理系统n ); 52.System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 53.System、out 、println(tttt 1、客户信息管理n ); 54.System、out 、println(tttt 2、购物结算n ); 55.System、out 、println(tttt 3、真情回馈n ); 56.System、out 、println(tttt 4、注销n ); 57.System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 58./ 用户选择服务项目59.System、out 、print( 请选择 , 输入数字 : ); 60.Scanner scanner = newScanner(System 、in); 61./ 设置标志用于控制循环62.boolean flag = false; 63.do 64.String s = scanner 、next(); 65./ 用户选择 客户信息管理 66.if (s 、equals( 1 ) 67./ 显示客户信息管理菜单并处理这个菜单的整个流程,当这个流程处理完68.showCustMMenu(); 69.break; 70. 71./ 用户选择 购物结算 72.if (s 、equals( 2 ) 73./ 定义购物结算类的对象, 并处理整个购物结算的流程74.Pay pay = newPay(); 75.pay、setData(goodsName, goodsPrice, custNo, custBirth, custScore); 76.pay、calcPrice(); 77.break; 78. 79./ 用户选择 真情回馈 80.if (s 、equals( 3 ) 81./ 处理真情回馈的整个处理流程精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 82.showSendGMenu(); 83.break; 84. 85./ 用户选择 注销 86.if (s 、equals( 4 ) 87./ 显示一级菜单 , 此时会返回至StartSMS 类中的一级菜单处理流程88.showLoginMenu(); 89.break; 90. 91.System、out 、print( 输入错误 ,请重新输入数字: ); 92.flag = false; 93. while(!flag); 94. 95./* 96.* 显示三级菜单 - 客户信息管理 , 并处理所有客户信息管理的流程97.* 98.*/ 99.publicvoid showCustMMenu() 100. System、out 、println(购物管理系统 客户信息管理 n ); 101. System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 102. System、out 、println(tttt 1、显示所有客户信息n ); 103. System、out 、println(tttt 2、添加客户信息n ); 104. System、out 、println(tttt 3、修改客户信息n ); 105. System、out 、println(tttt 4、查询客户信息n ); 106. System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 107. System、out 、print( 请选择 , 输入数字或按 n 返回上一级菜单: ); 108. Scanner scanner = newScanner(System 、in); 109.boolean flag = true; 110.do 111./ 创建客户信息管理对象, 并设置数据 , 这里的数据还就是原始的那些数据112. CustManagement custmanagement = newCustManagement(); 113. custmanagement、setData(goodsName, goodsPrice, custNo, custBirth, custScore); 114. String s = scanner 、next(); 115./ 客户选择 显示所有客户信息 116.if (s 、equals( 1 ) 117. custmanagement、show(); 118.break; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 34 页 - - - - - - - - - - JAVA简单项目购物系统的整个开发过程详解( 内含源码和注释) 119. 120./ 客户选择 添加客户信息 121.if (s 、equals( 2 ) 122. custmanagement、add(); 123.break; 124. 125./ 客户选择 修改客户信息 126.if (s 、equals( 3 ) 127. custmanagement、modify(); 128.break; 129. 130./ 客户选择 查询客户信息 131.if (s 、equals( 4 ) 132. custmanagement、search(); 133.break; 134. 135./ 客户选择 返回上一级菜单 136.if (s 、equals( n ) 137. showMainMenu(); 138.break; 139. 140. System、out 、println(输入错误 , 请重新输入数字 : ); 141. flag = false; 142. while(!flag); 143. 144./* 145. * 显示三级菜单 - 真情回馈 , 并处理所有真情回馈的流程146. * 147. */ 148.publicvoid showSendGMenu() 149. System、out 、println(购物管理系统 真情回馈 n ); 150. System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 151. System、out 、println(tttt 1、幸运大放送n ); 152. System、out 、println(tttt 2、幸运抽奖n ); 153. System、out 、println(tttt 3、生日问候n ); 154. System、out 、println(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n ); 155. System、out 、print( 请选择 , 输入数字或按 n 返回上一级菜单: ); 156. Scanner scanner = newScanner(System 、in); 157./ 创建礼物管理对象