点菜系统
完整工程去这里取
定义一个初始化菜单类
package com.ssc.demo;
public class Dish {
int id; //菜品序号
String name; //菜品名字
double price; //菜品价格
//提供构造方法,以便new时直接传入值
public Dish(int id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
}
定义程序的入口类
package com.ssc.demo;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class DishApp {
// 提前准备菜品,利用泛型,展示给用户
// 集合用数组不好变化,用泛型
static List<Dish> dishList = new ArrayList<>();
static List<Dish> finishDishList = new ArrayList<>();
public static void main(String[] args) {
initDish();
showChoose();
//创建扫描器对象,获取键盘输入,阻塞住程序等你的输入
Scanner s = new Scanner(System.in);
while (true){
//也会出现阻塞
int num = s.nextInt();
switch (num){
case 0:
showChoose();
break;
case 1:
while (true){
showDish(dishList);
System.out.println("===================输入你想要点的菜品,输入0返回主菜单==============");
int num1 = s.nextInt();
if(num1==0){
showChoose();
break;
}
finishDishList.add(dishList.get(num1-1));
System.out.println(dishList.get(num1-1).name + "添加成功");
}
break;
case 2:
showDish(finishDishList);
System.out.println("===================输入0返回主菜单==============");
break;
case 3:
buy(finishDishList);
return;
}
}
}
// 初始化菜品
public static void initDish(){
dishList.add(new Dish(1,"红烧肉",35.1));
dishList.add(new Dish(2,"折耳根炒腊肉",26.9));
dishList.add(new Dish(3,"豆米",15.0));
dishList.add(new Dish(4,"炸鸡腿",10.5));
dishList.add(new Dish(5,"紫菜蛋花汤",8.5));
}
public static void showChoose(){
System.out.println("=====主菜单=====");
System.out.println("1 查看菜单");
System.out.println("2 已点菜单");
System.out.println("3 买单");
System.out.println("=========输入序号选择你要的功能==========");
}
public static void buy(List<Dish> a){
double b=0.0;
for (int i = 0; i < a.size(); i++) {
b += a.get(i).price;
}
System.out.println("您一共消费:"+b);
}
public static void showDish(List<Dish> a){
for (int i = 0; i < a.size(); i++) {
Dish dish = a.get(i);
System.out.println(dish.id + " " + dish.name + " " + dish.price);
}
}
}
总结
- 这是一个控制台系统,比较简单,做多了慢慢就有感觉了,下一个小项目是随手记系统,也是控制台程序。