1.需求:

1.1 使用语言及工具:

Java语言 idea编辑工具

1.2 实现需求:

本代码可简单完成展示菜单,客户点餐,展示已点菜单,包括删除,修改已点菜单,结账等需求,也有会员系统,和根据会员号识别会员等级以及打折信息等 (此代码不涉及数据库与前端,适合小白对Java简单项目的了解和练习)

1.3 需求分析图:

1.4流程分析图:(图丑凑合看~)

2.代码:

2.1 创建Dish类

用来保存菜品的属性(编号,菜品名字,菜品价格)并创建全参构造

package cn.tedu.exe1;
/*菜品*/
public class Dish {int id;String name;double price;public Dish(int id, String name, double price) {this.id = id;this.name = name;this.price = price;}@Overridepublic String toString() {return "Dish{" +"id=" + id +", name='" + name + '\'' +", price=" + price +'}';}
}

2.2 创建DishApp类

1.创建菜品集合用来保存饭店的所有菜

2.创建三个方法:点餐 查看已点菜品 和 买单方法

3.点餐:遍历菜单集合 让客户根据编号点餐

4.查看已点:创建集合来保存已点菜品的信息

5.买单:根据会员号判断会员等级,根据等级计算账单

package cn.tedu.exe1;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class DishApp {//定义集合static List<Dish>dishList = new ArrayList<>();static List<Dish>personDish= new ArrayList<>();public static void main(String[] args) {initDish();Scanner s = new Scanner(System.in);while(true){showMenu();int num = s.nextInt();switch (num){case 1:while (true){showDishMenu();int id = s.nextInt();if (id==0){break;}Dish dish = dishList.get(id - 1);System.out.println("亲,你点了:"+dish.name);personDish.add(dish);}break;case 2:showPersonDish();break;case 3:buy();return;}}}//买单private static void buy() {System.out.println("-------您已点的菜品-------");for (Dish dish1 : personDish) {System.out.println(dish1.id+"\t"+dish1.name+"\t"+ dish1.price);}double total =0.0;for (Dish dish : personDish) {total =total+dish.price;}System.out.println("您是会员吗:");int s = new Scanner(System.in).nextInt();if (s==1){System.out.println("请输入会员码:");int i = new Scanner(System.in).nextInt();switch (i){case 66666 :System.out.println("亲,您是黑海会员打5折,共消费:"+total*0.5+"元");break;case 55555 :System.out.println("亲,您是初级会员打8折,共消费:"+total*0.8+"元");break;}}else{System.out.println("-------您已点的菜品-------");System.out.println("亲,您不是会员,共消费:"+total+"元");}}//客户已点private static void showPersonDish() {for (Dish dish1 : personDish) {System.out.println(dish1.id+"\t"+dish1.name+"\t"+ dish1.price);}System.out.println("按8删除菜品");int i = new Scanner(System.in).nextInt();if (i==8){System.out.println("输入需要删除的菜品编号");int a = new Scanner(System.in).nextInt();for (Dish dish1 : personDish) {System.out.println(dish1.id+"\t"+dish1.name+"\t"+ dish1.price);if (dish1.id==a){personDish.remove(dish1.id);}}}}//展示饭店菜单private static void showDishMenu() {System.out.println("----请您点菜----");for (int i = 0; i < dishList.size(); i++) {Dish dish = dishList.get(i);System.out.println(dish.id+"\t"+dish.name+"\t"+ dish.price);}System.out.println("----输入序号点菜,按0返回上一级----");}//展示主菜单public static void showMenu(){System.out.println("---------主菜单---------");System.out.println("菜单\t\t\t 1");System.out.println("已点菜单\t\t 2");System.out.println("买单\t\t\t 3");System.out.println("----根据编号请选择服务----");}public static void initDish(){Dish dish = new Dish(1,"香辣肉丝",29);dishList.add(dish);Dish dish1 = new Dish(2,"炖王八",29);dishList.add(dish1);dishList.add(new Dish(3,"家常凉菜",21));dishList.add(new Dish(4,"地三鲜",33));dishList.add(new Dish(5,"油焖大虾",55));}
}

3.测试

点菜系统(适合Java基础练习)相关推荐

  1. Java-超市收银系统(Java基础知识项目)

    超市收银系统: 该系统主要是针对Java基础知识的练习项目 设计目标是面向小超市 系统主要分为两个模块:会员登入模块.员工登录模块 其中员工登录中还有其他许多小模块,如会员管理.上下班打卡等 其中比较 ...

  2. 如何系统学习Java基础

    下图是整个Java语言基础学习章节大纲,搜索关注<Java软件编程之家>微信公众号,关注后发送"Java"关键字即可获取java基础更新中的章节,目前作者正在拼命更新中 ...

  3. Java 登录注册系统 【java基础案例教程 案例2-6】

    案例要求 编写程序实现简单的登录注册系统.程序包括以下4个功能. 1)登录功能,用户输入正确的账号密码可成功登录 2)注册功能,输入用户名和密码进行注册 3)查看功能,查看所有的用户名和密码 4)退出 ...

  4. java点餐系统_点餐系统(java基础、数据库、jsp、servlet)

    1.首页(登录.注册) (1)时间显示: var time=newDate(); var year=time.getFullYear(); var month=time.getMonth(); var ...

  5. Java——点菜系统开发

    编写一个点菜系统,菜单,已点订单,买单三个基础功能. 创建菜品类 public class Dish {//编号int id;//菜名String name;//价格double price;//构造 ...

  6. 【计算机毕业设计】前台点菜系统

    一.系统截图(需要演示视频可以私聊) 摘  要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们 ...

  7. ssm餐厅线上点菜系统、点餐系统的设计与实现

    摘 要 国内餐饮行业的快速发展,人们为了能够更加方便地管理用户点菜,餐厅线上点菜系统被人们开发出来从而更好地方便管理用户点菜,一个完美的餐厅线上点菜系统已经成为各个餐厅的追求目标. 本系统利用SSM技 ...

  8. 点菜java_java点菜系统代码

    酒店点菜系统 import java.sql.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import j ...

  9. Java基础 (适合新手入门保姆级)

    基础1 1.进制的转换 1. 十进制数据转成二进制数据:使用除以2获取余数的方式 2. 二进制(0B/b开头)转换为十进制:1001 = 1*2^0+0*2^1+0*2^2 +1*2^3 = 9 3. ...

  10. 适合零基础学习者的Java学习路线图到底长啥样?一篇文章带你学会Java

    很多小伙伴在转行互联网的时候,都担心自己不能坚持,不知道Java适不适合自己. 那最好的方式就是先不要着急直接转行,自己可以先去试着学习一些基础知识,看看对Java的学习难度能否适应以及自己是否真心喜 ...

最新文章

  1. jsp mysql utf8_jsp操作mysql存取中文乱码
  2. 【九省联考2018】秘密袭击【树形dp】【生成函数】【线段树合并】【多项式插值】
  3. Linux基础(iptables与firewalld防火墙)
  4. swift Tablview中cell 的用withtag方法绑定里面的button
  5. 谁说Python慢来着?不用Python,这个问题难倒了无数的程序员
  6. Qt与Visual Assitst X的集成问题
  7. 金蝶K3销售退货案例教程
  8. 户外带什么耳机好、户外骨传导耳机推荐
  9. 【微前端开发环境下,加载远程子应用的实战。】
  10. Android开发如何进阶,薪资如何跟上年龄的脚步?,深度解读Netty
  11. 人机交互及用户体验、GUI思考
  12. Java二维码图片处理
  13. 聚类方法的区别解读:各种聚类分析
  14. Android usb学习笔记:Android AOA协议Android端 流程总结
  15. 盈一眸恬淡,在明媚的春天等你
  16. 中国互联网出现数学家的科普乐园
  17. Ajax学习(3)XMLHttpRequest的使用+数据交换格式(JSON)
  18. 睡到自然醒的7个关键
  19. 单点登录、注销实现原理(SSO)
  20. php插入表时时间,怎样向表里面插入当前时间呢?

热门文章

  1. VBA批量导入图片到多Word文档并加标题(会飞的鱼)
  2. linux-----基本操作指令(2)
  3. linux sbit用法,Linux Stick BIT(SBIT)文件特殊权限用法详解
  4. 毕业一年来我的前端之路总结和谈谈大厂外包工作体验
  5. 深入理解 MySQL 主键和唯一(unique)索引
  6. html文件怎么可以查错,CSS_CSS 网页布局中易犯的10个小错误小结,1. 检查HTML元素是否有拼写错误 - phpStudy...
  7. 编译原理LL(1)文法-判断,first,follow,select,分析字符串
  8. @修改用户(user)信息
  9. 范莎学院 计算机,加拿大范莎学院
  10. epub阅读器 html,打造web版epub阅读器(书架设计)