1、 目 录 1 需求分析需求分析 1 1.1 问题描述 1 1.2 输入数据要求. 1 1.3 输出数据要求. 2 1.4 开发环境和工具 . 2 1.5 成员分工 2 2 总体设计总体设计 . 3 2.1 总体设计思路 3 2.2 模块结构图 . 3 2.3 模块说明 . 4 3 详细设计详细设计 . 6 3.1 数据类型定义 6 3.2SCAN模块实现 . 6 3.3SAVE以及 READ模块实现 . 8 3.4COUNT模块实现 . 9 4 测试结果与分析测试结果与分析.11 4.1.输入数据计算结果 11 4.2 数据的文件保存 12 4.3 从文件读入数据并计算结果 . 12 5 个人
2、总结个人总结 . 14 6 附附 录录 . 15 6.1 源代码 15 - 1 - 1 需求分析需求分析 1.1 问题描述问题描述 从键盘读入比赛数据;从文件读入比赛数据;将从键盘输入的比赛数据存入文件(一个 文件可存放多局比赛的数据) 。将比赛数据显示在屏幕上计算比赛结果及统计数据,并显示在 屏幕上。 一局(GAME)保龄球分为 10 格,每格里有两次投球机会,如在第一次投球时全中,就不 需要投第二球。每一格可能出现三种情况: 1.失球(MISS) 无论何种情况,在一格的两次投球时,未能击倒 10 个瓶,此格的分数为击倒的瓶数,未击中 用一个(-)符号表示。 2.补中(SPARE) 当第二次
3、投球击倒该格第一球余下的全部瓶子,称为补中,用一个(/)符号表示。补中的记 分是 10 分加上下一次投球击倒的瓶数。 3.全中(STRIKE) 当每一格的第一次投球击倒全部竖立的十个瓶时,称为全中,用一个()符号表示。全中 的记分是 10 分(击倒的瓶)加该球员下两次投球击倒的瓶数。 但在第十格中情况比较特殊: (1)如第二次投球未补中,则第十格得分为第九格得分加上第十格所击倒瓶数。 (2)如第二次投球补中,则追加一次投球机会,第十格得分为第九格得他加上 10 加上追加一次 投球击倒瓶数。 (3)如第一球为全中,则追上加二次投球机会,第十格得分为第九格得分加上 10 加追加二次投 球击倒的瓶数
4、。因此从第一格到第十格的两次追加投球,都为全中,则为 12 个全中,得分为满 分 300 分。 1.2 输入数据要求输入数据要求 第一格第一次击倒瓶数: 第一格第二次击倒瓶数: 第二格第一次击倒瓶数: 第二格第二次击倒瓶数: - 2 - 1.3 输出数据要求输出数据要求 输入数据显示格式: 序 号 1 2 3 4 5 6 7 8 9 10 9|1 6|3 8|2 7|2 10|0 10|0 10|0 4|5 8|2 10|7|3 积分输出数据显示格式: 序 号 1 2 3 4 5 6 7 8 9 10 9|/ 6|3 8|/ 7|2 | | | 4|5 8|/ | 7 | / 得 分 16 25 42 51 81 105 124 133 153 173 1.4 开发环境和工具开发环境和工具 开发环境:Windows 7 开发工具:Visual C+ 6.0 1.5 成员分工成员分工 熊宇堂:计分模块、数据输入模块、文件读写模块、选择模块、系统测试 张 嵩:数组结构体转换模块、数据输出模块、屏幕显示模块、系统测试 - 3 - 2 总体设计总体设