假设当前有N位顾客排队买商品,每个顾客最多限买M个,但必须排队,商品每组生产出来的个数依次为1,2,-----k个,每次生产完一组后将商品放入窗口,此时只有排在队首的顾客才能购买,且必须在下一组商品放入窗口前完成购买。下一个顾客必须等到下一组放入窗口后才能购买,假设现在每个顾客都想买到M个,且若一次未购满M个将重新排到队尾,当买到M个时离开队伍。输出MKN不同时每个顾客的购买情况,
题主是想要设计这样一个程序吗?
给定输入:顾客数N,限买商品数M,每组生产产品个数最大值k
输出:相应的每位顾客购买情况(购买流程,何时出队)。
将问题分解来看,我么需要考虑几个关键之处:
1.表示顾客的数据结构上,根据题目之意,宜采用“循环队列”;
2.顾客对象中含有的元素应包括:临时编号num,已购商品数purchase,是否出队标志flag;
3.对于商品资源池(出货源)而言,要考虑第i次剩余商品数remain[i],及特殊情况:商品不够怎么办?商品过量怎么办?
至于具体的程序编写,这个题主可以自己再想想,估计也有很多解题人以前也编过的~加油!
顾客是一个类,商品也是一个类,通过类之间的聚合以及各种关系完成...