我行我素购物管理系统


实现思路:创建 Vip类表示购物系统中的会员,创建 shop类表示用户购买的商品,创建 Menu类显示系统运行的菜单以及实现系统功能的方法,创建测试类 TestMenu测试功能

      1.创建会员类,会员有三个属性,账号、积分、会员生日,提供get、set方

法,以及有三个参数的构造器
      public class Vip {
        /**
         * 会员积分
         */
        private int score;
        /**
         * 会员账号
         */
        private int number;
        /**
         * 会员生日
         */
        private String birth;
        public int getNumber() {
        r    eturn number;
        }
        public void setNumber(int number) {
            this.number = number;
        }
        public int getScore() {
            return score;
        }

        public void setScore(int score) {
            this.score = score;
        }
    public String getBirth() {
        return birth;
    }
        public void setBirth(String birth) {
            this.birth = birth;
        }
        /**
         * 三参构造器
         * 
         * @param number
         * @param score
         *@param birth
         */
        public Vip(int number, int score, String birth) {
            super();
            this.number = number;
            this.score = score;
            this.birth = birth;
        }
2.创建商品类,商品有三个属性,编号、数目、单价,提供set、get方法以及有

三个参数的构造器

     public class Shop {
    /**
     * 商品编号
     */
    public int bh;
    /**
     * 商品数目
     */
    public int num;
    /**
     * 商品单价
     */
    public double price;
    public int getBh() {
        return bh;
    }
    /**
     * 全参构造器
     * 
     * @param bh
     * @param num
     * @param price
     */
    public Shop(int bh, int num, double price) {
        super();
        this.bh = bh;
        this.num = num;
        this.price = price;
    }
    public void setBh(int bh) {
        this.bh = bh;public void showInfo1() {
System.out.println("欢迎使用我行我素购物管理系统");
System.out.println("\t1、登录");
System.out.println("\t2、退出");
System.out.println("********************************************");
}
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
}
3.创建Menu类(帮助类),创造方法实现系统运行时的菜单界面以及实现系统public void showInfo1() {
System.out.println("欢迎使用我行我素购物管理系统");
System.out.println("\t1、登录");
System.out.println("\t2、退出");
System.out.println("********************************************");
}
public void showInfo1() {
		System.out.println("欢迎使用我行我素购物管理系统");
		System.out.println("\t1、登录");
		System.out.println("\t2、退出");
		System.out.println("********************************************");
	}

功能的方法,

①显示登陆菜单:
    public void showInfo1() {
        System.out.println("欢迎使用我行我素购物管理系统");
        System.out.println("\t1、登录");
        System.out.println("\t2、退出");
        System.out.println("********************************************");
    }
②显示主菜单
public void showInfo2() {
        System.out.println("欢迎使用我行我素购物管理系统");
        System.out.println("\t1、客户信息管理");
        System.out.println("\t2、购物结算");
        System.out.println("\t3、真情回馈");
        System.out.println("\t4、注销");
    }
③显示客户信息管理菜单
public void  showInfo3() {
        System.out.println("我行我素购物系统管理>客户信息管理");
        System.out.println("******************************************");
         System.out.println("1、显示所有客户信息");
        System.out.println("2、添加客户信息");
        System.out.println("3、修改所有客户信息");
        System.out.println("4、查询所有客户信息");
        System.out.println("******************************************");
    }
③菜单下必须实现1、2、3、4四个功能:
功能一   显示所有客户信息:
    public void  showInfo4() {
         System.out.println("我行我素购物系统管理>客户信息管理>显示客户信息");
        System.out.println("会员号\t生日\t积分\t");
        System.out.println("------ ------ ------");固定的显示格式
         for (int i = 0; i < count; i++) {
            System.out.println(vip[i].getNumber() + "\t" + vip[i].getBirth()
                    + "\t" + vip[i].getScore());
        }访问存储会员的数组成员,遍历输出会员信息,
    }
功能二  实现添加客户:
public void  showInfo6() {
        System.out.println("我行我素购物系统管理>客户信息管理>添加客户信息");
         System.out.println("请输入会员号");
        int cao1 = sc.nextInt();
        boolean flag = true;
        for (int i = 0; i < vip.length; i++) {
            if (cao1 == vip[i].getNumber()) {
                flag = false;
            }判断用户输入的会员账号是否已经存在,存在flag=false
        }
          if (flag == true) {
            System.out.println("请输入会员生日");
            String cao2 = sc.next();
            System.out.println("请输入会员积分");
            int cao3 = sc.nextInt();
            Vip vip1 = new Vip(cao1, cao3, cao2);//调用会员类的三个参数的构造方法创建会员对象
            vip[count] = vip1;
            count++;//每调用一次这个方法count++,避免重复添加前面已经添加的会员被覆盖
            System.out.println("注册成功!");
         } else {
             System.out.println("您输入的会员号已存在!");
        }
    }
功能三  实现修改客户信息:

public void  showInfo9() {
        System.out.println("我行我素购物系统管理>客户信息管理>修改客户信息");
        System.out.println("***********************************************");
        System.out.println("请输入会员号:");
        int num = sc.nextInt();
        boolean bool = true;
        for (int i = 0; i < vip.length; i++) {
            if (num == vip[i].getNumber()) {                             //判断用户输入的会员账号是否存在,
                bool = false;
                System.out.println("会员号\t生日\t积分\t");
                System.out.println("--------- --------- ----------");
                 System.out.println(vip[i].getNumber() + "\t"
                        + vip[i].getBirth() + "\t" + vip[i].getScore() + "\t");          //输出用户要修改的会员信息
                System.out  .println("***********************************************");
                System.out.println("1、修改会员生日");
                System.out.println("2、修改会员积分");
                System.out
                        .println("***********************************************");
                 System.out.println("请输入要修改的内容:");
                int num1 = sc.nextInt();                    //判断用户要修改会员的生日还是积分
                if (num1 == 1) {          //输入数字1时修改会员生日
                    System.out.println("请输入新的生日:");
                    String str = sc.next();
                    vip[i].setBirth(str);         //调用会员类的set方法修改该会员的生日
                    System.out.println("修改成功!");
                    break;
                } else if (num1 == 2) {             //输入数字2时修改会员积分
                    System.out.println("请输入最新积分:");
                    int str = sc.nextInt();
                    vip[i].setScore(str);             //调用会员类的set方法修改会员的积分
                    System.out.println("修改成功!");
                    break;                 //修改成功跳出循环,后面的不需要执行了,不可能有相同的会员账号,添加的时候已经排除了添加相同的会员账号
                }
            }
        }
        if (bool == true) {                                      //输入的会员账号不存在显示不存在
            System.out.println("您输入的会员不存在!");
        }
    }
功能四  实现查询客户信息
public void  showInfo5() {
        System.out.println("我行我素购物系统管理>客户信息管理>查询客户信息");
        System.out.println("请输入会员号:");
        int num = sc.nextInt();
        boolean bool = true;
        for (int i = 0; i < count; i++) {
            if (num == vip[i].getNumber()) {         //判断用户输入的会员账号是否存在,存在执行if里面的代码
                bool = false;
                System.out.println("会员号\t生日\t积分\t");
                System.out.println("------ ------ ------");
                 System.out.println(vip[i].getNumber() + "\t"
                        + vip[i].getBirth() + "\t" + vip[i].getScore() + "\t");//输出会员信息
            }
        }
        if (bool == true) {                 //输入的账号不存在,就不进入循环,
            System.out.println("您输入的会员不存在!");
        }
    }
④显示购物结算菜单
public void  showInfo7() {
        System.out.println("我行我素购物系统管理>购物结算");
        System.out.println("************************************************");
        System.out.println("请选择购买的商品编号");
        System.out.println("1、adidas运动鞋");
        System.out.println("2、adidast恤");
        System.out.println("3、Nike运动鞋");
        System.out.println("************************************************");
    }
购物结算界面需要让用户输入购买的商品并且打印消费账单:
     public void calcu() {
        int count = 0;
        boolean bool = false;
        System.out.println("请输入会员号:");//输入正确的会员账号才能执行购物结算功能
         int hy = sc.nextInt();
        for (int i = 0; i < vip.length; i++) {
            if (hy == vip[i].getNumber()) {
                bool = true;
            }
        }        //判断输入的会员号是否存在存在执行下面的if
        if (bool) {
            for (int i = 0; i < 100; i++) {// 用数组接受用户购买的商品信息
                System.out.println("请输入商品编号:");
                int kao1 = sc.nextInt();
                System.out.println("请输入商品价格");
                double kao2 = sc.nextDouble();
                System.out.println("请输入商品数量");
                int kao3 = sc.nextInt();
                 Shop shop1 = new Shop(kao1, kao3, kao2);//调用商品类的三参构造方法
                shop[i] = shop1;             //将商品依次存入shop数组中
                count++;
                  System.out.println("是否继续y/n?");
                String str = sc.next();
                if (str.equals("n")) {// 判断是否继续购买
                    break;            //判断是否继续输入,输入n跳出循环
                }
            }
-------------------------打印消费清单-------------------------------------------
            System.out.println("******************消费清单*******************");
            System.out.println("物品\t单价\t个数\t金额");
            double sum = 0;
            for (int j = 0; j < count; j++) {     // 遍历数组计算消费总金额
                System.out.println(shop[j].bh + "\t" + shop[j].price + "\t"
                        + shop[j].num + "\t" + (shop[j].price * shop[j].num));
                sum = sum + (shop[j].price * shop[j].num);/ /用sum存储消费总金额
            }
            S ystem.out.println("消费总金额为:" + sum);
            System.out.println("实际缴费:");
            double money = sc.nextDouble();// 接收用户的缴费金额
            if (money >= sum) {// 判断用户输入
                System.out.println("找零:" + (money - sum));
            } else {
                System.out.println("余额不足!");
            }                             //判断用户输入的金额是否足够,不足显示余额不足,足够则打印消费单
        } else {
            System.out.println("输入的会员号不存在!");
        }
    }
⑤显示真情回馈菜单:
public void showInfo8() {
        System.out.println("我行我素购物系统管理>真情回馈");
        System.out.println("**********************************************");
        System.out.println("1、幸运大放送");
        System.out.println("2、幸运抽奖");
        System.out.println("3、生日问候");
        System.out.println("**********************************************");
    }
幸运大放送菜单:
public void showInfo10() {
        System.out.println("我行我素购物系统管理>真情回馈>幸运大放送");
        int num = 0;
        boolean boole = true;
        System.out.println("请输入会员号:");
        int hy = sc.nextInt();
        for (int i = 0; i < vip.length; i++) {
            if (hy == vip[i].getNumber()) {
                num = i;
                boole = false;
                if(vip[num].getScore()>500){
                    System.out.println("恭喜您获得猴年限定皮肤一个!");
                }else{
                    System.out.println("您积分余额不足,无法参与幸运大放送!");
                }
                break;
            }
    }
        if(boole){
            System.out.println("您输入的会员号不存在");
        }
    }
幸运抽奖:
public void showInfo12() {
        System.out.println("我行我素购物系统管理>真情回馈>幸运抽奖");
        int num = 0;
        boolean boole = true;
        System.out.println("请输入会员号:");
        int hy = sc.nextInt();
        for (int i = 0; i < vip.length; i++) {
            if (hy == vip[i].getNumber()) {
                num = i;
                System.out.println("活动规则:用户输入开始,系统随机产生一个随机数字,根据产生的随机数字判定用户的奖金多少!");
                System.out.println("输入开始,产生一个您的幸运数字!");
                String str = sc.next();
                int x=(int)(Math.random()*100);//产生一个0到100之间的随机数
                System.out.println("您的幸运数字为:"+x);
                if(x<50){
                System.out.println("恭喜您获得100元购物卡一张!");    
                }else if(x%10==0){
                    System.out.println("恭喜您获得500元购物卡一张!");
                }else{
                    System.out.println("您获得了最佳人气奖!");
                }
                boole = false;
                break;
            }
        }
        if(boole){
            System.out.println("您输入的会员号不存在");
        }
    }
生日问候:
public void showInfo11() {
        System.out.println("我行我素购物系统管理>真情回馈>生日问候");
        int num = 0;
        boolean boole = true;
        System.out.println("请输入会员号:");
        int hy = sc.nextInt();
        for (int i = 0; i < vip.length; i++) {
            if (hy == vip[i].getNumber()) {
                num = i;
                boole = false;
                System.out.println("请输入今天的日期:");
                String  str = sc.next();
                if(str.equals(vip[num].getBirth())){
                    System.out.println("今天是您的生日,获赠双倍积分卡一张!");
                }else{
                    System.out.println("很抱歉,今天不是您的生日!");
                }
                break;
            }
        }
        if(boole){
            System.out.println("您输入的会员号不存在");
        }

    }

----------------------------------------------------------------------------------------------------
创建测试类TestMenu,实现系统的基本操作以实现功能:
public class TestMenu {
    public static void main(String[] args) {
        Menu menu = new Menu();
        Scanner sc = new Scanner(System.in);
        boolean bool = true;
        menu.main();
        menu.main1();
         while (bool) {最外层循环确保程序能够返回最开始的主界面
            menu.showInfo1();// 调用主界面
            System.out.println("请选择,输入数字:");
            int num5 = sc.nextInt();
             if (num5 == 1) {       // 输入1执行登录界面,判断是否进入登录界面
                System.out.println("请输入用户名:");
                int num = sc.nextInt();
                System.out.println("请输入密码:");
                int password = sc.nextInt();
                 do {//第二层循环确保用户输入错误后能够冲新输入
                     if (password == 5233) {// 输入正确的密码
                         while (bool) {//第三层循环确保用户输入0后能返回到购物信息系统管理菜
                            menu.showInfo2();// 进入主界面
                            System.out.println("请选择,输入数字:");
                            int num1 = sc.nextInt();
                             while (bool) {//第四层循环保证用户输入0后能返回到客户信息管理菜单界面
                                 if (num1 == 1) {//  用户输入数字1执行客户信息管理系统
                                    menu.showInfo3();// 客户信息管理菜单
                                    System.out.println("请选择,输入数字0返回上一层");
                                    int num3 = sc.nextInt();
                                     if (num3 != 0) {
                                         do {//内层循环实现客户不用返回上一级就可以重复执行已经选择的操作
                                            if (num3 == 1) {// 用户输入数字1执行显示客户信息
                                                menu.showInfo4();
                                            } else if (num3 == 2) {// 数字2执行添加会员
                                                menu.showInfo6();
                                            } else if (num3 == 4) {// 数字3执行查询服务
                                                menu.showInfo5();
                                            } else if (num3 == 3) {// 执行修改服务
                                                menu.showInfo9();
                                            }
                                            System.out .println("输入0返回上一层,输入其他数字继续执行");
                                            int num4 = sc.nextInt();
                                            if (num4 == 0) {
                                                break;// 输入0返回上一层
                                            }
                                        } while (bool);
                                    }  else {
                                        break;// 输入0跳出循环,返回上一层
                                    }
                                }   else if (num1 == 2) {   // 用户输入数字2时执行购物结算功能
                                     do {//该循环实现用户输入0的情况下可以返回上一级菜单
                                         menu.showInfo7();// 调用购物结算界面
                                        menu.calcu();// 调用计算金额方法
                                        System.out .println("输入0返回上一层,输入其他数字继续执行");
                                        int num4 = sc.nextInt();
                                        if (num4 == 0) {
                                            break;// 输入0返回上一层
                                        }
                                    } while (bool);
                                }  else if (num1 == 3) {//  用户输入3执行真情回馈
                                     do {该循环实现了在用户输入0的情况下能够返回上一级菜单
                                        menu.showInfo8();
                                        System.out.println("输入0返回上一层:");
                                        int num4 = sc.nextInt();
                                        if (num4 == 0) {
                                            break;// 返回上一层
                                        }
                                    } while (bool);
                                }  else if (num1 == 4) {
                                    System.out.println("注销登录");
                                    bool = false;// 结束所有循环
                                }
                             }                            
                         }
                     } else {
                        System.out.println("密码错误!");
                        break;// 密码错误跳出循环,重新进入登录界面
                    }
                 } while (bool);
            }  else {
                System.out.println("退出登录!");
                break;// 选择退出跳出循环
            }
         }
    }

}


你可能感兴趣的:(购物管理系统)