该项目用到了Java知识点有:while循环、switch、break、continue、HashMap、ArrayList等。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21/* * 菜品类 * */ 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; } @Override public String toString() { return id+"t"+name+"t"+price; } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131/* * 点菜主程序 * */ public class DishApp { //菜品集合 static List<Dish> dishList = new ArrayList<>(); //用户已点菜品 //用HashMap存储顾客点的菜,可以同一个个菜点多次只修改数量 //键Dish:菜品类、 值Integer:同一个菜点的数量 static HashMap<Dish,Integer> personMap = new HashMap<>(); 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; } //从菜品集合获取对象 1 2 3 4 5 //集合索引 0 1 2 3 4 Dish dish = dishList.get(id - 1); System.out.println("亲,您点了:"+dish.name+" 菜"); //用户点一个,存储一个 //判断该菜是否已点,点过的数量+1 if (personMap.containsKey(dish)){ int newnum = personMap.get(dish) + 1; personMap.put(dish,newnum); }else{ personMap.put(dish,1); } } case 2: //展示用户已点菜品 showPersonDish(); break; case 3: //买单 buy(); return; //结束while循环 case 4: //退菜 while (true){ //展示菜单 showPersonDish(); int id = s.nextInt(); if (id==0){ break; } //从菜品集合获取对象 1 2 3 4 5 //集合索引 Dish dish = dishList.get(id - 1); //判断该菜是否点了,点了数量-1 if (personMap.containsKey(dish)){ int newnum = personMap.get(dish) - 1; System.out.println("亲,您退了:"+dish.name+" 菜"); personMap.put(dish,newnum); //当已点菜的个数为0时,从顾客点单中删除 if (personMap.get(dish)==0){ personMap.remove(dish); } }else{ System.out.println("----亲,您该菜未点----"); continue; } } } } } private static void buy() { System.out.println("---请稍等,正在结算---"); //定义总金额 double total = 0f; Set<Map.Entry<Dish, Integer>> entrySet = personMap.entrySet(); for (Map.Entry<Dish,Integer> one:entrySet){ Dish key = one.getKey(); Integer value = one.getValue(); System.out.println(key+"t"+value); //总金额=单价*数量 total += key.price * value; } System.out.println("亲,您本次共消费了:"+total+" 元"); } private static void showPersonDish() { System.out.println("---您已点的菜品---"); Set<Map.Entry<Dish, Integer>> entrySet = personMap.entrySet(); for (Map.Entry<Dish,Integer> one:entrySet){ Dish key = one.getKey(); Integer value = one.getValue(); System.out.println(key+"t"+value); } System.out.println("----输入序号退菜,按0返回上一级----"); } private static void showDishMenu() { System.out.println("---请您点菜---"); for (int i = 0; i < dishList.size(); i++) { Dish dish = dishList.get(i); System.out.println(dish.toString()); } System.out.println("----输入序号点菜,按0返回上一级----"); } public static void showMenu(){ System.out.println("-----主菜单-----"); System.out.println("菜单ttt 1"); System.out.println("已点菜品tt 2"); System.out.println("买单ttt 3"); System.out.println("退菜ttt 4"); System.out.println("---根据编号选择服务---"); } public static void initDish(){ Dish dish = new Dish(1, "香辣肉丝", 29.0); dishList.add(dish); Dish dish2 = new Dish(2,"炖王八",59.0); dishList.add(dish2); //存放菜品 dishList.add(new Dish(3,"家常凉菜",21.0)); dishList.add(new Dish(4,"地三鲜",24.0)); dishList.add(new Dish(5,"油焖大虾",55.0)); } }
链接: 参考来源
最后
以上就是贪玩康乃馨最近收集整理的关于【Java小项目一:点菜系统】的全部内容,更多相关【Java小项目一内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复