Java简单小项目---网上订餐系统

1、系统需求说明

概要:现今已进入网络时代,网上购物、看新闻、交友等人们的日常生活已离不开网络。“只要点点手指,就能送餐上门”,网上定餐越来越受到都市年轻人的青睐    现要求开发一个网上订餐系统,其具体功能如下:

1.1、我要订餐

       完成用户订餐,每条订单包含如下信息:

1.1.1、订餐人姓名:要求用户

1.1.2、输入选择菜品及份数:显示三个菜单序号、名称、单价、点赞数,提示用户输入要选择的菜品序号及份数

1.1.3、送餐时间:要求当天10到20点间整点送餐,要求用户输入10~20的整数,输入错误,重复输入。

1.1.4、送餐地址:要求用户输入

1.1.5、状态:两种状态:0:已预定(默认状态) 1、已完成(订单已签收)

1.1.6、总金额:总金额 = 菜品单价*份数-送餐费

   (送餐费:当单笔订单金额达到50元时,免送餐费,否则,需交纳6元送餐费)

  1.1.7、订餐成功后,显示订单信息。

1.2、查看订单

        遍历显示已有订单

 内容包括:序号、订餐人姓名、订餐信息(菜品名和份数)、送餐时间、送餐地址、状态(已预定或已完成)、总金额

1.3、签收订单

        将订单中状态改为已完成

1.4、删除订单

    用户输入订单序号,如该序号订单为已完成状态,可以删除,其它情况给出相应提示信息

1.5、我要点赞

        显示菜品序号、菜品名、单价、点赞数,提示用户输入要点赞的菜品序号完成对菜品的点赞。

1.6、退出系统

退出整个系统,显示“谢谢使用,欢迎下次光临”。

1.7、菜单切换

用户可根据显示的主菜单,输入功能编号执行相应的功能,当输入1~5时,执行相应功能

2、效果展示

2.1、主界面

2.2、我要订餐

2.3、订餐

 

 2.4、查看订单

2.5、签收

 

2.6、删除订单

2.7、点赞

 

2.8、退出

 

3、思路与代码编写

 

第一阶段:分析数据主体(重难点)

第二阶段:分析并完成整体框架(重难点)

第三阶段:分析并完成退出功能

第四阶段:分析并完成订餐功能

第五阶段:分析并完成查看餐袋功能

第六阶段:分析并完成签收订单功能

第七阶段:分析并完成删除功能(重难点)

第八阶段:分析总完成我要点赞功能

 3.1、分析数据主体

我要订餐        查看餐袋        删除订单        签收订单

声明多个数组,用来保存基本信息,包括:订餐人、所定餐品信息、送餐时间、送餐地址、订单状态、总金额等

我要点赞(餐品)

再声明一组固定的数组,用来保存餐品、餐品单价和点赞数等。

//数据主体:一组订单信息
        String[] names = new String[5];//订餐人姓名
        String[] dishMegs = new String[5];//保存所定餐品信息
        int[] times = new int[5];//送餐时间
        String[] addresses = new String[5];//送餐地址
        int[] states = new int[5];//订单状态,0:已预订 1:已完成
        double[] sumPrices = new double[5];//总金额

        //提前放入两组数据
        names[0] = "张三";
        dishMegs[0] = "宫保鸡丁\t1份";
        times[0] = 15;
        addresses[0] = "安徽省合肥市";
        states[0] = 1;
        sumPrices[0] = 36.0;

        names[1]="李四";
        dishMegs[1]="鱼香肉丝\t一份";
        times[1]=18;
        addresses[1]="安徽省六安市";
        states[1]=1;
        sumPrices[1]=31.0;

        //数据主体:一组餐品信息
        String[] dishNames = {"宫保鸡丁", "回锅肉", "鱼香肉丝", "佛跳墙"};//菜单
        double[] prices = {30.0, 40.0, 25.0, 60.0};//价格
        int[] praiseNums = new int[4];//点赞数

3.2、整体框架

使用循环(do-while)作为最外圈的大循环

循环操作:

                显示主菜单

                提示用户输入功能编号,并且能执行相应功能

                提示输入0返回

循环条件:用户输入0

使用switch循环作为内侧的分支循环

        可以根据用户输入功能编号,执行相应功能

        Scanner sc = new Scanner(System.in);
        int num = 0;//用来记录用户输入的数字
        do {
            //声明主界面
            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("5、我要点赞");
            System.out.println("6、退出系统");
            System.out.println("**********************");
            System.out.print("请选择:");
            int serialNumber = sc.nextInt();
            switch(serialNumber)
            case 1://我要订餐
            break;
  
  • 40
    点赞
  • 279
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是一个简单的基于MVC设计模式的Java代码示例,用于网上订餐系统: 1. Model层 - Order.java ``` public class Order { private int orderId; private String customerName; private ArrayList<MenuItem> items; private double total; public Order(int orderId, String customerName) { this.orderId = orderId; this.customerName = customerName; items = new ArrayList<>(); total = 0.0; } public int getOrderId() { return orderId; } public String getCustomerName() { return customerName; } public ArrayList<MenuItem> getItems() { return items; } public double getTotal() { return total; } public void addItem(MenuItem item) { items.add(item); total += item.getPrice(); } } ``` 2. Model层 - MenuItem.java ``` public class MenuItem { private String name; private double price; public MenuItem(String name, double price) { this.name = name; this.price = price; } public String getName() { return name; } public double getPrice() { return price; } } ``` 3. View层 - OrderView.java ``` import java.util.ArrayList; import java.util.Scanner; public class OrderView { private Scanner scanner; public OrderView() { scanner = new Scanner(System.in); } public void displayMenu(ArrayList<MenuItem> menu) { System.out.println("Menu:"); for (int i = 0; i < menu.size(); i++) { MenuItem item = menu.get(i); System.out.println(i + ". " + item.getName() + " - $" + item.getPrice()); } } public int getMenuItemChoice() { System.out.print("Enter menu item number: "); return scanner.nextInt(); } public String getCustomerName() { System.out.print("Enter customer name: "); scanner.nextLine(); return scanner.nextLine(); } public void displayOrder(Order order) { System.out.println("Order #" + order.getOrderId() + " for " + order.getCustomerName()); System.out.println("Items:"); for (MenuItem item : order.getItems()) { System.out.println("- " + item.getName() + " ($" + item.getPrice() + ")"); } System.out.println("Total: $" + order.getTotal()); } } ``` 4. Controller层 - OrderController.java ``` import java.util.ArrayList; public class OrderController { private ArrayList<MenuItem> menu; private ArrayList<Order> orders; private OrderView view; public OrderController() { menu = new ArrayList<>(); orders = new ArrayList<>(); view = new OrderView(); setupMenu(); } private void setupMenu() { menu.add(new MenuItem("Hamburger", 5.99)); menu.add(new MenuItem("Cheeseburger", 6.99)); menu.add(new MenuItem("Hot Dog", 3.99)); menu.add(new MenuItem("French Fries", 2.99)); } public void start() { String customerName = view.getCustomerName(); Order order = new Order(orders.size() + 1, customerName); int choice; do { view.displayMenu(menu); choice = view.getMenuItemChoice(); if (choice >= 0 && choice < menu.size()) { MenuItem item = menu.get(choice); order.addItem(item); } } while (choice >= 0 && choice < menu.size()); orders.add(order); view.displayOrder(order); } } ``` 5. Main函数 - Main.java ``` public class Main { public static void main(String[] args) { OrderController controller = new OrderController(); controller.start(); } } ``` 这个示例实现了基本的网上订餐系统,用户可以输入自己的名字并选择菜单中的项目,系统会生成一个订单并显示总价。这个系统可以通过添加更多的菜品和功能来进行扩展。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值