软件工程作业答案1
某交易所规定给经纪人的手续费计算方法如下:总手续费等于基本手续费加上交易中的每股价格和股数有关的附加手续费。如果交易金额少于1000元,则基本手续费为交易金额的8.4%;如果交易金额在1000元到10000元之间,则基本手续费为交易金额的5%,再加上34元;如果交易金额超过10000元,则基本手续费为交易金额的4%加上134元。每股售价低于14元时,附加手续费为基本手续费的5%,除非买进卖出的股数不是100的倍数,在这种情况下附加手续费为基本手续费的9%。当每股售价在14元到25元之间时,附加和手续费为基本手续费的2%,除非交易的股数不是100的倍数,在这种情况下附加手续费为基本手续费的6%。当每股售价超过25元时,如果交易的股数零散(即,不是100的倍数),则附加手续费为基本手续费的1%。 根据给定的信息,我们可以将涉及的关键知识点分为两个主要部分进行阐述: ### 一、手续费计算逻辑及判定表 #### 手续费计算方法解析 **基本情况:** - **交易金额 (S):** 根据交易金额的不同,基本手续费的计算方式也会有所不同。 - **每股售价 (d):** 每股的价格也会影响附加手续费的计算比例。 - **交易股数:** 是否为100的倍数会影响附加手续费的比例。 **具体规则:** 1. **交易金额少于1000元:** - 基本手续费 = S * 8.4% - 附加手续费: - 若股数是100的倍数,附加手续费 = 基本手续费 * 5% - 否则,附加手续费 = 基本手续费 * 9% 2. **交易金额在1000元到10000元之间:** - 基本手续费 = S * 5% + 34 - 附加手续费: - 若股数是100的倍数,附加手续费 = 基本手续费 * 2% - 否则,附加手续费 = 基本手续费 * 6% 3. **交易金额超过10000元:** - 基本手续费 = S * 4% + 134 - 附加手续费: - 若股数是100的倍数,附加手续费 = 基本手续费 * 4% - 否则,附加手续费 = 基本手续费 * 1% **附加手续费特殊情况:** - 当每股售价超过25元时,即使股数是100的倍数,附加手续费也为基本手续费的1%。 #### 判定表表示手续费计算方法 基于以上逻辑,可以构建一个判定表来表示手续费的计算方法。判定表是一种用于表示逻辑条件和结果之间的关系的方法,尤其适用于复杂的业务规则。 **判定表示例:** | 交易金额 | 每股售价 | 交易股数是否为100的倍数 | 基本手续费 | 附加手续费 | |----------|----------|------------------------|------------|------------| | S < 1000 | 任何值 | 是 | S * 8.4% | S * 8.4% * 5% | | S < 1000 | 任何值 | 否 | S * 8.4% | S * 8.4% * 9% | | 1000 ≤ S ≤ 10000 | d < 14 | 是 | S * 5% + 34 | (S * 5% + 34) * 5% | | 1000 ≤ S ≤ 10000 | d < 14 | 否 | S * 5% + 34 | (S * 5% + 34) * 9% | | 1000 ≤ S ≤ 10000 | 14 ≤ d ≤ 25 | 是 | S * 5% + 34 | (S * 5% + 34) * 2% | | 1000 ≤ S ≤ 10000 | 14 ≤ d ≤ 25 | 否 | S * 5% + 34 | (S * 5% + 34) * 6% | | S > 10000 | 任何值 | 是 | S * 4% + 134 | (S * 4% + 134) * 4% | | S > 10000 | 任何值 | 否 | S * 4% + 134 | (S * 4% + 134) * 1% | ### 二、程序流程与结构化编程 #### 伪代码分析 给定的伪代码描述了一个包含条件分支(IF-ELSE)和循环(WHILE)的简单程序结构。程序的主要逻辑在于判断条件p和q,并根据条件执行相应的代码块。 **程序流程图与盒图:** - **程序流程图**是通过图形符号表示程序控制流的一种方式。 - **盒图**(N-S图)是一种更为简洁清晰的表示程序逻辑的方式,通常用于描述程序的结构。 #### 结构化程序设计原则 **非结构化程序问题:** - 给定的程序流程图存在多个出口,不符合结构化编程的原则。 - 结构化编程强调单一入口和单一出口的原则,以增强程序的可读性和可维护性。 **等价的结构化程序:** - 为了使程序结构化,可以通过引入辅助变量(如flag)或者重新组织程序结构来实现。 - 例如,可以使用WHILE循环结合IF-ELSE结构来替代原始的非结构化程序逻辑。 **使用flag的结构化程序示例:** ```plaintext START FLAG = FALSE WHILE q DO IF p THEN F FLAG = TRUE ENDIF ENDWHILE IF NOT FLAG THEN BLOCK g n ENDBLOCK ENDIF STOP ``` **不使用flag的结构化程序示例:** ```plaintext START WHILE q DO IF p THEN F ELSE g n ENDIF ENDWHILE STOP ``` 以上两种方案都遵循了结构化编程的原则,避免了非结构化程序中的多个出口问题,提高了程序的可读性和可维护性。
- weixin_422506542019-04-23还行吧,欧可的
- 粉丝: 191
- 资源: 18
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助