您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > C++之典型软件开发流程一
TSINGHUAUNIVERSITY■典型软件开发流程软件工程概要问题的提出需求分析概要设计详细设计编码实现系统测试经验总结TSINGHUAUNIVERSITY■软件工程概要需求分析:确定软件需要解决什么问题决定因素:人软件开发人员需要与用户深入交流,明确问题的输入、输出以及其他附加信息不要轻视任何问题方案设计:设计程序框架概要设计:设计总体方案,形成高层模块划分详细设计:细化模块,获得各模块的输入、输出与算法编码实现:实际编程系统测试:测试程序的正确性与稳定性经验总结TSINGHUAUNIVERSITY■软件开发流程图修改需求分析方案设计编码实现系统测试反馈修改修改反馈反馈TSINGHUAUNIVERSITY■软件开发问题我猜!我猜!我猜猜猜!编程实现一个简单的猜价格游戏假设有某物品,已知其最低价格与最高价格游戏参与者在给定次数内猜测其价格具体值TSINGHUAUNIVERSITY■需求分析需求A:游戏运行前首先应向游戏参与者介绍游戏功能需求B:首期工程不需要解决游戏难度问题,用户迫切希望程序能在最短时间内运行起来,因此只考虑最简单情形需求C:在每个游戏回合结束时允许用户选择是否重新开始新游戏,这里游戏回合是指游戏参与者或者猜中价格或者其猜测机会已用完,如果用户没有选择退出,游戏应无休止地玩下去需求D:能够记录游戏参与者的游戏信息,目前仅统计用户玩了多少回合以及赢了多少回合需求E:在用户退出游戏时,给出此次游戏胜率TSINGHUAUNIVERSITY■需求分析不明确的地方:什么是最简单情形?与用户再次沟通……需求B1:设物品最低价格为100元,最高价格为200元需求B2:物品实际价格由系统运行时随机生成需求B3:游戏参与者最多允许猜6次需求B4:若游戏参与者猜测价格比实际价格高,则程序提示“高”;若猜测价格比实际价格低,提示“低”用户补充需求需求F:需要定义游戏初始化过程,未来有可能通过它调整游戏难度,程序必须为此提供接口TSINGHUAUNIVERSITY■概要设计响应需求A、E、F将游戏划分为四个模块:欢迎信息显示模块、游戏初始化模块、游戏模块、游戏结束模块程序架构:主文件“main.cpp”,程序主体函数库“guess.h”与“guess.cpp”;此外需要使用zyrandom库设计函数原型胜率信息需要从游戏模块传递给游戏结束模块voidPrintWelcomeInfo();voidInitializeGame();doublePlayGame();voidPrintGameOverInfo(doubleprevailed_ratio);TSINGHUAUNIVERSITY■编码实现:guess.hvoidPrintWelcomeInfo();voidInitializeGame();doublePlayGame();voidPrintGameOverInfo(doubleprevailed_ratio);TSINGHUAUNIVERSITY■编码实现:main.cpp#includeguess.hintmain(){doubleprevailed_ratio;PrintWelcomeInfo();InitializeGame();prevailed_ratio=PlayGame();PrintGameOverInfo(prevailed_ratio);return0;}TSINGHUAUNIVERSITY■概要设计响应需求C使用无限循环作为游戏模块的主架构:初始化游戏回合,进行游戏回合,判断游戏参与者是否开始新游戏回合响应需求B2每一回合需要随机生成物品价格,应在游戏回合初始化阶段完成抽象出单独的游戏回合初始化函数,返回值为初始化的物品价格(整数类型)intInitializeBout();响应需求D游戏参与者的回合数与获胜回合数:使用整数类型保存,游戏开始时初始化为0,并随着游戏进程变化TSINGHUAUNIVERSITY■概要设计游戏回合活动分析将每一回合游戏抽象成函数,函数返回值为bool,表示该游戏回合游戏参与者是否获胜boolPlayBout();判断用户是否进入下一回合boolAgain();Again函数负责在PlayGame函数中充当哨兵,在返回值为false时退出游戏响应需求B1、B3:数据初始化工作constintlowest_price=100;constinthighest_price=200;constintguess_count=6;
本文标题:C++之典型软件开发流程一
链接地址:https://www.777doc.com/doc-4015763 .html