background image

说明:
1. 本试题考察应聘者的技术开发经验,包括问题分析、设计、实现、测试和系统设计五个部

2. 本试题为开卷形式。应聘者可以查阅书籍或从互联网上查找参考资料,但必须独立完成,

不得借助他人的帮助

3. 总答题时间为 3 个小时。每部分均有推荐的答题时间,供应聘者参考
4. 考虑到应聘者的个人开发经验不尽相同,并非所有题目都必须作答。具体请参照每部分的

说明

问题分析

说明:满分 15 分。推荐答题时间:20 分钟

问题一

假设有一个 n 级的表单流转流程,其功能描述如下:
1. 创建、填写并提交表单的人称为提交人;在每个流转级别上决定表单是否通过的人称为审

批人;有资格成为某一个流转级别表单审批人的人称为该级别的审批候选人(审批候选人

成为审批人的逻辑见 3、4 条)

2. 每一级至少有一个审批候选人,而且同一个人可能是多个级别的审批候选人
3. 表单提交人从第 1 级审批候选人中选择一个提交表单,此时称为从第 0 级向第 1 级提交。

选中的审批候选人成为第 1 级的审批人。之后表单流转到该审批人等待审批

4. 当表单流转到第 i 级(i < n)的审批人时,如果该审批人否决了该表单,则流程结束;如果

该审批人批准了该表单,他需要从第 i + 1 级审批候选人中选择下一级的审批人

5. 最后一级审批人批准了表单后,流转流程结束

现有用户提出以下改动请求:
1. 如果某人是该表单的审批候选人之一,那么当他做为表单的提交人时,他可以从他有资格

审批的最低级别开始提交,而非第 0 级

2. 每个表单至少要经过一次审批

请分析并筛选以上信息,给出这次改动的需求描述。格式为当 xxx 条件发生时,程序应作出
xxx 处理。