java开发项目之欢购网购物平台

1.欢购网购物平台的需求分析


本案例并没有GUI参与,只是用eclipse模拟了购物平台的一些简单操作。主要是对javaEE基础知识的综合运用,介绍面向对象的思想(面向过程分析,以及封装、继承、多态)。本案例肯定还存在一些bug,一些细节后续再改进。


1. 用户的数据类:UserData类

姓名,年龄,出生日期,积分等,相当于用户基本信息库。

2. 校验类:Check类

校验用户名,密码和管理员用户名、密码 等。

3. 用户的操作类:UserService类

用户信息查询,查询客户信息, 添加客户信息, 修改客户信息, 删除客户信息,幸运客户,生日回馈等方法。

4. 管理员的数据类: AdDate类

专门封装管理员的账号信息,以后要是想修改或者添加管理员就非常方便,相当于是管理员数据库

5. 购物商品类(商品数据库):GoodsData类

在面向对象的设计中,我们的数据比较多,任意放置会出问题,这样也不方便以后维护。这就相当于商品库一样,以后哪里需要就送到哪里。

6. 购物结算:Pay类

由于购物结算比较复杂,所以专门分出一个类用于购物结算(选择购买,付款等)。

7. 礼物类:Gift类

这就相当于系统内置的礼物库一样,当你需要的时候,由系统送出。

8. 菜单类:Menu类

所有的一级菜单、二级菜单、三级菜单。

9.测试类: StartSMS

用于启动用户管理系统。


开始拿到一个项目可能会很茫然,老虎吃天无从下抓的感觉。那么就先分析需求,划分好类,就相当于仓库分类管理一样,什么东西属于哪个仓库就放在哪个仓库。然后用的时候,类与类会产生关系,其实这就是面向对象思想。


2.欢购网项目类与类之间的关系分析:


1,启动StartSMS(SMS就是Subscriber Management System用户管理系统的意思)之后,首先是一级菜单,就是mainMenu,有登录欢购网、注册欢购网、修改账号、退出欢购网等。这里可以有一个do while语句加上flag(定义一个布尔标记)控制。


2.在登录成功时启动二级菜单。客户信息、购物结算、幸运客户、生日回馈等。这里需要在菜单类中控制,也是需要do while语句加上flag(定义一个布尔标记)控制。


3.二级菜单中分别有下一级菜单,也是用do while语句加上flag(定义一个布尔标记)控制。

注意的是:每次要返回上一级菜单的时候都需要调用写好的返回菜单方法。


3.代码实现(所有的代码都在一个包中,cn.jason)


3.1 StartSMS类


package cn.jason;import java.util.Scanner;/*** 这是用户管理启动类* * @author cassandra* @version v1.1*/
public class StartSMS {public static void main(String[] args) {GoodsData goods = new GoodsData();// 先对产品信息初始化,加载到服务器goods.goodsIfo();// 把产品信息加载到数组中Menu menu = new Menu();// 创建菜单对象,方便后面调取二级三级菜单menu.setUserDate(goods.goodsName, goods.goodsPrice, goods.score);Check check = new Check();// 创建校验对象UserService us = new UserService();boolean flag = true;// 判断标志,方便控制do while语句do {menu.mainMenu();// 调取一级菜单Scanner sc = new Scanner(System.in);String yourChoice = sc.nextLine();switch (yourChoice) {// 登录case "1":for (int i = 3; i >= 1; i--) { // 给用户三次输入机会System.out.println("请输入用户名");String username = sc.nextLine();System.out.println("请输入密码");String password = sc.nextLine();// 校验登录的用户名和密码if (!check.isLogin(username, password) ) {if (i != 1)System.out.println("用户名或密码有误,请重新输入");else {System.out.println("你已经输错三次,为了保证账号安全,请24小时候后在登录.");flag = false;}} else {System.out.println("恭喜你,登录成功\n");menu.secondMenu();// 登录成功,那么调用二级菜单flag = false;}}break;// 注册// 校验用户名是否符合要求case "2":String newUsername;while (true) {System.out.println("请输入用户名");newUsername = sc.nextLine();if (!check.checkUserName(newUsername))System.out.println("6~10个字符,支持小写英文、数字和'_'下划线格式,请以英文字母开头");elsebreak;}// 校验出生年月是否符合要求String bornDate;while (true) {System.out.println("请输入出生日期,格式是xxxx-xx-xx");bornDate = sc.nextLine();if (check.checkBornDate(bornDate) == false)System.out.println("你输入的格式有误,请重新输入");elsebreak;}// 校验年龄是否符合要求String age;while (true) {System.out.println("请输入年龄");age = sc.nextLine();if (!check.checkAge(age))System.out.println("你输入的年龄有误,请重新输入");elsebreak;}// 校验用户密码是否符合要求String newPassword;while (true) {System.out.println("请输入密码");newPassword = sc.nextLine();if (!check.checkPassword(newPassword))System.out.println("你的密码格式不正确,长度在6~10位,由数字和26个英文字母组成");elsebreak;}// 注册成功时,系统随机分配一个VIP账户int vipNumber = us.giveRandomNo();System.out.println("恭喜你注册成功,你的VIP账号是" + vipNumber);// 把用户注册的基本信息保存在集合array里面,也就是保存到服务器UserData user = new UserData();user.setUsername(newUsername);user.setAge(age);user.setBornDate(bornDate);user.setPassword(newPassword);user.setVipNumber(vipNumber);check.isRegister(user);break;// 修改用户名和密码case "3":System.out.println("请输入用户名");String username = sc.nextLine();


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部