用生活语言阐释ERP

一天中午,丈夫在外给家里打电话:“亲爱的老婆,晚上我想带几个同事回家吃饭可以吗?”(订货意向)

妻子:“当然可以,来几个人,几点来,想吃什么菜?”

丈夫:“6个人,我们7点左右回来,准备些酒烤鸭番茄炒蛋凉菜蛋花汤…… 你看可以吗?”(商务沟通)

妻子:“没问题,我会准备好的,”(订单确认)

妻子记录下需要做的菜单(MPS计划),具体要准备的菜:鸭酒番茄鸡蛋调料……(BOM物料清单),发现需要1只鸭,5瓶酒,4个番茄……(BOM展开),炒蛋需要6个鸡蛋,蛋花汤需要4个鸡蛋(共用物料)。打开冰箱一看(库房),只剩下2个鸡蛋(缺料)。

来到自由市场,妻子:“请问鸡蛋怎么卖?”(采购询价)

小贩:“1个1元,半打5元,1打9.5元。”

妻子:“我只需要8个,但这次买1打。”(经济批量采购)

妻子:“这有一个坏的,换一个。”(验收,退料,换料)

回到家中,准备洗菜切菜炒菜……(工艺路线),厨房中有燃气灶微波炉电饭堡…… (工作中心)。 妻子发现拔鸭毛最费时间(瓶颈工序,关键工艺路线),用微波炉自己做烤鸭可能就来不及(产能不足),于是决定在楼下的餐厅里买现成的(产品委外)。

下午4点,电话铃又响:“妈妈,晚上几个同学想来家里吃饭,你帮准备一下。”(紧急订单)

“好的,儿子,你们想吃什么,爸爸晚上也有客人,你愿意和他们一起吃吗?”

“菜你看着办吧,但一定要有番茄炒鸡蛋。我们不和大人一起吃,6:30左右回来。”

(呵呵,不能并单处理) “

好的,肯定让你们满意。”(订单确认)

鸡蛋又不够了,打电话叫小贩送来。(紧急采购)

6:30,一切准备就绪,可烤鸭还没送来,急忙打电话询问:“我是李太,怎么订的烤鸭 还没送来。”(采购委外单跟催)

“不好意思,送货的人已经走了,可能是堵车吧,马上就会到的。”

门铃响了,“李太,这是您要的烤鸭。请在单上签一个字。”(验收入库转应付帐款)

6:45,女儿的电话:“妈妈,我想现在带几个朋友回家吃饭可以吗?”(呵呵,又是紧 急订购意向,要求现货)

“不行呀,女儿,今天妈妈已经需要准备两桌饭了,时间实在是来不及,真的非常抱 歉,下次早点说,一定给你们准备好。”(哈哈,这就是ERP的使用局限,要有稳定的 外部环境,要有一个起码的提前期) ……

送走了所有客人,疲惫的妻子坐在沙发上对丈夫说:“亲爱的,现在咱们家请客的频率 非常高,应该要买些厨房用品了(设备采购),最好能再雇个小保姆(连人力资源系 统也有接口了)。”

丈夫:“家里你做主,需要什么你就去办吧。”(通过审核)

妻子:“还有,最近家里花销太大,用你的私房钱来补贴一下,好吗?”(哈哈哈哈, 最后就是应收货款的催要)

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/486800/viewspace-897749/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/486800/viewspace-897749/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以用C语言的语法来阐释这个问题。 在C语言中,我们可以使用结构体来表示一个点,例如: ```c struct Point { int x, y; }; ``` 结构体`Point`包含了两个整型成员变量`x`和`y`,用来表示一个平面上的点。 我们可以使用一个数组来存储封闭区域的所有点,例如: ```c struct Point polygon[] = { {100, 100}, {300, 100}, {300, 200}, {100, 200} }; int num_points = sizeof(polygon) / sizeof(polygon[0]); ``` 这个数组定义了一个矩形,包含了四个点,分别是`(100, 100)`、`(300, 100)`、`(300, 200)`和`(100, 200)`。`num_points`变量表示了数组中点的个数,可以使用`sizeof`运算符计算得到。 为了判断鼠标点击位置是否在封闭区域内,我们需要实现一个函数来计算射线与多边形的交点数。这个函数的实现可以参考上面的代码示例。 ```c int count_intersections(struct Point polygon[], int num_points, int x, int y) { int count = 0; for (int i = 0, j = num_points - 1; i < num_points; j = i++) { if (((polygon[i].y > y) != (polygon[j].y > y)) && (x < (polygon[j].x - polygon[i].x) * (y - polygon[i].y) / (polygon[j].y - polygon[i].y) + polygon[i].x)) { count++; } } return count; } ``` 这个函数接受一个表示多边形的点数组`polygon`,多边形的点数`num_points`,以及一个鼠标点击位置的横坐标`x`和纵坐标`y`。函数返回射线与多边形的交点数。 在鼠标点击事件中,我们可以调用这个函数来判断鼠标点击位置是否在封闭区域内。如果交点数为奇数,则该点在多边形内;如果交点数为偶数,则该点在多边形外。 ```c while (true) { if (ismouseclick(WM_LBUTTONDOWN)) { clearmouseclick(WM_LBUTTONDOWN); int x = mousex(), y = mousey(); // 判断鼠标点击位置是否在封闭区域内 bool inside = count_intersections(polygon, num_points, x, y) % 2 == 1; if (inside) { setfillstyle(SOLID_FILL, color_clicked); fillpoly(num_points, polygon); } } } ``` 这个代码段中,我们使用了一个死循环来监听鼠标点击事件。如果检测到鼠标左键按下事件,则获取鼠标点击位置的横纵坐标,并调用`count_intersections`函数来判断鼠标点击位置是否在封闭区域内。如果在,则将该区域的颜色设置为`color_clicked`。如果不在,则不做任何操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值