zxy:product修改，建议全部复制粘贴过去，其它函数有细节改动，实例见program main