这些都是从开始学习Java的时候一些练习题(收录在这里以便于自己复习)
完成一个小程序,这个小程序能够模拟饭店经营的简单过程。实现流程简单分为四个步骤:
1.饭店制定菜单(添加菜品)。
2.开张显示菜单,顾客点菜。
3.厨师制作菜单上有的菜(比较顾客点的菜和菜单上的菜)。
4.顾客检查自己所点的菜,完成一次服务,结束程序。
老师给出的一种思路参照:
1.创建一个厨师(Chief)类,和一个顾客(Customer)类。
2.创建一个Action接口用以定义厨师和顾客不同的行为,厨师的Action为比较菜单制作菜品,顾客的Action为检查所点的菜品。
3.最后创建一个主类Restaurant来实现整个流程。
定义接口和类(厨师chief 顾客customer)
package test8;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
interface Action{
public Collection action(Collection a,Collection b);//接口中定义的方法
}
//厨师类
class Chief implements Action{
//厨师制定菜单,实现方法:控制台输入一个个菜品,再一个个插入Collection集合,最后得到menu集合
public Collection InitMenu(Collection menu, String dish){
menu.add(dish);
return menu;
}
//重写action方法,实现比较功能,有的菜品开始制作,没有的提示无法制作
@Override
public Collection action(Collection menu,Collection orderDish) {
Iterator it1 = orderDish.iterator();//生成迭代器,输出顾客的菜单
Collection sdish = new ArrayList<>();//创建一个新的集合来存储新的菜单
while (it1.hasNext()){
String a = it1.next();
if (menu.contains(a)){
System.out.println(a+"制作成功");
sdish.add(a);
}else{
System.out.println(a+"这道菜无法制作");
}
}
return sdish;
//返回一个成功制作的菜品集合
}
}
class Customer implements Action {
//和制作菜单类似
public Collection OrderDish(Collection orderDish,String dish) {
orderDish.add(dish);
return orderDish;
}
//重写action方法,将所点菜单与厨师制作的菜比较
@Override
public Collection action(Collection orderDish, Collection sDish) {
Iterator it = orderDish.iterator();//生成迭代器,输出顾客的菜单
while (it.hasNext()){
String a = it.next();
if (sDish.contains(a)){
System.out.println(a+"是我点的菜");
}else{
System.out.println("我点的"+a+"没有上");
}
}
return null;
}
}
定义一个类来进行测试
package test8;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
public class Restaurant {
public static void main(String[] args) {
//厨师以及顾客实例化
Chief chief = new Chief();
Customer customer = new Customer();
//构建菜单
Scanner sc = new Scanner(System.in);
System.out.println("请输入菜单中菜品个数:");
int n = sc.nextInt();
System.out.println("请输入"+n+"种菜品到今日菜单");
Scanner sc1 = new Scanner(System.in);
//定义主菜单的集合
Collection Mainmeun = new ArrayList<>();
for (int i = 0;i it = Mainmeun.iterator();
System.out.println("===================n店铺开张,欢迎光临n本店菜单如下:");
while (it.hasNext()){
String E = it.next();
System.out.println(E);
}
//构建顾客的点菜菜单
System.out.println("请顾客输入需要点的菜品个数:");
Scanner sc2 = new Scanner(System.in);
int m = sc2.nextInt();
Scanner sc3 = new Scanner(System.in);
System.out.println("请输入菜品名称:");
Collection ordermenu = new ArrayList<>();
for (int j=0;j Sdish = new ArrayList<>();
Sdish = chief.action(Mainmeun,ordermenu);
System.out.println("=================");
customer.action(ordermenu,Sdish);
}
}
运行截图



