java控制台输出订单管理系统

java控制台输出订单管理系统

import kotlin.collections.ArrayDeque;

import java.util.*;


//Define store Object

class Product {

    int Id ;
    String Productname;
    int Price;
    int Num;
    Product(int id,String productname,int price,int num){
        Id = id;
        Productname = productname;
        Price = price;
        Num = num;
    }
}

class UserOrder {

    int Id ;
    String Productname;
    int Price;
    int Num;
    UserOrder(int id,String productname,int price,int num){
        Id = id;
        Productname = productname;
        Price = price;
        Num = num;
    }

    void getTotalPrice(){

    }
}

 class Orderplatform {
    //business object
    public static boolean flag = true;
    public static List<Product> productlist= new LinkedList<Product>();
    public static Iterator<Product> productiter= productlist.iterator();

    //user object
    public static List<UserOrder> userlist= new LinkedList<UserOrder>();
    public static Iterator<UserOrder> useriter= userlist.iterator();
    public static boolean userflag = true;
    Orderplatform(String s){

        ProjectPower projectPower;
        System.out.println("商家编辑今日商品:"+s+"  请输入 1,展现商品列表,输入 2,商品新增,输入 3,商品编辑 ,输入 4,商品删除,5 exit" +
                ",6 进入用户下单\"");
        do {
        Scanner scanner = new Scanner(System.in);
        String select = scanner.nextLine();
        //decrese mang quit
        try {
            int userdicesion = Integer.parseInt(select);





            switch (userdicesion) {
                case 1:
                    projectPower = new ProductsList();
                    projectPower.Partpower();
                    break;
                case 2:
                    projectPower = new ProductsAdd();
                    projectPower.Partpower();
                    break;
                case 3:
                    projectPower = new ProductsEdit();
                    projectPower.Partpower();
                    break;
                case 4:
                    projectPower = new ProductsDell();
                    projectPower.Partpower();
                    break;
                case 5:
                    exit();

                case 6:
                    UserAdpter userAdpter = new UserAdpter();
                    break;
                default:
                    break;


            }
        }
        catch (Exception e){
            System.out.println("请输入 1,展现商品列表,输入 2,商品新增,输入 3,商品编辑 ,输入 4,商品删除,5 exit ,6 进入用户下单");
        }


        }while (flag);
    }
    void exit(){
        System.out.println("退出平台");
        flag = false;
    }



    //for business
    interface ProjectPower{
        void Partpower();
    }

    class ProductsList implements ProjectPower{
        public void Partpower() {
            System.out.println("商品列表");

            productiter = productlist.iterator();
            while (productiter.hasNext()){
                Product localproduct = productiter.next();
                System.out.println("商品编号为"+localproduct.Id+",    商品名称为"+localproduct.Productname+
                        ",     商品价格为"+localproduct.Price+"  商品数量为"+localproduct.Num);
            }
        }
    }

    class ProductsAdd implements ProjectPower{
        public void Partpower() {
            System.out.println("输入商品名称");
            Scanner scanner = new Scanner(System.in);
            String productname = scanner.nextLine();
            System.out.println("输入商品价格");
            int localprice = scanner.nextInt();
            System.out.println("输入商品数量");
            int localnum = scanner.nextInt();
            productlist.add(new Product(productlist.size(),productname,localprice,localnum));
            System.out.println("录入成功");
        }
    }

    class ProductsEdit implements ProjectPower{
        public void Partpower() {
            System.out.println("请输入商品编号");
            Scanner scanner = new Scanner(System.in);
            int localid= scanner.nextInt();
            System.out.println("当前的商品信息为:  商品编号为"+productlist.get(localid).Id+",    商品名称为"+productlist.get(localid)
                    .Productname+",     商品价格为"+productlist.get(localid).Price+"  商品数量为"+
                    productlist.get(localid).Num);

            System.out.println("输入商品名称");

            String productname = scanner.next();
            System.out.println("输入商品价格");
            int localprice = scanner.nextInt();

            System.out.println("输入商品数量");
            int localnum = scanner.nextInt();

            System.out.println("编辑成功");
            productlist.set(localid,new Product(productlist.size(),productname,localprice,localnum));
        }
    }

    class ProductsDell  implements ProjectPower{
        public void Partpower() {
            System.out.println("请输入商品编号");
            Scanner scanner = new Scanner(System.in);
            int localid= scanner.nextInt();
            System.out.println("当前的商品信息为:  商品编号为"+productlist.get(localid).Id+",    商品名称为"+productlist.get(localid)
                    .Productname+",     商品价格为"+productlist.get(localid).Price+"   商品数量为"
            +productlist.get(localid).Num);
            System.out.println("是否删除?确认输入y");
            String delcontrol = scanner.next();
            if (delcontrol.equals("y")||delcontrol.equals("Y")){
                productlist.remove(localid);
                System.out.println("删除成功");
            }

        }
    }
    //for user adpter,or it will be too large
    class UserAdpter{
        Userplateform userplateform = new Userplateform();
        UserAdpter(){
            userplateform.userding();
        }

     }


        //for user make a order
     public class Userplateform{
        public void userding()
            {

                do {
                    System.out.println("用户你好,当前商品列表为");

                    productiter = productlist.iterator();
                    while (productiter.hasNext()) {
                        Product localproduct = productiter.next();
                        System.out.println("商品编号为" + localproduct.Id + ",    商品名称为" + localproduct.Productname +
                                ",     商品价格为" + localproduct.Price + "  商品数量为" + localproduct.Num);
                    }


                    Scanner scanner = new Scanner(System.in);


                    //对商品对象进行操作
                    System.out.println("输入 1 添加商品到购物车 , 输入 2 减少购物车商品 ,输入 3 查看当前订单信息" +
                            "输入 4 结账");
                    int chosemark = scanner.nextInt();

                    UserPursh userPursh;

                    switch (chosemark){
                        case 1:
                            userPursh = new Addproduct();
                            userPursh.userdoing();
                         break;
                        case 2:
                            userPursh = new Subproduct();
                            userPursh.userdoing();
                         break;
                        case 3:
                            userPursh = new LocalOrder();
                            userPursh.userdoing();
                         break;
                        case 4:
                            userexit();
                         break;
                        default:
                         break;
                    }

                } while (userflag);
            }
        }
     void userexit(){


         managelistchange();

         int totalcost = 0;
         useriter = userlist.iterator();
         while (useriter.hasNext()){
             UserOrder localuserorder = useriter.next();
             totalcost = totalcost +localuserorder.Price*localuserorder.Num;
         }
         System.out.println("共花费了"+totalcost+"元");
         System.out.println("退出平台");
         userlist.clear();


         userflag = false;
     }
     //userorder end has changed the state of business
     void managelistchange(){
         productiter = productlist.iterator();
         useriter = userlist.iterator();
         while (productiter.hasNext()){


             while (useriter.hasNext()){
                 UserOrder localuserorder = useriter.next();
                 Product localproduct = productiter.next();
                 //use userorder num sub managelist num
                 if (localuserorder.Productname.equals(localproduct.Productname)){
                     localproduct.Num = localproduct.Num - localuserorder.Num;
                 }

                 if (productlist.get(localproduct.Id).Num < 0)
                     productlist.remove(localproduct.Id);

             }
         }



     }

     interface UserPursh{
        void userdoing();
        }

   class Addproduct implements  UserPursh{


        public void userdoing(){

            Scanner scanner = new Scanner(System.in);

            System.out.println("输入要添加进购物车的商品编号");
            int localid = scanner.nextInt();

            System.out.println("输入增加数量");
            int localnum = scanner.nextInt();

                    //jugeue input num
            if (localnum > productlist.get(localid).Num) {
                System.out.println("超出最大数量,请重新输入");
            }else{
                userlist.add(new UserOrder(userlist.size(),productlist.get(localid).Productname,
                        productlist.get(localid).Price,localnum));
                System.out.println("添加成功!");
            }




        }
     }

     class LocalOrder implements  UserPursh{


         public void userdoing(){

             System.out.println("当前订单为:");

             useriter = userlist.iterator();
             while (useriter.hasNext()){
                 UserOrder localuserorder = useriter.next();
                 System.out.println("商品编号为"+localuserorder.Id+",    商品名称为"+localuserorder.Productname+
                         ",     商品价格为"+localuserorder.Price+"  商品数量为"+localuserorder.Num);
             }


         }
     }

     class Subproduct implements  UserPursh{


         public void userdoing(){

             System.out.println("当前订单为:");

             useriter = userlist.iterator();
             while (useriter.hasNext()){
                 UserOrder localuserorder = useriter.next();
                 System.out.println("商品编号为"+localuserorder.Id+",    商品名称为"+localuserorder.Productname+
                         ",     商品价格为"+localuserorder.Price+"  商品数量为"+localuserorder.Num);
             }
             Scanner scanner = new Scanner(System.in);

             System.out.println("输入商品编号进行操作");
             int localid = scanner.nextInt();
             System.out.println("要删除的数量");
             int localnum = scanner.nextInt();

             userlist.set(localid,new UserOrder(localid,userlist.get(localid).Productname,
                     userlist.get(localid).Price,userlist.get(localid).Num-localnum));
            if (userlist.get(localid).Num < 0)
                userlist.remove(localid);

             System.out.println("操作成功!");


         }
     }
}
class BeginLogin{

    BeginLogin(){

        Orderplatform orderplatform;

        System.out.println("请输入店铺名");
        Scanner scanner = new Scanner(System.in);
        String username = scanner.nextLine();

        orderplatform = new Orderplatform(username);
    }



}

public class OrderManger{

    public static void main(String[] args) {
        BeginLogin beginLogin = new BeginLogin();

    }
}

实现方法:
定义商家平台类,用户平台类,商家平台类通过调用接口类进入用户平台类,定义商家表和用户表泛型
进行存储信息,并在两个平台类下对实现方法进行抽象,实现,调用


版权声明:本文为qq_43406185原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。