目录
1.1 使用语言及工具:
Java语言 idea编辑工具
1.2 实现需求:
本代码可简单完成展示菜单,客户点餐,展示已点菜单,结账等等。代码注释比较全 (此代码不涉及数据库与前端,适合小白对Java简单项目的了解和练习)
2.3需求分析
——————————————————点餐系统——————————————————
需求分析:主菜单系统、已点菜单、买单
菜单有:编号、名称、价格
——————————————————构造方法的内容———————————————
1、主菜单系统
2、初始化菜单/菜单菜品
3、把饭店菜单展示给用户
4、展示用户点的菜
5、买单
2.代码
2.1 创建一个Dome文件
/*
——————————————————点餐系统——————————————————————————————————
需求分析:主菜单,以点菜单,买单
菜单:名称,价格,
构造内容:
1、主菜单系统
2、初始化菜单/菜单菜品
3、把饭店菜单展示给用户
4、展示用户点的菜
5、买单
*/
// 菜品类
// 提供构造方法
public class Dome {
// 编号
int id;
// 菜品名称
String name;
// 价格
double price;
// 无参构造
public Dome() {
}
// 有参构造
public Dome(int id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
}
2.2 创建一个DomeMain文件
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class DomeMain {
// 定义集合(把菜品存在集合中) 泛型<Dome>
static List<Dome> dishlist = new ArrayList<>();
// 以点菜品
static List<Dome> person = new ArrayList<>();
//
public static void main(String[] args) {
// 初始化菜品
initDish();
// 控制台输出
Scanner scanner = new Scanner(System.in);
// 循环
while (true) {
showMenu();
int num = scanner.nextInt();
switch (num) {
case 1:
while (true) {
// 把饭店菜单展示给用户
showDishMenu();
// 获取用户输入内容
int id = scanner.nextInt();
// 判断 返回上级菜单
if (id == 0) { //==0退出
// System.out.println("输入菜品序号点菜:" + id);
break;
}
// 下表是从0开始所以需要-1
Dome dish = dishlist.get(id - 1);
System.out.println("亲,你点了:"+dish.name+"菜");
// 用户点一个存一个
person.add(dish);
}
case 2:
// 展示用户点的菜
showPersonDish();
break;
case 3:
// 买单
buy();
System.out.println("-------买单结算-------");
double total=0f;
// 遍历已经点的菜
for (Dome dish : person) {
System.out.println(dish.id+"\t"+dish.name+"\t"+dish.price);
// 单价累加
total+=dish.price;
}
System.out.println("你一共消费了:"+total+"元");
break;
}
}
}
// 把饭店菜单展示给用户
public static void showDishMenu() {
System.out.println("---请点菜---");
// 遍历集合中的菜品
for (int i = 0; i < dishlist.size(); i++) {
// 从集合中使用i获取每一个菜品对象
Dome dish = dishlist.get(i);
System.out.println(dish.id + "\t" + dish.name + "\t" + dish.price);
}
System.out.println("---输入序号点菜,按0返回上一级---");
}
// 展示用户点的菜
public static void showPersonDish() {
System.out.println("----已经点的菜----");
for (Dome dish : person) {
System.out.println(dish.id+"\t"+dish.name+"\t"+dish.price);
}
}
// 买单
public static void buy() {
}
// 主菜单
public static void showMenu() {
System.out.println("———————————主菜单———————————————");
System.out.println("菜单\t\t\t1");
System.out.println("已点菜单\t\t2");
System.out.println("买单\t\t\t3");
System.out.println("———————根据编号选择服务———————————");
}
// 初始化菜单
public static void initDish() {
Dome dome = new Dome(1, "鱼香肉丝", 29.9);
// 添加进入集合中
dishlist.add(dome);
Dome dome1 = new Dome(2, "肉丝", 20);
dishlist.add(dome1);
// 存放菜品
dishlist.add(new Dome(3, "家常菜", 12));
dishlist.add(new Dome(4, "龙虾", 50));
}
}
3.测试