水煮鱼

制作前备料:

  1.去鳞去鳍尾草鱼一条,2.5斤----3.5斤(爱吃鱼头者也可用胖头鱼);

  2.一斤黄豆芽(用开水抄到八成熟待用);

  3.一小袋榨菜(“鱼泉”牌的就可);

  4.两头大蒜剥好斩去根部待用(要用刀面拍两下);

  5.一块去皮姜切片(约50mm见方大小);

  6.花椒和干辣椒适量(以我的经验可用”味好美”牌的,约各一小袋);

  7.色拉油一小碗;

  开始动手了:

  1.将鱼头剁下,并从中分两半;

  2.将鱼身平放用锋利的刀平着将两大片鱼肉和鱼排分开;

  3.继续将两大片鱼肉片成适量的鱼片;

  4.将鱼排分为三四段与鱼头放一起备用;

  5.将鱼片内放一个蛋清,少许盐,干淀粉和料酒,拌匀(最好用手抓匀);

  可以动火了:

  1.将一小碗色拉油,所有花椒和辣椒倒入锅内,用小火慢炸;

  2.在辣椒变色后,用铲子捞出一半的油和花椒辣椒,备用;

  3.将火开大,放入拍好的蒜瓣儿和姜片儿,出香味后,将鱼头鱼排入锅;

  4.翻炒两下,倒入料酒约一小晚,盐半调羹,加沸水三四碗;

  5.等鱼头汤沸腾出味,将鱼片一片一片平放到出水滚的汤中;

  6.鱼片会熟的很快,出锅前放入适量鸡精,白胡椒粉和椒盐粉;

  终于可以盛盆了:

  1.一定要用够大的盆(也可考虑用电火锅),盆中放着已抄好的黄豆芽和榨菜;

  2.将鱼片一系列汤汤水水倒入此盆;

  3.最后将那半碗捞出的辣椒和油倒在上面。

水煮鱼做法之二


  原料:鲈鱼(Bass or Perch两种都翻译成鲈鱼,自己试试看吧)或Tilapia(罗非鱼)

  或Catfish(鲶鱼)都可以,最好是活鱼,不要用鲤鱼(Carp)一条

  配料:豆芽,或自己喜欢的蔬菜

  调料:姜(一大块、拍松切片)、蒜(一头,略拍即可,不必切)、葱适量

  豆瓣(或剁椒)、花椒、干红辣椒、辣椒粉、

  盐、味精、胡椒粉、料酒、酱油、醋少许、食用油

  另需:生粉、料酒、盐少许,蛋白一个

  做法:

  1、将鱼杀好洗净,剁下头尾,片成鱼片,并把剩下的鱼排剁成几块。将鱼片用少许盐、料酒、生粉和一个蛋白抓匀,腌15分钟。头尾及鱼排另装盘,用同样的方法腌制)

  2、烧开一小锅水,将豆芽洗净后,放入开水中烫一下,捞入大盆中,按个人口味撒一点盐,备用。

  3、在干净的炒锅中加平常炒菜三倍的油,油热后,放入三大匙豆瓣(或剁炒)爆香,加姜、蒜、葱、花椒粒、辣椒粉及干红辣椒中小火煸炒。出味后加入头尾及鱼排,转大火,翻匀,加料酒和酱油、胡椒粉、白糖适量,继续翻炒片刻后,加一些热水,同时放盐和味精调味(要尝一下咸淡)。待水开,保持大火,一片片将鱼片放入,用筷子拨散,3~5分钟即可关火。把煮好的鱼及全部汤汁倒入刚才盛豆芽的大盆中。

  4、另取一干净锅,倒入半斤油(具体油量要看准备的容器大小,以倒入大盆中时,把鱼和豆芽全部淹没为准,可以目测一下)。待油热后,关火先晾一下。然后加入多多花椒及干辣椒(看个人的嗜麻辣程度),用小火慢慢炒出花椒和辣椒的香味。注重火不可太大,以免炒糊。

  5、辣椒颜色快变时,立即关火,把锅中的油及花椒辣椒一起倒入盛鱼的大盆中,小心烫!!

  注意:

  1、煮鱼的水量不宜多,以鱼片放入后,刚刚被水淹过即可。煮好倒入盆中后,有部分鱼片会露在外边。

  2、煮鱼之前把部分花椒和辣椒先炒过,在煮的时候,就可以充分浸出辣椒中的红色素,使油色红亮。

  3、腌鱼时,不可放太多盐,会咸,而且也会破坏鱼肉的鲜美。

  4、我觉得,美国买的花椒和辣椒都没有国内的香,所以还是要炒一下再泼油比较好。国内的材料好,所以可以直接把热油泼在辣椒花椒上。

  5、鱼肉吃完的,可以把汤汁重新倒回锅内,下豆腐或粉带或魔芋等等,就是水煮鱼火锅了。或者干脆一开始就把煮好的鱼放入电火锅中,吃完鱼后,直接开火就行了。

http://edad.com.cn/datou/2004/05/blog-post_108436951560035224.htm

http://food.tfol.com/food/dcbd/block/html/2004011500417.html 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的项目,需要一定的时间和精力来完成。以下是一个简单的 C 语言代码示例,实现了餐厅管理的基本功能: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_TABLES 20 #define MAX_DISHES 10 #define MAX_MATERIALS 10 // 菜品结构体 struct Dish { int id; char name[20]; int price; int sold; int material_id; }; // 原料结构体 struct Material { int id; char name[20]; int required; int remain; }; // 餐桌结构体 struct Table { int id; char type[10]; char status[10]; int order[MAX_DISHES]; int order_count; }; // 初始化所有菜品 void init_dishes(struct Dish dishes[]) { for (int i = 0; i < MAX_DISHES; i++) { dishes[i].id = i + 1; dishes[i].sold = 0; switch (i + 1) { case 1: strcpy(dishes[i].name, ""); dishes[i].price = 58; dishes[i].material_id = 1; break; case 2: strcpy(dishes[i].name, "蒜蓉虾仁"); dishes[i].price = 68; dishes[i].material_id = 2; break; case 3: strcpy(dishes[i].name, "回锅肉"); dishes[i].price = 28; dishes[i].material_id = 3; break; case 4: strcpy(dishes[i].name, "宫爆鸡丁"); dishes[i].price = 38; dishes[i].material_id = 4; break; case 5: strcpy(dishes[i].name, "红烧牛腩"); dishes[i].price = 32; dishes[i].material_id = 5; break; case 6: strcpy(dishes[i].name, "青椒土豆丝"); dishes[i].price = 12; dishes[i].material_id = 6; break; case 7: strcpy(dishes[i].name, "麻婆豆腐"); dishes[i].price = 18; dishes[i].material_id = 7; break; case 8: strcpy(dishes[i].name, "虎皮青椒"); dishes[i].price = 16; dishes[i].material_id = 8; break; case 9: strcpy(dishes[i].name, "紫菜蛋花汤"); dishes[i].price = 18; dishes[i].material_id = 9; break; case 10: strcpy(dishes[i].name, "酸菜粉丝汤"); dishes[i].price = 12; dishes[i].material_id = 10; break; default: break; } } } // 初始化所有原料 void init_materials(struct Material materials[]) { for (int i = 0; i < MAX_MATERIALS; i++) { materials[i].id = i + 1; switch (i + 1) { case 1: strcpy(materials[i].name, ""); materials[i].required = 1000; materials[i].remain = 20000; break; case 2: strcpy(materials[i].name, "虾仁"); materials[i].required = 500; materials[i].remain = 10000; break; case 3: strcpy(materials[i].name, "五花肉"); materials[i].required = 250; materials[i].remain = 5000; break; case 4: strcpy(materials[i].name, "鸡胸肉"); materials[i].required = 250; materials[i].remain = 5000; break; case 5: strcpy(materials[i].name, "牛腩"); materials[i].required = 200; materials[i].remain = 4000; break; case 6: strcpy(materials[i].name, "土豆"); materials[i].required = 280; materials[i].remain = 5600; break; case 7: strcpy(materials[i].name, "豆腐"); materials[i].required = 200; materials[i].remain = 4000; break; case 8: strcpy(materials[i].name, "青椒"); materials[i].required = 200; materials[i].remain = 4000; break; case 9: strcpy(materials[i].name, "紫菜"); materials[i].required = 10; materials[i].remain = 200; break; case 10: strcpy(materials[i].name, "粉丝"); materials[i].required = 100; materials[i].remain = 2000; break; default: break; } } } // 初始化所有餐桌 void init_tables(struct Table tables[]) { for (int i = 0; i < MAX_TABLES; i++) { tables[i].id = i + 1; if (i < 5) { strcpy(tables[i].type, "大桌"); } else if (i < 12) { strcpy(tables[i].type, "中桌"); } else { strcpy(tables[i].type, "小桌"); } strcpy(tables[i].status, "空闲"); tables[i].order_count = 0; memset(tables[i].order, 0, sizeof(tables[i].order)); } } // 显示菜单 void show_dishes(struct Dish dishes[]) { printf("序号\t名称\t单价\t销量\n"); for (int i = 0; i < MAX_DISHES; i++) { printf("%d\t%s\t%d\t%d\n", dishes[i].id, dishes[i].name, dishes[i].price, dishes[i].sold); } } // 显示原料 void show_materials(struct Material materials[]) { printf("序号\t名称\t所需数量\t剩余数量\n"); for (int i = 0; i < MAX_MATERIALS; i++) { printf("%d\t%s\t%d\t%d\n", materials[i].id, materials[i].name, materials[i].required, materials[i].remain); } } // 显示餐桌状态 void show_tables(struct Table tables[]) { printf("桌号\t类型\t状态\n"); for (int i = 0; i < MAX_TABLES; i++) { printf("%d\t%s\t%s\n", tables[i].id, tables[i].type, tables[i].status); } } // 选择餐桌 int select_table(struct Table tables[]) { int table_id; printf("请选择餐桌:\n"); show_tables(tables); do { printf("桌号:"); scanf("%d", &table_id); } while (table_id < 1 || table_id > MAX_TABLES); return table_id; } // 点菜 void order(struct Dish dishes[], struct Material materials[], struct Table tables[]) { int table_id = select_table(tables) - 1; char order_type[10]; printf("请选择点单类型(1:堂食,2:外卖):"); scanf("%s", order_type); if (strcmp(order_type, "1") == 0) { // 堂食 printf("请选择菜品:\n"); show_dishes(dishes); int dish_id; do { printf("序号:"); scanf("%d", &dish_id); } while (dish_id < 1 || dish_id > MAX_DISHES); tables[table_id].order[tables[table_id].order_count++] = dish_id; printf("已成功点菜!\n"); } else if (strcmp(order_type, "2") == 0) { // 外卖 printf("请选择菜品:\n"); show_dishes(dishes); int dish_id; do { printf("序号:"); scanf("%d", &dish_id); } while (dish_id < 1 || dish_id > MAX_DISHES); printf("已成功点菜!\n"); } } // 显示订单 void show_order(struct Dish dishes[], struct Table tables[]) { int table_id = select_table(tables) - 1; printf("桌号:%d\n", tables[table_id].id); printf("菜品:\n"); for (int i = 0; i < tables[table_id].order_count; i++) { printf("%s\n", dishes[tables[table_id].order[i] - 1].name); } printf("消费金额:%d\n", 0); // TODO: 计算消费金额 } // 主函数 int main() { struct Dish dishes[MAX_DISHES]; struct Material materials[MAX_MATERIALS]; struct Table tables[MAX_TABLES]; init_dishes(dishes); init_materials(materials); init_tables(tables); while (1) { printf("--------------------\n"); printf("1. 显示菜单\n"); printf("2. 显示原料\n"); printf("3. 显示餐桌状态\n"); printf("4. 点菜\n"); printf("5. 显示订单\n"); printf("6. 退出程序\n"); printf("--------------------\n"); int choice; do { printf("请选择操作:"); scanf("%d", &choice); } while (choice < 1 || choice > 6); switch (choice) { case 1: show_dishes(dishes); break; case 2: show_materials(materials); break; case 3: show_tables(tables); break; case 4: order(dishes, materials, tables); break; case 5: show_order(dishes, tables); break; case 6: return 0; default: break; } } return 0; } ``` 这只是一个简单的示例,实现了菜单、原料、餐桌和订单的基本管理功能。你可以根据自己的需求,对代码进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值