种设计模式网上订餐系统的代码Java

时间: 2023-07-25 17:05:27 浏览: 46
以下是一个简单的基于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(); } } ``` 这个示例实现了基本的网上订餐系统,用户可以输入自己的名字并选择菜单中的项目,系统会生成一个订单并显示总价。这个系统可以通过添加更多的菜品和功能来进行扩展。

相关推荐

最新推荐

recommend-type

网上订餐系统数据库设计.docx

本数据库是本人花一周时间写出来的课程设计大作业,需要的朋友可以下来下来参考,这个模块基本是囊括了全部数据库设计要求的内容
recommend-type

基于Spring Boot的校园食堂订餐系统的设计与实现.doc

校园食堂订餐系统,是将计算机、通信等现代化技术运用到传统校园食堂服务的新型校园食堂服务方式。 校园食堂订餐系统为了解决以下几个问题:一是疫情期间,学生面临着开学,食堂是学生最聚集的场所之一,食堂订餐...
recommend-type

java实现可视化界面肯德基(KFC)点餐系统代码实例

主要介绍了java肯德基点餐系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

网上订餐系统课程设计测试报告

网上订餐系统课程设计系列文档之-测试报告 MyEclipse开发,Spring-Struts-Hibernate框架,MySql数据库
recommend-type

基于爬虫的网上订餐系统

本系统采用python的scrapy框架编写爬虫获取信息源,采用Java的MyBatis+Sping+SpringMVC编写服务器后台,采用HTML5的MUI框架编写移动APP(含ios、android)。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SQL怎么实现 数据透视表

SQL可以通过使用聚合函数和GROUP BY子句来实现数据透视表。 例如,假设有一个销售记录表,其中包含产品名称、销售日期、销售数量和销售额等信息。要创建一个按照产品名称、销售日期和销售额进行汇总的数据透视表,可以使用以下SQL语句: ``` SELECT ProductName, SaleDate, SUM(SaleQuantity) AS TotalQuantity, SUM(SaleAmount) AS TotalAmount FROM Sales GROUP BY ProductName, SaleDate; ``` 该语句将Sales表按照ProductName和SaleDat
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。