diff --git a/order_menu/easy.c b/order_menu/easy.c
new file mode 100644
index 0000000..c6eab4a
--- /dev/null
+++ b/order_menu/easy.c
@@ -0,0 +1,141 @@
+#include <stdio.h>
+
+typedef struct {
+    char type;
+    float price;
+    char *name;
+} st_product;
+
+static st_product vagitables[] = {
+    { 'a', 1.25, "朝鲜蓟" },
+    { 'b', 0.65, "甜菜"   },
+    { 'c', 0.89, "胡萝卜" },
+    { 0, 0, 0 }
+};
+
+#define MAX (sizeof (vagitables) / sizeof (st_product))
+
+typedef struct {
+    float pounds[MAX];
+} st_order;
+
+
+void menu_weight(float *pounds)
+{
+    float need;
+    for (;;) {
+        printf("请输入需要的数量:");
+        scanf("%f", &need); getchar();
+        if (need > 0.01 || need < -0.01) {
+            if (need + *pounds >= 0) {
+                *pounds += need;
+                return;
+            }
+        }
+        printf("您的输入有误,请重新输入!\n");
+    }
+}
+
+
+void menu_show()
+{
+    st_product *v = vagitables;
+    printf("有以下蔬菜可供您选择:\n");
+    for (; v->type; v++) {
+        printf("    %c. %s (%.2f 美元/磅)\n", v->type, v->name, v->price);
+    }
+    printf(
+"您还可以进行进行以下操作:\n"
+"   x. 计算总价\n"
+"   q. 退出\n"
+"请您选择:"
+    );
+}
+
+
+float *match_product(st_order *order, char type)
+{
+    st_product *v = vagitables;
+    int i = 0;
+    for (; v->type; v++, i++) {
+        if (type == v->type) return order->pounds + i;
+    }
+    return 0;
+}
+
+
+void calc_order(st_order *order)
+{
+    float weights = 0;
+    float cost = 0;
+    float off = 0;
+    float fare = 0;
+    float total = 0;
+    
+    printf("\n ----- \n");
+
+    int i = 0;
+    st_product *v = vagitables;
+    for (; v->type; v++, i++) {
+        if (order->pounds[i]) {
+            float price = vagitables[i].price * order->pounds[i];
+            weights += order->pounds[i];
+            cost += price;
+            printf("%s %.2f 磅,共 %.2f 美元\n",
+                v->name, order->pounds[i], price);
+        }
+    }
+
+    if (cost >= 100) off = cost * 0.05;
+
+    if (weights <= 5) {
+        fare = 3.5;
+    } else if (weights < 20) {
+        fare = 10;
+    } else {
+        fare = 8 + 0.1 * weights;
+    }
+
+    total = cost - off + fare;
+
+    printf("所有商品总计:%.2f 美元\n", cost);
+    printf("折扣:%.2f 美元\n", off);
+    printf("运费:%.2f 美元\n", fare);
+    printf("总计:%.2f 美元\n", total);
+    printf("----- \n\n");
+}
+
+
+void order_process()
+{
+    char type;
+    st_order order = {0,};
+    for (;;) {
+        menu_show();
+        scanf("%c", &type); getchar();
+        switch (type) {
+            case 'q':
+                return;
+            case 'x': {
+                calc_order(&order);
+                break;
+            }
+            default: {
+                float *match = match_product(&order, type);
+                if (match) {
+                    menu_weight(match);
+                } else {
+                    printf("输入错误,请重新输入!\n");
+                }
+                break;
+            }
+        }
+        
+    }
+}
+
+int main()
+{
+    order_process();
+    return 0;
+}