傻瓜式外卖点餐系统(无数据库)

tips

  • 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量)

  • 管理员类(管理员id,账号,密码)

  • 客户类(客户id,客户名,性别,密码,送餐地址,手机号,创建时间)

  • 订单类(订单号,订单创建时间,菜品id,购买数,客户id,总价格,订单状态)
    说明:

  1. 菜品类型可自行设计数据类型(int或String),如1:面食 2:米饭 3:湘菜 …

  2. 菜品上架时间、客户创建时间、订单创建时间根据添加时间自动分配系统时间

  3. 订单状态类型为int(0:未支付 1:已支付 2:配送中 3:已完成)
    要求实现如下功能:

  4. 实现不同角色用户登录系统
    (1) 管理员登录系统看到如下菜单:
    ① 添加菜品
    ② 查看所有菜品信息(包含分页功能)
    ③ 查看指定类别的菜品信息
    ④ 根据菜品id修改菜品价格
    ⑤ 删除指定id的菜品
    ⑥ 添加客户
    ⑦ 查看客户列表
    ⑧ 删除指定id的客户
    ⑨ 订单列表显示
    ⑩ 根据订单id修改订单状态
    11 退出
    (2) 客户登录看到如下菜单:
    ① 显示所有菜品(按菜品销量从高到低排序输出)
    -------->点餐(输入菜品id和购买数量)
    ② 根据菜品类别显示所有菜品
    ③ 查看所有订单(当前登录用户的)
    ④ 修改密码(当前登录用户的)
    ⑤ 个人信息显示

以上就是全部要求,首先咱们可以先建一个接口,方便对四个管理类进行操作;

package com.softeem.lesson23.test2;
import java.util.List;
public interface DAO<T> {  void insert(T t);  T findById(String id);  List<T> findAll();  void delete(String id);}

一、再根据要求,先把四个类的属性类建立起来:

1. Admin类(管理员类)​​​​​​​

package com.softeem.lesson23.test2;
public class Admin {  private String aID;  private String account;  private String apwd;  public Admin() {    // TODO Auto-generated constructor stub  }  public Admin(String aID, String account, String apwd) {    super();    this.aID = aID;    this.account = account;    this.apwd = apwd;  }  public String getaID() {    return aID;  }  public void setaID(String aID) {    this.aID = aID;  }  public String getAccount() {    return account;  }  public void setAccount(String account) {    this.account = account;  }  public String getApwd() {    return apwd;  }  public void setApwd(String apwd) {    this.apwd = apwd;  }  @Override  public String toString() {    return "Admin [aID=" + aID + ", account=" + account + ", apwd=" + apwd + "]";  }
}

2. Dishes类(菜品类)​​​​​​​

package com.softeem.lesson23.test2;
import java.time.LocalDate;
public class Dishes {  private String dID;  private String dname;  private String dtype;  private LocalDate dtime;  private double price;  private int dsales;  private int dstocks;
  public Dishes() {    // TODO Auto-generated constructor stub  }
  public Dishes(String dID, String dname, String dtype, LocalDate dtime, double price, int dsales, int dstocks) {    super();    this.dID = dID;    this.dname = dname;    this.dtype = dtype;    this.dtime = dtime;    this.price = price;    this.dsales = dsales;    this.dstocks = dstocks;  }
  public String getdID() {    return dID;  }
  public void setdID(String dID) {    this.dID = dID;  }
  public String getDname() {    return dname;  }
  public void setDname(String dname) {    this.dname = dname;  }
  public String getDtype() {    return dtype;  }
  public void setDtype(String dtype) {    this.dtype = dtype;  }
  public LocalDate getDtime() {    return dtime;  }
  public void setDtime(LocalDate dtime) {    this.dtime = dtime;  }
  public double getPrice() {    return price;  }
  public void setPrice(double price) {    this.price = price;  }
  public int getDsales() {    return dsales;  }
  public void setDsales(int dsales) {    this.dsales = dsales;  }
  public int getDstocks() {    return dstocks;  }
  public void setDstocks(int dstocks) {    this.dstocks = dstocks;  }
  @Override  public String toString() {    return "Dishes [菜品id:" + dID + ", 菜品名:" + dname + ", 菜品类型:" + dtype + ", 上架时间:" + dtime + ", 单价:" + price        + ", 月销量:" + dsales + ", 总数量:" + dstocks + "]";  }
}

3. Order类(订单类)

package com.softeem.lesson23.test2;
import java.time.LocalDateTime;
public class Order {  private String OrderID;  private LocalDateTime utime;  private Dishes dishes;  private int Ordernum;  private String uID;  private Double Orderprice;  private int OrderValue;
  public Order() {    // TODO Auto-generated constructor stub  }
  public Order(String orderID, LocalDateTime utime, Dishes dishes, int ordernum, String uID, Double orderprice,      int orderValue) {    super();    OrderID = orderID;    this.utime = utime;    this.dishes = dishes;    Ordernum = ordernum;    this.uID = uID;    Orderprice = orderprice;    OrderValue = orderValue;  }
  public String getOrderID() {    return OrderID;  }
  public void setOrderID(String orderID) {    OrderID = orderID;  }
  public LocalDateTime getUtime() {    return utime;  }
  public void setUtime(LocalDateTime utime) {    this.utime = utime;  }
  public Double getOrderprice() {    return Orderprice;  }
  public void setOrderprice(Double orderprice) {    Orderprice = orderprice;  }
  public Dishes getDishes() {    return dishes;  }
  public void setDishes(Dishes dishes) {    this.dishes = dishes;  }
  public int getOrdernum() {    return Ordernum;  }
  public void setOrdernum(int ordernum) {    Ordernum = ordernum;  }
  public String getuID() {    return uID;  }
  public void setuID(String uID) {    this.uID = uID;  }
  public int getOrderValue() {    return OrderValue;  }
  public void setOrderValue(int orderValue) {    OrderValue = orderValue;  }
  @Override  public String toString() {    return "Order [OrderID=" + OrderID + ", utime=" + utime + ", dishes=" + dishes + ", Ordernum=" + Ordernum        + ", uID=" + uID + ", Orderprice=" + Orderprice + ", OrderValue=" + OrderValue + "]";  }
}

这一步没什么难度,直接把每一个属性都设置一下,然后设置为私有,注意属性的数据类型,这个很重要,方便后期管理类对其进行操作。

二、属性管理类

这个是整个demo比较难得地方,我的想法是建立Admin属性管理类,Order属性管理类,Dishes属性类,User属性管理类,再在Admin属性管理类里把Order属性管理类,Dishes属性类,User属性管理类先new出来,然后,每个属性管理类实现各自的方法,只需要在Admin属性管理类中调用各个属性管理类的方法,就可以实现通过Admin类管理其他类的数据,但是,每个类需要建一个Map集合,存储各自的元素,此处应该注意每个属性管理类Map的键方便后期对Map进行操作,然后建立菜单类,规定User和Admin能调用的方法。

话不多说,直接上代码,一下代码是通过Admin管理类延伸的,所以先看Admin管理类。

1. Admin管理类

package com.softeem.lesson23.test2;
import java.time.LocalDate;import java.time.LocalDateTime;//import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Scanner;//import java.util.Set;
public class AdminSys implements DAO<Admin> {  static Map<String, Admin> map = new HashMap<>();//  static Set<String> keys = map.keySet();  UserSys u = new UserSys();  OrderSys o = new OrderSys();  DishesSys d = new DishesSys();  Scanner sc = new Scanner(System.in);
  /**   * 添加菜品   */  public void addDishes() {    System.out.println("请输入您要添加的菜品:(按照:菜品ID/菜品名/菜品类型/单价/月销量/总数量)");    String str = sc.next();    String[] info = str.split("/");    //    if (info.length < 6) {      System.out.println("天啦撸,输入失败啦,请重新输入!");      addDishes();    } else {      LocalDate dtime = LocalDate.now();      Dishes t = new Dishes(info[0], info[1], info[2], dtime, Double.parseDouble(info[3]),          Integer.parseInt(info[4]), Integer.parseInt(info[5]));      d.insert(t);      System.out.println("小主,恭喜你!添加成功了");    }  }
  /**   * 查看所有菜品信息(包含分页功能)   */  public void showAllDishes(int pageSize) {    List<Dishes> list = d.findAll();    int start = 0;    //先写一个死循环,进入else后break掉    while (true) {      if (list.size() > (pageSize + start)) {        System.out.println(list.subList(start, pageSize + start));
      } else {        System.out.println(list.subList(start, list.size()));        break;      }      start = start + pageSize;    }  }
  /**   * 查看指定类别的菜品信息   *    */  public void selecBytypeOfAdmin() {    System.out.println("请输入您要查询菜品的类别:");    String typename = sc.next();    d.selectBytype(typename);  }
  /**   * 根据菜品id修改菜品价格   */  public void selectByDishesID() {    System.out.println("请输入您要查询的菜品id:");    String id = sc.next();    Dishes dish = d.findById(id);    if (dish == null) {      System.out.println("没有当前id的菜品呢");    } else {      System.out.println("当前菜品为:" + dish);      System.out.println("请输入新的菜品单价:");      double newprice = sc.nextDouble();      Dishes t = new Dishes(dish.getdID(), dish.getDname(), dish.getDtype(), dish.getDtime(), newprice,          dish.getDsales(), dish.getDstocks());      d.insert(t);      System.out.println("修改成功" + d.findById(t.getdID()));    }  }
  /**   * 删除指定id的菜品   *    * @param args   */  public void deleteDishes() {    System.out.println("请输入您要删除的菜品id");    String id = sc.next();    d.delete(id);    System.out.println("删除成功!!");  }
  /**   * 添加客户   */  public void addUser() {    System.out.println("请输入您要添加的用户:按照(id/姓名/性别/密码/送餐地址/手机号)");    String str = sc.next();    String[] info = str.split("/");    if (info.length < 6) {      System.out.println("您输入的信息有误,请重新输入....");      addUser();    } else {      LocalDateTime utime = LocalDateTime.now();      u.insert(new User(info[0], info[1], info[2], info[3], info[4], info[5], utime));      System.out.println("添加成功");    }  }
  /**   * 查看客户列表   */  public void findUser() {    List<User> userlist = u.findAll();    for (User user : userlist) {      System.out.println(user);    }  }
  /**   * 根据id查找指定用户   */  public User findUserByid(String id) {    return u.findById(id);  }
  /**   * 删除指定id的客户   */  public void deleteUserByAdmin() {    System.out.println("请输入您要删除的id:");    String id = sc.next();    u.delete(id);  }
  /**   * 订单列表显示   */  public void showAllOrder() {    List<Order> allOrder = o.findAll();    for (Order order : allOrder) {      System.out.println(order);    }  }
  /**   * 根据订单id修改订单状态   */  public void changeOrderValue() {    System.out.println("请输入您要修改状态的订单id");    String id = sc.next();    Order order = o.findById(id);    if (order == null) {      System.out.println("没有当前id的订单,请检查输入");    } else {      System.out.println("已找到当前id订单" + order);      System.out.println("请输入您要修改的状态:0:未支付 1:已支付 2:配送中 3:已完成");      int value = sc.nextInt();      Order t = new Order(order.getOrderID(), order.getUtime(), order.getDishes(), order.getOrdernum(),          order.getuID(), order.getOrderprice(), value);      o.insert(t);      System.out.println("修改成功了!!!");    }
  }  /**   * 显示所有菜品(按菜品销量从高到低排序输出)   */  public void showAllDishesByUser() {    List<Dishes> list = d.findAll();    Collections.sort(list, (p1, p2) -> p1.getDsales() - p2.getDsales());    System.out.println(list);  }
  /**   * 点餐(输入菜品id和购买数量)   */  public void shopDishes(User user) {    showAllDishesByUser();    System.out.println("请输入您要购买的id和数量:按照(id/数量)");    String str = sc.next();    String[] info = str.split("/");    // 判断输入是否符合要求,不符合则要求重新输入    if (info.length < 2) {      System.out.println("输入有误,请重新输入:");      shopDishes(user);    } else {      LocalDateTime l = LocalDateTime.now();      // String orderID, LocalDateTime utime, Dishes dishes, int ordernum, String uID,      // Double orderprice,int orderValue      Order t = new Order(info[0], l, d.findById(info[0]), Integer.parseInt(info[1]), user.getuID(),          o.findById(info[0]).getOrderprice(), o.findById(info[0]).getOrderValue());      o.insert(t);      System.out.println("订单已生成!!!" + o.findById(info[0]));    }  }
  /**   * 根据菜品类别显示所有菜品   */  public void ShowOfTypeByUser() {    System.out.println("请输入您要查找的类别:");    String str = sc.next();    System.out.println(d.findByType(str));
  }
  /**   * 查看所有订单(当前登录用户的)   */  public void showAllOrderByUser(User user) {    List<Order> list = o.findByuId(user.getuID());    for (Order order : list) {      System.out.println(order);    }  }
  /**   * 修改密码(当前登录用户的)   */  public void changePwdByUser(User user) {    u.changepwd(user.getuID());    System.out.println("修改成功!!");  }
  /**   * 个人信息显示   */  public void showByUser(User user) {    User findById = u.findById(user.getuID());    System.out.println(findById);  }   //待补充功能,删除管理员  @Override  public void delete(String id) {
  }  //待补充功能,添加管理员  @Override  public void insert(Admin t) {    // TODO Auto-generated method stub
  }  //待补充功能,通过id即账号查找管理员  @Override  public Admin findById(String id) {
    return map.get(id);  }  //待补充功能,显示所有管理员  @Override  public List<Admin> findAll() {    // TODO Auto-generated method stub    return null;  }     //先设置系统默认数据  public void addMessage() {    map.put("qwl", new Admin("10086", "qwl", "123456"));    LocalDate time = LocalDate.now();    Dishes d1 = new Dishes("1", "红烧猪蹄", "肉类", time, 12.5, 20, 30);    d.insert(d1);    Dishes d2 = new Dishes("2", "鸡公煲", "肉类", time, 21.5, 30, 20);    d.insert(d2);    Dishes d3 = new Dishes("3", "麻辣香锅", "火锅类", time, 30, 5, 10);    d.insert(d3);    Dishes d4 = new Dishes("4", "水煮肉片", "肉类", time, 15, 12, 15);    d.insert(d4);    Dishes d5 = new Dishes("5", "水果沙拉", "水果类", time, 6, 70, 60);    d.insert(d5);    // String orderID, LocalDateTime utime, Dishes dishes, int ordernum, String uID,    // Double orderprice,int orderValue    LocalDateTime localdatetime = LocalDateTime.now();    Order o1 = new Order("1", localdatetime, d1, 10, "1001", 60.0, 1);    o.insert(o1);    Order o2 = new Order("2", localdatetime, d2, 5, "1002", 50.0, 10);    o.insert(o2);    Order o3 = new Order("3", localdatetime, d3, 5, "1003", 40.0, 5);    o.insert(o3);    Order o4 = new Order("4", localdatetime, d4, 5, "1004", 30.0, 6);    o.insert(o4);    Order o5 = new Order("5", localdatetime, d5, 5, "1005", 20.0, 8);    o.insert(o5);    // String uID, String uname, String usex, String upwd, String uadress, String    // utel, LocalDateTime utime    User u1 = new User("1001", "张三", "男", "123456", "湖北", "13545286487", localdatetime);    u.insert(u1);    User u2 = new User("1002", "李四", "男", "234567", "湖南", "15927948976", localdatetime);    u.insert(u2);    User u3 = new User("1003", "王五", "男", "345678", "江苏", "15927986854", localdatetime);    u.insert(u3);    User u4 = new User("1004", "刘柳", "女", "456789", "浙江", "18771580860", localdatetime);    u.insert(u4);    User u5 = new User("1005", "赵琦", "女", "567890", "新疆", "18771580750", localdatetime);    u.insert(u5);  }
}

2. Order属性管理类

package com.softeem.lesson23.test2;
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Objects;import java.util.Set;
public class OrderSys implements DAO<Order> {  static Map<String, Order> ordermap = new HashMap<>();  static List<Order> orderlist = new ArrayList<>();  /**   * 新增订单   */  @Override  public void insert(Order t) {    ordermap.put(t.getOrderID(), t);
  }  /**   * 通过订单id查找订单   */  @Override  public Order findById(String id) {    if (ordermap.get(id) == null) {      return null;    } else {      return ordermap.get(id);    }
  }  /**   * 通过用户id查询用户的所有订单,并返回一个list集合   * @param uid   * @return   */  public List<Order> findByuId(String uid) {    List<Order> list = new ArrayList<>();    Set<String> keys = ordermap.keySet();    for (String key : keys) {      if (Objects.equals(uid, ordermap.get(key).getuID())) {        list.add(ordermap.get(key));      }    }    return list;  }
  /**   * 显示所有订单   */  @Override  public List<Order> findAll() {    Set<String> keys = ordermap.keySet();    for (String key : keys) {      orderlist.add(ordermap.get(key));    }    return orderlist;  }  /**   * 待完成功能,删除订单   */  @Override  public void delete(String id) {    // TODO Auto-generated method stub
  }}

3. User属性管理类

package com.softeem.lesson23.test2;
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Scanner;import java.util.Set;
//客户id,客户名,性别,密码,送餐地址,手机号,创建时间public class UserSys implements DAO<User> {  static Map<String, User> usermap = new HashMap<>();  List<User> list = new ArrayList<>();  Scanner sc = new Scanner(System.in);
  /**   * 添加客户   */  @Override  public void insert(User t) {    usermap.put(t.getuID(), t);
  }
  /**   * 查看客户列表   */  @Override  public List<User> findAll() {    Set<String> keys = usermap.keySet();    for (String str : keys) {      list.add(usermap.get(str));    }    return list;  }
  /**   * 删除指定id的客户   */  @Override  public void delete(String id) {    if (usermap.get(id) == null) {      System.out.println("没有当前id的客户");    } else {      System.out.println(usermap.get(id) + "已删除!!!");      usermap.remove(id);    }
  }
  /**   * 修改密码(当前登录用户的)   */  public void changepwd(String id) {    User user = findById(id);    System.out.println("请输入新密码:");    String str = sc.next();    User t = new User(user.getuID(), user.getUname(), user.getUsex(), str, user.getUadress(), user.getUtel(),        user.getUtime());    usermap.put(id, t);
  }
  /**   * 通过id查找对应客户   */  @Override  public User findById(String id) {    if (usermap.get(id) == null) {      return null;    } else {      return usermap.get(id);    }
  }
}

4. Dishes属性管理类​​​​​​​

package com.softeem.lesson23.test2;
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Objects;import java.util.Set;
public class DishesSys implements DAO<Dishes> {  // 建立一个菜品的map集合,其中菜品的id为map的键,整个菜品对象为map的值  static Map<String, Dishes> dishesmap = new HashMap<>();  Set<String> keys = dishesmap.keySet();
  /**   * 添加菜品   */  @Override  public void insert(Dishes t) {    dishesmap.put(t.getdID(), t);
  }
  /**   * 通过id来寻找菜品   */
  @Override  public Dishes findById(String id) {    if (dishesmap.get(id) == null) {      return null;    } else {      return dishesmap.get(id);    }  }
  /**   * 根据菜品类型查找菜品   */  public List<Dishes> findByType(String type) {    List<Dishes> list = new ArrayList<>();    for (String key : keys) {      if (Objects.equals(type, dishesmap.get(key).getDtype())) {        list.add(dishesmap.get(key));      }
    }    return list;  }
  /**   * 查询所有菜品   */  @Override  public List<Dishes> findAll() {    List<Dishes> list = new ArrayList<>();
    for (String str : keys) {      list.add(dishesmap.get(str));    }    return list;  }
  public void selectBytype(String typename) {    int count = 0;    for (String key : keys) {      if (Objects.equals(dishesmap.get(key).getDtype(), typename)) {        System.out.println(dishesmap.get(key));        count++;      }    }    if (count == 0) {      System.out.println("没有当前类别的菜品!");    }  }
  /**   * 删除指定id菜品   */  @Override  public void delete(String id) {    if (dishesmap.get(id) == null) {      System.out.println("输入id错误...");    } else {      dishesmap.remove(id);    }
  }}

以上基本就是代码的核心部分,剩下的部分就简化很多了,建立一个菜单类,分别对其进行不同调用就行了

三、菜单类

package com.softeem.lesson23.test2;
import java.util.Objects;import java.util.Scanner;
public class Menu {  static AdminSys admin = new AdminSys();  Scanner sc = new Scanner(System.in);
  public void showMenu() {    admin.addMessage();
    System.out.println("请输入账号和密码:按照(账号/密码)");    String str = sc.next();    String[] info = str.split("/");    if (info.length < 2) {      System.out.println("输入有误,请重新输入:");      showMenu();    } else {      if (admin.findById(info[0]) != null && Objects.equals(admin.findById(info[0]).getApwd(), info[1])) {        adminMenu();      } else if (admin.findUserByid(info[0]) != null          && Objects.equals(info[1], admin.findUserByid(info[0]).getUpwd())) {        User user = admin.findUserByid(info[0]);        userMenu(user);      } else {        System.out.println("输入有误,请重新输入....");        showMenu();      }    }
  }
  public void userMenu(User user) {    System.out.println("=========欢迎来到订餐系统=======");    System.out.println("====【1】点餐=================");    System.out.println("====【2】根据菜品类别显示所有菜品===");    System.out.println("====【3】查看所有订单============");    System.out.println("====【4】修改密码===============");    System.out.println("====【5】个人信息显示============");    System.out.println("====【6】退出==================");    System.out.println("请输入您要进行的操作:");    String n = sc.next();    switch (n) {    case "1":      admin.shopDishes(user);      userMenu(user);      break;    case "2":      admin.ShowOfTypeByUser();      userMenu(user);      break;    case "3":      admin.showAllOrderByUser(user);      userMenu(user);      break;    case "4":      admin.changePwdByUser(user);      userMenu(user);      break;    case "5":      admin.showByUser(user);      userMenu(user);      break;    case "6":      System.out.println("谢谢使用,再见!");      System.exit(0);    default:      System.out.println("输入错误,请重新输入:");      userMenu(user);    }  }
  public void adminMenu() {    System.out.println("=========欢迎您尊贵的管理员=======");    System.out.println("====【1】添加菜品===============");    System.out.println("====【2】查看所有菜品信息显示=======");    System.out.println("====【3】查看指定类别的菜品信息=====");    System.out.println("====【4】根据菜品id修改菜品价格=====");    System.out.println("====【5】删除指定id的菜品=========");    System.out.println("====【6】添加客户================");    System.out.println("====【7】查看客户列表=============");    System.out.println("====【8】删除指定id的用户==========");    System.out.println("====【9】订单列表显示=============");    System.out.println("====【10】根据订单id修改订单状态====");    System.out.println("====【11】退出=================");    String m = sc.next();    switch (m) {    case "1":      admin.addDishes();      adminMenu();      break;    case "2":      System.out.println("请输入您需要每行显示多少数据:");      int pageSize = sc.nextInt();      admin.showAllDishes(pageSize);      adminMenu();      break;    case "3":      admin.selecBytypeOfAdmin();      adminMenu();      break;    case "4":      admin.selectByDishesID();      adminMenu();      break;    case "5":      admin.deleteDishes();      adminMenu();      break;    case "6":      admin.addUser();      adminMenu();      break;    case "7":      admin.findUser();      adminMenu();      break;    case "8":      admin.deleteUserByAdmin();      adminMenu();      break;    case "9":      admin.showAllOrder();      adminMenu();      break;    case "10":      admin.changeOrderValue();      adminMenu();      break;    case "11":      System.out.println("谢谢使用,再见!");      System.exit(0);      break;    default:      System.out.println("输入错误,请重新输入:");      adminMenu();    }  }}

这里switch采取String(jdk1.7以后才支持)可以让用户就算输入错误也不会报错导致程序运行终止,又要重新输入(我摊牌了,就是懒)。

四、测试类

package com.softeem.lesson23.test2;
public class Test {  public static void main(String[] args) {    Menu m = new Menu();    m.showMenu();  }}

五、实现部分界面截图

                                                               

Java外卖点餐系统【附全部代码】YYDS相关推荐

  1. 基于JAVA外卖点餐系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA外卖点餐系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA外卖点餐系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: 项目架构:B/S ...

  2. Java外卖点餐系统「附全部代码」

    前言 傻瓜式外卖点餐系统(无数据库) tips: 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户id,客户名,性别,密码,送餐地 ...

  3. Java外卖点餐系统

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/weixin_44219 ...

  4. 如何做一个基于JAVA外卖点餐系统毕业设计毕设作品(springboot框架)

    分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):基于JAVA的网站开发属于B/S架构(即浏览器和服务器架构模式),架构如图 分析系统功能 ...

  5. Java外卖点餐系统-毕业设计

    基于SpringBoot+Vue,本项目共用三个客户端,用户移动端.商家端和骑手端. 系统基于前后端分离架构,MySQL+Redis数据库,整合MyBatis.Swagger接口文档.Shiro安全框 ...

  6. jaca和mysql外卖系统_【项目实战】太强大了,Java外卖点餐初级系统【附源码】...

    傻瓜式外卖点餐系统------(无数据库) tips: 菜品类(菜品id,菜品名,菜品类型,上架时间,单价,月销售,总数量) 管理员类(管理员id,账号,密码) 客户类(客户id,客户名,性别,密码, ...

  7. SSM基于微信小程序的外卖点餐系统 毕业设计-附源码2711704

    基于微信小程序的外卖点餐系统的设计与实现 摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合微信小程序的特点设计新型的外卖点餐系统.近几年,人们生活水平日益提升,但工作强度和压 ...

  8. ssm基于微信小程序的外卖点餐系统的设计与实现毕业设计-附源码211704

    摘要 立足于当下餐饮行业现有的点餐模式,分析传统APP点餐的运作流程,结合微信小程序的特点设计新型的外卖点餐系统.近几年,人们生活水平日益提升,但工作强度和压力不断增强,尤其是对于上班族而言,到餐厅吃 ...

  9. 基于javaweb的校园外卖点餐系统(java+ssm+jsp+mysql)

    基于javaweb的校园外卖点餐系统(java+ssm+jsp+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/st ...

最新文章

  1. ACM/OI卡常技巧总结(clock大法好)
  2. 量子计算技术发展迅猛,商业潜力初现!如何把握量子计算时代的新机遇?
  3. Linux 设备树device tree 使用手册
  4. Tkinter的Radiobutton组件
  5. GPU硬件结构和程序具体参数设置
  6. SAP成都研究院C4C光明左使:SAP Cloud for Customer 使用SAP UI5的独特之处
  7. 【C++grammar】格式化输出与I/O流函数
  8. 二进制十六进制相互转换
  9. npm时需要python
  10. Deal with relational data using libFM with blocks
  11. shellcode之简单的栈溢出实验
  12. 基于AI的恶意软件分析技术(3)
  13. SI 9000 及阻抗匹配学习笔记(三)
  14. 4.正则匹配与re模块
  15. SQL练习题——店铺UV、访客信息
  16. dedecms后台界面更改
  17. linkinfo.dll病毒 盗取 用户登陆 网页帐号,和密码
  18. android 禁用触摸屏,animation时禁用所有触摸屏交互
  19. java android 计算两个日期之间的天数
  20. 【技术推荐】正向角度看Go逆向

热门文章

  1. 数据库-数据库完整性
  2. 汽车营销与保险【2】
  3. 【小程序】node/小程序云开发生成小程序二维码并添加文件到云存储/腾讯云存储
  4. 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇
  5. windows10系统查看NVIDIA显卡GPU使用情况——解决方法
  6. sqlserver加上百分号_SQL Server如何使用WHERE组合百分号(%)通配符
  7. iOS实现拍照的焦距调节
  8. 水银滑环也有潜在危害?自动化包装机器人,水银滑环实例应用
  9. chrome截网页全图
  10. android手机助手---小部分功能篇(2)